qt5base-lts/tests/manual/cmake/pass1/CMakeLists.txt
Stephen Kelly 361cd9f9b2 Give the compile flags an EXECUTABLE_ prefix.
The fPIE flag should only be used with executables.

Change-Id: If799ae4a7fe2492af3aac67651659a52d365024a
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-21 22:31:00 +01:00

49 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 2.8)
project(pass1)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
macro(qt5_use_package _target _package)
if (NOT Qt5${_package}_FOUND)
find_package(Qt5${_package} ${ARG1})
endif()
if (Qt5${_package}_FOUND)
# TODO: Handle public/private keywords?
target_link_libraries(${_target} ${Qt5${_package}_LIBRARIES})
# ### Requires CMake 2.8.8:
# set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_package}_INCLUDE_DIRS})
include_directories(${Qt5${_package}_INCLUDE_DIRS})
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_package}_COMPILE_DEFINITIONS})
# We can't just append to the COMPILE_FLAGS property. That creats a ';' separated list
# which breaks the compile commmand line.
# Ensure non-duplication here manually instead.
get_property(_taget_type TARGET ${_target} PROPERTY TYPE)
if ("${_taget_type}" STREQUAL "EXECUTABLE")
get_target_property(_flags ${_target} COMPILE_FLAGS)
if (_flags)
list(APPEND _flags ${Qt5${_package}_EXECUTABLE_COMPILE_FLAGS})
list(REMOVE_DUPLICATES _flags)
else()
set(_flags ${Qt5${_package}_EXECUTABLE_COMPILE_FLAGS})
endif()
if (_flags)
set_target_properties(${_target} PROPERTIES COMPILE_FLAGS ${_flags})
endif()
endif()
else()
message(FATAL_ERROR "NOT FOUND: Qt5${_package}")
endif()
endmacro()
add_executable(two two.cpp)
add_executable(three three.cpp)
qt5_use_package(two Test)
qt5_use_package(three Widgets)
qt5_use_package(three Test)