OSDN Git Service

call OptimizeHeaders script explicitly from component installation targets
[kde/Katie.git] / CMakeLists.txt
1 # Editors notes:
2 #
3 # * To find all FIXME/TODO related to the CMake build system (and those
4 #   inherited from the QMake build system) execute the following in the
5 #   top-level directory of the source tree:
6 #
7 #     find -name '*.cmake' -exec grep -E 'TODO|FIXME' {} +
8 #     find -name CMakeLists.txt -exec grep -E 'TODO|FIXME' {} +
9
10 cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
11
12 if(CMAKE_CROSSCOMPILING AND NOT CMAKE_CROSSCOMPILING_EMULATOR)
13     message(FATAL_ERROR "Cross-compiling requires CMAKE_CROSSCOMPILING_EMULATOR to be set to QEMU executable, e.g. qemu-arm-static")
14 endif()
15
16 project(Katie C CXX)
17
18 if(NOT CMAKE_BUILD_TYPE)
19     set(CMAKE_BUILD_TYPE RelWithDebInfo)
20 endif()
21
22 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
23 set(CMAKE_AUTOMOC FALSE)
24 set(CMAKE_AUTOUIC FALSE)
25 set(CMAKE_AUTORCC FALSE)
26 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
27 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
28 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/staticlib")
29 set(CMAKE_C_VISIBILITY_PRESET "hidden")
30 set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
31 set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
32 set(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
33 set(CMAKE_UNITY_BUILD_BATCH_SIZE 300)
34
35 # enable symbols visibility preset for all targets
36 cmake_policy(SET CMP0063 NEW)
37
38 # LLVM linker does not have a default library search path, add some directories known to contain
39 # system wide libraries. the headers search path is also incomplete
40 if(CMAKE_SYSTEM_NAME MATCHES "BSD")
41     foreach(incdir /usr/X11R6/include /usr/X11R7/include /usr/pkg/include /usr/local/include /usr/include)
42         if(EXISTS "${incdir}")
43             include_directories(${incdir})
44         endif()
45     endforeach()
46     foreach(linkdir /usr/X11R6/lib /usr/X11R7/lib /usr/pkg/lib /usr/local/lib /usr/lib /lib)
47         if(EXISTS "${linkdir}")
48             link_directories(${linkdir})
49         endif()
50     endforeach()
51 endif()
52
53 include(CheckCXXCompilerFlag)
54 include(GNUInstallDirs)
55 include(CheckIncludeFileCXX)
56 include(CheckTypeSize)
57 include(CMakePushCheckState)
58 include(CheckStructHasMember)
59 include(CheckCXXSourceRuns)
60 include(TestBigEndian)
61 include(FeatureSummary)
62 include(KatieBuildMacros)
63
64 # disable some compiler warnings
65 set(KATIE_NO_WARNINGS
66     # placement new used in private QVariant functions
67     -Wno-placement-new
68     # QVector does not always use new/delete
69     -Wno-class-memaccess
70     # hot attribute used in function prototypes
71     -Wno-attributes
72     # deprecated X11, CUPS and OpenSSL API used
73     -Wno-deprecated -Wno-deprecated-declarations
74 )
75 foreach(nowarning ${KATIE_NO_WARNINGS})
76     string(REPLACE "-W" "" normalizednowarning "${nowarning}")
77     check_cxx_compiler_flag(${nowarning} CXX_${normalizednowarning})
78     if(CXX_${normalizednowarning})
79         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${nowarning}")
80     endif()
81 endforeach()
82
83 # https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
84 # https://github.com/Kitware/CMake/blob/master/Modules/CMakeDetermineSystem.cmake
85 if(CMAKE_SYSTEM_NAME MATCHES "(Linux|GNU)")
86     katie_definition(-D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE)
87 elseif(CMAKE_SYSTEM_NAME MATCHES "(FreeBSD|DragonFly)")
88     katie_definition(-D_THREAD_SAFE)
89 elseif(NOT CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|NetBSD|Solaris|SunOS)")
90     message(FATAL_ERROR "Unknown platform '${CMAKE_SYSTEM_NAME}'")
91 endif()
92
93 # mostly relevant to the build process, also stored in the version file for CMake and in qconfig.h.cmake
94 set(KATIE_MAJOR "4")
95 set(KATIE_MINOR "10")
96 set(KATIE_MICRO "0")
97 set(KATIE_HEX "0x041000")
98 set(KATIE_VERSION "${KATIE_MAJOR}.${KATIE_MINOR}.${KATIE_MICRO}")
99
100 # only for the build process
101 if(CMAKE_SYSTEM_PROCESSOR)
102     string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" KATIE_PROCESSOR)
103 elseif(CMAKE_HOST_SYSTEM_PROCESSOR)
104     string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" KATIE_PROCESSOR)
105 endif()
106
107 # used in katie_optimize_headers()
108 find_program(KATIE_UNIFDEF NAMES unifdef)
109 if(NOT KATIE_UNIFDEF)
110     message(WARNING "Could not find unifdef, headers will not be optimized")
111 endif()
112
113 # used as shebang for profile, exec, dbus, xvfb and dbg scripts
114 find_program(KATIE_SHELL NAMES sh dash mksh ksh ash)
115 if(NOT KATIE_SHELL)
116     message(FATAL_ERROR "Could not detect shell, supported are: sh, dash, mksh, ksh and ash")
117 endif()
118
119 # should be either STATIC or SHARED
120 set(KATIE_TYPE SHARED CACHE STRING "Build type")
121
122 # components and tools that will be build, changed depending on the requirements availability
123 # NOTE: excluding DesignerComponents as it was never used as public component, currently only
124 # used by the the designer tool. if it is ever needed for something it can just be added here,
125 # Q_DESIGNER_COMPONENTS_EXPORT must be introduced and genmap.py adjusted - the rest of the
126 # build system has everything in place.
127 set(KATIE_COMPONENTS "Core Gui Declarative Designer Network Sql Svg Xml Script ScriptTools Test UiTools")
128 set(KATIE_TOOLS "moc uic rcc designer qscript qtconfig")
129
130 set(KATIE_HEADERS_PATH "${CMAKE_INSTALL_FULL_INCLUDEDIR}/katie" CACHE PATH "Headers installation path")
131 set(KATIE_LIBRARIES_PATH "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE PATH "Libraries installation path")
132 set(KATIE_BINARIES_PATH "${CMAKE_INSTALL_FULL_BINDIR}" CACHE PATH "Binaries installation path")
133 set(KATIE_PLUGINS_PATH "${KATIE_LIBRARIES_PATH}/katie/plugins" CACHE PATH "Plugins installation path")
134 set(KATIE_IMPORTS_PATH "${KATIE_LIBRARIES_PATH}/katie/imports" CACHE PATH "Declarative imports installation path")
135 set(KATIE_TRANSLATIONS_PATH "${CMAKE_INSTALL_FULL_LOCALEDIR}" CACHE PATH "Translations installation path")
136 set(KATIE_CMAKE_PATH "${KATIE_LIBRARIES_PATH}/cmake/Katie" CACHE PATH "CMake aware modules installation path")
137 set(KATIE_LDCONF_PATH "${CMAKE_INSTALL_FULL_SYSCONFDIR}/ld.so.conf.d" CACHE PATH "Run-time linker/loader configs installation path")
138 set(KATIE_PROFILE_PATH "${CMAKE_INSTALL_FULL_SYSCONFDIR}/profile.d" CACHE PATH "Shell profile scripts installation path")
139 set(KATIE_MAN_PATH "${CMAKE_INSTALL_FULL_MANDIR}" CACHE PATH "Manual pages installation path")
140 set(KATIE_APPLICATIONS_PATH "${CMAKE_INSTALL_FULL_DATADIR}/applications" CACHE PATH "Desktop applications register installation path")
141 set(KATIE_PIXMAPS_PATH "${CMAKE_INSTALL_FULL_DATADIR}/pixmaps" CACHE PATH "Desktop applications icon installation path")
142 set(KATIE_PKGCONFIG_PATH "${KATIE_LIBRARIES_PATH}/pkgconfig" CACHE PATH "pkg-config installation path")
143 set(KATIE_TOOLS_SUFFIX "" CACHE STRING "Tools (moc, uic, rcc, etc.) suffix")
144
145 # optional package
146 option(WITH_CUPS "Build CUPS support" ON)
147 add_feature_info(cups WITH_CUPS "build CUPS support")
148
149 option(WITH_JPEG "Build JPEG support" ON)
150 add_feature_info(jpeg WITH_JPEG "build JPEG support")
151
152 option(WITH_TIFF "Build TIFF support" ON)
153 add_feature_info(tiff WITH_TIFF "build TIFF support")
154
155 option(WITH_DBUS "Build D-Bus support" ON)
156 add_feature_info(dbus WITH_DBUS "build D-Bus support")
157
158 option(WITH_FONTCONFIG "Build Fontconfig support" ON)
159 add_feature_info(fontconfig WITH_FONTCONFIG "build Fontconfig support")
160
161 option(WITH_ODBC "Build ODBC database plugin" ON)
162 add_feature_info(odbc WITH_ODBC "build ODBC support")
163
164 option(WITH_POSTGRESQL "Build PostgreSQL database plugin" ON)
165 add_feature_info(postgresql WITH_POSTGRESQL "build PostgreSQL support")
166
167 option(WITH_MYSQL "Build MySQL database plugin" ON)
168 add_feature_info(mysql WITH_MYSQL "build MySQL support")
169
170 option(WITH_INTL "Build Intl support" ON)
171 add_feature_info(intl WITH_INTL "build Intl support")
172
173 option(WITH_EXECINFO "Build ExecInfo support" OFF)
174 add_feature_info(execinfo WITH_EXECINFO "build ExecInfo support")
175
176 # optional features
177 option(WITH_ACCESSIBILITY "Build accessibility support" ON)
178 add_feature_info(accessibility WITH_ACCESSIBILITY "build accessibility support")
179
180 option(KATIE_TESTS "Build automatic tests" OFF)
181 add_feature_info(tests KATIE_TESTS "build automatic tests")
182
183 option(KATIE_BENCHMARKS "Build automatic benchmarks" OFF)
184 add_feature_info(benchmarks KATIE_BENCHMARKS "build automatic benchmarks")
185
186 option(KATIE_UTILS "Build maintainance utilities" OFF)
187 add_feature_info(utils KATIE_UTILS "build maintainance utilities")
188
189 # v1.2.0+ required for compressBound()
190 find_package(ZLIB 1.2.0)
191 set_package_properties(ZLIB PROPERTIES
192     PURPOSE "Required for compression support"
193     DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
194     URL "https://zlib.net"
195     TYPE REQUIRED
196 )
197
198 # v4.6+ required for unorm2_getDecomposition()
199 find_package(ICU 4.6)
200 set_package_properties(ICU PROPERTIES
201     PURPOSE "Required for locales support"
202     DESCRIPTION "Mature, widely used libraries providing Unicode and Globalization support"
203     URL "http://site.icu-project.org/"
204     TYPE REQUIRED
205 )
206
207 # v1.1.3+ required for exported ZSTD_getErrorString() and ZSTD_getErrorCode()
208 find_package(ZSTD 1.1.3)
209 set_package_properties(ZSTD PROPERTIES
210     PURPOSE "Required for compression support"
211     DESCRIPTION "Fast real-time compression algorithm"
212     URL "https://github.com/facebook/zstd"
213     TYPE REQUIRED
214 )
215
216 # v2.8+ required for JSON_PARSER_MAX_DEPTH
217 find_package(Jansson 2.8)
218 set_package_properties(Jansson PROPERTIES
219     PURPOSE "Required for JSON support"
220     DESCRIPTION "C library for encoding, decoding and manipulating JSON data"
221     URL "https://github.com/akheron/jansson"
222     TYPE REQUIRED
223 )
224
225 # v0.9.8+ required for SHA-224...SHA-512 support
226 find_package(OpenSSL 0.9.8)
227 set_package_properties(OpenSSL PROPERTIES
228     PURPOSE "Required for HTTPS support"
229     DESCRIPTION "Robust, commercial-grade, and full-featured toolkit for SSL and TLS"
230     URL "https://openssl.org"
231     TYPE REQUIRED
232 )
233
234 # v7.7+ required for JavaScript compatibility
235 find_package(PCRE 7.7)
236 set_package_properties(PCRE PROPERTIES
237     PURPOSE "Required for regexp support in script component"
238     DESCRIPTION "Perl Compatible Regular Expressions"
239     URL "https://www.pcre.org/"
240     TYPE REQUIRED
241 )
242
243 find_package(X11)
244 set_package_properties(X11 PROPERTIES
245     PURPOSE "Required for X11/X.Org integration support"
246     DESCRIPTION "Open source implementation of the X Window System"
247     URL "https://www.x.org"
248     TYPE REQUIRED
249 )
250
251 # v2.1.10+ required for FT_GlyphSlot_Embolden()
252 find_package(Freetype 2.1.10)
253 set_package_properties(Freetype PROPERTIES
254     PURPOSE "Required for fonts configuration support"
255     DESCRIPTION "Freely available software library to render fonts"
256     URL "https://www.freetype.org"
257     TYPE REQUIRED
258 )
259
260 set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
261 find_package(Threads)
262 set_package_properties(Threads PROPERTIES
263     PURPOSE "Required for threads support"
264     DESCRIPTION "Platform dependent threads implementation"
265     URL ""
266     TYPE REQUIRED
267 )
268
269 # v1.5.4+ required for png_longjmp_ptr() without noreturn attribute
270 find_package(PNG 1.5.4)
271 set_package_properties(PNG PROPERTIES
272     PURPOSE "PNG format handler"
273     DESCRIPTION "A collection of routines used to create PNG format graphics files"
274     URL "http://www.libpng.org/pub/png/libpng.html"
275     TYPE REQUIRED
276 )
277
278 # v3.5.0+ required for sqlite3_open_v2()
279 find_package(Sqlite 3.5.0)
280 set_package_properties(Sqlite PROPERTIES
281     PURPOSE "Required for SQLite database support"
282     DESCRIPTION "Software library that implements SQL database engine"
283     URL "https://www.sqlite.org/"
284     TYPE REQUIRED
285 )
286
287 find_package(JPEG)
288 set_package_properties(JPEG PROPERTIES
289     PURPOSE "JPEG format handler"
290     DESCRIPTION "JPEG image codec with accelerated baseline compression and decompression"
291     URL "https://libjpeg-turbo.virtualgl.org/"
292     TYPE RECOMMENDED
293 )
294
295 # v3.6.0+ required for TIFFReadRGBAImageOriented()
296 find_package(TIFF 3.6.0)
297 set_package_properties(TIFF PROPERTIES
298     PURPOSE "TIFF format handler"
299     DESCRIPTION "Library for manipulation of TIFF images"
300     URL "http://www.libtiff.org/"
301     TYPE RECOMMENDED
302 )
303
304 find_package(Cups)
305 set_package_properties(Cups PROPERTIES
306     PURPOSE "Required for printing support"
307     DESCRIPTION "CUPS is the standards-based, open source printing system"
308     URL "https://www.cups.org"
309     TYPE RECOMMENDED
310 )
311
312 # v2.4.2+ required for Freetype integration
313 find_package(Fontconfig 2.4.2)
314 set_package_properties(Fontconfig PROPERTIES
315     PURPOSE "Required for fonts configuration support"
316     DESCRIPTION "Library for configuring and customizing font access"
317     URL "https://www.freedesktop.org/wiki/Software/fontconfig/"
318     TYPE RECOMMENDED
319 )
320
321 # v1.5.12+ required for DBusBasicValue type
322 find_package(DBus 1.5.12)
323 set_package_properties(DBus PROPERTIES
324     PURPOSE "Required for D-Bus support"
325     DESCRIPTION "Message bus system, a simple way for applications to talk to one another"
326     URL "https://www.freedesktop.org/wiki/Software/dbus"
327     TYPE RECOMMENDED
328 )
329
330 # v3.0+ required for SQLSetEnvAttr() and many other but unixODBC versioning is different
331 find_package(ODBC)
332 set_package_properties(ODBC PROPERTIES
333     PURPOSE "Required for ODBC database support"
334     DESCRIPTION "The definitive standard for ODBC on non MS Windows platforms"
335     URL "http://www.unixodbc.org"
336     TYPE RECOMMENDED
337 )
338
339 # v7.4+ required for PQresultErrorField()
340 find_package(PostgreSQL 7.4)
341 set_package_properties(PostgreSQL PROPERTIES
342     PURPOSE "Required for PostgreSQL database support"
343     DESCRIPTION "The world's most advanced open source database"
344     URL "https://www.postgresql.org/"
345     TYPE RECOMMENDED
346 )
347
348 # v4.1.13+ required for multiple statements query and UTF-8 support
349 find_package(MySQL 4.1.13)
350 set_package_properties(MySQL PROPERTIES
351     PURPOSE "Required for MySQL database support"
352     DESCRIPTION "The world's most popular open source database"
353     URL "https://www.mysql.com/"
354     TYPE RECOMMENDED
355 )
356
357 find_package(Intl)
358 set_package_properties(Intl PROPERTIES
359     PURPOSE "Required for translations support"
360     DESCRIPTION "GNU gettext runtime library"
361     URL "https://www.gnu.org/software/gettext/gettext.html"
362     TYPE RECOMMENDED
363 )
364
365 find_package(ExecInfo)
366 set_package_properties(ExecInfo PROPERTIES
367     PURPOSE "Required for stack traces on assert and crash"
368     DESCRIPTION "Standard C library specific execinfo implementation"
369     URL ""
370     TYPE RECOMMENDED
371 )
372
373 find_package(XdgUtils)
374 set_package_properties(XdgUtils PROPERTIES
375     PURPOSE "Required for desktop services"
376     DESCRIPTION "Utilities for integrating applications with the desktop environment"
377     URL "https://www.freedesktop.org/wiki/Software/xdg-utils/"
378     TYPE RUNTIME
379 )
380
381 # stored in qconfig.h.cmake
382 check_type_size(size_t QT_POINTER_SIZE)
383
384 test_big_endian(KATIE_BIG_ENDIAN)
385 if(KATIE_BIG_ENDIAN)
386     set(KATIE_BYTE_ORDER "Q_BIG_ENDIAN")
387 else()
388     set(KATIE_BYTE_ORDER "Q_LITTLE_ENDIAN")
389 endif()
390
391 if(CMAKE_SYSTEM_NAME MATCHES "Linux")
392     set(KATIE_OS "LINUX")
393 elseif(CMAKE_SYSTEM_NAME MATCHES "GNU")
394     set(KATIE_OS "HURD")
395 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
396     set(KATIE_OS "FREEBSD")
397 elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly")
398     set(KATIE_OS "DRAGONFLY")
399 elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
400     set(KATIE_OS "OPENBSD")
401 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
402     set(KATIE_OS "NETBSD")
403 elseif(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
404     set(KATIE_OS "SOLARIS")
405 else()
406     message(FATAL_ERROR "Unknown platform '${CMAKE_SYSTEM_NAME}'")
407 endif()
408
409 # https://en.wikipedia.org/wiki/Uname
410 if(KATIE_PROCESSOR MATCHES "^alpha")
411     set(KATIE_ARCH "ALPHA")
412 elseif(KATIE_PROCESSOR MATCHES "^arm64")
413     set(KATIE_ARCH "ARM64")
414 elseif(KATIE_PROCESSOR MATCHES "^arm")
415     set(KATIE_ARCH "ARM")
416 elseif(KATIE_PROCESSOR MATCHES "^avr")
417     set(KATIE_ARCH "AVR32")
418 elseif(KATIE_PROCESSOR MATCHES "^blackfin")
419     set(KATIE_ARCH "BFIN")
420 elseif(KATIE_PROCESSOR MATCHES "(x86|i[3-6]86|i86pc)")
421     set(KATIE_ARCH "I386")
422 elseif(KATIE_PROCESSOR MATCHES "^ia64")
423     set(KATIE_ARCH "IA64")
424 elseif(KATIE_PROCESSOR MATCHES "^m68k")
425     set(KATIE_ARCH "M68K")
426 elseif(KATIE_PROCESSOR MATCHES "^mips")
427     set(KATIE_ARCH "MIPS")
428 elseif(KATIE_PROCESSOR MATCHES "^hppa")
429     set(KATIE_ARCH "PARISC")
430 elseif(KATIE_PROCESSOR MATCHES "^ppc64")
431     set(KATIE_ARCH "POWERPC64")
432 elseif(KATIE_PROCESSOR MATCHES "^ppc")
433     set(KATIE_ARCH "POWERPC")
434 elseif(KATIE_PROCESSOR MATCHES "^s390")
435     set(KATIE_ARCH "S390")
436 elseif(KATIE_PROCESSOR MATCHES "^sparc")
437     set(KATIE_ARCH "SPARC")
438 elseif(KATIE_PROCESSOR MATCHES "^sh")
439     # TODO: SH4A
440     set(KATIE_ARCH "SH")
441 elseif(KATIE_PROCESSOR MATCHES "(x86_64|amd64)")
442     set(KATIE_ARCH "X86_64")
443 else()
444     message(FATAL_ERROR "Unknown CPU '${KATIE_PROCESSOR}'")
445 endif()
446
447 # used in components, tests and JavaScriptCore
448 katie_check_header("cxxabi.h")
449 katie_check_function(posix_memalign "stdlib.h")
450 katie_check_function(getprogname "stdlib.h")
451 katie_check_function(arc4random "stdlib.h")
452 katie_check_function(get_current_dir_name "unistd.h")
453 katie_check_function(prctl "sys/prctl.h")
454 katie_check_function(feenableexcept "fenv.h")
455 katie_check_function(madvise "sys/mman.h")
456 katie_check_function(getifaddrs "ifaddrs.h")
457 katie_check_function(timegm "time.h")
458 katie_check_function(inotify_init1 "sys/inotify.h")
459 katie_check_function(kevent "sys/event.h")
460 katie_check_function(pipe2 "unistd.h")
461 katie_check_function(accept4 "sys/socket.h")
462 katie_check_function(paccept "sys/socket.h")
463 katie_check_function(getdomainname "unistd.h")
464 katie_check_struct(tm tm_gmtoff "time.h")
465 katie_check_struct(tm tm_zone "time.h")
466 katie_check_struct(sockaddr_ll sll_addr "netpacket/packet.h")
467 katie_check_struct(sockaddr_dl sdl_index "net/if_dl.h")
468 katie_check_struct(dirent d_type "dirent.h")
469
470 cmake_reset_check_state()
471 set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
472 katie_check_function(pthread_setname_np "pthread.h")
473 cmake_reset_check_state()
474
475 katie_check_proc(exe)
476 katie_check_proc(cmdline)
477
478 configure_file(
479     ${CMAKE_SOURCE_DIR}/src/core/global/qconfig.h.cmake
480     ${CMAKE_BINARY_DIR}/include/QtCore/qconfig.h
481 )
482 configure_file(
483     ${CMAKE_SOURCE_DIR}/src/core/global/qconfig.cpp.cmake
484     ${CMAKE_BINARY_DIR}/include/qconfig.cpp
485 )
486
487 if(KATIE_TESTS OR KATIE_BENCHMARKS)
488     message(WARNING "Deploying tests/benchmarks build is a bad idea")
489     enable_testing()
490     add_definitions(-DQT_BUILD_INTERNAL)
491 endif()
492
493 foreach(script exec dbus xvfb dbg)
494     configure_file(
495         ${CMAKE_SOURCE_DIR}/cmake/${script}.sh.cmake
496         ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${script}.sh
497         @ONLY
498     )
499     file(
500         COPY ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/${script}.sh
501         DESTINATION ${CMAKE_BINARY_DIR}
502         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ
503     )
504 endforeach()
505
506 # optional packages
507 if(NOT WITH_FONTCONFIG OR NOT FONTCONFIG_FOUND)
508     katie_definition(-DQT_NO_FONTCONFIG)
509 endif()
510
511 if(NOT WITH_DBUS OR NOT DBUS_FOUND)
512     katie_definition(-DQT_NO_DBUS)
513 else()
514     set(KATIE_COMPONENTS "${KATIE_COMPONENTS} DBus")
515     set(KATIE_TOOLS "${KATIE_TOOLS} qdbus qdbusxml2cpp qdbuscpp2xml qdbusviewer")
516 endif()
517
518 if(NOT WITH_CUPS OR NOT CUPS_FOUND)
519     katie_definition(-DQT_NO_CUPS)
520 endif()
521
522 if(NOT WITH_INTL OR NOT INTL_FOUND)
523     katie_definition(-DQT_NO_TRANSLATION)
524 endif()
525
526 if(NOT WITH_EXECINFO OR NOT EXECINFO_FOUND)
527     katie_definition(-DQT_NO_EXECINFO)
528 endif()
529
530 # optional and conditional features
531 if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
532     katie_definition(-DQT_NO_DEBUG)
533 endif()
534
535 if(NOT WITH_ACCESSIBILITY)
536     katie_definition(-DQT_NO_ACCESSIBILITY)
537 endif()
538
539 add_library(pic_test ${KATIE_TYPE}  EXCLUDE_FROM_ALL "${CMAKE_SOURCE_DIR}/cmake/pic.cpp")
540 get_target_property(HAVE_pic pic_test POSITION_INDEPENDENT_CODE)
541 if(NOT HAVE_pic)
542     katie_definition(-DQ_NO_DATA_RELOCATION)
543 endif()
544
545 # keep in sync with the GUI component CMake file, only definitions setup is needed here
546 foreach(x11ext Xshape Xinerama Xrandr Xrender Xfixes Xcursor)
547     if(NOT X11_${x11ext}_FOUND)
548         message(WARNING "The X11 ${x11ext} extension was not found")
549         string(TOUPPER "${x11ext}" upperext)
550         katie_definition(-DQT_NO_${upperext})
551     endif()
552 endforeach()
553 if(NOT X11_Xext_FOUND)
554     message(WARNING "The X11 Xext extension was not found")
555     katie_definition(-DQT_NO_XSYNC -DQT_NO_XSHAPE)
556 endif()
557 if(NOT X11_SM_FOUND OR NOT X11_ICE_FOUND)
558     message(WARNING "X11 SM/ICE was not found thus disabling session manager support")
559     katie_definition(-DQT_NO_SESSIONMANAGER)
560 endif()
561
562 add_subdirectory(src/shared)
563
564 add_subdirectory(src/core)
565 add_subdirectory(src/xml)
566 if(WITH_DBUS AND DBUS_FOUND)
567     add_subdirectory(src/dbus)
568 endif()
569 add_subdirectory(src/declarative)
570 add_subdirectory(src/designer)
571 add_subdirectory(src/gui)
572 add_subdirectory(src/imports)
573 add_subdirectory(src/network)
574 add_subdirectory(src/plugins)
575 add_subdirectory(src/script)
576 add_subdirectory(src/scripttools)
577 add_subdirectory(src/sql)
578 add_subdirectory(src/svg)
579 add_subdirectory(src/test)
580 add_subdirectory(src/uitools)
581
582 add_subdirectory(src/tools)
583
584 if(WITH_INTL AND INTL_FOUND)
585     add_subdirectory(translations)
586 endif()
587
588 if(KATIE_TESTS OR KATIE_BENCHMARKS)
589     add_subdirectory(tests)
590 endif()
591
592 if(KATIE_UTILS)
593     add_subdirectory(util)
594 endif()
595
596 # the macro calls bellow are generated via the incfsck script
597 katie_generate_obsolete(QAbstractExtensionFactory QtDesigner extension.h)
598 katie_generate_obsolete(QAbstractExtensionManager QtDesigner extension.h)
599 katie_generate_obsolete(QAbstractFileEngineIterator QtCore qabstractfileengine.h)
600 katie_generate_obsolete(QAbstractFormBuilder QtDesigner abstractformbuilder.h)
601 katie_generate_obsolete(QAbstractGraphicsShapeItem QtGui qgraphicsitem.h)
602 katie_generate_obsolete(QAbstractListModel QtCore qabstractitemmodel.h)
603 katie_generate_obsolete(QAbstractTableModel QtCore qabstractitemmodel.h)
604 katie_generate_obsolete(QAbstractUndoItem QtGui qtextdocument.h)
605 katie_generate_obsolete(QAccessible2Interface QtGui qaccessible2.h)
606 katie_generate_obsolete(QAccessibleActionInterface QtGui qaccessible2.h)
607 katie_generate_obsolete(QAccessibleApplication QtGui qaccessibleobject.h)
608 katie_generate_obsolete(QAccessibleBridgeFactoryInterface QtGui qaccessiblebridge.h)
609 katie_generate_obsolete(QAccessibleBridgePlugin QtGui qaccessiblebridge.h)
610 katie_generate_obsolete(QAccessibleEditableTextInterface QtGui qaccessible2.h)
611 katie_generate_obsolete(QAccessibleEvent QtGui qaccessible.h)
612 katie_generate_obsolete(QAccessibleFactoryInterface QtGui qaccessibleplugin.h)
613 katie_generate_obsolete(QAccessibleImageInterface QtGui qaccessible2.h)
614 katie_generate_obsolete(QAccessibleInterfaceEx QtGui qaccessible.h)
615 katie_generate_obsolete(QAccessibleInterface QtGui qaccessible.h)
616 katie_generate_obsolete(QAccessibleObjectEx QtGui qaccessibleobject.h)
617 katie_generate_obsolete(QAccessibleSimpleEditableTextInterface QtGui qaccessible2.h)
618 katie_generate_obsolete(QAccessibleTable2CellInterface QtGui qaccessible2.h)
619 katie_generate_obsolete(QAccessibleTable2Interface QtGui qaccessible2.h)
620 katie_generate_obsolete(QAccessibleTableInterface QtGui qaccessible2.h)
621 katie_generate_obsolete(QAccessibleTextInterface QtGui qaccessible2.h)
622 katie_generate_obsolete(QAccessibleValueInterface QtGui qaccessible2.h)
623 katie_generate_obsolete(QAccessibleWidgetEx QtGui qaccessiblewidget.h)
624 katie_generate_obsolete(QActionEvent QtGui qevent.h)
625 katie_generate_obsolete(QAnimationDriver QtGui qabstractanimation.h)
626 katie_generate_obsolete(QArgument QtCore qobjectdefs.h)
627 katie_generate_obsolete(QAtomicInt QtCore qatomic.h)
628 katie_generate_obsolete(QAtomicPointer QtCore qatomic.h)
629 katie_generate_obsolete(QBasicAtomicInt QtCore qbasicatomic.h)
630 katie_generate_obsolete(QBitRef QtCore qbitarray.h)
631 katie_generate_obsolete(QBrushData QtGui qbrush.h)
632 katie_generate_obsolete(QByteRef QtCore qbytearray.h)
633 katie_generate_obsolete(QCharRef QtCore qstring.h)
634 katie_generate_obsolete(QChildEvent QtCore qcoreevent.h)
635 katie_generate_obsolete(QClipboardEvent QtGui qevent.h)
636 katie_generate_obsolete(QCloseEvent QtGui qevent.h)
637 katie_generate_obsolete(QConicalGradient QtGui qbrush.h)
638 katie_generate_obsolete(QContextMenuEvent QtGui qevent.h)
639 katie_generate_obsolete(QContiguousCacheData QtCore qcontiguouscache.h)
640 katie_generate_obsolete(QContiguousCacheTypedData QtCore qcontiguouscache.h)
641 katie_generate_obsolete(QDateEdit QtGui qdatetimeedit.h)
642 katie_generate_obsolete(QDate QtCore qdatetime.h)
643 katie_generate_obsolete(QDBusAbstractInterfaceBase QtDBus qdbusabstractinterface.h)
644 katie_generate_obsolete(QDBusObjectPath QtDBus qdbusextratypes.h)
645 katie_generate_obsolete(QDBusPendingCallWatcher QtDBus qdbuspendingcall.h)
646 katie_generate_obsolete(QDBusPendingReplyData QtDBus qdbuspendingreply.h)
647 katie_generate_obsolete(QDBusSignature QtDBus qdbusextratypes.h)
648 katie_generate_obsolete(QDBusVariant QtDBus qdbusextratypes.h)
649 katie_generate_obsolete(QDeclarativeAttachedPropertiesFunc QtDeclarative qdeclarativeprivate.h)
650 katie_generate_obsolete(QDeclarativeListProperty QtDeclarative qdeclarativelist.h)
651 katie_generate_obsolete(QDeclarativeListReference QtDeclarative qdeclarativelist.h)
652 katie_generate_obsolete(QDeclarativeProperties QtDeclarative qdeclarativeproperty.h)
653 katie_generate_obsolete(QDeclarativeTypeInfo QtDeclarative qdeclarativeprivate.h)
654 katie_generate_obsolete(QDesignerActionEditorInterface QtDesigner abstractactioneditor.h)
655 katie_generate_obsolete(QDesignerBrushManagerInterface QtDesigner abstractbrushmanager.h)
656 katie_generate_obsolete(QDesignerComponents QtDesigner qdesigner_components.h)
657 katie_generate_obsolete(QDesignerContainerExtension QtDesigner container.h)
658 katie_generate_obsolete(QDesignerCustomWidgetCollectionInterface QtDesigner customwidget.h)
659 katie_generate_obsolete(QDesignerCustomWidgetInterface QtDesigner customwidget.h)
660 katie_generate_obsolete(QDesignerDnDItemInterface QtDesigner abstractdnditem.h)
661 katie_generate_obsolete(QDesignerDynamicPropertySheetExtension QtDesigner dynamicpropertysheet.h)
662 katie_generate_obsolete(QDesignerExtraInfoExtension QtDesigner extrainfo.h)
663 katie_generate_obsolete(QDesignerFormEditorInterface QtDesigner abstractformeditor.h)
664 katie_generate_obsolete(QDesignerFormEditorPluginInterface QtDesigner abstractformeditorplugin.h)
665 katie_generate_obsolete(QDesignerFormWindowCursorInterface QtDesigner abstractformwindowcursor.h)
666 katie_generate_obsolete(QDesignerFormWindowInterface QtDesigner abstractformwindow.h)
667 katie_generate_obsolete(QDesignerFormWindowManagerInterface QtDesigner abstractformwindowmanager.h)
668 katie_generate_obsolete(QDesignerFormWindowToolInterface QtDesigner abstractformwindowtool.h)
669 katie_generate_obsolete(QDesignerIconCacheInterface QtDesigner abstracticoncache.h)
670 katie_generate_obsolete(QDesignerIntegrationInterface QtDesigner abstractintegration.h)
671 katie_generate_obsolete(QDesignerLanguageExtension QtDesigner abstractlanguage.h)
672 katie_generate_obsolete(QDesignerLayoutDecorationExtension QtDesigner layoutdecoration.h)
673 katie_generate_obsolete(QDesignerMemberSheetExtension QtDesigner membersheet.h)
674 katie_generate_obsolete(QDesignerMetaDataBaseInterface QtDesigner abstractmetadatabase.h)
675 katie_generate_obsolete(QDesignerMetaDataBaseItemInterface QtDesigner abstractmetadatabase.h)
676 katie_generate_obsolete(QDesignerObjectInspectorInterface QtDesigner abstractobjectinspector.h)
677 katie_generate_obsolete(QDesignerPromotionInterface QtDesigner abstractpromotioninterface.h)
678 katie_generate_obsolete(QDesignerPropertyEditorInterface QtDesigner abstractpropertyeditor.h)
679 katie_generate_obsolete(QDesignerPropertySheetExtension QtDesigner propertysheet.h)
680 katie_generate_obsolete(QDesignerResourceBrowserInterface QtDesigner abstractresourcebrowser.h)
681 katie_generate_obsolete(QDesignerTaskMenuExtension QtDesigner taskmenu.h)
682 katie_generate_obsolete(QDesignerWidgetBoxInterface QtDesigner abstractwidgetbox.h)
683 katie_generate_obsolete(QDesignerWidgetDataBaseInterface QtDesigner abstractwidgetdatabase.h)
684 katie_generate_obsolete(QDesignerWidgetDataBaseItemInterface QtDesigner abstractwidgetdatabase.h)
685 katie_generate_obsolete(QDesignerWidgetFactoryInterface QtDesigner abstractwidgetfactory.h)
686 katie_generate_obsolete(QDomAttr QtXml qdom.h)
687 katie_generate_obsolete(QDomCDATASection QtXml qdom.h)
688 katie_generate_obsolete(QDomCharacterData QtXml qdom.h)
689 katie_generate_obsolete(QDomComment QtXml qdom.h)
690 katie_generate_obsolete(QDomDocumentFragment QtXml qdom.h)
691 katie_generate_obsolete(QDomDocument QtXml qdom.h)
692 katie_generate_obsolete(QDomDocumentType QtXml qdom.h)
693 katie_generate_obsolete(QDomElement QtXml qdom.h)
694 katie_generate_obsolete(QDomEntity QtXml qdom.h)
695 katie_generate_obsolete(QDomEntityReference QtXml qdom.h)
696 katie_generate_obsolete(QDomImplementation QtXml qdom.h)
697 katie_generate_obsolete(QDomNamedNodeMap QtXml qdom.h)
698 katie_generate_obsolete(QDomNodeList QtXml qdom.h)
699 katie_generate_obsolete(QDomNode QtXml qdom.h)
700 katie_generate_obsolete(QDomNotation QtXml qdom.h)
701 katie_generate_obsolete(QDomProcessingInstruction QtXml qdom.h)
702 katie_generate_obsolete(QDomText QtXml qdom.h)
703 katie_generate_obsolete(QDoubleSpinBox QtGui qspinbox.h)
704 katie_generate_obsolete(QDoubleValidator QtGui qvalidator.h)
705 katie_generate_obsolete(QDragEnterEvent QtGui qevent.h)
706 katie_generate_obsolete(QDragLeaveEvent QtGui qevent.h)
707 katie_generate_obsolete(QDragMoveEvent QtGui qevent.h)
708 katie_generate_obsolete(QDropEvent QtGui qevent.h)
709 katie_generate_obsolete(QDynamicPropertyChangeEvent QtCore qcoreevent.h)
710 katie_generate_obsolete(QEvent QtCore qcoreevent.h)
711 katie_generate_obsolete(QEventSizeOfChecker QtTest qtestspontaneevent.h)
712 katie_generate_obsolete(QExplicitlySharedDataPointer QtCore qsharedpointer.h)
713 katie_generate_obsolete(QExtensionFactory QtDesigner default_extensionfactory.h)
714 katie_generate_obsolete(QFileInfoList QtCore qfileinfo.h)
715 katie_generate_obsolete(QFlag QtCore qglobal.h)
716 katie_generate_obsolete(QFlags QtCore qglobal.h)
717 katie_generate_obsolete(QFocusEvent QtGui qevent.h)
718 katie_generate_obsolete(QFontMetricsF QtGui qfontmetrics.h)
719 katie_generate_obsolete(QFormBuilder QtDesigner formbuilder.h)
720 katie_generate_obsolete(QFutureInterfaceBase QtCore qfutureinterface.h)
721 katie_generate_obsolete(QFutureIterator QtCore qfuture.h)
722 katie_generate_obsolete(QFutureWatcherBase QtCore qfuturewatcher.h)
723 katie_generate_obsolete(QGenericArgument QtCore qobjectdefs.h)
724 katie_generate_obsolete(QGenericReturnArgument QtCore qobjectdefs.h)
725 katie_generate_obsolete(QGestureEvent QtGui qevent.h)
726 katie_generate_obsolete(QGlobalStaticDeleter QtCore qglobal.h)
727 katie_generate_obsolete(QGlobalStatic QtCore qglobal.h)
728 katie_generate_obsolete(QGradient QtGui qbrush.h)
729 katie_generate_obsolete(QGradientStop QtGui qbrush.h)
730 katie_generate_obsolete(QGradientStops QtGui qbrush.h)
731 katie_generate_obsolete(QGraphicsAnchor QtGui qgraphicsanchorlayout.h)
732 katie_generate_obsolete(QGraphicsBlurEffect QtGui qgraphicseffect.h)
733 katie_generate_obsolete(QGraphicsColorizeEffect QtGui qgraphicseffect.h)
734 katie_generate_obsolete(QGraphicsDropShadowEffect QtGui qgraphicseffect.h)
735 katie_generate_obsolete(QGraphicsEllipseItem QtGui qgraphicsitem.h)
736 katie_generate_obsolete(QGraphicsItemGroup QtGui qgraphicsitem.h)
737 katie_generate_obsolete(QGraphicsLineItem QtGui qgraphicsitem.h)
738 katie_generate_obsolete(QGraphicsObject QtGui qgraphicsitem.h)
739 katie_generate_obsolete(QGraphicsOpacityEffect QtGui qgraphicseffect.h)
740 katie_generate_obsolete(QGraphicsPathItem QtGui qgraphicsitem.h)
741 katie_generate_obsolete(QGraphicsPixmapItem QtGui qgraphicsitem.h)
742 katie_generate_obsolete(QGraphicsPolygonItem QtGui qgraphicsitem.h)
743 katie_generate_obsolete(QGraphicsRectItem QtGui qgraphicsitem.h)
744 katie_generate_obsolete(QGraphicsRotation QtGui qgraphicstransform.h)
745 katie_generate_obsolete(QGraphicsScale QtGui qgraphicstransform.h)
746 katie_generate_obsolete(QGraphicsSceneContextMenuEvent QtGui qgraphicssceneevent.h)
747 katie_generate_obsolete(QGraphicsSceneDragDropEvent QtGui qgraphicssceneevent.h)
748 katie_generate_obsolete(QGraphicsSceneHelpEvent QtGui qgraphicssceneevent.h)
749 katie_generate_obsolete(QGraphicsSceneHoverEvent QtGui qgraphicssceneevent.h)
750 katie_generate_obsolete(QGraphicsSceneMouseEvent QtGui qgraphicssceneevent.h)
751 katie_generate_obsolete(QGraphicsSceneMoveEvent QtGui qgraphicssceneevent.h)
752 katie_generate_obsolete(QGraphicsSceneResizeEvent QtGui qgraphicssceneevent.h)
753 katie_generate_obsolete(QGraphicsSceneWheelEvent QtGui qgraphicssceneevent.h)
754 katie_generate_obsolete(QGraphicsSimpleTextItem QtGui qgraphicsitem.h)
755 katie_generate_obsolete(QGraphicsTextItem QtGui qgraphicsitem.h)
756 katie_generate_obsolete(QHashData QtCore qhash.h)
757 katie_generate_obsolete(QHashIterator QtCore qhash.h)
758 katie_generate_obsolete(QHashNode QtCore qhash.h)
759 katie_generate_obsolete(QHBoxLayout QtGui qboxlayout.h)
760 katie_generate_obsolete(QHelpEvent QtGui qevent.h)
761 katie_generate_obsolete(QHideEvent QtGui qevent.h)
762 katie_generate_obsolete(QHoverEvent QtGui qevent.h)
763 katie_generate_obsolete(QHttpHeader QtNetwork qhttp.h)
764 katie_generate_obsolete(QHttpPart QtNetwork qhttpmultipart.h)
765 katie_generate_obsolete(QHttpRequestHeader QtNetwork qhttp.h)
766 katie_generate_obsolete(QHttpResponseHeader QtNetwork qhttp.h)
767 katie_generate_obsolete(QIconEngineFactoryInterface QtGui qiconengineplugin.h)
768 katie_generate_obsolete(QIconEngineFactoryInterfaceV2 QtGui qiconengineplugin.h)
769 katie_generate_obsolete(QIconEnginePluginV2 QtGui qiconengineplugin.h)
770 katie_generate_obsolete(QIconEngineV2 QtGui qiconengine.h)
771 katie_generate_obsolete(QImageIOHandlerFactoryInterface QtGui qimageiohandler.h)
772 katie_generate_obsolete(QImageIOPlugin QtGui qimageiohandler.h)
773 katie_generate_obsolete(QIncompatibleFlag QtCore qglobal.h)
774 katie_generate_obsolete(QInputContextFactoryInterface QtGui qinputcontextplugin.h)
775 katie_generate_obsolete(QInputEvent QtGui qevent.h)
776 katie_generate_obsolete(QInputMethodEvent QtGui qevent.h)
777 katie_generate_obsolete(QInternal QtCore qnamespace.h)
778 katie_generate_obsolete(QIntValidator QtGui qvalidator.h)
779 katie_generate_obsolete(QIPv6Address QtNetwork qhostaddress.h)
780 katie_generate_obsolete(Q_IPV6ADDR QtNetwork qhostaddress.h)
781 katie_generate_obsolete(QItemEditorCreatorBase QtGui qitemeditorfactory.h)
782 katie_generate_obsolete(QItemEditorCreator QtGui qitemeditorfactory.h)
783 katie_generate_obsolete(QItemSelection QtGui qitemselectionmodel.h)
784 katie_generate_obsolete(QItemSelectionRange QtGui qitemselectionmodel.h)
785 katie_generate_obsolete(QKeyEvent QtGui qevent.h)
786 katie_generate_obsolete(QLatin1Char QtCore qchar.h)
787 katie_generate_obsolete(QLatin1String QtCore qstring.h)
788 katie_generate_obsolete(QLinearGradient QtGui qbrush.h)
789 katie_generate_obsolete(QLineF QtCore qline.h)
790 katie_generate_obsolete(QLinkedListData QtCore qlinkedlist.h)
791 katie_generate_obsolete(QLinkedListIterator QtCore qlinkedlist.h)
792 katie_generate_obsolete(QLinkedListNode QtCore qlinkedlist.h)
793 katie_generate_obsolete(QListData QtCore qlist.h)
794 katie_generate_obsolete(QListIterator QtCore qlist.h)
795 katie_generate_obsolete(QListWidgetItem QtGui qlistwidget.h)
796 katie_generate_obsolete(QMapData QtCore qmap.h)
797 katie_generate_obsolete(QMapIterator QtCore qmap.h)
798 katie_generate_obsolete(QMapNode QtCore qmap.h)
799 katie_generate_obsolete(QMapPayloadNode QtCore qmap.h)
800 katie_generate_obsolete(QMatrix2x2 QtGui qgenericmatrix.h)
801 katie_generate_obsolete(QMatrix2x3 QtGui qgenericmatrix.h)
802 katie_generate_obsolete(QMatrix2x4 QtGui qgenericmatrix.h)
803 katie_generate_obsolete(QMatrix3x2 QtGui qgenericmatrix.h)
804 katie_generate_obsolete(QMatrix3x3 QtGui qgenericmatrix.h)
805 katie_generate_obsolete(QMatrix3x4 QtGui qgenericmatrix.h)
806 katie_generate_obsolete(QMatrix4x2 QtGui qgenericmatrix.h)
807 katie_generate_obsolete(QMatrix4x3 QtGui qgenericmatrix.h)
808 katie_generate_obsolete(QMetaClassInfo QtCore qmetaobject.h)
809 katie_generate_obsolete(QMetaEnum QtCore qmetaobject.h)
810 katie_generate_obsolete(QMetaMethod QtCore qmetaobject.h)
811 katie_generate_obsolete(QMetaObjectAccessor QtCore qobjectdefs.h)
812 katie_generate_obsolete(QMetaProperty QtCore qmetaobject.h)
813 katie_generate_obsolete(QMetaTypeId2 QtCore qmetatype.h)
814 katie_generate_obsolete(QMetaTypeId QtCore qmetatype.h)
815 katie_generate_obsolete(QModelIndexList QtCore qabstractitemmodel.h)
816 katie_generate_obsolete(QModelIndex QtCore qabstractitemmodel.h)
817 katie_generate_obsolete(QMouseEvent QtGui qevent.h)
818 katie_generate_obsolete(QMoveEvent QtGui qevent.h)
819 katie_generate_obsolete(QMultiHash QtCore qhash.h)
820 katie_generate_obsolete(QMultiMap QtCore qmap.h)
821 katie_generate_obsolete(QMutableFutureIterator QtCore qfuture.h)
822 katie_generate_obsolete(QMutableHashIterator QtCore qhash.h)
823 katie_generate_obsolete(QMutableLinkedListIterator QtCore qlist.h)
824 katie_generate_obsolete(QMutableListIterator QtCore qlist.h)
825 katie_generate_obsolete(QMutableMapIterator QtCore qmap.h)
826 katie_generate_obsolete(QMutableSetIterator QtCore qset.h)
827 katie_generate_obsolete(QMutableStringListIterator QtCore qstringlist.h)
828 katie_generate_obsolete(QMutableVectorIterator QtCore qvector.h)
829 katie_generate_obsolete(QMutexLocker QtCore qmutex.h)
830 katie_generate_obsolete(QNetworkAddressEntry QtNetwork qnetworkinterface.h)
831 katie_generate_obsolete(QNetworkCacheMetaData QtNetwork qabstractnetworkcache.h)
832 katie_generate_obsolete(QNetworkConfigurationManager QtNetwork qnetworkconfigmanager.h)
833 katie_generate_obsolete(QNetworkProxyFactory QtNetwork qnetworkproxy.h)
834 katie_generate_obsolete(QNetworkProxyQuery QtNetwork qnetworkproxy.h)
835 katie_generate_obsolete(QNoDebug QtCore qdebug.h)
836 katie_generate_obsolete(QObjectData QtCore qobject.h)
837 katie_generate_obsolete(QObjectList QtCore qobject.h)
838 katie_generate_obsolete(QPaintEngineState QtGui qpaintengine.h)
839 katie_generate_obsolete(QPainterPathPrivate QtGui qpainterpath.h)
840 katie_generate_obsolete(QPainterPathStroker QtGui qpainterpath.h)
841 katie_generate_obsolete(QPaintEvent QtGui qevent.h)
842 katie_generate_obsolete(QPanGesture QtGui qgesture.h)
843 katie_generate_obsolete(QPersistentModelIndex QtCore qabstractitemmodel.h)
844 katie_generate_obsolete(Q_PID QtCore qprocess.h)
845 katie_generate_obsolete(QPinchGesture QtGui qgesture.h)
846 katie_generate_obsolete(QPlainTextDocumentLayout QtGui qplaintextedit.h)
847 katie_generate_obsolete(QPointF QtCore qpoint.h)
848 katie_generate_obsolete(QPolygonF QtGui qpolygon.h)
849 katie_generate_obsolete(QProcessEnvironment QtCore qprocess.h)
850 katie_generate_obsolete(QRadialGradient QtGui qbrush.h)
851 katie_generate_obsolete(QReadLocker QtCore qreadwritelock.h)
852 katie_generate_obsolete(QRectF QtCore qrect.h)
853 katie_generate_obsolete(QRegExpValidator QtGui qvalidator.h)
854 katie_generate_obsolete(QResizeEvent QtGui qevent.h)
855 katie_generate_obsolete(QReturnArgument QtCore qobjectdefs.h)
856 katie_generate_obsolete(QScopedArrayPointer QtCore qscopedpointer.h)
857 katie_generate_obsolete(QScopedPointerArrayDeleter QtCore qscopedpointer.h)
858 katie_generate_obsolete(QScopedPointerPodDeleter QtCore qscopedpointer.h)
859 katie_generate_obsolete(QSetIterator QtCore qset.h)
860 katie_generate_obsolete(QSharedDataPointer QtCore qshareddata.h)
861 katie_generate_obsolete(QShortcutEvent QtGui qevent.h)
862 katie_generate_obsolete(QShowEvent QtGui qevent.h)
863 katie_generate_obsolete(QSizeF QtCore qsize.h)
864 katie_generate_obsolete(QSpacerItem QtGui qlayoutitem.h)
865 katie_generate_obsolete(QSplitterHandle QtGui qsplitter.h)
866 katie_generate_obsolete(QSpontaneKeyEvent QtTest qtestspontaneevent.h)
867 katie_generate_obsolete(QSqlDriverFactoryInterface QtSql qsqldriverplugin.h)
868 katie_generate_obsolete(QSqlRelation QtSql qsqlrelationaltablemodel.h)
869 katie_generate_obsolete(QStandardItemEditorCreator QtGui qitemeditorfactory.h)
870 katie_generate_obsolete(QStandardItem QtGui qstandarditemmodel.h)
871 katie_generate_obsolete(QStatusTipEvent QtGui qevent.h)
872 katie_generate_obsolete(QStdWString QtCore qstring.h)
873 katie_generate_obsolete(QStringListIterator QtCore qstringlist.h)
874 katie_generate_obsolete(QStringRef QtCore qstring.h)
875 katie_generate_obsolete(QStyleFactoryInterface QtGui qstyleplugin.h)
876 katie_generate_obsolete(QStyleHintReturnMask QtGui qstyleoption.h)
877 katie_generate_obsolete(QStyleHintReturn QtGui qstyleoption.h)
878 katie_generate_obsolete(QStyleHintReturnVariant QtGui qstyleoption.h)
879 katie_generate_obsolete(QStyleOptionButton QtGui qstyleoption.h)
880 katie_generate_obsolete(QStyleOptionComboBox QtGui qstyleoption.h)
881 katie_generate_obsolete(QStyleOptionComplex QtGui qstyleoption.h)
882 katie_generate_obsolete(QStyleOptionDockWidget QtGui qstyleoption.h)
883 katie_generate_obsolete(QStyleOptionDockWidgetV2 QtGui qstyleoption.h)
884 katie_generate_obsolete(QStyleOptionFocusRect QtGui qstyleoption.h)
885 katie_generate_obsolete(QStyleOptionFrame QtGui qstyleoption.h)
886 katie_generate_obsolete(QStyleOptionFrameV2 QtGui qstyleoption.h)
887 katie_generate_obsolete(QStyleOptionFrameV3 QtGui qstyleoption.h)
888 katie_generate_obsolete(QStyleOptionGraphicsItem QtGui qstyleoption.h)
889 katie_generate_obsolete(QStyleOptionGroupBox QtGui qstyleoption.h)
890 katie_generate_obsolete(QStyleOptionHeader QtGui qstyleoption.h)
891 katie_generate_obsolete(QStyleOptionMenuItem QtGui qstyleoption.h)
892 katie_generate_obsolete(QStyleOptionProgressBar QtGui qstyleoption.h)
893 katie_generate_obsolete(QStyleOptionProgressBarV2 QtGui qstyleoption.h)
894 katie_generate_obsolete(QStyleOptionRubberBand QtGui qstyleoption.h)
895 katie_generate_obsolete(QStyleOptionSizeGrip QtGui qstyleoption.h)
896 katie_generate_obsolete(QStyleOptionSlider QtGui qstyleoption.h)
897 katie_generate_obsolete(QStyleOptionSpinBox QtGui qstyleoption.h)
898 katie_generate_obsolete(QStyleOptionTabBarBase QtGui qstyleoption.h)
899 katie_generate_obsolete(QStyleOptionTabBarBaseV2 QtGui qstyleoption.h)
900 katie_generate_obsolete(QStyleOptionTab QtGui qstyleoption.h)
901 katie_generate_obsolete(QStyleOptionTabV2 QtGui qstyleoption.h)
902 katie_generate_obsolete(QStyleOptionTabV3 QtGui qstyleoption.h)
903 katie_generate_obsolete(QStyleOptionTabWidgetFrame QtGui qstyleoption.h)
904 katie_generate_obsolete(QStyleOptionTabWidgetFrameV2 QtGui qstyleoption.h)
905 katie_generate_obsolete(QStyleOptionTitleBar QtGui qstyleoption.h)
906 katie_generate_obsolete(QStyleOptionToolBar QtGui qstyleoption.h)
907 katie_generate_obsolete(QStyleOptionToolBox QtGui qstyleoption.h)
908 katie_generate_obsolete(QStyleOptionToolBoxV2 QtGui qstyleoption.h)
909 katie_generate_obsolete(QStyleOptionToolButton QtGui qstyleoption.h)
910 katie_generate_obsolete(QStyleOptionViewItem QtGui qstyleoption.h)
911 katie_generate_obsolete(QStyleOptionViewItemV2 QtGui qstyleoption.h)
912 katie_generate_obsolete(QStyleOptionViewItemV3 QtGui qstyleoption.h)
913 katie_generate_obsolete(QStyleOptionViewItemV4 QtGui qstyleoption.h)
914 katie_generate_obsolete(QSwipeGesture QtGui qgesture.h)
915 katie_generate_obsolete(QSysInfo QtCore qglobal.h)
916 katie_generate_obsolete(QTableWidgetItem QtGui qtablewidget.h)
917 katie_generate_obsolete(QTableWidgetSelectionRange QtGui qtablewidget.h)
918 katie_generate_obsolete(QtAlgorithms QtCore qalgorithms.h)
919 katie_generate_obsolete(QTapAndHoldGesture QtGui qgesture.h)
920 katie_generate_obsolete(QTapGesture QtGui qgesture.h)
921 katie_generate_obsolete(QtCleanUpFunction QtCore qcoreapplication.h)
922 katie_generate_obsolete(QtConfig QtCore qconfig.h)
923 katie_generate_obsolete(QtContainerFwd QtCore qcontainerfwd.h)
924 katie_generate_obsolete(QtDebug QtCore qdebug.h)
925 katie_generate_obsolete(QtEndian QtCore qendian.h)
926 katie_generate_obsolete(QTestAccessibilityEvent QtTest qtestaccessible.h)
927 katie_generate_obsolete(QTestAccessibility QtTest qtestaccessible.h)
928 katie_generate_obsolete(QTestDelayEvent QtTest qtestevent.h)
929 katie_generate_obsolete(QTestEventList QtTest qtestevent.h)
930 katie_generate_obsolete(QTestKeyClicksEvent QtTest qtestevent.h)
931 katie_generate_obsolete(QTestKeyEvent QtTest qtestevent.h)
932 katie_generate_obsolete(QTestMouseEvent QtTest qtestevent.h)
933 katie_generate_obsolete(QtEvents QtGui qevent.h)
934 katie_generate_obsolete(QTextBlockFormat QtGui qtextformat.h)
935 katie_generate_obsolete(QTextBlockGroup QtGui qtextobject.h)
936 katie_generate_obsolete(QTextBlock QtGui qtextobject.h)
937 katie_generate_obsolete(QTextBlockUserData QtGui qtextobject.h)
938 katie_generate_obsolete(QTextCharFormat QtGui qtextformat.h)
939 katie_generate_obsolete(QTextDecoder QtCore qtextcodec.h)
940 katie_generate_obsolete(QTextEncoder QtCore qtextcodec.h)
941 katie_generate_obsolete(QTextFragment QtGui qtextobject.h)
942 katie_generate_obsolete(QTextFrameFormat QtGui qtextformat.h)
943 katie_generate_obsolete(QTextFrameLayoutData QtGui qtextobject.h)
944 katie_generate_obsolete(QTextFrame QtGui qtextobject.h)
945 katie_generate_obsolete(QTextImageFormat QtGui qtextformat.h)
946 katie_generate_obsolete(QTextInlineObject QtGui qtextlayout.h)
947 katie_generate_obsolete(QTextItem QtGui qpaintengine.h)
948 katie_generate_obsolete(QTextLength QtGui qtextformat.h)
949 katie_generate_obsolete(QTextLine QtGui qtextlayout.h)
950 katie_generate_obsolete(QTextListFormat QtGui qtextformat.h)
951 katie_generate_obsolete(QTextObjectInterface QtGui qabstracttextdocumentlayout.h)
952 katie_generate_obsolete(QTextStreamFunction QtCore qtextstream.h)
953 katie_generate_obsolete(QTextStreamManipulator QtCore qtextstream.h)
954 katie_generate_obsolete(QTextTableCellFormat QtGui qtextformat.h)
955 katie_generate_obsolete(QTextTableCell QtGui qtexttable.h)
956 katie_generate_obsolete(QTextTableFormat QtGui qtextformat.h)
957 katie_generate_obsolete(QtGlobal QtCore qglobal.h)
958 katie_generate_obsolete(QTileRules QtGui qdrawutil.h)
959 katie_generate_obsolete(QTimeEdit QtGui qdatetimeedit.h)
960 katie_generate_obsolete(QTime QtCore qdatetime.h)
961 katie_generate_obsolete(QTimerEvent QtCore qcoreevent.h)
962 katie_generate_obsolete(QtMsgHandler QtCore qglobal.h)
963 katie_generate_obsolete(QTouchEvent QtGui qevent.h)
964 katie_generate_obsolete(QtPluginInstanceFunction QtCore qplugin.h)
965 katie_generate_obsolete(QtPlugin QtCore qplugin.h)
966 katie_generate_obsolete(Qt QtCore qnamespace.h)
967 katie_generate_obsolete(QTreeWidgetItem QtGui qtreewidget.h)
968 katie_generate_obsolete(QtTestGui QtTest qtest_gui.h)
969 katie_generate_obsolete(QTypeInfo QtCore qglobal.h)
970 katie_generate_obsolete(QUndoCommand QtGui qundostack.h)
971 katie_generate_obsolete(QUnixPrintWidget QtGui qprintdialog.h)
972 katie_generate_obsolete(QUpdateLaterEvent QtGui qevent.h)
973 katie_generate_obsolete(QVariantHash QtCore qvariant.h)
974 katie_generate_obsolete(QVariantList QtCore qvariant.h)
975 katie_generate_obsolete(QVariantMap QtCore qvariant.h)
976 katie_generate_obsolete(QVBoxLayout QtGui qboxlayout.h)
977 katie_generate_obsolete(QVectorData QtCore qvector.h)
978 katie_generate_obsolete(QVectorIterator QtCore qvector.h)
979 katie_generate_obsolete(QVectorTypedData QtCore qvector.h)
980 katie_generate_obsolete(QWeakPointer QtCore qsharedpointer.h)
981 katie_generate_obsolete(QWhatsThisClickedEvent QtGui qevent.h)
982 katie_generate_obsolete(QWheelEvent QtGui qevent.h)
983 katie_generate_obsolete(QWidgetData QtGui qwidget.h)
984 katie_generate_obsolete(QWidgetItem QtGui qlayoutitem.h)
985 katie_generate_obsolete(QWidgetItemV2 QtGui qlayoutitem.h)
986 katie_generate_obsolete(QWidgetList QtGui qwindowdefs.h)
987 katie_generate_obsolete(QWidgetMapper QtGui qwindowdefs.h)
988 katie_generate_obsolete(QWidgetSet QtGui qwindowdefs.h)
989 katie_generate_obsolete(QWindowStateChangeEvent QtGui qevent.h)
990 katie_generate_obsolete(QWizardPage QtGui qwizard.h)
991 katie_generate_obsolete(QWriteLocker QtCore qreadwritelock.h)
992 katie_generate_obsolete(QX11EmbedContainer QtGui qx11embed_x11.h)
993 katie_generate_obsolete(QX11EmbedWidget QtGui qx11embed_x11.h)
994 katie_generate_obsolete(QX11Info QtGui qx11info_x11.h)
995 katie_generate_obsolete(QXmlAttributes QtXml qxml.h)
996 katie_generate_obsolete(QXmlContentHandler QtXml qxml.h)
997 katie_generate_obsolete(QXmlDeclHandler QtXml qxml.h)
998 katie_generate_obsolete(QXmlDefaultHandler QtXml qxml.h)
999 katie_generate_obsolete(QXmlDTDHandler QtXml qxml.h)
1000 katie_generate_obsolete(QXmlEntityResolver QtXml qxml.h)
1001 katie_generate_obsolete(QXmlErrorHandler QtXml qxml.h)
1002 katie_generate_obsolete(QXmlInputSource QtXml qxml.h)
1003 katie_generate_obsolete(QXmlLexicalHandler QtXml qxml.h)
1004 katie_generate_obsolete(QXmlLocator QtXml qxml.h)
1005 katie_generate_obsolete(QXmlNamespaceSupport QtXml qxml.h)
1006 katie_generate_obsolete(QXmlParseException QtXml qxml.h)
1007 katie_generate_obsolete(QXmlReader QtXml qxml.h)
1008 katie_generate_obsolete(QXmlSimpleReader QtXml qxml.h)
1009 katie_generate_obsolete(QXmlStreamAttribute QtXml qxmlstream.h)
1010 katie_generate_obsolete(QXmlStreamAttributes QtXml qxmlstream.h)
1011 katie_generate_obsolete(QXmlStreamEntityDeclaration QtXml qxmlstream.h)
1012 katie_generate_obsolete(QXmlStreamEntityDeclarations QtXml qxmlstream.h)
1013 katie_generate_obsolete(QXmlStreamEntityResolver QtXml qxmlstream.h)
1014 katie_generate_obsolete(QXmlStreamNamespaceDeclaration QtXml qxmlstream.h)
1015 katie_generate_obsolete(QXmlStreamNamespaceDeclarations QtXml qxmlstream.h)
1016 katie_generate_obsolete(QXmlStreamNotationDeclaration QtXml qxmlstream.h)
1017 katie_generate_obsolete(QXmlStreamNotationDeclarations QtXml qxmlstream.h)
1018 katie_generate_obsolete(QXmlStreamReader QtXml qxmlstream.h)
1019 katie_generate_obsolete(QXmlStreamWriter QtXml qxmlstream.h)
1020 # those have shuffled from QtDesigner to QtUiTools
1021 katie_generate_obsolete(formbuilder.h QtDesigner ../QtUiTools/formbuilder.h)
1022 katie_generate_obsolete(customwidget.h QtDesigner ../QtUiTools/customwidget.h)
1023 katie_generate_obsolete(qdesignercustomwidgetinterface.h QtDesigner ../QtUiTools/customwidget.h)
1024
1025 katie_string_wrap("${KATIE_DEFINITIONS}" KATIE_DEFINITIONS)
1026
1027 configure_file(
1028     ${CMAKE_SOURCE_DIR}/cmake/KatieConfig.cmake
1029     ${CMAKE_BINARY_DIR}/KatieConfig.cmake
1030     @ONLY
1031 )
1032
1033 configure_file(
1034     ${CMAKE_SOURCE_DIR}/cmake/KatieConfigVersion.cmake
1035     ${CMAKE_BINARY_DIR}/KatieConfigVersion.cmake
1036     @ONLY
1037 )
1038
1039 configure_file(
1040     ${CMAKE_SOURCE_DIR}/cmake/ld.so.conf.cmake
1041     ${CMAKE_BINARY_DIR}/ld.so.conf
1042     @ONLY
1043 )
1044
1045 configure_file(
1046     ${CMAKE_SOURCE_DIR}/cmake/profile.sh.cmake
1047     ${CMAKE_BINARY_DIR}/profile.sh
1048     @ONLY
1049 )
1050
1051 install(
1052     FILES
1053     ${CMAKE_BINARY_DIR}/KatieConfig.cmake
1054     ${CMAKE_BINARY_DIR}/KatieConfigVersion.cmake
1055     ${CMAKE_SOURCE_DIR}/cmake/Qt4UseFile.cmake
1056     DESTINATION ${KATIE_CMAKE_PATH}
1057     COMPONENT Devel
1058 )
1059
1060 install(
1061     EXPORT KatieTargets
1062     NAMESPACE Katie::
1063     DESTINATION ${KATIE_CMAKE_PATH}
1064     FILE KatieTargets.cmake
1065     COMPONENT Devel
1066 )
1067
1068 install(
1069     FILES ${CMAKE_BINARY_DIR}/ld.so.conf
1070     DESTINATION ${KATIE_LDCONF_PATH}
1071     RENAME katie-${KATIE_PROCESSOR}.conf
1072     COMPONENT Runtime
1073 )
1074
1075 install(
1076     FILES ${CMAKE_BINARY_DIR}/profile.sh
1077     DESTINATION ${KATIE_PROFILE_PATH}
1078     RENAME katie-${KATIE_PROCESSOR}.sh
1079     COMPONENT Runtime
1080 )
1081
1082 katie_string_unwrap("${KATIE_COMPONENTS}" KATIE_COMPONENTS "Kt")
1083 katie_string_unwrap("${KATIE_TOOLS}" KATIE_TOOLS)
1084
1085 # custom install targets to make packaging easier
1086 if(KATIE_UNIFDEF)
1087     add_custom_target(install-devel
1088         COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Devel -P cmake_install.cmake
1089         WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
1090         # installing from script does not execute other scripts
1091         COMMAND "${CMAKE_COMMAND}" -DUNIFDEF_EXECUTABLE="${KATIE_UNIFDEF}" -DHEADERS_DIRECTORY="${KATIE_HEADERS_PATH}" -P "${CMAKE_SOURCE_DIR}/cmake/modules/OptimizeHeaders.cmake"
1092     )
1093 else()
1094     add_custom_target(install-devel
1095         COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Devel -P cmake_install.cmake
1096         WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
1097     )
1098 endif()
1099
1100 add_custom_target(install-runtime
1101     DEPENDS ${KATIE_COMPONENTS}
1102     COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Runtime -P cmake_install.cmake
1103     WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
1104 )
1105
1106 add_custom_target(install-tools
1107     DEPENDS ${KATIE_TOOLS}
1108     COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Tools -P cmake_install.cmake
1109     WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
1110 )
1111
1112 add_custom_target(install-doc
1113     COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Doc -P cmake_install.cmake
1114     WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
1115 )
1116
1117 feature_summary(
1118     WHAT ALL
1119     FATAL_ON_MISSING_REQUIRED_PACKAGES
1120 )