From 3bc767abb58642f33c9b94fdc94fa6d0d80e72bd Mon Sep 17 00:00:00 2001 From: gregory guy Date: Mon, 15 Mar 2021 15:32:40 +0100 Subject: [PATCH] Conversion to the cmake building system. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gregory guy Added auxiliary CMake macros. Added include files installation for CMake. Added TMOC_EXECUTABLE setting. Small fixes in tqt_automoc macro. Initial test for use tqt_automoc macro. Fix typo in tqt_automoc CMake macro. Signed-off-by: Slávek Banko --- CMakeLists.txt | 180 +++++++ ConfigureChecks.cmake | 476 ++++++++++++++++++ TQtMacros.cmake | 251 +++++++++ config.h.cmake | 20 + .../unix/endian/ConfigureChecks.cmake | 19 + config.tests/unix/ipv6/ConfigureChecks.cmake | 33 ++ .../unix/largefile/ConfigureChecks.cmake | 42 ++ config.tests/unix/stl/ConfigureChecks.cmake | 103 ++++ include/ntqconfig.h.cmake | 23 + include/ntqmodules.h.cmake | 17 + qmake/CMakeLists.txt | 49 ++ qmake/generators/CMakeLists.txt | 36 ++ qmake/generators/mac/CMakeLists.txt | 26 + qmake/generators/mac/pbuilder_pbx.cpp | 4 + qmake/generators/makefile.cpp | 3 + qmake/generators/unix/CMakeLists.txt | 29 ++ qmake/generators/win32/CMakeLists.txt | 39 ++ qmake/project.cpp | 3 + src/CMakeLists.txt | 72 +++ src/canvas/CMakeLists.txt | 29 ++ src/codecs/CMakeLists.txt | 76 +++ src/dialogs/CMakeLists.txt | 52 ++ src/inputmethod/CMakeLists.txt | 31 ++ src/kernel/CMakeLists.txt | 214 ++++++++ src/kernel/ntqgif.h | 4 + src/kernel/qapplication_x11.cpp | 4 +- src/moc/CMakeLists.txt | 32 ++ src/network/CMakeLists.txt | 44 ++ src/opengl/CMakeLists.txt | 48 ++ src/sql/CMakeLists.txt | 84 ++++ src/styles/CMakeLists.txt | 78 +++ src/table/CMakeLists.txt | 30 ++ src/tools/CMakeLists.txt | 180 +++++++ src/tools/qconfig.cpp.cmake | 27 + src/tools/qcstring.cpp | 9 +- src/tools/qstring.cpp | 3 + src/widgets/CMakeLists.txt | 95 ++++ src/workspace/CMakeLists.txt | 30 ++ src/xml/CMakeLists.txt | 32 ++ tools/CMakeLists.txt | 3 + tools/assistant/CMakeLists.txt | 3 + tools/assistant/lib/CMakeLists.txt | 4 + tools/designer/CMakeLists.txt | 3 + tools/designer/uilib/CMakeLists.txt | 4 + 44 files changed, 2541 insertions(+), 3 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 ConfigureChecks.cmake create mode 100644 TQtMacros.cmake create mode 100644 config.h.cmake create mode 100644 config.tests/unix/endian/ConfigureChecks.cmake create mode 100644 config.tests/unix/ipv6/ConfigureChecks.cmake create mode 100644 config.tests/unix/largefile/ConfigureChecks.cmake create mode 100644 config.tests/unix/stl/ConfigureChecks.cmake create mode 100644 include/ntqconfig.h.cmake create mode 100644 include/ntqmodules.h.cmake create mode 100644 qmake/CMakeLists.txt create mode 100644 qmake/generators/CMakeLists.txt create mode 100644 qmake/generators/mac/CMakeLists.txt create mode 100644 qmake/generators/unix/CMakeLists.txt create mode 100644 qmake/generators/win32/CMakeLists.txt create mode 100644 src/CMakeLists.txt create mode 100644 src/canvas/CMakeLists.txt create mode 100644 src/codecs/CMakeLists.txt create mode 100644 src/dialogs/CMakeLists.txt create mode 100644 src/inputmethod/CMakeLists.txt create mode 100644 src/kernel/CMakeLists.txt create mode 100644 src/moc/CMakeLists.txt create mode 100644 src/network/CMakeLists.txt create mode 100644 src/opengl/CMakeLists.txt create mode 100644 src/sql/CMakeLists.txt create mode 100644 src/styles/CMakeLists.txt create mode 100644 src/table/CMakeLists.txt create mode 100644 src/tools/CMakeLists.txt create mode 100644 src/tools/qconfig.cpp.cmake create mode 100644 src/widgets/CMakeLists.txt create mode 100644 src/workspace/CMakeLists.txt create mode 100644 src/xml/CMakeLists.txt create mode 100644 tools/CMakeLists.txt create mode 100644 tools/assistant/CMakeLists.txt create mode 100644 tools/assistant/lib/CMakeLists.txt create mode 100644 tools/designer/CMakeLists.txt create mode 100644 tools/designer/uilib/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..35378df4 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,180 @@ +############################################ +# # +# Improvements and feedbacks are welcome # +# # +# This file is released under GPL >= 3 # +# # +############################################ + + +cmake_minimum_required( VERSION 2.8.12 ) + + +#### general package setup + +project( tqt3 ) +set( VERSION R14.1.0 ) + + +#### include essential cmake modules + +include( FindPkgConfig ) +include( CheckFunctionExists ) +include( CheckIncludeFile ) +include( CheckLibraryExists ) +include( CheckCSourceCompiles ) +include( CheckCXXSourceCompiles ) +include( GNUInstallDirs OPTIONAL ) + +#### include our cmake modules + +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules;${CMAKE_SOURCE_DIR}" ) +include( TDEMacros ) +include( TQtMacros ) + + +##### setup install paths + +include( TDESetupPaths ) +tde_setup_paths( ) + +if( CMAKE_INSTALL_LIBDIR ) + set( SYSTEM_LIBDIR "${CMAKE_INSTALL_LIBDIR}" ) +else() + set( SYSTEM_LIBDIR "lib${LIB_SUFFIX}" ) +endif() + +set( QT_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "install path" ) +set( QT_INSTALL_BINS "${CMAKE_INSTALL_PREFIX}/bin" CACHE STRING "executables path (bin)" ) +set( QT_INSTALL_LIBS "${CMAKE_INSTALL_PREFIX}/${SYSTEM_LIBDIR}" CACHE STRING "libraries path (lib)" ) +set( QT_INSTALL_PLUGINS "${CMAKE_INSTALL_PREFIX}/${SYSTEM_LIBDIR}/${PROJECT_NAME}/plugins" CACHE STRING "plugins path" ) +set( QT_INSTALL_HEADERS "${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}" CACHE STRING "headers path" ) +set( QT_INSTALL_SHARE "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "data root path" ) +set( QT_INSTALL_DATA "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}" CACHE STRING "data path" ) +set( QT_INSTALL_DOCS "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/doc" CACHE STRING "documentation path" ) +set( QT_INSTALL_TRANSLATIONS "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/translations" CACHE STRING "translations path" ) +set( QT_INSTALL_SYSCONF "/etc/${PROJECT_NAME}" CACHE STRING "config path" ) + + +##### optional stuff + +option( WITH_ALL_OPTIONS "Enable all optional support" ON ) +option( WITH_IMMODULE_EXTENSIONS "Enable immodule extensions support" OFF ) # break ABI +option( WITH_STL "Enable c++ stl support" ${WITH_ALL_OPTIONS} ) +option( WITH_IPV6 "Enable IPv6 support" ${WITH_ALL_OPTIONS} ) +option( WITH_CUPS "Enable cups support" ${WITH_ALL_OPTIONS} ) +option( WITH_SOUND "Enable sound support with Nas" ${WITH_ALL_OPTIONS} ) +option( WITH_GLIBMAINLOOP "Enable Glib support" ${WITH_ALL_OPTIONS} ) +option( WITH_XFT "Enable Xft support" ${WITH_ALL_OPTIONS} ) +option( WITH_XSHAPE "Enable XShape support" ${WITH_ALL_OPTIONS} ) +option( WITH_TABLET "Enable tablet support" ${WITH_ALL_OPTIONS} ) +option( WITH_XINERAMA "Enable Xinerame support" ${WITH_ALL_OPTIONS} ) +option( WITH_XRANDR "Enable Xrandr support" ${WITH_ALL_OPTIONS} ) +option( WITH_XRENDER "Enable XRender support" ${WITH_ALL_OPTIONS} ) +option( WITH_XSYNC "Enable Xsync support" ${WITH_ALL_OPTIONS} ) +option( WITH_XKB "Enable X KeyBoard support" ${WITH_ALL_OPTIONS} ) +option( WITH_SM "Enable Session management support" ${WITH_ALL_OPTIONS} ) +option( WITH_XCURSOR "Enable XCursor support" ${WITH_ALL_OPTIONS} ) +option( WITH_LIBMNG "Enable libmng support" ${WITH_ALL_OPTIONS} ) +option( WITH_JPEG "Enable jpeg support" ${WITH_ALL_OPTIONS} ) +option( WITH_PNG "Enable libpng support" ${WITH_ALL_OPTIONS} ) +option( WITH_TQTGIF "Enable TQT gif support" ${WITH_ALL_OPTIONS} ) + + +##### user requested build + +set( TQT_CONFIG "full-config" CACHE STRING "Enable tqt fonctionalities" ) #choices: minimal-config|small-config|medium-config|large-config|full-config + +option( BUILD_ALL "Build all" ON ) +option( BUILD_TQMAKE "Build the tqmake executable" ${BUILD_ALL} ) +option( BUILD_TMOC "Build the tmoc executable" ON ) +option( BUILD_LIB_TQT "Build the tqt library" ON ) +option( BUILD_ACCESSIBILITY "Build with Accessibility support" ${BUILD_ALL} ) + + +##### user requested styles: + +## Motif style is mandatory for CDE, MotifPlus and SGI builds +## Windows style is mandatory for Platinum and Interlace (experimental, OFF by default) builds + +option( BUILD_STYLES "Build tqt3 styles" ON ) +option( WITH_MOTIF_STYLE "Build Motif style" ${BUILD_STYLES} ) +option( WITH_CDE_STYLE "Build CDE style" ${BUILD_STYLES} ) +option( WITH_MOTIFPLUS_STYLE "Build Motif plus style" ${BUILD_STYLES} ) +option( WITH_SGI_STYLE "Build SGI style" ${BUILD_STYLES} ) +option( WITH_WINDOWS_STYLE "Build Windows style" ${BUILD_STYLES} ) +option( WITH_PLATINIUM_STYLE "Build platinium style" ${BUILD_STYLES} ) +option( WITH_INTERLACE_STYLE "Build interlace style" OFF ) + + +##### user requested tqt modules + +option( BUILD_MODULES "Build all modules" ON ) +option( BUILD_TOOLS "Build the tools module" ${BUILD_MODULES} ) +option( BUILD_KERNEL "Build the kernel module" ${BUILD_MODULES} ) +option( BUILD_WIDGETS "Build the widgets module" ${BUILD_MODULES} ) +option( BUILD_DIALOGS "Build the dialog module" ${BUILD_MODULES} ) +option( BUILD_WORKSPACE "Build the worspace module" ${BUILD_MODULES} ) +option( BUILD_INPUTMETHOD "Build the inputmethode module" ${BUILD_MODULES} ) +option( BUILD_NETWORK "Build the network module" ${BUILD_MODULES} ) +option( BUILD_CANVAS "Build the canvas module" ${BUILD_MODULES} ) +option( BUILD_TABLE "Build the tablet module" ${BUILD_MODULES} ) +option( BUILD_XML "Build the xml module" ${BUILD_MODULES} ) +option( BUILD_OPENGL "Build the OpenGL module" ${BUILD_MODULES} ) + + + +##### user requested sql modules + +option( BUILD_SQL "Build the sql module" ON ) +option( WITH_PSQL "Build the PostgreSQL plugin" ${BUILD_SQL} ) +option( WITH_MYSQL "Build the MySQL plugin" ${BUILD_SQL} ) +option( WITH_ODBC "Build with ODBC support" ${BUILD_SQL} ) +option( WITH_IBASE "Build with fbclient support" ${BUILD_SQL} ) +option( WITH_SQL3 "Build with SQLite3 support" ${BUILD_SQL} ) + + + +##### configure checks + +include( ConfigureChecks.cmake ) +include( config.tests/unix/endian/ConfigureChecks.cmake ) # test: little/big endian +include( config.tests/unix/largefile/ConfigureChecks.cmake ) # test: large lifes +include( config.tests/unix/stl/ConfigureChecks.cmake ) # test: stl supported +include( config.tests/unix/ipv6/ConfigureChecks.cmake ) # test: IPv6 network + + +###### global compiler settings + +add_definitions( -DHAVE_CONFIG_H ) + +set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" ) +set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" ) +set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" ) + + +##### directories + +add_subdirectory( src ) +tde_conditional_add_subdirectory( BUILD_TQMAKE qmake ) +tde_conditional_add_subdirectory( BUILD_TOOLS tools ) + + +##### write configure files + +configure_file( config.h.cmake config.h @ONLY ) +configure_file( src/tools/qconfig.cpp.cmake src/tools/qconfig.cpp @ONLY ) +configure_file( include/ntqconfig.h.cmake include/ntqconfig.h @ONLY ) +configure_file( include/ntqmodules.h.cmake include/ntqmodules.h @ONLY ) + + +##### install configuration includes + +install( + FILES + ${CMAKE_BINARY_DIR}/include/ntqconfig.h + ${CMAKE_BINARY_DIR}/include/ntqmodules.h + + DESTINATION + ${QT_INSTALL_HEADERS} +) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake new file mode 100644 index 00000000..03c380a7 --- /dev/null +++ b/ConfigureChecks.cmake @@ -0,0 +1,476 @@ +########################################### +# # +# 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 ) + + +##### Accessibility support + +if( BUILD_ACCESSIBILITY ) + set( ACCESSIBILITY_SUPPORT QT_ACCESSIBILITY_SUPPORT ) +endif( BUILD_ACCESSIBILITY ) + + +##### 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 ) + set( THREAD_SUPPORT TQT_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 tmoc ) +endif() + +if( BUILD_STYLES ) + set( TQT_MODULE_STYLES 1 ) +endif() + +if( BUILD_TOOLS ) + set( TQT_MODULE_TOOLS 1 ) +endif() + +if( BUILD_KERNEL ) + set( TQT_MODULE_KERNEL 1 ) +endif() + +if( BUILD_WIDGETS ) + set( TQT_MODULE_WIDGETS 1 ) +endif() + +if( BUILD_DIALOGS ) + set( TQT_MODULE_DIALOGS 1 ) +endif() + +if( BUILD_WORKSPACE ) + set( TQT_MODULE_WORKSPACE 1 ) +endif() + +if( BUILD_INPUTMETHOD ) + set( TQT_MODULE_INPUTMETHOD 1 ) +endif() + +if( BUILD_NETWORK ) + set( TQT_MODULE_NETWORK 1 ) +endif() + +if( BUILD_CANVAS ) + set( TQT_MODULE_CANVAS 1 ) +endif() + +if( BUILD_TABLE ) + set( TQT_MODULE_TABLE 1 ) +endif() + +if( BUILD_XML ) + set( TQT_MODULE_XML 1 ) +endif() + +if( BUILD_OPENGL ) + set(OpenGL_GL_PREFERENCE LEGACY) + find_package( OpenGL ) + if( OPENGL_FOUND ) + elseif( OPENGL_GLU_FOUND ) + set( TQT_MODULE_OPENGL 1 ) + set( DLOPEN_OPENGL QT_DLOPEN_OPENGL ) + endif() +endif() + +if( BUILD_SQL ) + set( TQT_MODULE_SQL 1 ) + + if( WITH_PSQL ) + find_package( PostgreSQL ) + if( PostgreSQL_FOUND ) + set( SQL_POSTGRES QT_SQL_POSTGRES ) + else() + tde_message_fatal( "PostgreSQL has been requested, but was not found on your system" ) + endif() + endif( WITH_PSQL ) + + if( WITH_MYSQL ) + 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 ) + + message( STATUS "MySQL includes ${MYSQL_INCLUDE_DIRS} ") + message( STATUS "MySQL libraries ${MYSQL_LIBRARIES} ") + + set( SQL_MYSQL QT_SQL_MYSQL ) + endif( NOT MYSQL_CONFIG ) + endif( WITH_MYSQL ) + + if( WITH_ODBC ) + pkg_search_module( IODBC libiodbc ) + if( IODBC_FOUND ) + set( SQL_ODBC QT_SQL_ODBC ) + else() + tde_message_fatal( "ODBC support has been requested, but was not found on your system" ) + endif() + endif( WITH_ODBC ) + + if( WITH_IBASE ) + 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 ) + + message( STATUS "FIREBIRD includes ${FBCLIENT_INCLUDE_DIRS} ") + message( STATUS "FIREBIRD libraries ${FBCLIENT_LIBRARIES} ") + + set( SQL_IBASE QT_SQL_IBASE ) + endif( NOT FIREBIRD_CONFIG ) + endif( WITH_IBASE ) + + if( WITH_SQL3 ) + pkg_search_module( SQLITE3 sqlite3 ) + if( NOT SQLITE3_FOUND ) + tde_message_fatal( "SQLite3 support has been requested, but was not found on your system" ) + else() + set( SQL_SQLITE3 QT_SQL_SQLITE3 ) + endif() + endif( WITH_SQL3 ) +endif( BUILD_SQL ) diff --git a/TQtMacros.cmake b/TQtMacros.cmake new file mode 100644 index 00000000..62299a62 --- /dev/null +++ b/TQtMacros.cmake @@ -0,0 +1,251 @@ +################################################# +# # +# Auxiliary macros for TQt # +# # +################################################# + +include( TDEMacros ) + + +################################################# +##### +##### tqt_install_includes +##### +##### The macro is used to determine the headers that are installed, +##### while the symlinks in the binary include directory are created. +##### +##### Syntax: +##### tqt_install_includes( +##### [FILES] include_name [include_name] +##### [DESTINATION subdir] +##### ) + +macro( tqt_install_includes ) + + unset( _files ) + unset( _dest ) + set( _var _files ) + + foreach( _arg ${ARGN} ) + + # found directive "FILES" + if( "+${_arg}" STREQUAL "+FILES" ) + unset( _files ) + set( _var _files ) + set( _directive 1 ) + endif( ) + + # found directive "DESTINATION" + if( "+${_arg}" STREQUAL "+DESTINATION" ) + unset( _dest ) + set( _var _dest ) + set( _directive 1 ) + endif( ) + + # collect data + if( _directive ) + unset( _directive ) + elseif( _var ) + list( APPEND ${_var} ${_arg} ) + endif( ) + + endforeach( ) + + # determine destination directory + if( NOT IS_ABSOLUTE( "${_dest}" ) ) + set( _dest "${QT_INSTALL_HEADERS}/${_dest}" ) + endif() + file( RELATIVE_PATH _dest_sub "${QT_INSTALL_HEADERS}" "${_dest}" ) + file( MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include/${_dest_sub}" ) + + # process files + foreach( _file IN LISTS _files ) + if( NOT TARGET tqt-includes ) + add_custom_target( tqt-includes + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" + COMMENT "Prepare includes..." ) + endif() + + get_filename_component( _source_name "${_file}" NAME ) + get_filename_component( _source_file "${_file}" ABSOLUTE ) + file( RELATIVE_PATH _target_name "${CMAKE_SOURCE_DIR}" "${_source_file}" ) + string( REPLACE "/" "+" _target_name "${_target_name}" ) + + file( RELATIVE_PATH _link_source "${CMAKE_BINARY_DIR}/include/${_dest_sub}" ${_source_file} ) + file( RELATIVE_PATH _link_dest "${QT_INSTALL_HEADERS}" "${_dest}/${_source_name}" ) + + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/include/${_link_dest} + COMMAND + ${CMAKE_COMMAND} -E create_symlink + ${_link_source} ${CMAKE_BINARY_DIR}/include/${_link_dest} + COMMENT "Include file ${_link_dest}" + ) + add_custom_target( ${_target_name} + DEPENDS ${CMAKE_BINARY_DIR}/include/${_link_dest} + ) + add_dependencies( tqt-includes ${_target_name} ) + + install( FILES ${_file} DESTINATION ${_dest} ) + endforeach( _file ) + +endmacro( tqt_install_includes ) + + +################################################# +##### +##### tqt_automoc +##### +##### The macro is used for 'moc' processing specifically for TQt as such +##### and adding them to an existing target. +##### +##### Syntax: +##### tqt_moc( +##### [TARGET] target +##### [INCLUDES include_name [include_name]] +##### ) + +macro( tqt_automoc ) + + unset( _target ) + set( _includes AUTO ) + set( _var _target ) + + foreach( _arg ${ARGN} ) + + # found directive "TARGET" + if( "+${_arg}" STREQUAL "+TARGET" ) + unset( _target ) + set( _var _target ) + set( _directive 1 ) + endif( ) + + # found directive "INCLUDES" + if( "+${_arg}" STREQUAL "+INCLUDES" ) + unset( _includes ) + set( _var _includes ) + set( _directive 1 ) + endif( ) + + # collect data + if( _directive ) + unset( _directive ) + elseif( _var ) + list( APPEND ${_var} ${_arg} ) + endif( ) + + endforeach( ) + + # target must already exist + if( NOT TARGET ${_target} ) + tde_message_fatal( "The specified target does not exists." ) + endif() + + # search include files suitable for processing + if( _includes STREQUAL "AUTO" ) + file( GLOB _includes RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/*.h ) + foreach( _include IN LISTS _includes ) + file( READ "${CMAKE_CURRENT_SOURCE_DIR}/${_include}" _src_content ) + string( REGEX REPLACE "(^|\n)[\t ]*#[^\n]*" "" _src_content "${_src_content}" ) + string( REGEX REPLACE "(//|/\\*)[^\n]*T?Q_OBJECT[^\n]*" "" _src_content "${_src_content}" ) + if( NOT _src_content MATCHES "[\n\t ]+T?Q_OBJECT[\n\t ]+" ) + list( REMOVE_ITEM _includes "${_include}" ) + endif() + endforeach() + elseif( _includes STREQUAL "-" ) + set( _includes "" ) + endif() + + # check tmoc executable + if( NOT DEFINED TMOC_EXECUTABLE ) + find_program( TMOC_EXECUTABLE + NAMES tmoc + HINT ${QT_INSTALL_BINS} + ) + if( "${TMOC_EXECUTABLE}" STREQUAL "TMOC_EXECUTABLE-NOTFOUND" ) + tde_message_fatal( "tmoc is required but not found" ) + endif( ) + endif() + + # processing sources of specified target + get_property( _sources TARGET ${_target} PROPERTY SOURCES ) + foreach( _src_file IN LISTS _sources ) + + get_filename_component( _src_file "${_src_file}" ABSOLUTE ) + + if( EXISTS "${_src_file}" ) + + # read source file and check if have moc include + file( READ "${_src_file}" _src_content ) + string( REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _moc_includes "${_src_content}" ) + + # found included moc(s)? + if( _moc_includes ) + foreach( _moc_file ${_moc_includes} ) + + # extracting moc filename + string( REGEX MATCH "[^ <\"]+\\.moc" _moc_file "${_moc_file}" ) + set( _moc_file "${CMAKE_CURRENT_BINARY_DIR}/${_moc_file}" ) + + # create source filename + get_filename_component( _src_path "${_src_file}" ABSOLUTE ) + get_filename_component( _src_path "${_src_path}" PATH ) + get_filename_component( _src_header "${_moc_file}" NAME_WE ) + if( NOT TQT_FOUND ) + set( _moc_source "${_src_path}/${_src_header}.cpp" ) + else() + set( _moc_source "${_src_path}/${_src_header}.h" ) + endif() + + # if header doesn't exists, check in META_INCLUDES + if( NOT EXISTS "${_moc_source}" ) + unset( _found ) + foreach( _src_path ${_meta_includes} ) + set( _moc_source "${_src_path}/${_src_header}.h" ) + if( EXISTS "${_moc_source}" ) + set( _found 1 ) + break( ) + endif( ) + endforeach( ) + if( NOT _found ) + get_filename_component( _moc_file "${_moc_file}" NAME ) + tde_message_fatal( "AUTOMOC error: '${_moc_file}' cannot be generated.\n Reason: '${_src_file}.h' not found." ) + endif( ) + endif( ) + + # moc-ing source + add_custom_command( OUTPUT ${_moc_file} + COMMAND ${TMOC_EXECUTABLE} ${_moc_source} -o ${_moc_file} + DEPENDS ${_moc_source} + ) + + # create dependency between source file and moc file + set_property( SOURCE ${_src_file} APPEND PROPERTY OBJECT_DEPENDS ${_moc_file} ) + + # remove from includes for processing + file( RELATIVE_PATH _moc_source ${CMAKE_CURRENT_SOURCE_DIR} ${_moc_source} ) + list( REMOVE_ITEM _includes "${_moc_source}" ) + + endforeach( _moc_file ) + + endif( _moc_includes ) + + endif( EXISTS "${_src_file}" ) + + endforeach( _src_file ) + + # processing headers + foreach( _include_file IN LISTS _includes ) + get_filename_component( _include_name "${_include_file}" NAME_WE ) + set( _moc_file ${CMAKE_CURRENT_BINARY_DIR}/moc_${_include_name}.cpp ) + + # moc-ing source + add_custom_command( OUTPUT ${_moc_file} + COMMAND ${TMOC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${_include_file} -o ${_moc_file} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_include_file} + ) + set_property( TARGET ${_target} APPEND PROPERTY SOURCES ${_moc_file} ) + endforeach( _include_file ) + +endmacro( tqt_automoc ) diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 00000000..25349254 --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,20 @@ +#define VERSION "@VERSION@" + +// Defined if you have fvisibility and fvisibility-inlines-hidden support. +#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@ + +/* Defined if you have the header file. */ +#cmakedefine Q_OS_UNIX + +/* Defined if you have the header file */ +#cmakedefine Q_OS_LINUX + +/* Defined if you have header */ +#cmakedefine HAVE_ZLIB_H 1 + +/* Defined with TQT gif support */ +#cmakedefine QT_BUILTIN_GIF_READER @QT_BUILTIN_GIF_READER@ diff --git a/config.tests/unix/endian/ConfigureChecks.cmake b/config.tests/unix/endian/ConfigureChecks.cmake new file mode 100644 index 00000000..4fe0006c --- /dev/null +++ b/config.tests/unix/endian/ConfigureChecks.cmake @@ -0,0 +1,19 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + + +##### test big/little endian + +include(TestBigEndian) +test_big_endian(WORDS_BIGENDIAN) + +if( ${WORDS_BIGENDIAN} ) + set( _ENDIAN "Q_BIG_ENDIAN" ) + else() + set( _ENDIAN "Q_LITTLE_ENDIAN" ) +endif() diff --git a/config.tests/unix/ipv6/ConfigureChecks.cmake b/config.tests/unix/ipv6/ConfigureChecks.cmake new file mode 100644 index 00000000..ca0bbddf --- /dev/null +++ b/config.tests/unix/ipv6/ConfigureChecks.cmake @@ -0,0 +1,33 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + + +##### check for IPv6 support + +if( NOT WITH_IPV6) + set( TQT_NO_IPV6 1 ) + else() + check_cxx_source_compiles(" + #include + #include + #include + + int main() + { + sockaddr_in6 tmp; + sockaddr_storage tmp2; + (void)tmp; + (void)tmp2; + return 0; + }" + IPV6_SUPPORT) + + if( NOT IPV6_SUPPORT ) + set( NO_IPV6 TQT_NO_IPV6 ) + endif() +endif( NOT WITH_IPV6 ) diff --git a/config.tests/unix/largefile/ConfigureChecks.cmake b/config.tests/unix/largefile/ConfigureChecks.cmake new file mode 100644 index 00000000..4e0cc4c5 --- /dev/null +++ b/config.tests/unix/largefile/ConfigureChecks.cmake @@ -0,0 +1,42 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + + +##### check for large file support + +check_cxx_source_compiles(" +#define _LARGEFILE_SOURCE +#define _LARGE_FILES +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#include + +int main( int, char **argv ) +{ +// check that off_t can hold 2^63 - 1 and perform basic operations... +#define OFF_T_64 (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + if (OFF_T_64 % 2147483647 != 1) + return 1; + + // stat breaks on SCO OpenServer + struct stat buf; + stat( argv[0], &buf ); + if (!S_ISREG(buf.st_mode)) + return 2; + + FILE *file = fopen( argv[0], \"r\" ); + off_t offset = ftello( file ); + fseek( file, offset, SEEK_CUR ); + fclose( file ); + return 0; +}" +QT_LARGEFILE_SUPPORT) diff --git a/config.tests/unix/stl/ConfigureChecks.cmake b/config.tests/unix/stl/ConfigureChecks.cmake new file mode 100644 index 00000000..7176813b --- /dev/null +++ b/config.tests/unix/stl/ConfigureChecks.cmake @@ -0,0 +1,103 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + + +##### check for STL support + +if( NOT WITH_STL ) + set( TQT_NO_STL 1 ) + else() + check_cxx_source_compiles(" + #include + #include + #include + #include + #include + + int main() + { + int rval(0); + std::vector v1; + v1.push_back(0); + v1.push_back(1); + v1.push_back(2); + v1.push_back(3); + v1.push_back(4); + + if ( v1.size() != 5 ) + { + std::cout << \"stltest: vector failed size check, expected 5, got \" << v1.size(); + ++rval; + } + if ( v1.capacity() < 5 ) + { + std::cout << \"stltest: vector failed capacity check, expected >= 5, got \" << v1.capacity(); + ++rval; + } + std::vector::iterator v1it = std::find( v1.begin(), v1.end(), 99 ); + if ( v1it != v1.end() ) + { + std::cout << \"stltest: find failed, expected end(), got \" << *v1it; + ++rval; + } + v1it = std::find( v1.begin(), v1.end(), 3 ); + if ( v1it == v1.end() ) + { + std::cout << \"stltest: find failed, expected to find element, got end()\"; + ++rval; + } + std::vector v2; + std::copy( v1.begin(), v1it, std::back_inserter( v2 ) ); + if ( v2.size() != 3 ) + { + std::cout << \"stltest: copy failed, expected 3 elements, got \" << v2.size(); + ++rval; + } + std::map m1; + m1.insert( std::make_pair( 1, 2.0 ) ); + m1.insert( std::make_pair( 3, 2.0 ) ); + m1.insert( std::make_pair( 5, 2.0 ) ); + m1.insert( std::make_pair( 7, 2.0 ) ); + if ( m1.size() != 4 ) + { + std::cout << \"stltest: map failed size check, expected 4, got \" << m1.size(); + ++rval; + } + std::map::iterator m1it = m1.begin(); + for ( ; m1it != m1.end(); ++m1it ) + { + if ( (*m1it).second != 2 ) + { + std::cout << \"stltest: iterator failed, expected 2, got \" << (*m1it).second; + ++rval; + } + } + std::map< int, double > m2( m1 ); + if ( m2.size() != m1.size() ) + { + std::cout << \"stltest: map copy failed, expected \" << m1.size() << \" elements, got \" << m2.size(); + ++rval; + } + return 0; + } + // something mean to see if the compiler and C++ standard lib are good enough + template + class DummyClass + { + // everything in std namespace ? + typedef std::bidirectional_iterator_tag i; + typedef std::ptrdiff_t d; + // typename implemented ? + typedef typename std::map::iterator MyIterator; + };" + STL_SUPPORT) + + if( NOT STL_SUPPORT ) + set( TQT_NO_STL false ) + endif() +endif(NOT WITH_STL) diff --git a/include/ntqconfig.h.cmake b/include/ntqconfig.h.cmake new file mode 100644 index 00000000..985b928a --- /dev/null +++ b/include/ntqconfig.h.cmake @@ -0,0 +1,23 @@ +#pragma once + +/* License information */ +#define QT_PRODUCT_LICENSEE "Free" +#define QT_PRODUCT_LICENSE "qt-free" + +/* Build key */ +#define TQT_BUILD_KEY "@_HOST_SYSTEM_PROCESSOR@ @_HOST_SYSTEM_NAME@ @_COMPILER_NAME@ @TQT_CONFIG@" + +/* Machine byte-order */ +#define Q_BIG_ENDIAN 4321 +#define Q_LITTLE_ENDIAN 1234 +#define Q_BYTE_ORDER @_ENDIAN@ + +/* Compile time features */ +#cmakedefine QT_LARGEFILE_SUPPORT 64 +#define TQT_POINTER_SIZE @_SIZEOF_VOID_P@ + +/* immodule extensions support */ +#cmakedefine TQT_NO_IM_EXTENSIONS 1 + +/* STL support */ +#cmakedefine TQT_NO_STL 1 diff --git a/include/ntqmodules.h.cmake b/include/ntqmodules.h.cmake new file mode 100644 index 00000000..b227570a --- /dev/null +++ b/include/ntqmodules.h.cmake @@ -0,0 +1,17 @@ +#pragma once + +/* These modules are present in this configuration of TQt */ + +#cmakedefine TQT_MODULE_STYLES 1 +#cmakedefine TQT_MODULE_TOOLS 1 +#cmakedefine TQT_MODULE_KERNEL 1 +#cmakedefine TQT_MODULE_WIDGETS 1 +#cmakedefine TQT_MODULE_DIALOGS 1 +#cmakedefine TQT_MODULE_WORKSPACE 1 +#cmakedefine TQT_MODULE_INPUTMETHOD 1 +#cmakedefine TQT_MODULE_NETWORK 1 +#cmakedefine TQT_MODULE_CANVAS 1 +#cmakedefine TQT_MODULE_TABLE 1 +#cmakedefine TQT_MODULE_XML 1 +#cmakedefine TQT_MODULE_OPENGL 1 +#cmakedefine TQT_MODULE_SQL 1 diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt new file mode 100644 index 00000000..26c3af68 --- /dev/null +++ b/qmake/CMakeLists.txt @@ -0,0 +1,49 @@ +add_subdirectory( generators ) + +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/qmake/generators + ${CMAKE_SOURCE_DIR}/qmake/generators/unix + ${CMAKE_SOURCE_DIR}/qmake/generators/win32 + ${CMAKE_SOURCE_DIR}/qmake/generators/mac + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### tqmake (executable) + +set( target tqmake ) +set( _SRC_ project.cpp + property.cpp + meta.cpp + main.cpp + qtmd5.cpp + option.cpp +) + +tde_add_executable( ${target} + + SOURCES + ${_SRC_} + LINK + tqmake-kernel-static + generators-static + mac-generator-static + unix-generator-static + win32-generator-static + ${CMAKE_THREAD_LIBS_INIT} + + DESTINATION ${BIN_INSTALL_DIR} + + DEPENDENCIES + tqt-includes +) +set_property( TARGET ${target} + APPEND PROPERTY COMPILE_DEFINITIONS + HAVE_QCONFIG_CPP +) diff --git a/qmake/generators/CMakeLists.txt b/qmake/generators/CMakeLists.txt new file mode 100644 index 00000000..62e86507 --- /dev/null +++ b/qmake/generators/CMakeLists.txt @@ -0,0 +1,36 @@ +add_subdirectory( mac ) +add_subdirectory( unix ) +add_subdirectory( win32 ) + +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/qmake + ${CMAKE_SOURCE_DIR}/qmake/generators/unix + ${CMAKE_SOURCE_DIR}/qmake/generators/win32 + ${CMAKE_SOURCE_DIR}/qmake/generators/mac + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### generators (static) + +set( target generators ) +set( _SRC_ makefile.cpp projectgenerator.cpp) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + mac-generator-static + unix-generator-static + win32-generator-static + + DEPENDENCIES + tqt-includes +) diff --git a/qmake/generators/mac/CMakeLists.txt b/qmake/generators/mac/CMakeLists.txt new file mode 100644 index 00000000..4441d5a4 --- /dev/null +++ b/qmake/generators/mac/CMakeLists.txt @@ -0,0 +1,26 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/qmake + ${CMAKE_SOURCE_DIR}/qmake/generators + ${CMAKE_SOURCE_DIR}/qmake/generators/unix + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### mac-generator (static) + +set( target mac-generator ) +set( _SRC_ metrowerks_xml.cpp pbuilder_pbx.cpp ) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index 329b7996..c9698f0a 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -36,6 +36,10 @@ ** **********************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "pbuilder_pbx.h" #include "option.h" #include "meta.h" diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 38f881f6..c135db24 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -35,6 +35,9 @@ ** herein. ** **********************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include "makefile.h" #include "option.h" diff --git a/qmake/generators/unix/CMakeLists.txt b/qmake/generators/unix/CMakeLists.txt new file mode 100644 index 00000000..9f35f35d --- /dev/null +++ b/qmake/generators/unix/CMakeLists.txt @@ -0,0 +1,29 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/qmake + ${CMAKE_SOURCE_DIR}/qmake/generators + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### unix-generator (static) + +set( target unix-generator ) +set( _SRC_ unixmake.cpp unixmake2.cpp ) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + TQT_NO_STL +) diff --git a/qmake/generators/win32/CMakeLists.txt b/qmake/generators/win32/CMakeLists.txt new file mode 100644 index 00000000..fcd75821 --- /dev/null +++ b/qmake/generators/win32/CMakeLists.txt @@ -0,0 +1,39 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/qmake + ${CMAKE_SOURCE_DIR}/qmake/generators + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### win32-generator (static) + +set( target win32-generator ) +set( _SRC_ msvc_nmake.cpp + borland_bmake.cpp + winmakefile.cpp + msvc_objectmodel.cpp + mingw_make.cpp + msvc_dsp.cpp + msvc_vcproj.cpp +) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + LINK + ${_UUID_LIBRARIES} + tqmake-tools-static + + DEPENDENCIES + tqt-includes +) + +#mingw_make.cpp +#msvc_dsp.cpp +#msvc_vcproj.cpp diff --git a/qmake/project.cpp b/qmake/project.cpp index de57507e..fc297e72 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -35,6 +35,9 @@ ** herein. ** **********************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include "project.h" #include "property.h" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 00000000..b41ec4a7 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,72 @@ + +# prepare includes + +file( GLOB_RECURSE _includes RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h ) +list( SORT _includes ) + +unset( _private_includes ) +foreach( _include IN LISTS _includes ) + + # skip 3rdparty, attic, moc, sql drivers and obsolete includes + if( "${_include}" MATCHES "^(3rdparty/|attic/|moc/|sql/drivers/|kernel/(qt_pch|qwindow))" ) + list( REMOVE_ITEM _includes "${_include}" ) + endif() + + # split private includes + if( "${_include}" MATCHES "_p.h$" ) + list( REMOVE_ITEM _includes "${_include}" ) + list( APPEND _private_includes "${_include}" ) + endif() + +endforeach( _include ) + +tqt_install_includes( ${_includes} ) +tqt_install_includes( ${_private_includes} DESTINATION "private" ) + + +# subdirectories + +set( qtlib_embed "" ) + +add_subdirectory( tools ) +add_subdirectory( kernel ) +add_subdirectory( codecs ) +add_subdirectory( moc ) + +tde_conditional_add_subdirectory( BUILD_STYLES styles ) +tde_conditional_add_subdirectory( BUILD_CANVAS canvas ) +tde_conditional_add_subdirectory( BUILD_DIALOGS dialogs ) +tde_conditional_add_subdirectory( BUILD_INPUTMETHOD inputmethod ) +tde_conditional_add_subdirectory( BUILD_TABLE table ) +tde_conditional_add_subdirectory( BUILD_WIDGETS widgets ) +tde_conditional_add_subdirectory( BUILD_WORKSPACE workspace ) +tde_conditional_add_subdirectory( BUILD_XML xml ) +tde_conditional_add_subdirectory( BUILD_NETWORK network ) +tde_conditional_add_subdirectory( BUILD_OPENGL opengl ) +tde_conditional_add_subdirectory( BUILD_SQL sql ) + + +configure_file( ${TDE_CMAKE_TEMPLATES}/tde_dummy_cpp.cmake dummy.cpp COPYONLY ) + +tde_add_library( tqt3 SHARED + + SOURCES + dummy.cpp + LINK + tools-static + kernel-static + codecs-static + styles-static + canvas-static + dialogs-static + inputmethod-static + table-static + widgets-static + workspace-static + xml-static + network-static + opengl-static + sql-static + + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/src/canvas/CMakeLists.txt b/src/canvas/CMakeLists.txt new file mode 100644 index 00000000..7ebf24cb --- /dev/null +++ b/src/canvas/CMakeLists.txt @@ -0,0 +1,29 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### canvas (static) + +set( target canvas ) +set( _SRC_ qcanvas.cpp ) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) diff --git a/src/codecs/CMakeLists.txt b/src/codecs/CMakeLists.txt new file mode 100644 index 00000000..07f52a9d --- /dev/null +++ b/src/codecs/CMakeLists.txt @@ -0,0 +1,76 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +if( BUILD_TMOC ) +##### tmoc-codecs (static) + +set( target tmoc-codecs ) +set( _SRC_ qtextcodec.cpp + qutfcodec.cpp +) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + QT_MOC TQT_NO_CODECS QT_LITE_UNICODE TQT_NO_COMPONENT TQT_NO_STL TQT_NO_COMPRESS +) +endif() + + +if( BUILD_LIB_TQT ) +##### codecs (static) + +set( target codecs ) +set( _SRC_ qbig5codec.cpp + qeucjpcodec.cpp + qeuckrcodec.cpp + qisciicodec.cpp + qgb18030codec.cpp + qjiscodec.cpp + qjpunicode.cpp + qrtlcodec.cpp + qsjiscodec.cpp + qtextcodec.cpp + qtsciicodec.cpp + qutfcodec.cpp + qtextcodecfactory.cpp + qtextcodecplugin.cpp + + qfontcncodec.cpp + qfonthkcodec.cpp + qfontjpcodec.cpp + qfontkrcodec.cpp + qfontlaocodec.cpp + qfonttwcodec.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) +endif() diff --git a/src/dialogs/CMakeLists.txt b/src/dialogs/CMakeLists.txt new file mode 100644 index 00000000..2a6384b6 --- /dev/null +++ b/src/dialogs/CMakeLists.txt @@ -0,0 +1,52 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${TIRPC_INCLUDE_DIRS} + ${FREETYPE_INCLUDE_DIRS} + ${CUPS_INCLUDE_DIR} +) + +link_directories() + + +##### dialogs (static) + +set( target dialogs ) +set( _SRC_ qprintdialog.cpp + qcolordialog.cpp + qdialog.cpp + qerrormessage.cpp + qfiledialog.cpp + qfontdialog.cpp + qmessagebox.cpp + qprogressdialog.cpp + qtabdialog.cpp + qwizard.cpp + qinputdialog.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + EMBED + kernel-static + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) + +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + ${NO_CUPS} +) diff --git a/src/inputmethod/CMakeLists.txt b/src/inputmethod/CMakeLists.txt new file mode 100644 index 00000000..33d09109 --- /dev/null +++ b/src/inputmethod/CMakeLists.txt @@ -0,0 +1,31 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### inputmethod (static) + +set( target inputmethod ) +set( _SRC_ qinputcontextfactory.cpp + qinputcontextplugin.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) diff --git a/src/kernel/CMakeLists.txt b/src/kernel/CMakeLists.txt new file mode 100644 index 00000000..b062b533 --- /dev/null +++ b/src/kernel/CMakeLists.txt @@ -0,0 +1,214 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${FREETYPE_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/src/3rdparty/opentype + ${NAS_INCLUDE_DIRS} + ${GLIB2_INCLUDE_DIRS} + ${X11_X11_INCLUDE_PATH} + ${X11_Xutil_INCLUDE_PATH} + ${X11_Xft_INCLUDE_PATH} + ${X11_Xshape_INCLUDE_PATH} + ${X11_Xinput_INCLUDE_PATH} + ${X11_Xinerama_INCLUDE_PATH} + ${X11_Xrandr_INCLUDE_PATH} + ${X11_Xrender_INCLUDE_PATH} + ${X11_XSync_INCLUDE_PATH} + ${X11_Xkblib_INCLUDE_PATH} + ${X11_SM_INCLUDE_PATH} + ${X11_Xcursor_INCLUDE_PATH} + ${LIB_MNG_INCLUDE_DIRS} + ${JPEG_INCLUDE_DIR} + ${PNG_INCLUDE_DIRS} + ${ZLIB_INCLUDE_DIRS} +) + +link_directories() + + +if( BUILD_TQMAKE ) +##### tqmake-kernel (static) + +set( target tqmake-kernel ) +set( _SRC_ qurl.cpp ) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) +endif() + + +##### kernel (static) + +set( target kernel ) +set( _SRC_ qtaddons_x11.cpp + tqttdeintegration_x11.cpp + qapplication_x11.cpp + qclipboard_x11.cpp + qcolor_x11.cpp + qcursor_x11.cpp + qdnd_x11.cpp + qdesktopwidget_x11.cpp + qfont_x11.cpp + qinputcontext.cpp + qinputcontext_x11.cpp + qmotifdnd_x11.cpp + qpixmap_x11.cpp + qpaintdevice_x11.cpp + qpainter_x11.cpp + qregion_x11.cpp + qsound_x11.cpp + qwidget_x11.cpp + qwidgetcreate_x11.cpp + qfontengine_x11.cpp + qprinter_unix.cpp + qpsprinter.cpp + qprocess_unix.cpp + qthread_unix.cpp + qabstractlayout.cpp + qucomextra.cpp + qaccel.cpp + qapplication.cpp + qasyncimageio.cpp + qasyncio.cpp + qbitmap.cpp + qclipboard.cpp + qcolor.cpp + qcolor_p.cpp + qconnection.cpp + qcursor.cpp + qdragobject.cpp + qdrawutil.cpp + qdropsite.cpp + qevent.cpp + qeventloop.cpp + qfocusdata.cpp + qfont.cpp + qfontdatabase.cpp + qguardedptr.cpp + qiconset.cpp + qimage.cpp + qimageformatplugin.cpp + qkeysequence.cpp + qlayout.cpp + qlayoutengine.cpp + qtranslator.cpp + qmetaobject.cpp + qmime.cpp + qmovie.cpp + qnetworkprotocol.cpp + qobject.cpp + qobjectcleanuphandler.cpp + qpainter.cpp + qpalette.cpp + qpaintdevicemetrics.cpp + qpicture.cpp + qpixmap.cpp + qpixmapcache.cpp + qpointarray.cpp + qpoint.cpp + qpolygonscanner.cpp + qprinter.cpp + qprocess.cpp + qrect.cpp + qregion.cpp + qsignal.cpp + qsignalmapper.cpp + qsize.cpp + qsizegrip.cpp + qstyle.cpp + qsocketnotifier.cpp + qsound.cpp + qstylesheet.cpp + qthread.cpp + qtimer.cpp + qurl.cpp + qlocalfs.cpp + qurloperator.cpp + qurlinfo.cpp + qwidget.cpp + qwmatrix.cpp + qvariant.cpp + qrichtext.cpp + qinternal.cpp + qrichtext_p.cpp + qgplugin.cpp + qsimplerichtext.cpp + qscriptengine.cpp + qtextlayout.cpp + qtextengine.cpp + qmngio.cpp + qjpegio.cpp + qpngio.cpp + qaccessible.cpp +) +if( WITH_GLIBMAINLOOP ) + list( APPEND _SRC_ qeventloop_x11_glib.cpp qeventloop_unix_glib.cpp ) + else() + list( APPEND _SRC_ qeventloop_x11.cpp qeventloop_unix.cpp ) +endif() + +if( WITH_XFT ) + list( APPEND _SRC_ ../3rdparty/opentype/ftxopentype.c ) +endif() + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + LINK + ${LIBICE_LIBRARIES} + ${NAS_LIBRARIES} + ${X11_X11_LIB} + ${X11_Xft_LIB} + ${X11_Xext_LIB} + ${X11_Xinput_LIB} + ${X11_Xinerama_LIB} + ${X11_Xrandr_LIB} + ${X11_Xrender_LIB} + ${X11_SM_LIB} + ${X11_Xcursor_LIB} + ${LIB_MNG_LIBRARIES} + ${JPEG_LIBRARIES} + ${PNG_LIBRARIES} + ${ZLIB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ${LIBFONTCONFIG_LIBRARIES} + ${GLIB2_LIBRARIES} + + EMBED + tools-static + codecs-static + styles-static + dialogs-static + widgets-static + inputmethod-static + xml-static + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) + +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + ${NO_SOUND} ${NAS_SUPPORT} ${THREAD_SUPPORT} ${USE_GLIBMAINLOOP} + ${NO_XFTFREETYPE} ${USE_XFT2_HEADER} ${NO_SHAPE} ${TABLET_SUPPORT} + ${NO_XINERAMA} ${NO_XRANDR} ${NO_XRENDER} ${NO_XSYNC} + ${NO_XKB} ${NO_SM} ${NO_XCURSOR} ${NO_IMAGEIO_MNG} + ${NO_IMAGEIO_JPEG} ${NO_IMAGEIO_PNG} ${BUILTIN_GIF_READER} + ${QT_ACCESSIBILITY_SUPPORT} +) diff --git a/src/kernel/ntqgif.h b/src/kernel/ntqgif.h index f5fee77b..5ef852ed 100644 --- a/src/kernel/ntqgif.h +++ b/src/kernel/ntqgif.h @@ -52,6 +52,10 @@ #include "ntqglobal.h" #endif // QT_H +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #ifndef QT_BUILTIN_GIF_READER #define QT_BUILTIN_GIF_READER 0 #endif diff --git a/src/kernel/qapplication_x11.cpp b/src/kernel/qapplication_x11.cpp index c53ef91a..d83e06b2 100644 --- a/src/kernel/qapplication_x11.cpp +++ b/src/kernel/qapplication_x11.cpp @@ -6045,9 +6045,9 @@ bool TQETWidget::translateConfigEvent( const XEvent *event ) ; repaint( !testWFlags(WResizeNoErase) || transbg ); } - +#ifndef TQT_NO_XSYNC incrementSyncCounter(); - +#endif return TRUE; } diff --git a/src/moc/CMakeLists.txt b/src/moc/CMakeLists.txt new file mode 100644 index 00000000..33e63080 --- /dev/null +++ b/src/moc/CMakeLists.txt @@ -0,0 +1,32 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +if( BUILD_TMOC ) +##### tmoc (executable) + +set( target tmoc ) +set( _SRC_ moc_yacc.cpp ) + +tde_add_executable( ${target} + + SOURCES + ${_SRC_} + LINK + tmoc-tools-static + tmoc-codecs-static + + DEPENDENCIES + tmoc-tools-static + tmoc-codecs-static + + DESTINATION ${BIN_INSTALL_DIR} +) +endif() diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt new file mode 100644 index 00000000..1262ebf4 --- /dev/null +++ b/src/network/CMakeLists.txt @@ -0,0 +1,44 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_SOURCE_DIR}/src/tools +) + +link_directories() + + +##### network (static) + +set( target network ) +set( _SRC_ qdns.cpp + qftp.cpp + qhostaddress.cpp + qhttp.cpp + qnetwork.cpp + qserversocket.cpp + qsocket.cpp + qsocketdevice.cpp + qsocketdevice_unix.cpp +) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) + +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + ${NO_IPV6} +) diff --git a/src/opengl/CMakeLists.txt b/src/opengl/CMakeLists.txt new file mode 100644 index 00000000..68f19022 --- /dev/null +++ b/src/opengl/CMakeLists.txt @@ -0,0 +1,48 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${OPENGL_INCLUDE_DIR} + ${X11_X11_INCLUDE_PATH} + ${X11_Xutil_INCLUDE_PATH} + ${FREETYPE_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/src/3rdparty/opentype +) + +link_directories() + + +##### opengl (static) + +set( target opengl ) +set( _SRC_ qgl.cpp + qgl_x11.cpp + qglcolormap.cpp +) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + LINK + ${OPENGL_gl_LIBRARY} + ${OPENGL_glu_LIBRARY} + ${X11_Xmu_LIB} + ${FREETYPE_LIBRARIES} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) + +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + ${DLOPEN_OPENGL} ${NO_XFTFREETYPE} ${XFT2} +) diff --git a/src/sql/CMakeLists.txt b/src/sql/CMakeLists.txt new file mode 100644 index 00000000..cd9b16ed --- /dev/null +++ b/src/sql/CMakeLists.txt @@ -0,0 +1,84 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_SOURCE_DIR}/src/sql/drivers/cache + ${PostgreSQL_INCLUDE_DIRS} + ${MYSQL_INCLUDE_DIRS} + ${IODBC_INCLUDE_DIRS} + ${FBCLIENT_INCLUDE_DIRS} + ${SQLITE3_INCLUDE_DIRS} +) + +link_directories() + + +##### sql (static) + +set( target sql ) +set( _SRC_ qsqlquery.cpp + qsqldatabase.cpp + qsqlfield.cpp + qsqlrecord.cpp + qsqlform.cpp + qsqlcursor.cpp + qeditorfactory.cpp + qsqleditorfactory.cpp + qsqldriver.cpp + qsqlextension_p.cpp + qsqldriverplugin.cpp + qsqlerror.cpp + qsqlresult.cpp + qsqlindex.cpp + qsqlpropertymap.cpp + qsqlmanager_p.cpp + qdatatable.cpp + qdataview.cpp + qdatabrowser.cpp + qsqlselectcursor.cpp + ./drivers/cache/qsqlcachedresult.cpp +) + +if( WITH_PSQL ) + list( APPEND _SRC_ drivers/psql/qsql_psql.cpp ) + elseif ( WITH_MYSQL ) + list( APPEND _SRC_ drivers/mysql/qsql_mysql.cpp ) + elseif ( WITH_ODBC ) + list( APPEND _SRC_ drivers/odbc/qsql_odbc.cpp ) + elseif ( WITH_IBASE ) + list( APPEND _SRC_ drivers/ibase/qsql_ibase.cpp ) + elseif ( WITH_SQL3 ) + list( APPEND _SRC_ drivers/sqlite3/qsql_sqlite3.cpp ) +endif() + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + LINK + tools-static + kernel-static + ${PostgreSQL_LIBRARIES} + ${MYSQL_LIBRARIES} + ${IODBC_LIBRARIES} + ${FBCLIENT_LIBRARIES} + ${SQLITE3_LIBRARIES} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) + +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + ${NO_XCURSOR} TQT_NO_MESSAGEBOX + ${SQL_POSTGRES} ${SQL_MYSQL} ${SQL_ODBC} ${SQL_IBASE} ${SQL_SQLITE3} +) +set_property( SOURCE qsql_psql.h APPEND PROPERTY COMPILE_DEFINITIONS QT_PLUGIN ) diff --git a/src/styles/CMakeLists.txt b/src/styles/CMakeLists.txt new file mode 100644 index 00000000..12bb9b9c --- /dev/null +++ b/src/styles/CMakeLists.txt @@ -0,0 +1,78 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_SOURCE_DIR}/src/kernel +) + +link_directories() + + +##### styles (static) + +set( target styles ) +set( _SRC_ qcdestyle.cpp + qcommonstyle.cpp + qcompactstyle.cpp + qinterlacestyle.cpp + qmotifplusstyle.cpp + qmotifstyle.cpp + qplatinumstyle.cpp + qsgistyle.cpp + qstylefactory.cpp + qstyleplugin.cpp + qwindowsstyle.cpp +) + +if( WITH_WINDOWS_STYLE ) + if( NOT WITH_INTERLACE_STYLE ) + set( NO_STYLE_INTERLACE TQT_NO_STYLE_INTERLACE ) + endif() + if( NOT WITH_PLATINIUM_STYLE ) + set( NO_STYLE_PLATINUM TQT_NO_STYLE_PLATINUM ) + endif() + else() + tde_message_fatal( "Windows style is required for this build" ) +endif( WITH_WINDOWS_STYLE ) + +if( WITH_MOTIF_STYLE ) + if( NOT WITH_SGI_STYLE ) + set( NO_STYLE_SGI TQT_NO_STYLE_SGI ) + endif() + if( NOT WITH_MOTIFPLUS_STYLE) + set( NO_STYLE_MOTIFPLUS TQT_NO_STYLE_MOTIFPLUS ) + endif() + if( NOT WITH_CDE_STYLE ) + set( NO_STYLE_CDE TQT_NO_STYLE_CDE ) + endif() + else() + tde_message_fatal( "Motif style is required for this build" ) +endif( WITH_MOTIF_STYLE ) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + EMBED + kernel-static + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) + +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + TQT_NO_STYLE_WINDOWSXP TQT_NO_STYLE_AQUA + TQT_NO_STYLE_POCKETPC TQT_NO_STYLE_MAC + ${NO_STYLE_INTERLACE} ${NO_STYLE_PLATINUM} + ${NO_STYLE_SGI} ${NO_STYLE_MOTIFPLUS} ${NO_STYLE_CDE} +) diff --git a/src/table/CMakeLists.txt b/src/table/CMakeLists.txt new file mode 100644 index 00000000..d097aa55 --- /dev/null +++ b/src/table/CMakeLists.txt @@ -0,0 +1,30 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### table (static) + +set( target table ) +set( _SRC_ qtable.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt new file mode 100644 index 00000000..613d0821 --- /dev/null +++ b/src/tools/CMakeLists.txt @@ -0,0 +1,180 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_BINARY_DIR}/include + ${ZLIB_INCLUDE_DIRS} +) + +link_directories() + + +if( BUILD_TQMAKE ) +##### tqmake-tools (static) + +set( target tqmake-tools ) +set( _SRC_ qstring.cpp + qtextstream.cpp + qiodevice.cpp + qglobal.cpp + qgdict.cpp + qcstring.cpp + qdatastream.cpp + qgarray.cpp + qbuffer.cpp + qglist.cpp + qptrcollection.cpp + qfile.cpp + qfile_unix.cpp + qregexp.cpp + qgvector.cpp + qgcache.cpp + qbitarray.cpp + qdir.cpp + quuid.cpp + qfileinfo_unix.cpp + qdir_unix.cpp + qfileinfo.cpp + qdatetime.cpp + qstringlist.cpp + qmap.cpp + qsettings.cpp + qlocale.cpp + ${CMAKE_BINARY_DIR}/src/tools/qconfig.cpp + qunicodetables.cpp +) + +tde_add_library( tqmake-tools STATIC_PIC + + SOURCES + ${_SRC_} + LINK + ${_UUID_LIBRARIES} + + DEPENDENCIES + tqt-includes +) +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + TQT_NO_TEXTCODEC TQT_NO_UNICODETABLES TQT_NO_COMPONENT TQT_NO_STL TQT_NO_COMPRESS +) +endif( BUILD_TQMAKE ) + + +if( BUILD_TMOC ) +##### tmoc-tools (static) + +set( target tmoc-tools ) +set( _SRC_ qbuffer.cpp + qptrcollection.cpp + qcstring.cpp + qdatastream.cpp + qdatetime.cpp + qfile.cpp + qdir.cpp + qfileinfo.cpp + qgarray.cpp + qgdict.cpp + qglist.cpp + qglobal.cpp + qgvector.cpp + qiodevice.cpp + qregexp.cpp + qstring.cpp + qlocale.cpp + qunicodetables.cpp + qstringlist.cpp + qtextstream.cpp + qbitarray.cpp + qmap.cpp + qgcache.cpp + qfile_unix.cpp + qdir_unix.cpp + qfileinfo_unix.cpp +) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + QT_MOC TQT_NO_CODECS QT_LITE_UNICODE TQT_NO_COMPONENT TQT_NO_STL TQT_NO_COMPRESS +) +endif() + + +if( BUILD_LIB_TQT ) +##### tools (static) + +set( target tools ) +set( _SRC_ qdir_unix.cpp + qfile_unix.cpp + qfileinfo_unix.cpp + qmutex_unix.cpp + qthreadstorage_unix.cpp + qwaitcondition_unix.cpp + qlibrary_unix.cpp + qbitarray.cpp + qbuffer.cpp + qcomponentfactory.cpp + qcomlibrary.cpp + qcstring.cpp + qdatastream.cpp + qdatetime.cpp + qdeepcopy.cpp + qdir.cpp + qfile.cpp + qfileinfo.cpp + qgarray.cpp + qgcache.cpp + qgdict.cpp + qglist.cpp + qglobal.cpp + qgpluginmanager.cpp + qgvector.cpp + qiodevice.cpp + qlibrary.cpp + qlocale.cpp + qmap.cpp + qmutexpool.cpp + qptrcollection.cpp + qregexp.cpp + qstring.cpp + qsemaphore.cpp + qsettings.cpp + qstringlist.cpp + qtextstream.cpp + qunicodetables.cpp + qucom.cpp + quuid.cpp + ${CMAKE_BINARY_DIR}/src/tools/qconfig.cpp +) + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + LINK + ${_UUID_LIBRARIES} + dl + + DEPENDENCIES + tqt-includes +) +set_property( TARGET ${target}-static + APPEND PROPERTY COMPILE_DEFINITIONS + TQT_THREAD_SUPPORT +) + + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) +endif() diff --git a/src/tools/qconfig.cpp.cmake b/src/tools/qconfig.cpp.cmake new file mode 100644 index 00000000..170254fb --- /dev/null +++ b/src/tools/qconfig.cpp.cmake @@ -0,0 +1,27 @@ +/* Install paths from configure */ +#include "ntqglobal.h" + +// might use nameless namespace as storage class here instead of static keyword specifier + +static const char QT_INSTALL_PREFIX[] = "qt_nstpath=@QT_INSTALL_PREFIX@"; +static const char QT_INSTALL_BINS[] = "qt_binpath=@QT_INSTALL_BINS@"; +static const char QT_INSTALL_DOCS[] = "qt_docpath=@QT_INSTALL_DOCS@"; +static const char QT_INSTALL_HEADERS[] = "qt_hdrpath=@QT_INSTALL_HEADERS@"; +static const char QT_INSTALL_LIBS[] = "qt_libpath=@QT_INSTALL_LIBS@"; +static const char QT_INSTALL_PLUGINS[] = "qt_plgpath=@QT_INSTALL_PLUGINS@"; +static const char QT_INSTALL_DATA[] = "qt_datpath=@QT_INSTALL_DATA@"; +static const char QT_INSTALL_TRANSLATIONS[] = "qt_trnpath=@QT_INSTALL_TRANSLATIONS@"; +static const char QT_INSTALL_SYSCONF[] = "qt_cnfpath=@QT_INSTALL_SYSCONF@"; +static const char QT_INSTALL_SHARE[] = "qt_shapath=@QT_INSTALL_SHARE@"; + +/* strlen( "qt_xxxpath=" ) == 11 */ +const char *tqInstallPath() { return QT_INSTALL_PREFIX + 11; } +const char *tqInstallPathDocs() { return QT_INSTALL_DOCS + 11; } +const char *tqInstallPathHeaders() { return QT_INSTALL_HEADERS + 11; } +const char *tqInstallPathLibs() { return QT_INSTALL_LIBS + 11; } +const char *tqInstallPathBins() { return QT_INSTALL_BINS + 11; } +const char *tqInstallPathPlugins() { return QT_INSTALL_PLUGINS + 11; } +const char *tqInstallPathData() { return QT_INSTALL_DATA + 11; } +const char *tqInstallPathTranslations() { return QT_INSTALL_TRANSLATIONS + 11; } +const char *tqInstallPathSysconf() { return QT_INSTALL_SYSCONF + 11; } +const char *tqInstallPathShare() { return QT_INSTALL_SHARE + 11; } diff --git a/src/tools/qcstring.cpp b/src/tools/qcstring.cpp index 83e351a2..67a83197 100644 --- a/src/tools/qcstring.cpp +++ b/src/tools/qcstring.cpp @@ -39,6 +39,10 @@ ** **********************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "ntqstring.h" #include "ntqregexp.h" #include "ntqdatastream.h" @@ -52,7 +56,10 @@ #include #include #include -#ifndef TQT_NO_COMPRESS + +#ifdef HAVE_ZLIB_H +#include +#else #include "../3rdparty/zlib/zlib.h" #endif diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp index 0c5e52c3..c96de673 100644 --- a/src/tools/qstring.cpp +++ b/src/tools/qstring.cpp @@ -38,6 +38,9 @@ ** herein. ** **********************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif // Don't define it while compiling this module, or USERS of TQt will // not be able to link. diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt new file mode 100644 index 00000000..7c0f5c82 --- /dev/null +++ b/src/widgets/CMakeLists.txt @@ -0,0 +1,95 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/mkspecs/linux-g++-64 + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### widgets (static) + +set( target widgets ) +set( _SRC_ qbuttongroup.cpp + qbutton.cpp + qdialogbuttons.cpp + qcheckbox.cpp + qcombobox.cpp + qwidgetresizehandler.cpp + qdial.cpp + qdockarea.cpp + qdockwindow.cpp + qframe.cpp + qgrid.cpp + qgridview.cpp + qgroupbox.cpp + qhbuttongroup.cpp + qheader.cpp + qhgroupbox.cpp + qhbox.cpp + qiconview.cpp + qlabel.cpp + qlcdnumber.cpp + qlineedit.cpp + qlistbox.cpp + qlistview.cpp + qmainwindow.cpp + qmenubar.cpp + qmenudata.cpp + qmultilineedit.cpp + qpopupmenu.cpp + qprogressbar.cpp + qpushbutton.cpp + qradiobutton.cpp + qrangecontrol.cpp + qscrollbar.cpp + qscrollview.cpp + qslider.cpp + qsplashscreen.cpp + qspinbox.cpp + qspinwidget.cpp + qsplitter.cpp + qstatusbar.cpp + qsyntaxhighlighter.cpp + qtabbar.cpp + qtabwidget.cpp + qtitlebar.cpp + qtoolbar.cpp + qtoolbox.cpp + qtoolbutton.cpp + qtooltip.cpp + qvalidator.cpp + qvbox.cpp + qvbuttongroup.cpp + qvgroupbox.cpp + qwhatsthis.cpp + qwidgetstack.cpp + qaction.cpp + qdatetimeedit.cpp + qeffects.cpp + qtextview.cpp + qtextbrowser.cpp + qtextedit.cpp + qwidgetplugin.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + EMBED + styles-static + workspace-static + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) diff --git a/src/workspace/CMakeLists.txt b/src/workspace/CMakeLists.txt new file mode 100644 index 00000000..6e3ba669 --- /dev/null +++ b/src/workspace/CMakeLists.txt @@ -0,0 +1,30 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### workspace (static) + +set( target workspace ) +set( _SRC_ qworkspace.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) diff --git a/src/xml/CMakeLists.txt b/src/xml/CMakeLists.txt new file mode 100644 index 00000000..a164e5f5 --- /dev/null +++ b/src/xml/CMakeLists.txt @@ -0,0 +1,32 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/include +) + +link_directories() + + +##### xml (static) + +set( target xml ) +set( _SRC_ qxml.cpp + qdom.cpp + qsvgdevice.cpp +) + + +tde_add_library( ${target} STATIC_PIC + + SOURCES + ${_SRC_} + + DEPENDENCIES + tqt-includes +) + +tqt_automoc( ${target}-static ) + +list( APPEND qtlib_embed ${target}-static ) +set( qtlib_embed ${qtlib_embed} PARENT_SCOPE ) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 00000000..ce663e93 --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1,3 @@ +# subdirectories + +tde_auto_add_subdirectories() diff --git a/tools/assistant/CMakeLists.txt b/tools/assistant/CMakeLists.txt new file mode 100644 index 00000000..ce663e93 --- /dev/null +++ b/tools/assistant/CMakeLists.txt @@ -0,0 +1,3 @@ +# subdirectories + +tde_auto_add_subdirectories() diff --git a/tools/assistant/lib/CMakeLists.txt b/tools/assistant/lib/CMakeLists.txt new file mode 100644 index 00000000..8f5c022f --- /dev/null +++ b/tools/assistant/lib/CMakeLists.txt @@ -0,0 +1,4 @@ + +# prepare includes + +tqt_install_includes( ntqassistantclient.h ) diff --git a/tools/designer/CMakeLists.txt b/tools/designer/CMakeLists.txt new file mode 100644 index 00000000..ce663e93 --- /dev/null +++ b/tools/designer/CMakeLists.txt @@ -0,0 +1,3 @@ +# subdirectories + +tde_auto_add_subdirectories() diff --git a/tools/designer/uilib/CMakeLists.txt b/tools/designer/uilib/CMakeLists.txt new file mode 100644 index 00000000..ab9c6ec4 --- /dev/null +++ b/tools/designer/uilib/CMakeLists.txt @@ -0,0 +1,4 @@ + +# prepare includes + +tqt_install_includes( ntqwidgetfactory.h )