cmake: fix libfbclient discovery if fb_config is not present

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
feat/cmakeConv-r1
Alexander Golubev 2 months ago
parent cec28c4497
commit bf8b880150

@ -424,39 +424,52 @@ endif()
if( (BUILD_SQL_PLUGIN_IBASE OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_IBASE)) AND NOT FBCLIENT_FOUND )
find_program( FIREBIRD_CONFIG fb_config )
if( NOT FIREBIRD_CONFIG )
tde_message_fatal( "IBASE support has been requested, but was not found on your system" )
else()
if( FIREBIRD_CONFIG )
macro( _fbclient_config __type __var )
execute_process(
COMMAND ${FIREBIRD_CONFIG} --${__type}
OUTPUT_VARIABLE ${__var}
RESULT_VARIABLE __result
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if( _result )
tde_message_fatal( "Unable to run ${FIREBIRD_CONFIG}!" )
endif()
if (NOT DEFINED ${__var})
execute_process(
COMMAND ${FIREBIRD_CONFIG} --${__type}
OUTPUT_VARIABLE ${__var}
RESULT_VARIABLE __result
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if( _result )
tde_message_fatal( "Unable to run ${FIREBIRD_CONFIG}!" )
endif()
string( REGEX REPLACE "(^| +)-." ";" ${__var} "${${__var}}" )
endif()
endmacro()
_fbclient_config( cflags FBCLIENT_INCLUDE_DIRS )
_fbclient_config( libs FBCLIENT_LIBRARIES )
if( FBCLIENT_INCLUDE_DIRS )
string( REGEX REPLACE "(^| +)-I" ";" FBCLIENT_INCLUDE_DIRS "${FBCLIENT_INCLUDE_DIRS}" )
set( FBCLIENT_FOUND "ON" CACHE INTERNAL "" )
else( )
if( NOT FBCLIENT_LIBRARIES )
set( FBCLIENT_LIBRARIES "fbclient" )
endif()
if( FBCLIENT_LIBRARIES )
string( REGEX REPLACE "(^| +)-l" ";" FBCLIENT_LIBRARIES "${FBCLIENT_LIBRARIES}" )
endif()
tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${FBCLIENT_INCLUDE_DIRS}" )
tde_save_and_set( CMAKE_REQUIRED_LIBRARIES "${FBCLIENT_LIBRARIES}" )
check_c_source_compiles("#include <ibase.h>
int main(){void(*p)(void)=(void(*)(void))*isc_attach_database;}"
FBCLIENT_FOUND )
tde_restore( CMAKE_REQUIRED_INCLUDES )
tde_restore( CMAKE_REQUIRED_LIBRARIES )
endif( FIREBIRD_CONFIG )
message( STATUS "FIREBIRD includes ${FBCLIENT_INCLUDE_DIRS}")
message( STATUS "FIREBIRD libraries ${FBCLIENT_LIBRARIES}")
set( FBCLIENT_INCLUDE_DIRS "${FBCLIENT_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
set( FBCLIENT_LIBRARIES "${FBCLIENT_LIBRARIES}" CACHE INTERNAL "" FORCE )
set( FBCLIENT_FOUND 1 CACHE INTERNAL "" FORCE )
set( FBCLIENT_INCLUDE_DIRS "${FBCLIENT_INCLUDE_DIRS}" CACHE INTERNAL "" )
set( FBCLIENT_LIBRARIES "${FBCLIENT_LIBRARIES}" CACHE INTERNAL "" )
message( STATUS "FIREBIRD includes ${FBCLIENT_INCLUDE_DIRS} ")
message( STATUS "FIREBIRD libraries ${FBCLIENT_LIBRARIES} ")
endif( NOT FIREBIRD_CONFIG )
if( FBCLIENT_FOUND )
set( SQL_IBASE QT_SQL_IBASE )
else()
tde_message_fatal( "IBASE support has been requested, but was not found on your system" )
endif()
endif()
if( (BUILD_SQL_PLUGIN_SQLITE OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_SQLITE)) AND NOT SQLITE_FOUND )

Loading…
Cancel
Save