ilmControl: code deduplication regarding controller listeners
[profile/ivi/wayland-ivi-extension.git] / ivi-layermanagement-api / test / CMakeLists.txt
1 ############################################################################
2 #
3 # Copyright 2014 BMW Car IT GmbH
4 #
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #               http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 ############################################################################
19
20 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
21
22 OPTION(BUILD_ILM_API_TESTS   "Install unit tests for IVI LayerManagement API" OFF)
23 OPTION(INSTALL_ILM_API_TESTS "Build unit tests for IVI LayerManagement API"   OFF)
24
25 FIND_PACKAGE(gtest)
26
27 IF(NOT gtest_FOUND)
28     MESSAGE(STATUS "gtest not found, disabling unit tests (BUILD_ILM_API_TESTS=OFF)")
29     SET(BUILD_ILM_API_TESTS FALSE CACHE BOOL "Build unit tests for IVI LayerManagement API" FORCE)
30 ENDIF()
31
32 IF(BUILD_ILM_API_TESTS)
33
34     PROJECT(ivi-layermanagement-api-test)
35
36     INCLUDE_DIRECTORIES(
37         ${CMAKE_CURRENT_SOURCE_DIR}/../ilmCommon/include
38         ${CMAKE_CURRENT_SOURCE_DIR}/../ilmClient/include
39         ${CMAKE_CURRENT_SOURCE_DIR}/../ilmControl/include
40         ${WAYLAND_CLIENT_INCLUDE_DIRS}
41         ${gtest_INCLUDE_DIRS}
42     )
43
44     LINK_DIRECTORIES(
45         ${WAYLAND_CLIENT_LIBRARY_DIRS}
46     )
47
48     SET(LIBS
49         ilmCommon
50         ilmClient
51         ilmControl
52         ${gtest_LIBRARIES}
53         ${WAYLAND_CLIENT_LIBRARIES}
54     )
55
56     SET(SRC_FILES
57         TestBase.cpp
58         ilm_control_test.cpp
59         ilm_control_notification_test.cpp
60     )
61
62     ADD_EXECUTABLE(${PROJECT_NAME} ${SRC_FILES})
63
64     TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBS})
65
66     ADD_DEPENDENCIES(${PROJECT_NAME} ${LIBS})
67
68     IF(INSTALL_ILM_API_TESTS)
69         INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
70     ENDIF()
71
72     # use CTest
73     ENABLE_TESTING()
74     ADD_TEST(ilmCommon  ${PROJECT_NAME})
75     ADD_TEST(ilmClient  ${PROJECT_NAME})
76     ADD_TEST(ilmControl ${PROJECT_NAME})
77
78 ENDIF()