From 45a5c006d12c38d17f5605c2f975a7eabda7456f Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Sat, 28 Sep 2013 03:24:07 +0200 Subject: Allow overriding target compiler and linker with qmake's one Using make_global_settings, we can pass along the compiler and linker that qmake uses, still allowing overriding it through environment variables. We generate qmake_extras.gypi and populated with the host and target compilers so that it also works when cross compiling. Based on patch by Pierre Rossi Change-Id: Ia3789abeea88f4d3cde75c2cf07cc9de66d7afbf Reviewed-by: Zeno Albisser --- build/gyp_qtwebengine | 3 +++ build/qmake_extras/host/host.pro | 14 ++++++++++++++ build/qmake_extras/qmake_extras.pro | 6 ++++++ build/qmake_extras/target/target.pro | 15 +++++++++++++++ qtwebengine.pro | 3 ++- 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 build/qmake_extras/host/host.pro create mode 100644 build/qmake_extras/qmake_extras.pro create mode 100644 build/qmake_extras/target/target.pro diff --git a/build/gyp_qtwebengine b/build/gyp_qtwebengine index b67314df2..bd7347e4a 100755 --- a/build/gyp_qtwebengine +++ b/build/gyp_qtwebengine @@ -65,6 +65,9 @@ def additional_include_files(args=[]): # Used for additional build tweaks such as file exclusions AddInclude(os.path.join(qtwebengine_src, 'build', 'qtwebengine_extras.gypi')) + # Common stuff we generate and extract from qmake + AddInclude(os.path.join(qtwebengine_src, 'build', 'qmake_extras.gypi')) + # Optionally add supplemental .gypi files if present. supplements = glob.glob(os.path.join(chrome_src, '*', 'supplement.gypi')) for supplement in supplements: diff --git a/build/qmake_extras/host/host.pro b/build/qmake_extras/host/host.pro new file mode 100644 index 000000000..95d7b3cad --- /dev/null +++ b/build/qmake_extras/host/host.pro @@ -0,0 +1,14 @@ +# Prevent generating a makefile that attempts to create a lib +TEMPLATE = aux + +# Pick up the host toolchain +option(host_build) + +GYPI_CONTENTS = "{" \ + " 'make_global_settings': [" \ + " ['CC.host', '$$which($$QMAKE_CC)']," \ + " ['CXX.host', '$$which($$QMAKE_CXX)']," \ + " ['LD.host', '$$which($$QMAKE_LINK)']," + +GYPI_FILE = $$absolute_path('build/qmake_extras.gypi', $$QTWEBENGINE_ROOT) +write_file($$GYPI_FILE, GYPI_CONTENTS) diff --git a/build/qmake_extras/qmake_extras.pro b/build/qmake_extras/qmake_extras.pro new file mode 100644 index 000000000..409993128 --- /dev/null +++ b/build/qmake_extras/qmake_extras.pro @@ -0,0 +1,6 @@ +TEMPLATE = subdirs + +CONFIG += ordered + +SUBDIRS = host \ + target diff --git a/build/qmake_extras/target/target.pro b/build/qmake_extras/target/target.pro new file mode 100644 index 000000000..294ebc609 --- /dev/null +++ b/build/qmake_extras/target/target.pro @@ -0,0 +1,15 @@ +# Prevent generating a makefile that attempts to create a lib +TEMPLATE = aux + +GYPI_CONTENTS += " ['CC', '$$which($$QMAKE_CC)']," \ + " ['CXX', '$$which($$QMAKE_CXX)']," \ + " ['LD', '$$which($$QMAKE_LINK)']," +GYPI_CONTENTS += " ]," +GYPI_CONTENTS += "}" + +GYPI_FILE = $$absolute_path('build/qmake_extras.gypi', $$QTWEBENGINE_ROOT) + +!exists($$GYPI_FILE): error("-- $$GYPI not found --") + +# Append to the file already containing the host settings. +write_file($$GYPI_FILE, GYPI_CONTENTS, append) diff --git a/qtwebengine.pro b/qtwebengine.pro index ce0098c55..5a54df17e 100644 --- a/qtwebengine.pro +++ b/qtwebengine.pro @@ -4,7 +4,8 @@ CONFIG += ordered # The first three subdirs contain dummy .pro files that are used by qmake # to generate a corresponding .gyp file -SUBDIRS = resources \ +SUBDIRS = build/qmake_extras \ # Phony pro file that extracts things like compiler and linker from qmake + resources \ shared \ lib \ process \ -- cgit v1.2.3