From f78044c0a403bccd7945103c37a32b8630f83a4e Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 15 Aug 2016 16:29:19 +0300 Subject: Android: Use -gcc-toolchain for clang linker command Change-Id: I0434d806dd9dafa12186c989e3b11964e41487fe Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/android-clang/qmake.conf | 3 ++- mkspecs/android-g++/qmake.conf | 4 ++-- mkspecs/common/android-base-head.conf | 1 + mkspecs/common/android-base-tail.conf | 3 +-- 4 files changed, 6 insertions(+), 5 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index 6d53bb921d..faba0e0d03 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -12,7 +12,6 @@ include(../common/android-base-head.conf) NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST QMAKE_CC = $$NDK_LLVM_PATH/bin/clang QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++ -QMAKE_GCC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-g++ equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ QMAKE_CFLAGS = -target armv7-none-linux-androideabi @@ -29,4 +28,6 @@ else: equals(ANDROID_TARGET_ARCH, mips): \ else: equals(ANDROID_TARGET_ARCH, mips64): \ QMAKE_CFLAGS = -target mips64el-none-linux-android +QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -gcc-toolchain $$NDK_TOOLCHAIN_PATH + include(../common/android-base-tail.conf) diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf index 93bd5fa1c2..50d1fd6cf2 100644 --- a/mkspecs/android-g++/qmake.conf +++ b/mkspecs/android-g++/qmake.conf @@ -10,9 +10,9 @@ include(../common/gcc-base-unix.conf) include(../common/android-base-head.conf) QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-gcc -QMAKE_CXX = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-g++ -QMAKE_GCC = $$QMAKE_CXX +QMAKE_CXX = $$QMAKE_GCC QMAKE_CFLAGS = +QMAKE_LINK = $$QMAKE_GCC include(../common/android-base-tail.conf) diff --git a/mkspecs/common/android-base-head.conf b/mkspecs/common/android-base-head.conf index 7b2e988808..b75bcfaacb 100644 --- a/mkspecs/common/android-base-head.conf +++ b/mkspecs/common/android-base-head.conf @@ -76,3 +76,4 @@ ANDROID_SOURCES_CXX_STL_INCDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/$$NDK_ equals(ANDROID_TARGET_ARCH, x86_64)|equals(ANDROID_TARGET_ARCH, mips64): \ QMAKE_ANDROID_PLATFORM_LIBDIR = $${QMAKE_ANDROID_PLATFORM_LIBDIR}64 +QMAKE_GCC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-g++ diff --git a/mkspecs/common/android-base-tail.conf b/mkspecs/common/android-base-tail.conf index 0dcaf64cff..47eaa83e42 100644 --- a/mkspecs/common/android-base-tail.conf +++ b/mkspecs/common/android-base-tail.conf @@ -78,8 +78,7 @@ QMAKE_LIBDIR_X11 = QMAKE_INCDIR_OPENGL = $$QMAKE_ANDROID_PLATFORM_INCDIR QMAKE_LIBDIR_OPENGL = $$QMAKE_ANDROID_PLATFORM_LIBDIR -QMAKE_LINK = $$QMAKE_GCC -QMAKE_LINK_SHLIB = $$QMAKE_GCC +QMAKE_LINK_SHLIB = $$QMAKE_LINK QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH QMAKE_RPATHLINK = $$QMAKE_ANDROID_PLATFORM_LIBDIR QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared -- cgit v1.2.3 From 7e4f0ad9616fd2a6a736d318cffd162f9683a34f Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 10 Aug 2016 10:46:00 +0300 Subject: Android: use gold linker Change-Id: Ie09430cd02d431abc33af2ea79606f43882b7ccd Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/android-clang/qmake.conf | 2 +- mkspecs/android-g++/qmake.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index faba0e0d03..c6d8ce4626 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -28,6 +28,6 @@ else: equals(ANDROID_TARGET_ARCH, mips): \ else: equals(ANDROID_TARGET_ARCH, mips64): \ QMAKE_CFLAGS = -target mips64el-none-linux-android -QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -gcc-toolchain $$NDK_TOOLCHAIN_PATH +QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fuse-ld=gold include(../common/android-base-tail.conf) diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf index 50d1fd6cf2..e05cc3f23a 100644 --- a/mkspecs/android-g++/qmake.conf +++ b/mkspecs/android-g++/qmake.conf @@ -13,6 +13,6 @@ QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-gcc QMAKE_CXX = $$QMAKE_GCC QMAKE_CFLAGS = -QMAKE_LINK = $$QMAKE_GCC +QMAKE_LINK = $$QMAKE_GCC -fuse-ld=gold include(../common/android-base-tail.conf) -- cgit v1.2.3 From 27a0ec9b9a9984741d9ea7e8d88e5bca5fe95693 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 16 Aug 2016 15:53:13 +0300 Subject: Revert "Android: use gold linker" It seems there is a configure test which should enable it. This reverts commit 7e4f0ad9616fd2a6a736d318cffd162f9683a34f. Change-Id: I39c594e5e779732d2f5954b42e266a1eaa1be3f0 Reviewed-by: Oswald Buddenhagen --- mkspecs/android-clang/qmake.conf | 2 +- mkspecs/android-g++/qmake.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index c6d8ce4626..9758546fd4 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -28,6 +28,6 @@ else: equals(ANDROID_TARGET_ARCH, mips): \ else: equals(ANDROID_TARGET_ARCH, mips64): \ QMAKE_CFLAGS = -target mips64el-none-linux-android -QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fuse-ld=gold +QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -gcc-toolchain $$NDK_TOOLCHAIN_PATH include(../common/android-base-tail.conf) diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf index e05cc3f23a..50d1fd6cf2 100644 --- a/mkspecs/android-g++/qmake.conf +++ b/mkspecs/android-g++/qmake.conf @@ -13,6 +13,6 @@ QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-gcc QMAKE_CXX = $$QMAKE_GCC QMAKE_CFLAGS = -QMAKE_LINK = $$QMAKE_GCC -fuse-ld=gold +QMAKE_LINK = $$QMAKE_GCC include(../common/android-base-tail.conf) -- cgit v1.2.3 From ed4cd363b189415e08fcb7930347a188fe25d9c1 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sun, 14 Aug 2016 18:05:59 +0200 Subject: Fix missing qmlplugindump_wrapper.sh (debug_and_release) qtPrepareTool() must be called outside a build pass, as it protects against concurrent wrapper creation by omitting it during build passes. Change-Id: I7cf080cf78d1099e4893a204ea40d8c6bc63af58 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qml_plugin.prf | 42 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index 9661da9e8d..ebec1db8da 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -73,6 +73,29 @@ load(qt_common) # directory. Then review and commit the changes made to plugins.qmltypes. # !cross_compile { + qml1_target { + qmlplugindump = qml1plugindump + importpath.name = QML_IMPORT_PATH + } else { + qmlplugindump = qmlplugindump + importpath.name = QML2_IMPORT_PATH + } + importpath.value = + for(qmod, QTREPOS) { + qml1_target: \ + qmod = $$qmod/imports + else: \ + qmod = $$qmod/qml + exists($$qmod): importpath.value += $$shell_path($$qmod) + } + importpath.value = $$unique(importpath.value) + QT_TOOL_ENV = importpath + qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) + QT_TOOL_ENV = + + # qtPrepareTool() must be called outside a build pass, as it protects + # against concurrent wrapper creation by omitting it during build passes. + # However, creating the actual targets is reserved to the build passes. build_pass|!debug_and_release { isEmpty(IMPORT_VERSION) { no_cxx_module { @@ -84,25 +107,6 @@ load(qt_common) } load(resolve_target) - qml1_target { - qmlplugindump = qml1plugindump - importpath.name = QML_IMPORT_PATH - } else { - qmlplugindump = qmlplugindump - importpath.name = QML2_IMPORT_PATH - } - importpath.value = - for(qmod, QTREPOS) { - qml1_target: \ - qmod = $$qmod/imports - else: \ - qmod = $$qmod/qml - exists($$qmod): importpath.value += $$shell_path($$qmod) - } - importpath.value = $$unique(importpath.value) - QT_TOOL_ENV = importpath - qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) - QT_TOOL_ENV = TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, ) qmltypes.target = qmltypes qmltypes.commands = $$QMLPLUGINDUMP -nonrelocatable $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE -- cgit v1.2.3