Commit a390b74a authored by Liang Qi's avatar Liang Qi
Browse files

Merge remote-tracking branch 'origin/5.4.2' into 5.4

Change-Id: Iecd8ad4a73e8439fb1b372c51c49709f2c513aac
Showing with 8 additions and 40 deletions
...@@ -96,7 +96,13 @@ ...@@ -96,7 +96,13 @@
associated. They provide a list of plugins in the associated. They provide a list of plugins in the
\c{Qt5}\e{<Module>}\c{_PLUGINS} variable. \c{Qt5}\e{<Module>}\c{_PLUGINS} variable.
\snippet snippets/cmake/CMakeLists.pro 7 \snippet snippets/cmake/CMakeLists.pro 5
\section2 Using Qt 5 with \c{CMake} older than 2.8.12
It is also necessary when using an older \c{CMake} to add Qt5<Module>_EXECUTABLE_COMPILE_FLAGS to
the CMAKE_CXX_FLAGS so that the -fPIC flags are added to the compile flags if necessary (as
is the default with Qt 5).
\section2 Using Qt 5 with \c{CMake} older than 2.8.11 \section2 Using Qt 5 with \c{CMake} older than 2.8.11
...@@ -124,24 +130,6 @@ ...@@ -124,24 +130,6 @@
\snippet snippets/cmake/CMakeLists.pro 4 \snippet snippets/cmake/CMakeLists.pro 4
It is also necessary when using an older \c{CMake} to add Qt5<Module>_EXECUTABLE_COMPILE_FLAGS to
the CMAKE_CXX_FLAGS so that the -fPIE flags are added to the compile flags if necessary (as
is the default with Qt 5).
If not using the \c{qt5_use_modules} macro, and if using CMake 2.8.9 or later, the
\l{CMake POSITION_INDEPENDENT_CODE Documentation}{POSITION_INDEPENDENT_CODE property} can be set on
targets using Qt instead, or it can be set globally for all targets. Note that this is not necessary
with CMake 2.8.11:
\snippet snippets/cmake/CMakeLists.pro 5
Note that it may be necessary to enable POSITION_INDEPENDENT_CODE globally in order to use try_compile
with Qt code, or any wrapper macros around it such as check_cxx_source_compiles etc.
As position independent code is a platform-specific and Qt-configuration-specific concept, the
Qt5_POSITION_INDEPENDENT_CODE property can be used to check whether it is required.
\snippet snippets/cmake/CMakeLists.pro 6
\section1 Variable Reference \section1 Variable Reference
\section2 Module variables \section2 Module variables
......
...@@ -73,28 +73,8 @@ target_link_libraries(helloworld Qt5::Widgets) ...@@ -73,28 +73,8 @@ target_link_libraries(helloworld Qt5::Widgets)
#! [4] #! [4]
#! [5] #! [5]
find_package(Qt5Core)
add_executable(exe1 ${exe1_SRCS})
# Set the POSITION_INDEPENDENT_CODE property for the exe1 target...
set_target_properties(exe1 PROPERTIES POSITION_INDEPENDENT_CODE ON)
# Or set it globally for all targets:
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
add_executable(exe2 ${exe2_SRCS})
add_executable(exe3 ${exe3_SRCS})
#! [5]
#! [6]
if (Qt5_POSITION_INDEPENDENT_CODE)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
#! [6]
#! [7]
foreach(plugin ${Qt5Network_PLUGINS}) foreach(plugin ${Qt5Network_PLUGINS})
get_target_property(_loc ${plugin} LOCATION) get_target_property(_loc ${plugin} LOCATION)
message("Plugin ${plugin} is at location ${_loc}") message("Plugin ${plugin} is at location ${_loc}")
endforeach() endforeach()
#! [7] #! [5]
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment