blob: 5603ed72e2e72c8d825ddb577426e554c0c994d4 (
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
load(functions)
ROOT_QT_BUILD_DIR = $$ROOT_BUILD_DIR/..
TEMPLATE = aux
qtConfig(debug_and_release): CONFIG += debug_and_release build_all
CONFIG(debug, debug|release) {
configuration = Debug
} else {
configuration = Release
}
cmake_build_dir = $$system_quote($$system_path($$ROOT_BUILD_DIR/$$lower($$configuration)))
toolchain_file = $$system_quote($$system_path($$ROOT_BUILD_DIR/qmake_toolchain.cmake))
build_pass|!debug_and_release {
CMAKE_CONFIG += \
PORT=Qt \
CMAKE_BUILD_TYPE=$$configuration \
CMAKE_TOOLCHAIN_FILE=$$toolchain_file \
USE_LIBHYPHEN=OFF
!isEmpty(_QMAKE_SUPER_CACHE_) {
CMAKE_PREFIX_PATH=\"$$ROOT_QT_BUILD_DIR/qtbase;$$ROOT_QT_BUILD_DIR/qtlocation;$$ROOT_QT_BUILD_DIR/qtsensors;$$ROOT_QT_BUILD_DIR/qtdeclarative;$$ROOT_QT_BUILD_DIR/qtwebchannel\"
} else {
CMAKE_PREFIX_PATH=\"$$[QT_INSTALL_PREFIX]\"
}
CMAKE_CONFIG += CMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH
static: CMAKE_CONFIG += USE_THIN_ARCHIVES=OFF
static_runtime: CMAKE_CONFIG += USE_STATIC_RUNTIME=ON
QT_FOR_CONFIG += gui-private
!qtConfig(system-jpeg):exists($$QTBASE_DIR) {
CMAKE_CONFIG += \
QT_BUNDLED_JPEG=1 \
JPEG_INCLUDE_DIR=$$QTBASE_DIR/src/3rdparty/libjpeg \
JPEG_LIBRARIES=$$staticLibPath(qtjpeg)
}
!qtConfig(system-png):qtConfig(png):exists($$QTBASE_DIR) {
CMAKE_CONFIG += \
QT_BUNDLED_PNG=1 \
PNG_INCLUDE_DIRS=$$QTBASE_DIR/src/3rdparty/libpng \
PNG_LIBRARIES=$$staticLibPath(qtpng)
}
!qtConfig(system-zlib):exists($$QTBASE_DIR) {
CMAKE_CONFIG += \
QT_BUNDLED_ZLIB=1 \
ZLIB_INCLUDE_DIRS=$$QTBASE_DIR/src/3rdparty/zlib
}
qtConfig(opengles2):!qtConfig(dynamicgl) {
CMAKE_CONFIG += QT_USES_GLES2_ONLY=1
}
exists($$ROOT_BUILD_DIR/conanbuildinfo.cmake):exists($$ROOT_BUILD_DIR/conanfile.txt) {
CMAKE_CONFIG += QT_CONAN_DIR=$$ROOT_BUILD_DIR
}
msvc:!contains(QMAKE_HOST.arch, x86_64) {
CMAKE_CONFIG += USE_MINIMAL_DEBUG_INFO_MSVC=ON
}
macos {
# Reuse the cached sdk version value from mac/sdk.prf if available
# otherwise query for it.
QMAKE_MAC_SDK_PATH = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.Path)
isEmpty(QMAKE_MAC_SDK_PATH) {
QMAKE_MAC_SDK_PATH = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version Path 2>/dev/null")
}
exists($$QMAKE_MAC_SDK_PATH): CMAKE_CONFIG += CMAKE_OSX_SYSROOT=$$QMAKE_MAC_SDK_PATH
!isEmpty(QMAKE_MACOSX_DEPLOYMENT_TARGET): CMAKE_CONFIG += CMAKE_OSX_DEPLOYMENT_TARGET=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
# Hack: install frameworks in debug_and_release in separate prefixes
debug_and_release:build_all:CONFIG(debug, debug|release) {
CMAKE_CONFIG += CMAKE_INSTALL_PREFIX=\"$$[QT_INSTALL_PREFIX]/debug\"
}
}
equals(QMAKE_HOST.os, Windows) {
if(equals(MAKEFILE_GENERATOR, MSVC.NET)|equals(MAKEFILE_GENERATOR, MSBUILD)) {
cmake_generator = "NMake Makefiles JOM"
make_command_name = jom
} else: if(equals(MAKEFILE_GENERATOR, MINGW)) {
cmake_generator = "MinGW Makefiles"
make_command_name = make
} else {
cmake_generator = "Unix Makefiles"
make_command_name = make
}
cmake_args += "-G \"$$cmake_generator\""
}
!silent: make_args += "VERBOSE=1"
# Append additional platform options defined in CMAKE_CONFIG
for (config, CMAKE_CONFIG): cmake_args += "-D$$config"
!exists($$cmake_build_dir) {
!system("$$QMAKE_MKDIR $$cmake_build_dir"): error("Failed to create cmake build directory")
}
cmake_cmd_base = "cd $$cmake_build_dir &&"
log("$${EOL}Running $$cmake_env cmake $$ROOT_WEBKIT_DIR $$cmake_args $${EOL}$${EOL}")
!system("$$cmake_cmd_base $$cmake_env cmake $$ROOT_WEBKIT_DIR $$cmake_args"): error("Running cmake failed")
log("$${EOL}WebKit is now configured for building. Just run '$$make_command_name'.$${EOL}$${EOL}")
build_pass:build_all: default_target.target = all
else: default_target.target = first
default_target.commands = cd $$cmake_build_dir && $(MAKE) $$make_args
QMAKE_EXTRA_TARGETS += default_target
# When debug and release are built at the same time, don't install data files twice
debug_and_release:build_all:CONFIG(debug, debug|release): cmake_install_args = "-DCOMPONENT=Code"
install_impl_target.target = install_impl
install_impl_target.commands = cd $$cmake_build_dir && cmake $$cmake_install_args -P cmake_install.cmake
QMAKE_EXTRA_TARGETS += install_impl_target
install_target.target = install
install_target.commands = $(MAKE) -f $(MAKEFILE) install_impl $$make_args DESTDIR=$(INSTALL_ROOT)
QMAKE_EXTRA_TARGETS += install_target
}
|