Warning, /graphics/krita/3rdparty/ext_qt/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 SET(EXTPREFIX_qt  "${EXTPREFIX}")
0002 
0003 set(QT_GIT_TAG "6d099d35da4958861ea62e2f54271a1dd8ea7707")
0004 
0005 if (MINGW)
0006   set(QT_BUILD_COMMAND   mingw32-make -j${SUBMAKE_JOBS})
0007   set(QT_INSTALL_COMMAND mingw32-make -j${SUBMAKE_JOBS} install)
0008 elseif (MSVC)
0009   set(QT_BUILD_COMMAND jom -j${SUBMAKE_JOBS})
0010   set(QT_INSTALL_COMMAND jom -j${SUBMAKE_JOBS} install)
0011 elseif (CMAKE_GENERATOR MATCHES "Makefiles")
0012   set (QT_BUILD_COMMAND $(MAKE) -j${SUBMAKE_JOBS})
0013   set (QT_INSTALL_COMMAND $(MAKE) install)
0014 else()
0015   set (QT_BUILD_COMMAND make -j${SUBMAKE_JOBS})
0016   set (QT_INSTALL_COMMAND make install)
0017 endif()
0018 
0019 if (WIN32)
0020 
0021     if(MINGW)
0022       if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
0023         set(QT_CONFIG_PLATFORM win32-clang-g++)
0024       else()
0025         set(QT_CONFIG_PLATFORM win32-g++)
0026       endif()
0027     elseif(MSVC)
0028       ExternalProject_Add(ext_jom
0029         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0030         URL https://download.qt.io/official_releases/jom/jom_1_1_3.zip
0031         URL_HASH SHA256=128fdd846fe24f8594eed37d1d8929a0ea78df563537c0c1b1861a635013fff8
0032 
0033         BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying Jom
0034         CONFIGURE_COMMAND ""
0035         INSTALL_COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/jom.exe ${EXTPREFIX_qt}/bin
0036 
0037         UPDATE_COMMAND ""
0038       )
0039 
0040       set(QT_CONFIG_PLATFORM win32-msvc)
0041       list(APPEND QT_EXTRA_DEPS ext_jom)
0042     endif(MINGW)
0043 
0044     list(APPEND _QT_conf -skip qt3d -skip qtactiveqt -skip qtcanvas3d
0045         -skip qtconnectivity -skip qtdoc
0046         -skip qtlocation -skip qtsensors -skip qtserialport -skip qtwayland
0047         -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview
0048         -skip qtxmlpatterns -nomake examples -nomake tools
0049         -no-compile-examples -no-dbus -no-iconv -no-qml-debug
0050         -no-libproxy -no-system-proxies -icu -no-mtdev
0051         -skip qtcharts -skip qtdatavis3d -skip qtgamepad -skip qtnetworkauth
0052         -skip qtpurchasing -skip qtremoteobjects -skip qtscxml -skip qtserialbus
0053         -skip qtspeech -skip qtvirtualkeyboard -qt-sqlite
0054         #
0055         -system-zlib -qt-pcre -qt-libpng -qt-libjpeg -openssl-linked -qt-freetype -qt-harfbuzz
0056         -I ${EXTPREFIX_qt}/include
0057         -L ${EXTPREFIX_qt}/lib
0058         #
0059         -opensource -confirm-license
0060         -feature-relocatable
0061         -no-feature-d3d12
0062         -no-feature-qdoc
0063         -no-direct2d
0064         #
0065         -release -platform ${QT_CONFIG_PLATFORM} -prefix ${EXTPREFIX_qt}
0066         QMAKE_LFLAGS_APP+=${SECURITY_EXE_LINKER_FLAGS}
0067         QMAKE_LFLAGS_SHLIB+=${SECURITY_SHARED_LINKER_FLAGS}
0068         QMAKE_LFLAGS_SONAME+=${SECURITY_SHARED_LINKER_FLAGS}
0069     )
0070     if (MSVC)
0071       list(APPEND _QT_conf
0072         QMAKE_CFLAGS+=${SECURITY_C_FLAGS}
0073         QMAKE_CXXFLAGS+=${SECURITY_CXX_FLAGS}
0074       )
0075     endif (MSVC)
0076 
0077     if(QT_ENABLE_DEBUG_INFO OR WIN32)
0078         # Set the option to build Qt with debugging info enabled
0079         list(APPEND _QT_conf -force-debug-info)
0080     endif(QT_ENABLE_DEBUG_INFO OR WIN32)
0081     if (QT_ENABLE_ASAN)
0082         list(APPEND _QT_conf -sanitize address)
0083     endif ()
0084     if (MINGW)
0085         if (NOT QT_ENABLE_DEBUG_INFO)
0086             # Generate minimal debug info for backtraces
0087             list(APPEND _QT_conf
0088                 QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO-=-g
0089                 QMAKE_CFLAGS+=-g1
0090                 QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO-=-g
0091                 QMAKE_CXXFLAGS+=-g1
0092             )
0093             if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
0094                 # This is needed for proper C++ function signatures
0095                 list(APPEND _QT_conf
0096                     QMAKE_CFLAGS+=-fdebug-info-for-profiling
0097                     QMAKE_CXXFLAGS+=-fdebug-info-for-profiling
0098                 )
0099             endif ()
0100         endif ()
0101         if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
0102             # Workaround for DrMingw, see parent CMakeLists.txt
0103             list(APPEND _QT_conf
0104                 QMAKE_CFLAGS+=-gdwarf-aranges
0105                 QMAKE_CXXFLAGS+=-gdwarf-aranges
0106             )
0107         endif ()
0108     elseif (MSVC)
0109       if (NOT QT_ENABLE_DEBUG_INFO)
0110         # Generate minimal debug info for backtraces
0111         list(APPEND _QT_conf
0112             QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO-=-Zi
0113             QMAKE_CFLAGS+=-Zi
0114             QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO-=-Zi
0115             QMAKE_CXXFLAGS+=-Zi
0116         )
0117       endif ()
0118     endif ()
0119     list(APPEND _QT_conf -opengl dynamic)
0120 
0121     if (NOT PERL_FOUND) # Implies strawberry perl
0122       list(APPEND QT_EXTRA_DEPS ext_strawberryperl)
0123     endif()
0124 
0125 
0126   ExternalProject_Add(
0127       ext_qt
0128       DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0129       GIT_REPOSITORY https://invent.kde.org/szaman/qt5.git
0130       GIT_TAG ${QT_GIT_TAG}
0131       GIT_SUBMODULES qtbase qtdeclarative qtimageformats qttools qtsvg qtwinextras qttranslations
0132       GIT_SUBMODULES_RECURSE false
0133       GIT_PROGRESS true
0134       GIT_REMOTE_UPDATE_STRATEGY REBASE
0135 
0136       INSTALL_DIR ${EXTPREFIX_qt}
0137       CONFIGURE_COMMAND <SOURCE_DIR>/configure.bat ${_QT_conf}
0138 
0139       BUILD_COMMAND ${QT_BUILD_COMMAND}
0140 
0141       INSTALL_COMMAND ${QT_INSTALL_COMMAND}
0142       UPDATE_COMMAND ""
0143       # Use a short name to reduce the chance of exceeding path length limit
0144       SOURCE_DIR s
0145       BINARY_DIR b
0146       DEPENDS ext_googleangle ${OPENSSL_DEP} ${QT_EXTRA_DEPS} ${ZLIB_DEP} ext_icu
0147   )
0148 elseif (ANDROID)
0149   ExternalProject_Add(
0150       ext_qt
0151       DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0152       GIT_REPOSITORY https://invent.kde.org/szaman/qt5.git
0153       GIT_TAG ${QT_GIT_TAG}
0154       GIT_SUBMODULES qtbase qtdeclarative qtimageformats qttools qtsvg qttranslations qtandroidextras
0155       GIT_SUBMODULES_RECURSE false
0156       GIT_PROGRESS true
0157       GIT_REMOTE_UPDATE_STRATEGY REBASE
0158 
0159       # TODO(sh_zam): We can probably skip the skipping now.
0160       CONFIGURE_COMMAND <SOURCE_DIR>/configure -prefix ${EXTPREFIX_qt} -opensource -confirm-license -verbose
0161           -android-sdk ${ANDROID_SDK_ROOT} -android-ndk ${CMAKE_ANDROID_NDK} -android-arch ${ANDROID_ABI}
0162           -xplatform android-clang -android-ndk-platform android-23
0163           -make libs -qt-sqlite -openssl-linked OPENSSL_PREFIX=${EXTPREFIX_qt} -system-zlib
0164           -nomake examples -nomake tests -nomake tools -skip qt3d -skip qtactiveqt -skip qtcanvas3d
0165           -skip qtconnectivity -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine
0166           -skip qtwebsockets -skip qtwebview -skip qtserialport  -skip qtvirtualkeyboard -skip qtspeech
0167           -skip qtsensors  -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtnetworkauth
0168           -skip qtcharts -skip qtdatavis3d -skip qtgamepad -skip qtpurchasing  -skip qtserialbus
0169           -icu
0170           -I ${EXTPREFIX_qt}/include
0171           -L ${EXTPREFIX_qt}/lib
0172 
0173       BUILD_COMMAND ${QT_BUILD_COMMAND}
0174       INSTALL_COMMAND ${QT_INSTALL_COMMAND}
0175 
0176       INSTALL_DIR ${EXTPREFIX_qt}
0177 
0178       UPDATE_COMMAND ""
0179       BUILD_IN_SOURCE 0
0180 
0181       DEPENDS ext_openssl ${ZLIB_DEP} ext_icu
0182 )
0183 elseif (NOT APPLE)
0184     if (QT_ENABLE_DEBUG_INFO)
0185         # Set the option to build Qt with debugging info enabled
0186         set(QT_DEBUG_OPTIONS -force-debug-info)
0187     endif()
0188     if (QT_ENABLE_ASAN)
0189         list(APPEND _QT_conf -sanitize address)
0190     endif ()
0191 
0192 
0193     ExternalProject_Add(
0194       ext_qt
0195       DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0196       GIT_REPOSITORY https://invent.kde.org/szaman/qt5.git
0197       GIT_TAG ${QT_GIT_TAG}
0198       GIT_SUBMODULES qtbase qtdeclarative qtimageformats qttools qtsvg qtx11extras qttranslations
0199       GIT_SUBMODULES_RECURSE false
0200       GIT_PROGRESS true
0201       GIT_REMOTE_UPDATE_STRATEGY REBASE
0202 
0203       CMAKE_ARGS -DOPENSSL_LIBS='-L${EXTPREFIX_qt}/lib -lssl -lcrypto'
0204 
0205       CONFIGURE_COMMAND <SOURCE_DIR>/configure -prefix ${EXTPREFIX_qt} -opensource -confirm-license -feature-relocatable -openssl-linked -verbose -nomake examples -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtandroidextras -skip qtserialport -skip qtdatavis3d -skip qtvirtualkeyboard -skip qtspeech -skip qtsensors -skip qtgamepad -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtnetworkauth  -skip qtcharts -skip qtdatavis3d -skip qtgamepad -skip qtpurchasing -skip qtscxml -skip qtserialbus -skip qtspeech -skip qtvirtualkeyboard -qt-sqlite -system-zlib ${QT_DEBUG_OPTIONS}
0206 
0207       BUILD_COMMAND ${QT_BUILD_COMMAND}
0208       INSTALL_COMMAND ${QT_INSTALL_COMMAND}
0209 
0210       INSTALL_DIR ${EXTPREFIX_qt}
0211 
0212 
0213       UPDATE_COMMAND ""
0214       BUILD_IN_SOURCE OFF
0215       DEPENDS ${ZLIB_DEP}
0216   )
0217 else( APPLE )
0218 
0219     set(MACOS_QT_CONFIGURE_OPS
0220         -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdoc -skip qtlocation -skip qtsensors -skip qtserialport -skip qtwayland
0221         -skip qtwebchannel -skip qtwebsockets -skip qtwebview -skip qtwebengine -skip qtxmlpatterns
0222         -skip qtcharts -skip qtdatavis3d  -skip qtgamepad -skip qtnetworkauth
0223         -skip qtpurchasing -skip qtremoteobjects -skip qtscxml -skip qtserialbus -skip qtspeech -skip qtvirtualkeyboard -nomake examples -nomake tools -no-compile-examples
0224         -no-dbus -no-iconv -no-qml-debug -no-libproxy -no-system-proxies -icu -no-mtdev -system-zlib -qt-pcre -qt-sqlite
0225         -opensource -confirm-license -openssl-linked -prefix ${EXTPREFIX_qt}
0226     )
0227 
0228     kis_ExternalProject_Add_macos(
0229       ext_qt
0230 
0231       GIT_REPOSITORY https://invent.kde.org/szaman/qt5.git
0232       GIT_TAG ${QT_GIT_TAG}
0233       GIT_SUBMODULES qtbase qtdeclarative qtimageformats qttools qtsvg qtmacextras qttranslations
0234       GIT_SUBMODULES_RECURSE false
0235       GIT_PROGRESS true
0236       GIT_REMOTE_UPDATE_STRATEGY REBASE
0237 
0238       WORKING_DIRECTORY <BINARY_DIR>-@ARCH@
0239 
0240       CONFIGURE_COMMAND -e "OPENSSL_LIBS=-L${EXTPREFIX_qt}/lib -lssl -lcrypto"
0241           <SOURCE_DIR>/configure
0242           ${MACOS_QT_CONFIGURE_OPS}
0243           -device-option QMAKE_APPLE_DEVICE_ARCHS=@ARCH@
0244 
0245       BUILD_COMMAND ${QT_BUILD_COMMAND}
0246 
0247       DEPENDS ${ZLIB_DEP} ext_icu ext_openssl
0248     )
0249 
0250     # Qt needs separate builds for universal compilation before qt6
0251     foreach(ARCH ${CMAKE_OSX_ARCHITECTURES})
0252         mkdir_build_arch_dir(${ARCH})
0253     endforeach()
0254 
0255 endif()