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()