summaryrefslogtreecommitdiffstats
path: root/src/host/CMakeLists.txt
blob: d40275217bb36150ade016cd9bbfbebd1641d158 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause

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 6.5 CONFIG REQUIRED COMPONENTS BuildInternals Core)
qt_internal_project_setup()
get_gn_arch(target_arch ${GN_TARGET_CPU})
get_gn_arch(host_arch ${TEST_architecture_arch})
get_v8_arch(v8_arch ${target_arch} ${host_arch})

set(buildDir ${CMAKE_CURRENT_BINARY_DIR})
configure_gn_toolchain(host ${host_arch} ${host_arch}
    ${WEBENGINE_ROOT_SOURCE_DIR}/src/host/BUILD.toolchain.gn.in
    ${buildDir}/host_toolchain
)
configure_gn_toolchain(v8 ${v8_arch} ${target_arch}
    ${WEBENGINE_ROOT_SOURCE_DIR}/src/host/BUILD.toolchain.gn.in
    ${buildDir}/v8_toolchain)

if(QT_FEATURE_qtwebengine_build)
    install(FILES ${buildDir}/host_toolchain/BUILD.gn
        DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/core/host_toolchain
    )
    install(FILES ${buildDir}/v8_toolchain/BUILD.gn
        DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/core/v8_toolchain
    )
endif()
if(QT_FEATURE_qtpdf_build)
    install(FILES ${buildDir}/host_toolchain/BUILD.gn
        DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/host_toolchain
    )
    install(FILES ${buildDir}/v8_toolchain/BUILD.gn
        DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/v8_toolchain
    )
endif()

# TODO: this could be run as part of main configure with execute_process
# Skip for qtpdf(android)

if(CMAKE_CXX_COMPILER_ID STREQUAL GNU AND TEST_architecture_arch STREQUAL "x86_64"
    AND GN_TARGET_CPU STREQUAL "arm" AND NOT MINGW AND NOT ANDROID)
    try_compile(
        has32HostCompiler
        "${CMAKE_CURRENT_BINARY_DIR}/config.tests/hostcompiler"
        "${CMAKE_CURRENT_SOURCE_DIR}/config.tests/hostcompiler"
        hostcompiler
    )
    if(NOT has32HostCompiler)
        MESSAGE(FATAL_ERROR "Compiler does not support 32bit compilation")
    endif()
endif()