summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/CMakeLists.txt48
-rw-r--r--src/core/api/configure.cmake10
-rw-r--r--src/core/configure/BUILD.toolchain.gn.in32
-rw-r--r--src/core/configure/CMakeLists.txt35
4 files changed, 80 insertions, 45 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index e9d34adfb..1b4e4930e 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -24,6 +24,11 @@ find_package(Nodejs 12.0)
find_package(PkgConfig)
if(PkgConfig_FOUND)
pkg_check_modules(XSCRNSAVER xscrnsaver)
+ find_package(PkgConfigHost)
+ if(CMAKE_CROSSCOMPILING)
+ create_pkg_config_host_wrapper("${buildDir}/pkg-config-host_wrapper.sh" "${PKG_CONFIG_HOST_EXECUTABLE}")
+ set(PKG_CONFIG_HOST_EXECUTABLE "${buildDir}/pkg-config-host_wrapper.sh")
+ endif()
endif()
get_target_property(qtWebEngineProcessName WebEngineCore QTWEBENGINEPROCESS_NAME)
@@ -36,6 +41,24 @@ else()
set(configs ${CMAKE_BUILD_TYPE})
endif()
+##
+# TOOLCHAIN SETUP
+##
+
+if(LINUX)
+ if(NOT CMAKE_CROSSCOMPILING) # delivered by hostBuild project
+ configure_gn_toolchain(host ${TEST_architecture_arch} ${TEST_architecture_arch}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
+ ${buildDir}/host_toolchain)
+ configure_gn_toolchain(v8 ${TEST_architecture_arch} ${TEST_architecture_arch}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
+ ${buildDir}/v8_toolchain)
+ endif()
+ configure_gn_toolchain(target ${TEST_architecture_arch} ${TEST_architecture_arch}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
+ ${buildDir}/target_toolchain)
+endif()
+
foreach(config ${configs})
##
@@ -249,12 +272,6 @@ foreach(config ${configs})
configure_gn_target(${buildGn} ${config}
${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.root.gn.in ${buildDir}/${config}/BUILD.gn)
-##
-# TOOLCHAIN SETUP
-##
-
- configure_file(${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
- ${buildDir}/${config}/toolchain/BUILD.gn @ONLY)
##
# GN CALL PARAMETERS SETUP
@@ -416,6 +433,15 @@ foreach(config ${configs})
)
endif()
if(LINUX)
+ get_gn_arch(cpu ${TEST_architecture_arch})
+ if(CMAKE_CROSSCOMPILING)
+ list(APPEND gnArgArg target_cpu="${cpu}")
+ else()
+ list(APPEND gnArgArg host_cpu="${cpu}")
+ endif()
+ if(CMAKE_SYSROOT)
+ list(APPEND gnArgArg target_sysroot="${CMAKE_SYSROOT}")
+ endif()
list(APPEND gnArgArg
use_cups=false
use_gio=false
@@ -432,11 +458,11 @@ foreach(config ${configs})
ozone_platform_external=true
ozone_platform="qt"
ozone_extra_path="${CMAKE_CURRENT_LIST_DIR}/ozone/ozone_extra.gni"
- custom_toolchain="${buildDir}/${config}/toolchain:target"
- host_toolchain="${buildDir}/${config}/toolchain:host"
- host_cpu="x64"
- pkg_config="pkg-config"
- host_pkg_config="/usr/bin/pkg-config"
+ custom_toolchain="${buildDir}/target_toolchain:target"
+ host_toolchain="${buildDir}/host_toolchain:host"
+ v8_snapshot_toolchain="${buildDir}/v8_toolchain:v8"
+ pkg_config="${PKG_CONFIG_EXECUTABLE}"
+ host_pkg_config="${PKG_CONFIG_HOST_EXECUTABLE}"
use_glib=false
)
set(systemLibs libjpeg libpng freetype harfbuzz libevent libwebp libxml
diff --git a/src/core/api/configure.cmake b/src/core/api/configure.cmake
index e0332cab4..c8518f6ee 100644
--- a/src/core/api/configure.cmake
+++ b/src/core/api/configure.cmake
@@ -145,11 +145,11 @@ qt_configure_add_summary_entry(
CONDITION UNIX
)
qt_configure_end_summary_section() # end of "Qt WebEngineCore" section
-qt_configure_add_report_entry(
- TYPE WARNING
- MESSAGE "Thumb instruction set is required to build ffmpeg for QtWebEngine."
- CONDITION LINUX AND QT_FEATURE_webengine_embedded_build AND NOT QT_FEATURE_webengine_system_ffmpeg AND ( TEST_architecture_arch STREQUAL arm ) AND NOT QT_FEATURE_webengine_arm_thumb
-)
+#qt_configure_add_report_entry(
+# TYPE WARNING
+# MESSAGE "Thumb instruction set is required to build ffmpeg for QtWebEngine."
+# CONDITION LINUX AND QT_FEATURE_webengine_embedded_build AND NOT QT_FEATURE_webengine_system_ffmpeg AND ( TEST_architecture_arch STREQUAL arm ) AND NOT QT_FEATURE_webengine_arm_thumb
+#)
qt_configure_add_report_entry(
TYPE WARNING
MESSAGE "V8 snapshot cannot be built. Most likely, the 32-bit host compiler does not work. Please make sure you have 32-bit devel environment installed."
diff --git a/src/core/configure/BUILD.toolchain.gn.in b/src/core/configure/BUILD.toolchain.gn.in
index e44fa42de..c1bf3845b 100644
--- a/src/core/configure/BUILD.toolchain.gn.in
+++ b/src/core/configure/BUILD.toolchain.gn.in
@@ -1,6 +1,6 @@
import("//build/config/sysroot.gni")
import("//build/toolchain/gcc_toolchain.gni")
-gcc_toolchain("host") {
+gcc_toolchain("@GN_TOOLCHAIN@") {
cc = "@CMAKE_C_COMPILER@"
cxx = "@CMAKE_CXX_COMPILER@"
ld = "@CMAKE_CXX_COMPILER@"
@@ -9,34 +9,8 @@ gcc_toolchain("host") {
extra_cppflags = ""
toolchain_args = {
current_os = "linux"
- current_cpu = "x64"
- is_clang = false
- use_gold = false
- }
-}
-gcc_toolchain("v8_snapshot") {
- cc = "@CMAKE_C_COMPILER@"
- cxx = "@CMAKE_CXX_COMPILER@"
- ld = "@CMAKE_CXX_COMPILER@"
- ar = "@CMAKE_AR@"
- nm = "@CMAKE_NM@"
- toolchain_args = {
- current_os = "linux"
- current_cpu = "x64"
- v8_current_cpu = "x64"
- is_clang = false
- use_gold = false
- }
- }
-gcc_toolchain("target") {
- cc = "@CMAKE_C_COMPILER@"
- cxx = "@CMAKE_CXX_COMPILER@"
- ld = "@CMAKE_CXX_COMPILER@"
- ar = "@CMAKE_AR@"
- nm = "@CMAKE_NM@"
- toolchain_args = {
- current_os = "linux"
- current_cpu = "x64"
+ current_cpu = "@GN_CPU@"
+ v8_current_cpu = "@GN_V8_CPU@"
is_clang = false
use_gold = false
}
diff --git a/src/core/configure/CMakeLists.txt b/src/core/configure/CMakeLists.txt
new file mode 100644
index 000000000..0ae4b4b48
--- /dev/null
+++ b/src/core/configure/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.19)
+
+if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
+ get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." REALPATH)
+endif()
+if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR)
+ get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../.." REALPATH)
+endif()
+
+include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
+include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake")
+
+project(QtWebEngineConfigure
+ VERSION "${QT_REPO_MODULE_VERSION}"
+ LANGUAGES CXX C)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
+
+set(buildDir ${CMAKE_CURRENT_BINARY_DIR})
+configure_gn_toolchain(host ${TEST_architecture_arch} ${TEST_architecture_arch}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
+ ${buildDir}/host_toolchain
+)
+install(FILES ${buildDir}/host_toolchain/BUILD.gn
+ DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/core/host_toolchain
+ )
+get_v8_arch(GN_V8_HOST_CPU ${GN_TARGET_CPU})
+configure_gn_toolchain(v8 ${GN_V8_HOST_CPU} ${GN_TARGET_CPU}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
+ ${buildDir}/v8_toolchain)
+install(FILES ${buildDir}/v8_toolchain/BUILD.gn
+ DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/core/v8_toolchain
+)