ilmControl: code deduplication regarding controller listeners
[profile/ivi/wayland-ivi-extension.git] / ivi-layermanagement-api / ilmClient / CMakeLists.txt
1 ############################################################################
2 #
3 # Copyright 2010-2014 BMW Car IT GmbH
4 # Copyright (C) 2013 DENSO CORPORATION
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 project(ilmClient)
23
24 find_package(Threads)
25 find_package(PkgConfig REQUIRED)
26 pkg_check_modules(WAYLAND_CLIENT wayland-client REQUIRED)
27
28 GET_TARGET_PROPERTY(ILM_COMMON_INCLUDE_DIRS ilmCommon INCLUDE_DIRECTORIES)
29
30 include_directories(
31     include
32     ${ILM_COMMON_INCLUDE_DIRS}
33     ${WAYLAND_CLIENT_INCLUDE_DIRS}
34 )
35
36 link_directories(
37     ${WAYLAND_CLIENT_LIBRARY_DIRS}
38 )
39
40 add_library(${PROJECT_NAME} SHARED
41     src/ilm_client.c
42     src/ilm_client_wayland_platform.c
43 )
44
45 set(LIBS
46     ${LIBS}
47     ilmCommon
48     ivi-extension-protocol
49     ${WAYLAND_CLIENT_LIBRARIES}
50 )
51
52 add_dependencies(${PROJECT_NAME}
53     ${LIBS}
54 )
55
56 target_link_libraries(${PROJECT_NAME}
57     ${LIBS}
58 )
59
60 install (
61     TARGETS             ${PROJECT_NAME}
62     LIBRARY DESTINATION lib
63 )
64
65 install (
66     FILES       ${CMAKE_CURRENT_SOURCE_DIR}/include/ilm_client.h
67     DESTINATION include/ilm
68 )
69
70 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${ILM_API_VERSION} SOVERSION ${ILM_API_VERSION})
71
72
73 #=============================================================================================
74 # generate documentation for ilmClient API
75 #=============================================================================================
76
77 add_custom_target(ilm-client-doc
78                   COMMAND cat ${CMAKE_SOURCE_DIR}/doc/Doxyfile.template
79                           | sed 's/___DOC_NAME___/ilmClient API/'
80                           | sed 's/___DOC_VERSION___/${ILM_API_VERSION}/'
81                           | sed 's!___INPUT_FILE___!${CMAKE_CURRENT_SOURCE_DIR}/include/ilm_client.h ${CMAKE_SOURCE_DIR}/ivi-layermanagement-api/ilmCommon/include/ilm_common.h!'
82                           | sed 's/___OUTPUT_DIR___/ilm-client-doc/'
83                           | doxygen -
84                   COMMAND make --silent -C ilm-client-doc/latex
85                   COMMAND cp ilm-client-doc/latex/refman.pdf
86                              ${CMAKE_BINARY_DIR}/ilm-client-api-${ILM_API_VERSION}.pdf
87                   COMMENT "Generating ilm-client-api-${ILM_API_VERSION}.pdf"
88 )
89