removed unmaintained plugins
[profile/ivi/automotive-message-broker.git] / CMakeLists.txt
1 project(automotive-message-broker)
2 cmake_minimum_required(VERSION 2.8)
3
4 set(CMAKE_BUILD_TYPE, Debug)
5
6 include(FindPkgConfig)
7
8 set(PROJECT_NAME "automotive-message-broker")
9 set(PROJECT_VERSION "0.12.803")
10 set(PROJECT_CODENAME "agera")
11 set(PROJECT_QUALITY "alpha")
12
13 add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}")
14 add_definitions(-DPROJECT_NAME="${PROJECT_NAME}")
15 add_definitions(-DPROJECT_CODENAME="${PROJECT_CODENAME}")
16 add_definitions(-DPROJECT_QUALITY="${PROJECT_QUALITY}")
17
18 set (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
19 set (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/${CMAKE_LIBRARY_ARCHITECTURE}" CACHE STRING "Directory where lib will install")
20 set (PLUGIN_INSTALL_PATH "${LIB_INSTALL_DIR}/${PROJECT_NAME}")
21 set (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The directory the headers are installed in")
22 set (DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PROJECT_NAME}" CACHE PATH "The directory the docs will be installed to")
23
24 option(qtmainloop "Use QCoreApplication mainloop " OFF)
25 option(websocket_plugin "websocket source and sink plugins" OFF)
26 option(obd2_plugin "OBD-II plugin" OFF)
27 option(database_plugin "Database plugins" OFF)
28 option(qt_bindings "AMB Qt DBus bindings" OFF)
29 option(opencvlux_plugin "OpenCV Lux plugin" OFF)
30 option(murphy_plugin "murphy policy framework plugin" OFF)
31 option(test_plugin "Test Plugin" ON)
32 option(bluemonkey_plugin "bluemonkey plugin" OFF)
33 option(gpsnmea_plugin "gps NMEA location plugin" OFF)
34 option(openxc_plugin "OpenXC plugin" OFF)
35 option(bluetooth_plugin "bluetooth plugin" OFF)
36 option(cansim_plugin "Can simulator plugin" OFF)
37 option(cangen_plugin "Can generator plugin" OFF)
38 option(enable_icecc "Enable icecc checking, for distributed compilation" ON)
39 option(enable_docs "enable Doxygen doc generation" OFF)
40 option(usebluez5 "use bluez 5 API" OFF)
41 option(xwalk_vehicle_extension "Crosswalk vehicle extension" OFF)
42 set(XWALK_EXTENSION_PATH "/automotive-message-broker/xwalk" CACHE PATH "directory the xwalk extension will be installed to")
43
44 #turn on -fpic/-fpie:
45 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
46 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie -pie -std=c++11")
47
48 if(opencvlux_plugin)
49    message(STATUS "OpenCV Lux plugin enabled")
50
51 endif(opencvlux_plugin)
52
53 include (CMakeForceCompiler)
54
55 if (enable_icecc)
56    find_program(ICECC /usr/lib/icecc/bin/g++)
57     if (ICECC)
58         message(STATUS "icecc will be used for distributed compiling")
59         cmake_force_cxx_compiler(${ICECC} icecc)
60     else(ICECC)
61         message(STATUS "Not using icecc")
62     endif(ICECC)
63 endif(enable_icecc)
64
65 # add a target to generate API documentation with Doxygen
66 if(enable_docs)
67 message(STATUS "doxygen doc generation enabled")
68 find_package(Doxygen)
69 if(DOXYGEN_FOUND)
70   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
71   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.idl.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.idl @ONLY)
72   add_custom_target(all ALL ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs/amb COMMENT "Generating API documentation with Doxygen" VERBATIM)
73   add_custom_target(idl ALL ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.idl WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs/dbus COMMENT "Generating DBus API documentation with Doxygen" VERBATIM)
74 endif(DOXYGEN_FOUND)
75 endif(enable_docs)
76
77 find_package(Boost REQUIRED)
78
79
80 pkg_check_modules(glib REQUIRED glib-2.0 gobject-2.0)
81 pkg_check_modules(json REQUIRED json)
82
83 add_definitions(-DDBusServiceName="org.automotive.message.broker")
84
85 set(include_dirs ${libtool_INCLUDE_DIR} ${glib_INCLUDE_DIRS} ${gio_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${json_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/lib)
86 set(link_libraries -lamb ${glib_LIBRARIES} ${json_LIBRARIES} -L${CMAKE_CURRENT_BINARY_DIR}/lib)
87
88 if(qtmainloop)
89   message(STATUS "using Qt mainloop")
90
91   find_package(Qt5Core)
92   if(Qt5Core_FOUND)
93     message(STATUS "using Qt5")
94     set(QT_INCLUDE_DIRS ${Qt5Core_INCLUDE_DIRS})
95     set(QT_LIBRARIES ${Qt5Core_LIBRARIES})
96     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
97   #     if(CMAKE_SIZEOF_VOID_P MATCHES "8")
98   #             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcmodel=large")
99   #     endif(CMAKE_SIZEOF_VOID_P MATCHES "8")
100     add_definitions(${Qt5Core_DEFINITIONS})
101   else(Qt5Core_FOUND)
102     message(STATUS "using Qt4")
103     find_package( Qt4 REQUIRED )
104     include(${QT_USE_FILE})
105
106   endif(Qt5Core_FOUND)
107
108   set(include_dirs ${include_dirs} ${QT_INCLUDE_DIRS})
109   set(link_libraries ${link_libraries} ${QT_LIBRARIES})
110
111   add_definitions(-DQT_NO_KEYWORDS)
112   add_definitions(-DUSE_QT_CORE)
113 endif(qtmainloop)
114
115 if(usebluez5)
116   add_definitions(-DUSE_BLUEZ5)
117
118 endif(usebluez5)
119
120 set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION})
121 add_custom_target(dist COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD | bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
122
123 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
124 add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
125
126 # packaging stuff:
127 # Common things to every type of package
128 SET(CPACK_PACKAGE_DESCRIPTION "daemon to access vehicle data")
129 SET(CPACK_PACKAGE_NAME "automotive-message-broker")
130 SET(CPACK_PACKAGE_EXECUTABLES "ambd")
131 SET(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
132 SET(CPACK_STRIP_FILES true)
133 SET(CPACK_PACKAGE_CONTACT "tripzero.kev@gmail.com")
134 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
135
136
137 # Always build .tar.gz and .sh files
138 SET(CPACK_GENERATOR "STGZ;TGZ")
139
140 SET(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
141 SET(CPACK_DEBIAN_PACKAGE_DEPENDS "gpsd (>=2.0), libopencv, libjson0, libltdl7")
142 SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
143
144 INCLUDE(CPack)
145
146 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/packaging.in/config.tizen.in ${CMAKE_CURRENT_BINARY_DIR}/packaging.in/config.tizen @ONLY)
147
148 add_subdirectory(lib)
149 add_subdirectory(ambd)
150 add_subdirectory(plugins)
151 add_subdirectory(docs)
152 add_subdirectory(tests)
153 add_subdirectory(examples)
154 add_subdirectory(xwalk)