summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ConfigureChecks.cmake59
1 files changed, 36 insertions, 23 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index f5be9c4df..0304964b7 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -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 )