define Q_NO_DATA_RELOCATION based on dummy target property

CMAKE_POSITION_INDEPENDENT_CODE may not be set but targets may have the
POSITION_INDEPENDENT_CODE property set to TRUE anyway

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2020-12-20 15:59:54 +00:00
parent 716ee27810
commit 2f1cdbb769
7 changed files with 9 additions and 14 deletions

View file

@ -488,6 +488,12 @@ if(NOT WITH_ACCESSIBILITY)
katie_definition(-DQT_NO_ACCESSIBILITY)
endif()
add_library(pic_test ${KATIE_TYPE} EXCLUDE_FROM_ALL "${CMAKE_SOURCE_DIR}/cmake/pic.cpp")
get_target_property(HAVE_pic pic_test POSITION_INDEPENDENT_CODE)
if(NOT HAVE_pic)
katie_definition(-DQ_NO_DATA_RELOCATION)
endif()
# keep in sync with the gui component CMake file, only definitions setup is needed here
foreach(x11ext Xshape Xinerama Xrandr Xrender Xfixes Xcursor)
if(NOT X11_${x11ext}_FOUND)

3
cmake/pic.cpp Normal file
View file

@ -0,0 +1,3 @@
struct PIC {
bool abc;
};

View file

@ -1 +0,0 @@
int main() { return 0; }

View file

@ -44,16 +44,6 @@ if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
katie_definition(-DQT_NO_DEBUG)
endif()
try_compile(bsymbolic_functions_test
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_LIST_DIR}/bsymbolic_functions.cpp
CMAKE_FLAGS -shared -Wl,-Bsymbolic-functions -fPIC
OUTPUT_VARIABLE bsymbolic_functions_test_output
)
if(NOT bsymbolic_functions_test OR NOT CMAKE_POSITION_INDEPENDENT_CODE)
katie_definition(-DQ_NO_DATA_RELOCATION)
endif()
# Set compiler standard to C++ 11, appending to CMAKE_CXX_FLAGS is done so that try_compile() is
# also affected, which KDE uses for visibility check for an example
if(NOT CMAKE_VERSION VERSION_LESS "3.8.0")

View file

@ -1463,7 +1463,6 @@ lib/cmake/Katie/KatieConfigVersion.cmake
lib/cmake/Katie/KatieTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/Katie/KatieTargets.cmake
lib/cmake/Katie/Qt4UseFile.cmake
lib/cmake/Katie/mkspecs/bsymbolic_functions.cpp
lib/cmake/Katie/mkspecs/mkspecs.cmake
lib/katie/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so
lib/katie/imports/Qt/labs/folderlistmodel/qmldir

View file

@ -1466,7 +1466,6 @@ lib/cmake/Katie/KatieConfigVersion.cmake
lib/cmake/Katie/KatieTargets-relwithdebinfo.cmake
lib/cmake/Katie/KatieTargets.cmake
lib/cmake/Katie/Qt4UseFile.cmake
lib/cmake/Katie/mkspecs/bsymbolic_functions.cpp
lib/cmake/Katie/mkspecs/mkspecs.cmake
lib/katie/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so
lib/katie/imports/Qt/labs/folderlistmodel/qmldir

View file

@ -1481,7 +1481,6 @@ lib/cmake/Katie/KatieTargets${MODCMAKE_BUILD_SUFFIX}
lib/cmake/Katie/KatieTargets.cmake
lib/cmake/Katie/Qt4UseFile.cmake
lib/cmake/Katie/mkspecs/
lib/cmake/Katie/mkspecs/bsymbolic_functions.cpp
lib/cmake/Katie/mkspecs/mkspecs.cmake
lib/katie/
lib/katie/imports/