diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-05-25 14:55:38 +0200 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@theqtcompany.com> | 2015-05-27 11:26:56 +0000 |
commit | 8829ce67d8d0eac90e9fd6fde088b41f157177a5 (patch) | |
tree | 7abe80b446d0135371c737994485615945fe4714 /src | |
parent | 7a4f3645f44bae78987facbf4e39231d0d2882ef (diff) |
Only add -fPIC flags for compilers known to require it.
Commit 083c9269 (Try to ensure that -fPIC is used in CMake
builds, 2015-05-11) added a raw -fPIC to the INTERFACE_COMPILE_OPTIONS
of Qt5::Core, which affects all consuming compilers.
Use the qmake variable $$QMAKE_CXXFLAGS_APP instead, which at least
currently contains only the -fPIC variable or harmlessly expands to
nothing. If the content of that qmake variable changes in the
future, a $$QMAKE_CXXFLAGS_APP_PIC variable should be extracted in
qmake and used here.
Don't use the POSITION_INDEPENDENT_CODE feature of CMake. That adds
the -fPIE flag for executables, which is explicitly what qglobal.h
forbids since commit 3eca75de (Make qglobal.h complain if you
use -fPIE, 2015-05-11). The current behavior of that CMake feature is
tracked here:
http://public.kitware.com/Bug/view.php?id=15570
Change-Id: I5c5bcc40fe4b310b55a681a3505f45c50adfa054
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/Qt5CoreConfigExtras.cmake.in | 3 | ||||
-rw-r--r-- | src/corelib/Qt5CoreMacros.cmake | 4 |
2 files changed, 1 insertions, 6 deletions
diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in index d4abc5f271..a5cab880ba 100644 --- a/src/corelib/Qt5CoreConfigExtras.cmake.in +++ b/src/corelib/Qt5CoreConfigExtras.cmake.in @@ -71,8 +71,7 @@ set(_qt5_corelib_extra_includes) # macro to add it. set(Qt5_POSITION_INDEPENDENT_CODE True) set(Qt5Core_EXECUTABLE_COMPILE_FLAGS \"-fPIC\") -set_property(TARGET Qt5::Core PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") -set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}) +set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP) !!IF !isEmpty(QT_NAMESPACE) list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE) diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake index 9c81754302..c10880f787 100644 --- a/src/corelib/Qt5CoreMacros.cmake +++ b/src/corelib/Qt5CoreMacros.cmake @@ -281,10 +281,6 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.9) set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG) set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG) set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG) - - if (Qt5_POSITION_INDEPENDENT_CODE) - set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE}) - endif() endforeach() endmacro() endif() |