summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
diff options
context:
space:
mode:
authorgregory guy <gregory-tde@laposte.net>2021-03-15 15:32:40 +0100
committerSlávek Banko <slavek.banko@axis.cz>2024-03-02 18:52:12 +0100
commit12bd9b6b2bba50da9c3444dfb42b985ed2a6a7c1 (patch)
tree8319b9e98b3fa1f2a2a61d7719eb9a714c7ad66a /ConfigureChecks.cmake
parent34587584ab80fd696cc9d73dda1326f175125ddf (diff)
downloadtqt-feat/cmakeConv.tar.gz
tqt-feat/cmakeConv.zip
Conversion to the cmake building system.feat/cmakeConv
Signed-off-by: gregory guy <gregory-tde@laposte.net> Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r--ConfigureChecks.cmake475
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()