92 lines
No EOL
3.9 KiB
CMake
92 lines
No EOL
3.9 KiB
CMake
cmake_minimum_required(VERSION 3.29)
|
|
|
|
project(ext_pyqt5)
|
|
include(${CMAKE_SOURCE_DIR}/../cmake/base-dep-options.cmake)
|
|
include(${CMAKE_SOURCE_DIR}/../cmake/krita_initialize_python.cmake)
|
|
|
|
if(UNIX)
|
|
if (QT_ENABLE_ASAN)
|
|
set(_extra_pyqt_config --qmake-setting QMAKE_LFLAGS+=-fsanitize=address --qmake-setting QMAKE_CFLAGS+=-fsanitize=address --qmake-setting QMAKE_CXXFLAGS+=-fsanitize=address)
|
|
elseif(APPLE)
|
|
if(MACOS_ARCHS GREATER 1)
|
|
set(_extra_pyqt_config --qmake-setting "QMAKE_APPLE_DEVICE_ARCHS=${CMAKE_OSX_ARCHITECTURES_STR}")
|
|
endif()
|
|
else ()
|
|
unset(_extra_pyqt_config)
|
|
endif ()
|
|
|
|
ExternalProject_Add( ext_pyqt5
|
|
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
|
|
URL https://files.pythonhosted.org/packages/0e/07/c9ed0bd428df6f87183fca565a79fee19fa7c88c7f00a7f011ab4379e77a/PyQt5-5.15.11.tar.gz
|
|
URL_HASH SHA256=fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52
|
|
|
|
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env
|
|
"PYTHONPATH=${KRITA_PYTHONPATH}"
|
|
${EXTPREFIX}/bin/sip-build --confirm-license --no-designer-plugin --no-qml-plugin --no-dbus-python --no-tools --no-make --jobs ${SUBMAKE_JOBS} ${_extra_pyqt_config}
|
|
|
|
BUILD_COMMAND ${CMAKE_COMMAND} -E env
|
|
"PYTHONPATH=${KRITA_PYTHONPATH}"
|
|
make -C <SOURCE_DIR>/build -j${SUBMAKE_JOBS}
|
|
|
|
# force single-threaded installation to avoid
|
|
# race conditions in post-install .py script
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E env
|
|
"PYTHONPATH=${KRITA_PYTHONPATH}"
|
|
${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
|
|
${CMAKE_COMMAND} -DMAKE_COMMAND=make -P ${KRITA_CI_RUN_MAKE_WITH_INSTALL_ROOT} -- -j1 install
|
|
COMMAND ${CMAKE_COMMAND} -DPREFIX=${EXTPREFIX} -P ${KRITA_CI_FIX_PYTHON_SHEBANG_LINES}
|
|
|
|
BUILD_IN_SOURCE 1
|
|
|
|
UPDATE_COMMAND ""
|
|
)
|
|
|
|
elseif(WIN32)
|
|
if(MINGW)
|
|
set(_compiler -c mingw32)
|
|
set(_make_command mingw32-make)
|
|
elseif(MSVC)
|
|
set(_compiler -c msvc)
|
|
set(_make_command jom)
|
|
endif()
|
|
|
|
if (QT_ENABLE_ASAN)
|
|
set(_extra_pyqt_config --qmake-setting QMAKE_LFLAGS+=-fsanitize=address --qmake-setting QMAKE_CFLAGS+=-fsanitize=address --qmake-setting QMAKE_CXXFLAGS+=-fsanitize=address)
|
|
else ()
|
|
unset(_extra_pyqt_config)
|
|
endif ()
|
|
|
|
krita_to_native_path("${EXTPREFIX}" _pyqt_prefix)
|
|
krita_to_native_path("${KRITA_PYTHONPATH}" _krita_pythonpath)
|
|
string(TOLOWER ${_krita_pythonpath} _krita_pythonpath)
|
|
krita_to_native_environment_path_list("${_krita_pythonpath}" _krita_pythonpath)
|
|
|
|
ExternalProject_Add( ext_pyqt5
|
|
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
|
|
URL https://files.pythonhosted.org/packages/0e/07/c9ed0bd428df6f87183fca565a79fee19fa7c88c7f00a7f011ab4379e77a/PyQt5-5.15.11.tar.gz
|
|
URL_HASH SHA256=fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52
|
|
|
|
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env
|
|
PYTHONPATH=${_krita_pythonpath}
|
|
${EXTPREFIX}/bin/sip-build --confirm-license --no-designer-plugin --no-qml-plugin --no-dbus-python --no-tools --no-make --target-dir ${EXTPREFIX}\\lib\\site-packages --jobs ${SUBMAKE_JOBS} ${_extra_pyqt_config}
|
|
|
|
BUILD_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
|
|
${CMAKE_COMMAND} -E env
|
|
PYTHONPATH=${_krita_pythonpath}
|
|
${_make_command} -j${SUBMAKE_JOBS}
|
|
|
|
# force single-threaded installation to avoid
|
|
# race conditions in post-install .py script
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
|
|
${CMAKE_COMMAND} -E env
|
|
PYTHONPATH=${_krita_pythonpath}
|
|
${CMAKE_COMMAND} -DMAKE_COMMAND=${_make_command} -P ${KRITA_CI_RUN_MAKE_WITH_INSTALL_ROOT} -- -j1 install
|
|
COMMAND ${CMAKE_COMMAND} -DPREFIX=${EXTPREFIX} -P ${KRITA_CI_FIX_PYTHON_INSTALL_SCHEME}
|
|
|
|
BUILD_IN_SOURCE 1
|
|
|
|
UPDATE_COMMAND ""
|
|
)
|
|
endif()
|
|
|
|
krita_add_to_ci_targets(ext_pyqt5) |