########################################### # # # 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 ) ##### 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_IMGFMT_PNG AND BUILD_LIB) OR BUILD_IMGFMT_PLUGIN_PNG ) find_package( PNG ) if( NOT PNG_FOUND ) tde_message_fatal( "libpng support has been requested but was not found on your system" ) endif() endif() ##### check for jpeg if( (WITH_IMGFMT_JPEG AND BUILD_LIB) OR BUILD_IMGFMT_PLUGIN_JPEG ) find_package( JPEG ) if( NOT JPEG_FOUND ) tde_message_fatal( "jpeg support has been requested but was not found on your system" ) endif() endif() ##### check for libmng if( (WITH_IMGFMT_MNG AND BUILD_LIB) OR BUILD_IMGFMT_PLUGIN_MNG ) pkg_search_module( MNG libmng ) if( NOT MNG_FOUND ) tde_message_fatal( "mng support has been requested but was not found on your system" ) endif() find_package( JPEG ) if( NOT JPEG_FOUND ) tde_message_fatal( "mng support has been requested but it also requires libjpeg" ) endif() endif() ##### 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 (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 $ CACHE INTERNAL "" ) set( MOC_EXECUTABLE $ CACHE INTERNAL "" ) else() find_program( TMOC_EXECUTABLE NAMES tmoc tqmoc REQUIRED ) endif() if( BUILD_TOOLS ) set( UIC_EXECUTABLE $ CACHE INTERNAL "" ) 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( FIREBIRD_CONFIG ) macro( _fbclient_config __type __var ) 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 ) set( FBCLIENT_FOUND "ON" CACHE INTERNAL "" ) else( ) if( NOT FBCLIENT_LIBRARIES ) set( FBCLIENT_LIBRARIES "fbclient" ) 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 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 "" ) set( FBCLIENT_LIBRARIES "${FBCLIENT_LIBRARIES}" CACHE INTERNAL "" ) 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 ) 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()