diff options
author | Michal Klocek <michal.klocek@qt.io> | 2021-02-03 10:07:01 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2021-05-12 09:40:43 +0200 |
commit | 5cf3eaa127b4633b46e1d6b70eb42253464bcd97 (patch) | |
tree | 5dad1e3d68fafac477860ef8f241d05b6b749829 | |
parent | a60304e7ea154438060a71959f72a4a1b95f5327 (diff) |
Pass qtfeatures from the main project to the lib project
Task-number: QTBUG-91760
Change-Id: I56aaf6af42eb1877acbc0faf4e125bc8de4c72fb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r-- | CMakeLists.txt | 16 | ||||
-rw-r--r-- | cmake/Functions.cmake | 17 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 5 |
3 files changed, 35 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ab7dd4212..333d4016d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.18.0) include(.cmake.conf) include(ExternalProject) +include(cmake/Functions.cmake) project(QtWebEngineSuperBuild VERSION "${QT_REPO_MODULE_VERSION}" @@ -76,9 +77,20 @@ if(NOT Gn_FOUND) ) endif() +### LIBS + # on windows source path can be specified without hard drive letter, # however we need that for gn use REALPATH get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" REALPATH) +get_qt_features(featureList webengine) +get_qt_features(featureList qtwebengine) + +list(TRANSFORM featureList PREPEND "-D") +list(APPEND webenginecoreCmakeArgs + "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "-DWEBENGINE_ROOT_BUILD_PATH=${CMAKE_CURRENT_BINARY_DIR}" + "-DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}" + "${featureList}") externalproject_add(libs SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/src/core @@ -87,9 +99,7 @@ externalproject_add(libs PREFIX libs USES_TERMINAL_CONFIGURE ON USES_TERMINAL_BUILD ON - CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - -DWEBENGINE_ROOT_BUILD_PATH=${CMAKE_CURRENT_BINARY_DIR} - -DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR} + CMAKE_ARGS ${webenginecoreCmakeArgs} ) if(NOT Gn_FOUND) diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake index b954654bf..89dff400f 100644 --- a/cmake/Functions.cmake +++ b/cmake/Functions.cmake @@ -39,3 +39,20 @@ function(add_check_for_support errorResult supportResult) endif() endif() endfunction() + +function(get_qt_features outList module) + get_cmake_property(variableList VARIABLES) + set(_featureList "") + foreach (variableKey ${variableList}) + unset(FOUND) + string(REGEX MATCH QT_FEATURE_${module} FOUND ${variableKey}) + if (FOUND) + list(APPEND _featureList "${variableKey}=${${variableKey}}") + endif() + endforeach() + if ("${${outList}}" STREQUAL "") + set(${outList} ${_featureList} PARENT_SCOPE) + else() + set(${outList} "${${outList}}" "${_featureList}" PARENT_SCOPE) + endif() +endfunction() diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index e22d0230e..cbec0aa13 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -13,6 +13,11 @@ endif() set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../../cmake") set(buildDir "${CMAKE_CURRENT_BINARY_DIR}/debug") +include(${PROJECT_SOURCE_DIR}/../../cmake/Functions.cmake) + +get_qt_features(featureList webengine) +message(${featureList}) + find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Gui Widgets Network OpenGL OpenGLWidgets Quick Qml QuickTest Test) find_package(Gn REQUIRED) |