summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.pri13
-rw-r--r--mkspecs/features/functions.prf1
-rw-r--r--mkspecs/features/gn_generator.prf7
-rw-r--r--src/buildtools/config/ios.pri64
-rw-r--r--src/pdf/pdfcore.pro2
-rw-r--r--src/pdf/pdfcore_generator.pro1
6 files changed, 82 insertions, 6 deletions
diff --git a/configure.pri b/configure.pri
index 3a144e3f8..f89df5273 100644
--- a/configure.pri
+++ b/configure.pri
@@ -114,7 +114,7 @@ defineTest(qtwebengine_platformError) {
defineTest(qtConfTest_detectPlatform) {
QT_FOR_CONFIG += gui-private
- !linux:!win32:!macos {
+ !linux:!win32:!macos:!ios {
qtwebengine_platformError("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
} else {
linux:qtwebengine_isLinuxPlatformSupported() {
@@ -126,6 +126,9 @@ defineTest(qtConfTest_detectPlatform) {
macos:qtwebengine_isMacOsPlatformSupported() {
$${1}.platform = "macos"
}
+ ios:qtwebengine_isMacOsPlatformSupported() {
+ $${1}.platform = "ios"
+ }
}
!isEmpty(platformError) {
@@ -423,21 +426,21 @@ defineTest(qtwebengine_isWindowsPlatformSupported) {
defineTest(qtwebengine_isMacOsPlatformSupported) {
# FIXME: Try to get it back down to 8.2 for building on OS X 10.11
!qtwebengine_isMinXcodeVersion(8, 3, 3) {
- qtwebengine_platformError("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.")
+ qtwebengine_platformError("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine or Qt Pdf.")
return(false)
}
!clang|intel_icc {
- qtwebengine_platformError("Qt WebEngine on macOS requires Clang.")
+ qtwebengine_platformError("Qt WebEngine and Qt Pdf requires Clang.")
return(false)
}
# We require macOS 10.12 (darwin version 16.0.0) or newer.
darwin_major_version = $$section(QMAKE_HOST.version, ., 0, 0)
lessThan(darwin_major_version, 16) {
- qtwebengine_platformError("Building Qt WebEngine requires macOS version 10.12 or newer.")
+ qtwebengine_platformError("Building Qt WebEngine or Qt Pdf requires macOS version 10.12 or newer.")
return(false)
}
!qtwebengine_isMinOSXSDKVersion(10, 12): {
- qtwebengine_platformError("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
+ qtwebengine_platformError("Building Qt WebEngine or Qt Pdf requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
return(false)
}
return(true)
diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf
index 512e2523b..db0b072a7 100644
--- a/mkspecs/features/functions.prf
+++ b/mkspecs/features/functions.prf
@@ -74,6 +74,7 @@ defineReplace(gnPath) {
defineReplace(gnArgs) {
linux: include($$QTWEBENGINE_ROOT/src/buildtools/config/linux.pri)
macos: include($$QTWEBENGINE_ROOT/src/buildtools/config/mac_osx.pri)
+ ios: include($$QTWEBENGINE_ROOT/src/buildtools/config/ios.pri)
win32: include($$QTWEBENGINE_ROOT/src/buildtools/config/windows.pri)
isEmpty(gn_args): error(No gn_args found please make sure you have valid configuration.)
return($$gn_args)
diff --git a/mkspecs/features/gn_generator.prf b/mkspecs/features/gn_generator.prf
index 358084e59..6ff09d851 100644
--- a/mkspecs/features/gn_generator.prf
+++ b/mkspecs/features/gn_generator.prf
@@ -12,13 +12,18 @@ defineReplace(getTargetType) {
defineReplace(filter_flag_values) {
value_to_check = $$1
- macos:equals(value_to_check, "$(EXPORT_ARCH_ARGS)") {
+ if (macos|ios):equals(value_to_check, "$(EXPORT_ARCH_ARGS)") {
# EXPORT_ARCH_ARGS comes from qtbase/mkspecs/features/mac/default_post.prf which is a way
# to figure out the architectures to pass to the compiler at Makefile time. Because this
# variable expansion is not supported by GN, we filter it out. GN takes care of assigning
# the architecture itself.
return("")
}
+ if (ios) {
+ equals(value_to_check, "$(EXPORT_QMAKE_XARCH_LFLAGS)"): return("")
+ equals(value_to_check, "$(EXPORT_QMAKE_XARCH_CFLAGS)"): return("")
+ }
+
return($$value_to_check)
}
diff --git a/src/buildtools/config/ios.pri b/src/buildtools/config/ios.pri
new file mode 100644
index 000000000..36ea183ca
--- /dev/null
+++ b/src/buildtools/config/ios.pri
@@ -0,0 +1,64 @@
+load(functions)
+
+include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri)
+include($$QTWEBENGINE_OUT_ROOT/src/pdf/qtpdf-config.pri)
+QT_FOR_CONFIG += buildtools-private pdf-private
+
+
+QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
+isEmpty(QMAKE_MAC_SDK_VERSION) {
+ QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
+ isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
+}
+QMAKE_CLANG_DIR = "/usr"
+QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
+!isEmpty(QMAKE_CLANG_PATH) {
+ clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
+ exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
+}
+QMAKE_CLANG_PATH = "$${QMAKE_CLANG_DIR}/bin/clang++"
+message("Using clang++ from $${QMAKE_CLANG_PATH}")
+system("$${QMAKE_CLANG_PATH} --version")
+
+gn_args += \
+use_qt=true \
+closure_compile=false \
+is_component_build=false \
+is_shared=true \
+is_debug=true \
+enable_message_center=false \
+enable_nacl=false \
+enable_remoting=false \
+enable_reporting=false \
+enable_resource_whitelist_generation=false \
+enable_swiftshader=false \
+enable_web_speech=false \
+has_native_accessibility=false \
+enable_debugallocation=false \
+use_allocator_shim=false \
+use_allocator=\"none\" \
+use_custom_libcxx=false \
+v8_use_external_startup_data=false \
+v8_use_snapshot=false \
+toolkit_views=false \
+treat_warnings_as_errors=false \
+safe_browsing_mode=0 \
+optimize_webui=false \
+forbid_non_component_debug_builds=false \
+clang_use_chrome_plugins=false \
+use_xcode_clang=true \
+clang_base_path=\"$${QMAKE_CLANG_DIR}\" \
+ios_enable_code_signing=false \
+target_os=\"ios\" \
+#target_cpu=\"$${QMAKE_APPLE_SIMULATOR_ARCHS}\" \
+#target_cpu=\"$${QMAKE_APPLE_DEVICE_ARCHS}\" \
+target_cpu=\"x64\" \
+ios_deployment_target=\"$${QMAKE_IOS_DEPLOYMENT_TARGET}\" \
+enable_ios_bitcode=true \
+use_jumbo_build=false \
+pdf_enable_v8=false \
+pdf_enable_xfa=false \
+pdf_enable_xfa_bmp=false \
+pdf_enable_xfa_gif=false \
+pdf_enable_xfa_png=false \
+pdf_enable_xfa_tiff=false
diff --git a/src/pdf/pdfcore.pro b/src/pdf/pdfcore.pro
index 752ae4468..5314d30d2 100644
--- a/src/pdf/pdfcore.pro
+++ b/src/pdf/pdfcore.pro
@@ -56,6 +56,8 @@ msvc {
QMAKE_CXXFLAGS_WARN_ON += -wd"4100"
}
+ios: OBJECTS += $$NINJA_OBJECTS
+
SOURCES += \
qpdfbookmarkmodel.cpp \
qpdfdocument.cpp \
diff --git a/src/pdf/pdfcore_generator.pro b/src/pdf/pdfcore_generator.pro
index dc978988b..c8eb13b81 100644
--- a/src/pdf/pdfcore_generator.pro
+++ b/src/pdf/pdfcore_generator.pro
@@ -3,6 +3,7 @@ qtConfig(debug_and_release): CONFIG += debug_and_release
TARGET = QtPdf
TEMPLATE = lib
CONFIG = gn_generator $$CONFIG
+ios: CONFIG -=static # note we still do static on ios when linking
GN_SRC_DIR = $$PWD
GN_FILE = $$OUT_PWD/$$getConfigDir()/BUILD.gn
GN_FIND_MOCABLES_SCRIPT = $$shell_path($$QTWEBENGINE_ROOT/tools/scripts/gn_find_mocables.py)