# Editors notes: # # * To find all FIXME/TODO related to the CMake build system (and those # inherited from the autotools build system) execute the following in the # top-level directory of the source tree: # # find -name '*.cmake' -exec grep -E 'TODO|FIXME' {} + # find -name CMakeLists.txt -exec grep -E 'TODO|FIXME' {} + cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) project(Katie C CXX ASM) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") set(CMAKE_AUTOMOC FALSE) set(CMAKE_AUTOUIC FALSE) set(CMAKE_AUTORCC FALSE) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/staticlib") include(CheckIncludeFile) include(CheckTypeSize) include(FeatureSummary) include(KatieMacros) include(KatieBuildMacros) # components and tools that will be build, changed depending on the requirements availability set(KATIE_COMPONENTS "Core Gui Declarative Designer DesignerComponents Help Multimedia Network Sql Svg Xml XmlPatterns Script ScriptTools Test UiTools") set(KATIE_TOOLS "moc uic rcc qhelpgenerator qcollectiongenerator lupdate lrelease lconvert designer") # optional package features option(WITH_THREADS "Build threads support" ON) add_feature_info(threads WITH_THREADS "an open source something") option(WITH_OPENSSL "Build openssl support" ON) add_feature_info(openssl WITH_OPENSSL "an open source something") option(WITH_ZLIB "Build zlib support" ON) add_feature_info(zlib WITH_ZLIB "an open source something") option(WITH_NIS "Build nis support" ON) add_feature_info(nis WITH_NIS "an open source something") option(WITH_CUPS "Build cups support" ON) add_feature_info(cups WITH_CUPS "an open source something") option(WITH_ALSA "Build alsa support" ON) add_feature_info(alsa WITH_ALSA "an open source something") option(WITH_PNG "Build png support" ON) add_feature_info(png WITH_PNG "an open source something") option(WITH_JPEG "Build jpeg support" ON) add_feature_info(jpeg WITH_JPEG "an open source something") option(WITH_TIFF "Build tiff support" ON) add_feature_info(tiff WITH_TIFF "an open source something") option(WITH_MNG "Build mng support" ON) add_feature_info(mng WITH_MNG "an open source something") option(WITH_NAS "Build nas support" ON) add_feature_info(nas WITH_NAS "an open source something") option(WITH_ICONV "Build iconv support" ON) add_feature_info(iconv WITH_ICONV "an open source something") option(WITH_GLIB2 "Build glib2 support" OFF) add_feature_info(glib2 WITH_GLIB2 "an open source something") option(WITH_DBUS "Build dbus support" ON) add_feature_info(dbus WITH_DBUS "an open source something") option(WITH_GTK2 "Build gtk2 support" ON) add_feature_info(gtk2 WITH_GTK2 "an open source something") option(WITH_EGL "Build egl support" OFF) add_feature_info(egl WITH_EGL "an open source something") option(WITH_OPENGL "Build opengl support" ON) add_feature_info(opengl WITH_OPENGL "an open source something") option(WITH_FREETYPE "Build freetype2 support" ON) add_feature_info(freetype2 WITH_FREETYPE "an open source something") option(WITH_FONTCONFIG "Build fontconfig support" ON) add_feature_info(fontconfig WITH_FONTCONFIG "an open source something") option(WITH_ICU "Build icu support" ON) add_feature_info(icu WITH_ICU "an open source something") # TODO: enable when building against external harfbuzz works option(WITH_HARFBUZZ "Build harfbuzz support" OFF) add_feature_info(harfbuzz WITH_HARFBUZZ "an open source something") option(WITH_ODBC "Build ODBC database plugin" ON) add_feature_info(odbc WITH_ODBC "an open source something") option(WITH_PSQL "Build PostgreSQL database plugin" ON) add_feature_info(postgresql WITH_PSQL "the world's most advanced open source database") option(WITH_MYSQL "Build MySQL database plugin" ON) add_feature_info(mysql WITH_MYSQL "the world's most popular open source database") option(WITH_SQLITE "Build SQLite database plugin" ON) add_feature_info(sqlite WITH_SQLITE "the world's most popular open source database") option(WITH_X11 "Build X11/X.Org support" ON) add_feature_info(x11 WITH_X11 "an open source something") # katie features option(KATIE_BOOTSTRAP "Build only core tools" OFF) add_feature_info(bootstrap KATIE_BOOTSTRAP "internal build option") option(WITH_OPENGLES1 "Build opengles1 support" OFF) add_feature_info(opengles1 WITH_OPENGLES1 "an open source something") option(WITH_OPENGLES2 "Build opengles2 support" OFF) add_feature_info(opengles2 WITH_OPENGLES2 "an open source something") option(WITH_ACCESSIBILITY "Build accessibility support" ON) add_feature_info(accessibility WITH_ACCESSIBILITY "an open source something") # windows option(WITH_ICD "Build icd support (Windows)" ON) add_feature_info(icd WITH_ICD "an closed source something") option(WITH_DIRECTWRITE "Build DirectWrite support (Windows)" OFF) add_feature_info(directwrite WITH_DIRECTWRITE "an closed source something") # mac option(WITH_COREWLAN "Build corewlan support (Mac)" ON) add_feature_info(corewlan WITH_COREWLAN "an closed source something") include(mkspecs/mkspecs.cmake) katie_generate_string("${CMAKE_INSTALL_PATH}" "CMAKE_INSTALL_PATH_STR") katie_generate_string("${LDCONF_INSTALL_PATH}" "LDCONF_INSTALL_PATH_STR") katie_generate_string("${PROFILE_INSTALL_PATH}" "PROFILE_INSTALL_PATH_STR") katie_generate_string("${MAN_INSTALL_PATH}" "MAN_INSTALL_PATH_STR") katie_generate_string("${APPLICATIONS_INSTALL_PATH}" "APPLICATIONS_INSTALL_PATH_STR") katie_generate_string("${PIXMAPS_INSTALL_PATH}" "PIXMAPS_INSTALL_PATH_STR") katie_generate_string("qt_lcnsuser=${QT_LICENSE}" "QT_LICENSE_STR") katie_generate_string("qt_lcnsprod=${QT_PRODUCT}" "QT_PRODUCT_STR" "") katie_generate_string("qt_prfxpath=${QT_PREFIX_PATH}" "QT_PREFIX_PATH_STR") katie_generate_string("qt_hdrspath=${QT_HEADERS_PATH}" "QT_HEADERS_PATH_STR") katie_generate_string("qt_libspath=${QT_LIBRARIES_PATH}" "QT_LIBRARIES_PATH_STR") katie_generate_string("qt_binspath=${QT_BINARIES_PATH}" "QT_BINARIES_PATH_STR") katie_generate_string("qt_plugpath=${QT_PLUGINS_PATH}" "QT_PLUGINS_PATH_STR") katie_generate_string("qt_impspath=${QT_IMPORTS_PATH}" "QT_IMPORTS_PATH_STR") katie_generate_string("qt_datapath=${QT_DATA_PATH}" "QT_DATA_PATH_STR") katie_generate_string("qt_trnspath=${QT_TRANSLATIONS_PATH}" "QT_TRANSLATIONS_PATH_STR") katie_generate_string("qt_stngpath=${QT_SETTINGS_PATH}" "QT_SETTINGS_PATH_STR") katie_generate_string("qt_docspath=${QT_DOCUMENTATION_PATH}" "QT_DOCUMENTATION_PATH_STR") katie_generate_string("${QT_EXAMPLES_PATH}" "QT_EXAMPLES_PATH_STR") katie_generate_string("${QT_DEMOS_PATH}" "QT_DEMOS_PATH_STR") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "C++ toolkit derived from the Qt 4.8 framework") set(CPACK_PACKAGE_VENDOR "Katie") set(CPACK_PACKAGE_CONTACT "${KATIE_BUGREPORT}") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README") # set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/Copyright.txt") set(CPACK_PACKAGE_VERSION_MAJOR ${KATIE_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${KATIE_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${KATIE_MICRO}) set(CPACK_PACKAGE_INSTALL_DIRECTORY "Katie") set(CPACK_SOURCE_IGNORE_FILES "/build/;/mingw/;/.git;${CPACK_SOURCE_IGNORE_FILES}") set(CPACK_SET_DESTDIR TRUE) set(CPACK_STRIP_FILES TRUE) if(WIN32 AND CMAKE_CROSSCOMPILING) # Windows build on non-Windows host, NSIS is not manditory on such set(CPACK_GENERATOR "ZIP") set(CPACK_SOURCE_GENERATOR "ZIP") elseif(WIN32) # native Windows build, let's make a NSIS package set(CPACK_GENERATOR "ZIP;NSIS") set(CPACK_SOURCE_GENERATOR "ZIP") else() set(CPACK_GENERATOR "TXZ") set(CPACK_SOURCE_GENERATOR "TXZ") endif() include(CPack) # 9 minutes timeout for the tests, Travis timeouts on 10min and I do not want # some tests to be skipped because of one test. Like the qpainter test - it # does a lot of tests and can (and sometimes it does) take more then 10min. set(CTEST_TEST_TIMEOUT 540) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON) add_definitions( -DKATIE_DATE="${KATIE_DATE}" -DQT_USE_QSTRINGBUILDER -DQT_ASCII_CAST_WARNINGS # maybe one day, use with caution! # -DQT_NO_CAST_FROM_ASCII # -DQT_NO_CAST_TO_ASCII # -DQT_STRICT_ITERATORS ) # this is how Qt4 does it if(NOT KATIE_PLATFORM STREQUAL "integrity" AND NOT MINGW) set(QT_LARGEFILE_SUPPORT 64) add_definitions( -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE ) endif() # for 3rd party source used in help and test components check_include_file(sys/time.h HAVE_SYS_TIME_H) if(HAVE_SYS_TIME_H) add_definitions(-DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_TIME_H) else() add_definitions(-DTIME_WITH_SYS_TIME=0) endif() # used in qconfig.h check_type_size(size_t QT_POINTER_SIZE) configure_file( ${CMAKE_SOURCE_DIR}/src/core/global/qconfig.h.cmake ${CMAKE_BINARY_DIR}/include/QtCore/qconfig.h ) configure_file( ${CMAKE_SOURCE_DIR}/src/core/global/qconfig.cpp.cmake ${CMAKE_BINARY_DIR}/include/qconfig.cpp ) configure_file( ${CMAKE_SOURCE_DIR}/src/core/global/qglobal.h.cmake ${CMAKE_BINARY_DIR}/include/QtCore/qglobal.h ) find_package(PythonInterp) set_package_properties(PythonInterp PROPERTIES PURPOSE "UI class maps generator script" DESCRIPTION "Programming language that lets you work quickly" URL "https://www.python.org/" TYPE RECOMMENDED ) find_package(OpenSSL) set_package_properties(OpenSSL PROPERTIES PURPOSE "Required for HTTPS support" DESCRIPTION "Support for secure network communications (SSL and TLS)" URL "http://openssl.org" TYPE RECOMMENDED ) find_package(ZLIB) set_package_properties(ZLIB PROPERTIES PURPOSE "Required for compression support" DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library" URL "http://zlib.net" TYPE RECOMMENDED ) find_package(NIS) set_package_properties(NIS PROPERTIES PURPOSE "Required for Network Information Service support" DESCRIPTION "Standard C library specific NIS implementation" TYPE RECOMMENDED ) find_package(PNG) set_package_properties(PNG PROPERTIES PURPOSE "PNG format handler" DESCRIPTION "A collection of routines used to create PNG format graphics files" URL "http://www.libpng.org/pub/png/libpng.html" TYPE RECOMMENDED ) find_package(JPEG) set_package_properties(JPEG PROPERTIES PURPOSE "JPEG format handler" DESCRIPTION "JPEG image codec with accelerated baseline compression and decompression" URL "http://libjpeg-turbo.virtualgl.org/" TYPE RECOMMENDED ) find_package(TIFF) set_package_properties(TIFF PROPERTIES PURPOSE "TIFF format handler" DESCRIPTION "Library for manipulation of TIFF images" URL "http://www.remotesensing.org/libtiff/" TYPE RECOMMENDED ) find_package(MNG) set_package_properties(MNG PROPERTIES PURPOSE "MNG format handler" DESCRIPTION "THE reference library for reading, displaying, writing and examining Multiple-Image Network Graphics" URL "http://sourceforge.net/projects/libmng/" TYPE RECOMMENDED ) find_package(NAS) set_package_properties(NAS PROPERTIES PURPOSE "Basic audio support over wire" DESCRIPTION "Network transparent, client/server audio transport system" URL "http://www.radscan.com/nas.html" TYPE RECOMMENDED ) find_package(Iconv) set_package_properties(Iconv PROPERTIES PURPOSE "Iconv support" DESCRIPTION "iconv() implementation, for use on systems which don't have one or lack Unicode support" URL "http://www.gnu.org/software/libiconv/" TYPE RECOMMENDED ) find_package(Cups) set_package_properties(Cups PROPERTIES PURPOSE "Required for printing support" DESCRIPTION "CUPS is the standards-based, open source printing system" URL "http://www.cups.org" TYPE RECOMMENDED ) find_package(ALSA) set_package_properties(ALSA PROPERTIES PURPOSE "Required for ALSA support" DESCRIPTION "Advanced Linux Sound Architecture" URL "http://www.alsa-project.org" TYPE RECOMMENDED ) # old versions of CMake ship bogus module, always use the custom one cmake_policy(PUSH) cmake_policy(SET CMP0017 OLD) find_package(Freetype) set_package_properties(Freetype PROPERTIES PURPOSE "Required for fonts configuration support" DESCRIPTION "Freely available software library to render fonts" URL "http://www.freetype.org" TYPE RECOMMENDED ) cmake_policy(POP) find_package(Fontconfig) set_package_properties(Fontconfig PROPERTIES PURPOSE "Required for fonts configuration support" DESCRIPTION "Library for configuring and customizing font access" URL "http://www.freedesktop.org/wiki/Software/fontconfig" TYPE RECOMMENDED ) find_package(ICU) set_package_properties(ICU PROPERTIES PURPOSE "ICU locales support" DESCRIPTION "Mature, widely used libraries providing Unicode and Globalization support" URL "http://site.icu-project.org/" TYPE RECOMMENDED ) # currently unused find_package(HarfBuzz) set_package_properties(HarfBuzz PROPERTIES PURPOSE "Currently none" DESCRIPTION "OpenType text shaping engine" URL "http://www.freedesktop.org/wiki/Software/HarfBuzz/" TYPE RECOMMENDED ) find_package(GLib2) set_package_properties(GLib2 PROPERTIES PURPOSE "Required for glib mainloop support" DESCRIPTION "Core application building blocks for libraries and applications written in C" URL "https://developer.gnome.org/glib" TYPE RECOMMENDED ) find_package(DBus) set_package_properties(DBus PROPERTIES PURPOSE "Required for D-Bus support" DESCRIPTION "Message bus system, a simple way for applications to talk to one another" URL "http://www.freedesktop.org/wiki/Software/dbus" TYPE RECOMMENDED ) find_package(GTK2) set_package_properties(GTK2 PROPERTIES PURPOSE "Required for GTK style and application integration support" DESCRIPTION "Multi-platform toolkit for creating graphical user interfaces" URL "http://www.gtk.org" TYPE RECOMMENDED ) find_package(EGL) set_package_properties(EGL PROPERTIES PURPOSE "Required for EGL support" DESCRIPTION "Platform dependent EGL implementation" URL "" TYPE RECOMMENDED ) find_package(OpenGL) set_package_properties(OpenGL PROPERTIES PURPOSE "Required for GL/EGL support" DESCRIPTION "Platform dependent OpenGL implementation" URL "" TYPE RECOMMENDED ) find_package(ODBC) set_package_properties(ODBC PROPERTIES PURPOSE "Required for ODBC database support" DESCRIPTION "The definitive standard for ODBC on non MS Windows platforms" URL "http://www.unixodbc.org" TYPE RECOMMENDED ) find_package(PostgreSQL) set_package_properties(PostgreSQL PROPERTIES PURPOSE "Required for PostgreSQL database support" DESCRIPTION "The world's most advanced open source database" URL "http://www.postgresql.org" TYPE OPTIONAL ) find_package(MySQL) set_package_properties(MySQL PROPERTIES PURPOSE "Required for MySQL database support" DESCRIPTION "The world's most popular open source database" URL "http://www.mysql.com" TYPE OPTIONAL ) find_package(Sqlite) set_package_properties(Sqlite PROPERTIES PURPOSE "Required for SQLite database support" DESCRIPTION "Software library that implements SQL database engine" URL "https://www.sqlite.org/" TYPE RECOMMENDED ) find_package(Threads) set_package_properties(Threads PROPERTIES PURPOSE "Required for threads support" DESCRIPTION "Platform dependent threads implementation" URL "" TYPE RECOMMENDED ) if(NOT KATIE_PLATFORM MATCHES "(win32|wince|mac)" AND NOT KATIE_BOOTSTRAP) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) find_package(X11 COMPONENTS ICE SM Xcursor Xext Xfixes XSync XShm XShape Xi Xkb Xinerama Xrandr Xrender X11 Xtst Xt) set_package_properties(X11 PROPERTIES PURPOSE "Required for X11/X.Org integration support" DESCRIPTION "Open source implementation of the X Window System" URL "http://www.x.org" TYPE REQUIRED ) set_package_properties(Fontconfig PROPERTIES TYPE REQUIRED ) set_package_properties(Freetype PROPERTIES TYPE REQUIRED ) endif() if(PYTHONINTERP_FOUND) execute_process( COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/genmap.py WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} RESULT_VARIABLE genmap_result ERROR_VARIABLE genmap_error ) if(NOT genmap_result EQUAL 0) message(SEND_ERROR "${genmap_error}") endif() else() message(WARNING "\nUsing pre-generated classes map" ) endif() # various sources use #include include_directories(${CMAKE_SOURCE_DIR}/src) if(ENABLE_TESTING) message(WARNING "\nUnless it is intentionall you should not enable testing. You will have to unset " "QT_PLUGIN_PATH if you have Qt4 installed on the system prior to running the tests." ) enable_testing() add_definitions(-DQT_BUILD_INTERNAL) endif() if(NOT WITH_THREADS OR NOT THREADS_FOUND) katie_definition(-DQT_NO_THREAD) endif() if(NOT WTIH_EGL OR NOT EGL_FOUND) katie_definition(-DQT_NO_EGL) endif() if(NOT WITH_OPENSSL OR NOT OPENSSL_FOUND) katie_definition(-DQT_NO_OPENSSL) endif() if(NOT WITH_FREETYPE OR NOT FREETYPE_FOUND) set(WITH_FONTCONFIG OFF) katie_definition(-DQT_NO_FREETYPE) endif() if(NOT WITH_FONTCONFIG OR NOT FONTCONFIG_FOUND) katie_definition(-DQT_NO_FONTCONFIG) endif() if(NOT WITH_DBUS OR NOT DBUS_FOUND) katie_definition(-DQT_NO_DBUS) else() set(KATIE_COMPONENTS "${KATIE_COMPONENTS} DBus") set(KATIE_TOOLS "${KATIE_TOOLS} qdbusxml2cpp qdbuscpp2xml qdbusviewer") endif() if(NOT WITH_GLIB2 OR NOT GLIB2_FOUND) katie_definition(-DQT_NO_GLIB) endif() if(NOT WITH_CUPS OR NOT CUPS_FOUND) katie_definition(-DQT_NO_CUPS -DQT_NO_LPR) endif() if(NOT WITH_NIS OR NOT NIS_FOUND) katie_definition(-DQT_NO_NIS) endif() if(NOT WITH_DIRECTWRITE) katie_definition(-DQT_NO_DIRECTWRITE) endif() if(NOT WITH_OPENGL OR NOT OPENGL_FOUND) katie_definition(-DQT_NO_OPENGL) else() set(KATIE_COMPONENTS "${KATIE_COMPONENTS} OpenGL") endif() if(NOT WITH_NAS OR NOT NAS_FOUND) katie_definition(-DQT_NO_NAS) endif() if(NOT WITH_PNG OR NOT PNG_FOUND) katie_definition(-DQT_NO_IMAGEFORMAT_PNG) endif() if(NOT WITH_JPEG OR NOT JPEG_FOUND) katie_definition(-DQT_NO_IMAGEFORMAT_JPEG) endif() if(NOT WITH_MNG OR NOT MNG_FOUND) katie_definition(-DQT_NO_IMAGEFORMAT_MNG) endif() if(NOT WITH_TIFF OR NOT TIFF_FOUND) katie_definition(-DQT_NO_IMAGEFORMAT_TIFF) endif() # keep in sync with the gui component CMake file, only definitions setup is needed here if(WITH_X11 AND X11_FOUND) # TODO: xim foreach(x11ext Xshape Xinerama Xrandr Xrender XSync Xkb Xfixes Xcursor Xinput XShm) if(NOT X11_${x11ext}_FOUND) message(WARNING "The X11 ${x11ext} extension was not found") string(TOUPPER "${x11ext}" upperext) katie_definition(-DQT_NO_${upperext}) endif() endforeach() if(NOT X11_Xinput_FOUND) message(WARNING "X11 Xinput extension was not found thus disabling tabled support too") katie_definition(-DQT_NO_TABLET) endif() if(NOT X11_SM_FOUND) message(WARNING "X11 SM was not found thus disabling session manager support") katie_definition(-DQT_NO_SESSIONMANAGER) endif() endif() # semi-shared include(src/shared/linguist/linguist.cmake) include(src/shared/bootstrap.cmake) if(NOT KATIE_BOOTSTRAP) include(src/shared/deviceskin/deviceskin.cmake) include(src/shared/help/help.cmake) include(src/shared/qtgradienteditor/qtgradienteditor.cmake) include(src/shared/qtpropertybrowser/qtpropertybrowser.cmake) include(src/shared/findwidget/findwidget.cmake) endif() # major components add_subdirectory(src/core) add_subdirectory(src/xml) if(NOT KATIE_BOOTSTRAP) if(WITH_DBUS AND DBUS_FOUND) add_subdirectory(src/dbus) endif() add_subdirectory(src/declarative) add_subdirectory(src/designer) add_subdirectory(src/gui) add_subdirectory(src/help) add_subdirectory(src/imports) add_subdirectory(src/multimedia) add_subdirectory(src/network) if(WITH_OPENGL AND OPENGL_FOUND) add_subdirectory(src/opengl) endif() add_subdirectory(src/plugins) add_subdirectory(src/script) add_subdirectory(src/scripttools) add_subdirectory(src/sql) add_subdirectory(src/svg) add_subdirectory(src/test) add_subdirectory(src/uitools) if(KATIE_PLATFORM MATCHES "(win32|wince)") add_subdirectory(src/winmain) endif() add_subdirectory(src/xmlpatterns) if(ENABLE_TESTING) add_subdirectory(tests) endif() endif() add_subdirectory(src/tools) # utilities needed for Katie maintainance add_subdirectory(util/fixnonlatin1) add_subdirectory(util/gencmap) add_subdirectory(util/lexgen) add_subdirectory(util/normalize) add_subdirectory(util/plugintest) add_subdirectory(util/qlalr) add_subdirectory(util/qurl-generateTLDs) add_subdirectory(util/unicode) add_subdirectory(util/xkbdatagen) add_subdirectory(util/generaterun) # obsolete but still widely required headers, unlikely to go away katie_generate_obsolete(qtglobal.h QtCore qglobal.h) katie_generate_obsolete(qmultihash.h QtCore qhash.h) katie_generate_obsolete(qshareddatapointer.h QtCore qshareddata.h) katie_generate_obsolete(qscopedarraypointer.h QtCore qscopedpointer.h) katie_generate_obsolete(qtime.h QtCore qdatetime.h) katie_generate_obsolete(qdate.h QtCore qdatetime.h) katie_generate_obsolete(qwizardpage.h QtGui qwizard.h) katie_generate_obsolete(qtimeedit.h QtGui qdatetimeedit.h) katie_generate_obsolete(qdateedit.h QtGui qdatetimeedit.h) katie_generate_obsolete(qhboxlayout.h QtGui qboxlayout.h) katie_generate_obsolete(qvboxlayout.h QtGui qboxlayout.h) katie_generate_obsolete(qspaceritem.h QtGui qlayoutitem.h) katie_generate_obsolete(qdoublespinbox.h QtGui qspinbox.h) katie_generate_obsolete(qdomdocument.h QtXml qdom.h) katie_generate_obsolete(qdomelement.h QtXml qdom.h) katie_generate_obsolete(qdomnode.h QtXml qdom.h) katie_generate_obsolete(qxmlstream.h QtXml ../QtCore/qxmlstream.h) katie_generate_obsolete(qxmlstreamwriter.h QtXml ../QtCore/qxmlstream.h) katie_generate_obsolete(qxmlstreamreader.h QtXml ../QtCore/qxmlstream.h) katie_generate_obsolete(qnetworkconfigurationmanager.h QtNetwork qnetworkconfigmanager.h) katie_generate_obsolete(qnetworkcachemetadata.h QtNetwork qabstractnetworkcache.h) # obsolete, not so important katie_generate_obsolete(qflags.h QtCore qglobal.h) katie_generate_obsolete(qtplugin.h QtCore qplugin.h) katie_generate_obsolete(qtdebug.h QtCore qdebug.h) katie_generate_obsolete(qtalgorithms.h QtCore qalgorithms.h) katie_generate_obsolete(qdbuspendingcallwatcher.h QtDBus qdbuspendingcall.h) # mixed headers katie_generate_obsolete(qvariantmap.h QtCore qvariant.h) katie_generate_obsolete(qvariantlist.h QtCore qvariant.h) katie_generate_obsolete(qsizef.h QtCore qsize.h) katie_generate_obsolete(qrectf.h QtCore qrect.h) katie_generate_obsolete(qtimerevent.h QtCore qcoreevent.h) katie_generate_obsolete(qpointf.h QtCore qpoint.h) katie_generate_obsolete(qprocessenvironment.h QtCore qprocess.h) katie_generate_obsolete(qabstractlistmodel.h QtCore qabstractitemmodel.h) katie_generate_obsolete(qabstracttablemodel.h QtCore qabstractitemmodel.h) katie_generate_obsolete(qmodelindex.h QtCore qabstractitemmodel.h) katie_generate_obsolete(qdbusobjectpath.h QtDBus qdbusextratypes.h) katie_generate_obsolete(qlistwidgetitem.h QtGui qlistwidget.h) katie_generate_obsolete(qtreewidgetitem.h QtGui qtreewidget.h) katie_generate_obsolete(qstandarditem.h QtGui qstandarditemmodel.h) katie_generate_obsolete(qcloseevent.h QtGui qevent.h) katie_generate_obsolete(qresizeevent.h QtGui qevent.h) katie_generate_obsolete(qshowevent.h QtGui qevent.h) katie_generate_obsolete(qitemselection.h QtGui qitemselectionmodel.h) katie_generate_obsolete(qintvalidator.h QtGui qvalidator.h) katie_generate_obsolete(qfontmetricsf.h QtGui qfontmetrics.h) katie_generate_obsolete(qstyleoptionslider QtGui qstyleoption.h) katie_generate_obsolete(qnetworkaddressentry.h QtNetwork qnetworkinterface.h) # those are aliases katie_generate_obsolete(qweakpointer.h QtCore qsharedpointer.h) if(UNIX AND WITH_X11 AND X11_FOUND) katie_generate_obsolete(qx11info.h QtGui qx11info_x11.h) katie_generate_obsolete(qx11embedcontainer.h QtGui qx11embed_x11.h) katie_generate_obsolete(qx11embedwidget.h QtGui qx11embed_x11.h) endif() katie_generate_obsolete(qttestgui.h QtTest qtest_gui.h) # those have shuffled, e.g. from QtDesginer to QtUiTools katie_generate_obsolete(customwidget.h QtDesginer ../QtUiTools/customwidget.h) katie_generate_obsolete(qdesignercustomwidgetinterface.h QtDesigner ../QtUiTools/customwidget.h) # translations file(GLOB TRANSLATIONS "translations/*.ts") katie_translations(${TRANSLATIONS}) katie_fixup_string("${KATIE_DEFINITIONS}" KATIE_DEFINITIONS) configure_file( ${CMAKE_SOURCE_DIR}/cmake/KatieConfig.cmake ${CMAKE_BINARY_DIR}/KatieConfig.cmake @ONLY ) configure_file( ${CMAKE_SOURCE_DIR}/cmake/KatieConfigVersion.cmake ${CMAKE_BINARY_DIR}/KatieConfigVersion.cmake @ONLY ) install( DIRECTORY mkspecs DESTINATION ${CMAKE_INSTALL_PATH} COMPONENT Devel ) install( FILES ${CMAKE_BINARY_DIR}/KatieConfig.cmake ${CMAKE_BINARY_DIR}/KatieConfigVersion.cmake ${CMAKE_SOURCE_DIR}/cmake/modules/KatieMacros.cmake DESTINATION ${CMAKE_INSTALL_PATH} COMPONENT Devel ) install( EXPORT KatieLibraryTargets NAMESPACE Katie:: DESTINATION ${CMAKE_INSTALL_PATH} FILE KatieLibraryTargets.cmake ) install( EXPORT KatieBinaryTargets NAMESPACE Katie:: DESTINATION ${CMAKE_INSTALL_PATH} FILE KatieBinaryTargets.cmake ) if(NOT KATIE_PLATFORM MATCHES "(win32|wince|mac)") configure_file( ${CMAKE_SOURCE_DIR}/cmake/ld.so.conf.cmake ${CMAKE_BINARY_DIR}/katie-${KATIE_ARCHITECTURE}.conf @ONLY ) install( FILES ${CMAKE_BINARY_DIR}/katie-${KATIE_ARCHITECTURE}.conf DESTINATION ${LDCONF_INSTALL_PATH} ) configure_file( ${CMAKE_SOURCE_DIR}/cmake/profile.sh.cmake ${CMAKE_BINARY_DIR}/katie-${KATIE_ARCHITECTURE}.sh @ONLY ) install( FILES ${CMAKE_BINARY_DIR}/katie-${KATIE_ARCHITECTURE}.sh DESTINATION ${PROFILE_INSTALL_PATH} ) endif() feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)