summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake/pass1/CMakeLists.txt
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2012-04-18 16:46:26 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-23 17:03:56 +0200
commit61c433785eb918d81b927f17bcad4687f2269afe (patch)
treebce4d94e963b4dd0f8fe73a19b5cd764a33b2627 /tests/auto/cmake/pass1/CMakeLists.txt
parentf88212c22f7e4bec261130a6f82294adfc75abca (diff)
Move the CMake unit tests to auto/
This will allow the CI system to run the tests. The tests are only run if cmake is found. Change-Id: Ie73a56114c151871160bafcbf0b90b2d54620855 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Diffstat (limited to 'tests/auto/cmake/pass1/CMakeLists.txt')
-rw-r--r--tests/auto/cmake/pass1/CMakeLists.txt51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/auto/cmake/pass1/CMakeLists.txt b/tests/auto/cmake/pass1/CMakeLists.txt
new file mode 100644
index 0000000000..970ca33078
--- /dev/null
+++ b/tests/auto/cmake/pass1/CMakeLists.txt
@@ -0,0 +1,51 @@
+
+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 Core)
+qt5_use_package(two Test)
+qt5_use_package(three Widgets)
+qt5_use_package(three Gui)
+qt5_use_package(three Core)
+qt5_use_package(three Test)