summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-02-03 10:07:01 +0100
committerMichal Klocek <michal.klocek@qt.io>2021-05-12 09:40:43 +0200
commit5cf3eaa127b4633b46e1d6b70eb42253464bcd97 (patch)
tree5dad1e3d68fafac477860ef8f241d05b6b749829
parenta60304e7ea154438060a71959f72a4a1b95f5327 (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.txt16
-rw-r--r--cmake/Functions.cmake17
-rw-r--r--src/core/CMakeLists.txt5
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)