e64df6655fce3c02a347c3299992241ea6497214
[profile/ivi/genivi/genivi-audio-manager.git] / cmake / FindCommonAPI.cmake
1 # Copyright (C) 2013, BMW AG
2 #
3 # This file is part of GENIVI Project AudioManager.
4
5 # Contributions are licensed to the GENIVI Alliance under one or more
6 # Contribution License Agreements.
7
8 # copyright
9 # This Source Code Form is subject to the terms of the
10 # Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
11 # this file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
13 # author Christian Linke, christian.linke@bmw.de BMW 2013
14 #
15 # For further information see http://www.genivi.org/.
16 #
17
18 include(UsePkgConfig)
19
20 pkg_check_modules(COMMON_API CommonAPI)
21
22 IF(COMMON_API_FOUND)    
23     
24     FIND_PATH(COMMON_API_INCLUDE_DIR
25               NAMES CommonAPI/Runtime.h CommonAPI/Proxy.h 
26               PATH_SUFFIXES CommonAPI-${COMMON_API_VERSION}      
27               PATHS
28               ${COMMON_API_INCLUDE_DIRS}        
29               /usr/local/include                
30               /usr/include)
31
32     FIND_LIBRARY(COMMON_API_LIBRARY 
33                  NAMES CommonAPI
34                  PATHS
35                  ${CommonAPI_PKG_LIBRARY_DIRS}
36                  /usr/local/lib
37                  /usr/lib)
38                  
39 ELSE(COMMON_API_FOUND)
40     
41     MESSAGE(STATUS "CommonAPI package not found, search directly, trying version 0.7 ...")
42
43       
44     FIND_PATH(COMMON_API_INCLUDE_DIR
45               NAMES CommonAPI/Runtime.h CommonAPI/Proxy.h 
46               PATH_SUFFIXES CommonAPI-0.7
47               PATHS
48               /usr/local/include                
49               /usr/include)
50               
51     FIND_LIBRARY(COMMON_API_LIBRARY 
52              NAMES CommonAPI
53              PATHS
54              /usr/local/lib
55              /usr/lib)
56               
57 ENDIF(COMMON_API_FOUND)
58         
59 SET(COMMON_API_LIBRARIES ${COMMON_API_LIBRARY})
60
61 IF(COMMON_API_INCLUDE_DIR AND COMMON_API_LIBRARY)   
62    message(STATUS "Found CommonAPI")
63 ELSE(COMMON_API_LIBRARIES AND COMMON_API_LIBRARY)   
64    message(STATUS " CommonAPI not found.")
65 ENDIF(COMMON_API_INCLUDE_DIR AND COMMON_API_LIBRARY)
66
67 #searching for generated headers
68 IF(NOT COMMON_API_SRC_GEN)
69      SET(COMMON_API_SRC_GEN "src-gen/")
70 ENDIF(NOT COMMON_API_SRC_GEN)
71
72 FILE(GLOB_RECURSE COMMON_API_GEN_HEADER_DIRECTORIES "${COMMON_API_SRC_GEN}*Proxy.h")
73 FOREACH(INCLUDE_ITER ${COMMON_API_GEN_HEADER_DIRECTORIES})
74    GET_FILENAME_COMPONENT(TEMP_PATH ${INCLUDE_ITER} PATH)
75    SET(COMMON_API_GEN_INCLUDE_DIR ${COMMON_API_GEN_INCLUDE_DIR} ${TEMP_PATH})
76 ENDFOREACH(INCLUDE_ITER ${COMMON_API_GEN_HEADER_DIRECTORIES})
77 LIST(REMOVE_DUPLICATES COMMON_API_GEN_INCLUDE_DIR)
78
79 #add base path src-gen
80 SET(COMMON_API_GEN_INCLUDE_DIR ${COMMON_API_GEN_INCLUDE_DIR} ${COMMON_API_SRC_GEN})
81
82 IF (COMMON_API_GEN_INCLUDE_DIR)
83     message(STATUS "Found generated headers !") 
84 ELSE (COMMON_API_GEN_INCLUDE_DIR)
85     message(STATUS "Did not find generated headers")
86 ENDIF(COMMON_API_GEN_INCLUDE_DIR)
87
88 #searching for generated sources
89 FILE(GLOB_RECURSE COMMON_API_GEN_SOURCES "${COMMON_API_SRC_GEN}*.cpp")
90
91 IF (COMMON_API_GEN_SOURCES)
92     message(STATUS "Found generated sources !") 
93 ELSE (COMMON_API_GEN_SOURCES)
94     message(STATUS "Did not find generated sources !")
95 ENDIF(COMMON_API_GEN_SOURCES)
96                 
97 MARK_AS_ADVANCED(
98     COMMON_API_LIBRARIES 
99     COMMON_API_INCLUDE_DIR
100     COMMON_API_GEN_INCLUDE_DIR
101     COMMON_API_GEN_SOURCES
102 )