Changeset View
Changeset View
Standalone View
Standalone View
src/qt/CMakeLists.txt
Show All 12 Lines | |||||
# Find out more about Qt. This is similar to | # Find out more about Qt. This is similar to | ||||
# http://code.qt.io/cgit/qt/qtwebkit.git/tree/Source/cmake/OptionsQt.cmake | # http://code.qt.io/cgit/qt/qtwebkit.git/tree/Source/cmake/OptionsQt.cmake | ||||
get_target_property(QT_CORE_TYPE Qt5::Core TYPE) | get_target_property(QT_CORE_TYPE Qt5::Core TYPE) | ||||
if(QT_CORE_TYPE MATCHES STATIC) | if(QT_CORE_TYPE MATCHES STATIC) | ||||
set(QT_STATIC_BUILD ON) | set(QT_STATIC_BUILD ON) | ||||
endif() | endif() | ||||
# Determine the Qt libraries directory from the QT5::Core library location | |||||
get_target_property(QT_CORE_LIB_LOCATION Qt5::Core LOCATION) | |||||
get_filename_component(QT5_LIB_DIR "${QT_CORE_LIB_LOCATION}" DIRECTORY) | |||||
set(STATIC_DEPENDENCIES_CMAKE_FILE "${CMAKE_BINARY_DIR}/QtStaticDependencies.cmake") | set(STATIC_DEPENDENCIES_CMAKE_FILE "${CMAKE_BINARY_DIR}/QtStaticDependencies.cmake") | ||||
if(EXISTS ${STATIC_DEPENDENCIES_CMAKE_FILE}) | if(EXISTS ${STATIC_DEPENDENCIES_CMAKE_FILE}) | ||||
file(REMOVE ${STATIC_DEPENDENCIES_CMAKE_FILE}) | file(REMOVE ${STATIC_DEPENDENCIES_CMAKE_FILE}) | ||||
endif() | endif() | ||||
set(CONVERT_PRL_PATH "${CONTRIB_PATH}/qt/convert-prl-libs-to-cmake.pl") | set(CONVERT_PRL_PATH "${CONTRIB_PATH}/qt/convert-prl-libs-to-cmake.pl") | ||||
macro(CONVERT_PRL_LIBS_TO_CMAKE _qt_component) | macro(CONVERT_PRL_LIBS_TO_CMAKE _qt_component) | ||||
if(TARGET Qt5::${_qt_component}) | if(TARGET Qt5::${_qt_component}) | ||||
get_target_property(_lib_location Qt5::${_qt_component} LOCATION) | get_target_property(_lib_location Qt5::${_qt_component} LOCATION) | ||||
execute_process(COMMAND ${PERL_EXECUTABLE} "${CONVERT_PRL_PATH}" | execute_process(COMMAND ${PERL_EXECUTABLE} "${CONVERT_PRL_PATH}" | ||||
--lib ${_lib_location} | --lib ${_lib_location} | ||||
--out ${STATIC_DEPENDENCIES_CMAKE_FILE} | --out ${STATIC_DEPENDENCIES_CMAKE_FILE} | ||||
--component ${_qt_component} | --component ${_qt_component} | ||||
--compiler ${CMAKE_CXX_COMPILER_ID} | --compiler ${CMAKE_CXX_COMPILER_ID} | ||||
) | ) | ||||
endif() | endif() | ||||
endmacro() | endmacro() | ||||
if(QT_STATIC_BUILD) | if(QT_STATIC_BUILD) | ||||
foreach(qt_module ${QT_REQUIRED_COMPONENTS}) | foreach(qt_module ${QT_REQUIRED_COMPONENTS}) | ||||
CONVERT_PRL_LIBS_TO_CMAKE(${qt_module}) | CONVERT_PRL_LIBS_TO_CMAKE(${qt_module}) | ||||
endforeach() | endforeach() | ||||
# HACK: We must explicitly add LIB path of the Qt installation | # HACK: We must explicitly add LIB path of the Qt installation | ||||
# to correctly find qtpcre | # to correctly find qtpcre | ||||
link_directories(${_qt5_install_prefix}/../) | link_directories("${QT5_LIB_DIR}") | ||||
# Now that we generated the dependencies, import them. | # Now that we generated the dependencies, import them. | ||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CONVERT_PRL_PATH}") | set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CONVERT_PRL_PATH}") | ||||
if(NOT EXISTS ${STATIC_DEPENDENCIES_CMAKE_FILE}) | if(NOT EXISTS ${STATIC_DEPENDENCIES_CMAKE_FILE}) | ||||
message(FATAL_ERROR "Unable to find ${STATIC_DEPENDENCIES_CMAKE_FILE}") | message(FATAL_ERROR "Unable to find ${STATIC_DEPENDENCIES_CMAKE_FILE}") | ||||
endif() | endif() | ||||
include(${STATIC_DEPENDENCIES_CMAKE_FILE}) | include(${STATIC_DEPENDENCIES_CMAKE_FILE}) | ||||
list(REMOVE_DUPLICATES STATIC_LIB_DEPENDENCIES) | list(REMOVE_DUPLICATES STATIC_LIB_DEPENDENCIES) | ||||
▲ Show 20 Lines • Show All 175 Lines • Show Last 20 Lines |