diff options
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r-- | ConfigureChecks.cmake | 475 |
1 files changed, 475 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake new file mode 100644 index 000000000..b06b636d7 --- /dev/null +++ b/ConfigureChecks.cmake @@ -0,0 +1,475 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + +# required stuff + +tde_setup_architecture_flags() + + +##### check for gcc visibility support + +if( WITH_GCC_VISIBILITY ) + tde_setup_gcc_visibility() +endif( WITH_GCC_VISIBILITY ) + + +##### TQT gif support + +if( WITH_TQTGIF ) + set( BUILTIN_GIF_READER QT_BUILTIN_GIF_READER ) + set( QT_BUILTIN_GIF_READER 1 ) +endif( WITH_TQTGIF ) + + +##### check for fontconfig + +pkg_search_module( LIBFONTCONFIG fontconfig ) + +if( NOT LIBFONTCONFIG_FOUND ) + tde_message_fatal( "fontconfig is required but was not found on your system" ) +endif( NOT LIBFONTCONFIG_FOUND ) + + +##### check for libpng + +if( WITH_PNG ) + find_package( PNG ) + if( NOT PNG_FOUND ) + tde_message_fatal( "libpng support has been requested but was not found on your system" ) + endif() + else() + set( NO_IMAGEIO_PNG TQT_NO_IMAGEIO_PNG ) +endif( WITH_PNG ) + + +##### check for jpeg + +if( WITH_JPEG ) + find_package( JPEG ) + if( NOT JPEG_FOUND ) + tde_message_fatal( "jpeg support has been requested but was not found on your system" ) + endif() + else() + set( NO_IMAGEIO_JPEG TQT_NO_IMAGEIO_JPEG ) +endif( WITH_JPEG ) + + +##### check for libmng + +if( WITH_LIBMNG ) + find_path( LIBMNG_HEADER libmng.h ) + find_library( LIBMNG_LIBRARY mng ) + if( LIBMNG_HEADER AND LIBMNG_LIBRARY ) + set( LIB_MNG_INCLUDE_DIRS "${LIBMNG_HEADER}" ) + set( LIB_MNG_LIBRARIES "${LIBMNG_LIBRARY}" ) + else() + tde_message_fatal( "Libmng support has been requested but was not found on your system" ) + endif() + if( (NOT WITH_JPEG) OR (NOT JPEG_FOUND) ) + tde_message_fatal( "libmng support requires jpeg support too" ) + endif() + else() + set( NO_IMAGEIO_MNG TQT_NO_IMAGEIO_MNG ) +endif( WITH_LIBMNG ) + + +##### check for X11 + +find_package( X11 COMPONENTS SM Xcursor Xext Xfixes Xi Xinerama Xrandr Xrender Xshape Xinput XSync Xkb ) + +pkg_search_module( LIBICE ice ) + +if( NOT LIBICE_FOUND ) + tde_message_fatal( "libice is require but was not found on your system" ) +endif( NOT LIBICE_FOUND ) + +if( WITH_XCURSOR ) + check_include_file( "X11/Xcursor/Xcursor.h" HAVE_XCURSOR ) + if( NOT HAVE_XCURSOR ) + tde_message_fatal( "XCursor support has been requested but was not found on your system" ) + endif() + else() + set( NO_XCURSOR TQT_NO_XCURSOR ) +endif( WITH_XCURSOR ) + +if( WITH_SM ) + check_include_file( "X11/SM/SMlib.h" HAVE_SM ) + if( NOT HAVE_SM ) + tde_message_fatal( "Session management support has been requested but was not found on your system" ) + endif() + else() + set( NO_SM TQT_NO_SM_SUPPORT ) +endif( WITH_SM ) + +if( WITH_XKB ) + check_include_file( "X11/XKBlib.h" HAVE_XKB ) + if( NOT HAVE_XKB ) + tde_message_fatal( "X KeyBoard support has been requested but was not found on your system" ) + endif() + else() + set( NO_XKB TQT_NO_XKB ) +endif( WITH_XKB ) + +if( WITH_XSYNC ) + if( NOT X11_XSync_FOUND ) + tde_message_fatal( "Xsync support has been requested but was not found on your system" ) + endif() + else() + set( NO_XSYNC TQT_NO_XSYNC ) +endif( WITH_XSYNC ) + +if( WITH_XRENDER ) + check_include_file( "X11/extensions/Xrender.h" HAVE_XRENDER ) + if( NOT HAVE_XRENDER ) + tde_message_fatal( "Xrender support has been requested but was not found on your system" ) + endif() + else() + set( NO_XRENDER TQT_NO_XRENDER ) +endif( WITH_XRENDER ) + +if( WITH_XRANDR ) + check_include_file( "X11/extensions/Xrandr.h" HAVE_XRANDR ) + if( NOT HAVE_XRANDR ) + tde_message_fatal( "Xrandr support has been requested but was not found on your system" ) + endif() + else() + set( NO_XRANDR TQT_NO_XRANDR ) +endif( WITH_XRANDR ) + +if( WITH_XINERAMA ) + check_include_file( "X11/extensions/Xinerama.h" HAVE_XINERAMA ) + if( NOT HAVE_XINERAMA ) + tde_message_fatal( "Xinerame support has been requested but was not found on your system" ) + endif() + else() + set( NO_XINERAMA TQT_NO_XINERAMA ) +endif( WITH_XINERAMA ) + +if( WITH_TABLET ) + check_include_file( "X11/extensions/XInput.h" HAVE_XINPUT ) + if( X11_Xinput_FOUND ) + set( TABLET_SUPPORT QT_TABLET_SUPPORT ) + else() + tde_message_fatal( "Tablet support has been requested but XInput was not found on your system" ) + endif() +endif( WITH_TABLET ) + + +if( WITH_XSHAPE ) + check_include_file( "X11/extensions/shape.h" HAVE_SHAPE ) + if( NOT HAVE_SHAPE ) + tde_message_fatal( "X11 shape extension support has been requested but was not found on your system" ) + endif() + else() + set( NO_SHAPE TQT_NO_SHAPE ) +endif( WITH_XSHAPE ) + +if( WITH_XFT ) + check_include_file( "X11/Xft/Xft2.h" HAVE_XFT2 ) + if( HAVE_XFT2 ) + set( USE_XFT2_HEADER QT_USE_XFT2_HEADER ) + set( XFT2 QT_XFT2 ) + endif() + + if( NOT X11_Xft_FOUND ) + tde_message_fatal( "libXft support has been requested but was not found on your system" ) + endif() + else() + set( NO_XFTFREETYPE TQT_NO_XFTFREETYPE ) +endif( WITH_XFT ) + + +##### check for glib + +if( WITH_GLIBMAINLOOP ) + pkg_search_module( GLIB2 glib-2.0 ) + if( GLIB2_FOUND ) + pkg_search_module( GTHREAD2 gthread-2.0 ) + if( NOT GTHREAD2_FOUND ) + tde_message_fatal( "gthread-2.0 is required but was not found on your system" ) + endif() + set( USE_GLIBMAINLOOP QT_USE_GLIBMAINLOOP ) + else() + tde_message_fatal( "glib-2.0 support has been requested but not found on your system" ) + endif() +endif( WITH_GLIBMAINLOOP ) + + +##### check for Nas/sound + +if( WITH_SOUND ) + find_path( NAS_INCLUDE_DIRS "audio/audiolib.h" ) + find_library( NAS_LIBRARIES audio ) + + if( NOT NAS_INCLUDE_DIRS AND NOT NAS_LIBRARIES ) + tde_message_fatal( "Sound support has been requested but Nas was not found on your system" ) + else() + set( NAS_SUPPORT QT_NAS_SUPPORT ) + endif() + else() + set( NO_SOUND TQT_NO_SOUND ) +endif( WITH_SOUND ) + + +##### check for libtirpc + +check_include_file( "rpcsvc/ypclnt.h" HAVE_YPCLN_H ) + +if( HAVE_YPCLN_H ) + pkg_search_module( TIRPC libtirpc ) + else() + tde_message_fatal( "libtirpc headers are required, but were not found on your system" ) +endif() + + +##### check for Thread library + +find_package( Threads ) +if( Threads_FOUND ) + add_definitions( -DTQT_THREAD_SUPPORT ) +endif() + + +##### check for freetype2 + +find_package( Freetype ) +if( NOT FREETYPE_FOUND ) + tde_message_fatal( "Freetype is required, but was not found on your system" ) +endif() + + +##### check for zlib + +find_package( ZLIB ) +if( NOT ZLIB_FOUND ) + tde_message_fatal( "Zlib is required, but was not found on your system" ) + else() + check_include_file( "zlib.h" HAVE_ZLIB_H ) +endif() + + +##### check for cups + +if( WITH_CUPS ) + find_package( Cups ) + if( NOT CUPS_FOUND ) + tde_message_fatal( "Cups support have been requested, but was not found on your system" ) + endif() + else() + set( NO_CUPS TQT_NO_CUPS ) +endif() + + +##### check for uuid library + +pkg_search_module( _UUID uuid ) +if( NOT _UUID_FOUND ) + tde_message_fatal( "the uuid libary is required, but was not found on your system" ) +endif() + + +##### check headers + +check_include_file( "unistd.h" Q_OS_UNIX ) #probably not needed +check_include_file( "sys/mman.h" Q_OS_LINUX ) #probably not needed + + +##### variables to generate <ntconfig.h> (include folder) + +set( _HOST_SYSTEM_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR} ) +set( _HOST_SYSTEM_NAME ${CMAKE_CXX_PLATFORM_ID} ) +set( _SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P} ) + +if( ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${CMAKE_CXX_COMPILER_VERSION}" VERSION_GREATER "4.0.0") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") ) + set( _COMPILER_NAME "g++-4.*" ) + else() + set( _COMPILER_NAME "g++-3.*" ) +endif() + + +##### immodule extensions + +if( WITH_IMMODULE_EXTENSIONS ) + set( TQT_NO_IM_EXTENSIONS 1 ) +endif() + + +##### set build for modules + +if( BUILD_TMOC ) + set( TMOC_EXECUTABLE $<TARGET_FILE:tmoc> CACHE FILEPATH "" ) + set( MOC_EXECUTABLE $<TARGET_FILE:tmoc> CACHE FILEPATH "" ) +endif() +if( BUILD_TOOLS ) + set( UIC_EXECUTABLE $<TARGET_FILE:tquic> CACHE FILEPATH "" ) +endif() + +if( WITH_MODULE_STYLES ) + set( TQT_MODULE_STYLES 1 ) +endif() + +if( WITH_MODULE_TOOLS ) + set( TQT_MODULE_TOOLS 1 ) +endif() + +if( WITH_MODULE_KERNEL ) + set( TQT_MODULE_KERNEL 1 ) +endif() + +if( WITH_MODULE_WIDGETS ) + set( TQT_MODULE_WIDGETS 1 ) +endif() + +if( WITH_MODULE_DIALOGS ) + set( TQT_MODULE_DIALOGS 1 ) +endif() + +if( WITH_MODULE_WORKSPACE ) + set( TQT_MODULE_WORKSPACE 1 ) +endif() + +if( WITH_MODULE_INPUTMETHOD ) + set( TQT_MODULE_INPUTMETHOD 1 ) +endif() + +if( WITH_MODULE_NETWORK ) + set( TQT_MODULE_NETWORK 1 ) +endif() + +if( WITH_MODULE_CANVAS ) + set( TQT_MODULE_CANVAS 1 ) +endif() + +if( WITH_MODULE_TABLE ) + set( TQT_MODULE_TABLE 1 ) +endif() + +if( WITH_MODULE_XML ) + set( TQT_MODULE_XML 1 ) +endif() + +if( WITH_MODULE_OPENGL ) + set(OpenGL_GL_PREFERENCE LEGACY) + find_package( OpenGL ) + if( OPENGL_FOUND ) + set( TQT_MODULE_OPENGL 1 ) + elseif( OPENGL_GLU_FOUND ) + set( TQT_MODULE_OPENGL 1 ) + set( DLOPEN_OPENGL QT_DLOPEN_OPENGL ) + else() + tde_message_fatal( "OpenGL support is requested, but was not found on your system" ) + endif() +endif() + +if( WITH_MODULE_SQL ) + set( TQT_MODULE_SQL 1 ) +endif() + +if( (BUILD_SQL_PLUGIN_PSQL OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_PSQL)) AND NOT PostgreSQL_FOUND ) + find_package( PostgreSQL ) + if( NOT PostgreSQL_FOUND ) + tde_message_fatal( "PostgreSQL has been requested, but was not found on your system" ) + endif() +endif() + +if( (BUILD_SQL_PLUGIN_MYSQL OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_MYSQL)) AND NOT MYSQL_FOUND ) + message( STATUS "Check for MariaDB or MySQL" ) + find_program( MYSQL_CONFIG NAMES mariadb_config mysql_config ) + + if( NOT MYSQL_CONFIG ) + tde_message_fatal( "MySql support is requested but neither MySql or Mariadb have been found on your system" ) + else() + macro( _mysql_config __type __var ) + execute_process( + COMMAND ${MYSQL_CONFIG} --${__type} + OUTPUT_VARIABLE ${__var} + RESULT_VARIABLE __result + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if( _result ) + tde_message_fatal( "Unable to run ${MYSQL_CONFIG}!" ) + endif() + endmacro() + + _mysql_config( include MYSQL_INCLUDE_DIRS ) + _mysql_config( libs MYSQL_LIBRARIES ) + + if( MYSQL_INCLUDE_DIRS ) + string( REGEX REPLACE "(^| +)-I" ";" MYSQL_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}" ) + endif() + + if( MYSQL_LIBRARIES ) + string( REGEX REPLACE "(^| +)-l" ";" MYSQL_LIBRARIES "${MYSQL_LIBRARIES}" ) + endif() + + set( MYSQL_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE ) + set( MYSQL_LIBRARIES "${MYSQL_LIBRARIES}" CACHE INTERNAL "" FORCE ) + set( MYSQL_FOUND 1 CACHE INTERNAL "" FORCE ) + + message( STATUS "MySQL includes ${MYSQL_INCLUDE_DIRS}" ) + message( STATUS "MySQL libraries ${MYSQL_LIBRARIES}" ) + endif( NOT MYSQL_CONFIG ) +endif() + +if( (BUILD_SQL_PLUGIN_ODBC OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_ODBC)) AND NOT ODBC_FOUND ) + pkg_search_module( ODBC odbc;libiodbc ) + if( NOT ODBC_FOUND ) + tde_message_fatal( "ODBC support has been requested, but was not found on your system" ) + endif() +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() + 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() + 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}" ) + endif() + + if( FBCLIENT_LIBRARIES ) + string( REGEX REPLACE "(^| +)-l" ";" FBCLIENT_LIBRARIES "${FBCLIENT_LIBRARIES}" ) + endif() + + 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 ) + + message( STATUS "FIREBIRD includes ${FBCLIENT_INCLUDE_DIRS} ") + message( STATUS "FIREBIRD libraries ${FBCLIENT_LIBRARIES} ") + endif( NOT FIREBIRD_CONFIG ) +endif() + +if( (BUILD_SQL_PLUGIN_SQLITE OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_SQLITE)) AND NOT SQLITE_FOUND ) + pkg_search_module( SQLITE sqlite ) + if( NOT SQLITE_FOUND ) + tde_message_fatal( "SQLite support has been requested, but was not found on your system" ) + endif() +endif() + +if( (BUILD_SQL_PLUGIN_SQLITE3 OR (WITH_MODULE_SQL AND WITH_SQL_DRIVER_SQLITE3)) AND NOT SQLITE3_FOUND ) + pkg_search_module( SQLITE3 sqlite3 ) + if( NOT SQLITE3_FOUND ) + tde_message_fatal( "SQLite3 support has been requested, but was not found on your system" ) + endif() +endif() |