2 # Dlt - Diagnostic Log and Trace
\r
3 # @licence make begin@
\r
5 # Copyright (C) 2011-2014, BMW AG - Alexander Wenzel <alexander.aw.wenzel@bmw.de>
\r
7 # Contributions are licensed to the GENIVI Alliance under one or more
\r
8 # Contribution License Agreements.
\r
10 # This Source Code Form is subject to the terms of the
\r
11 # Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
\r
12 # this file, You can obtain one at http://mozilla.org/MPL/2.0/.
\r
17 cmake_minimum_required( VERSION 2.6 )
\r
18 project( automotive-dlt )
\r
20 mark_as_advanced( CMAKE_BACKWARDS_COMPATIBILITY)
\r
21 set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE )
\r
22 set( CMAKE_INSTALL_PREFIX "/usr" )
\r
24 # Set version parameters
\r
25 set( DLT_MAJOR_VERSION 2)
\r
26 set( DLT_MINOR_VERSION 10)
\r
27 set( DLT_PATCH_LEVEL 0)
\r
28 set( DLT_VERSION ${DLT_MAJOR_VERSION}.${DLT_MINOR_VERSION}.${DLT_PATCH_LEVEL})
\r
29 set( DLT_VERSION_STATE STABLE )
\r
30 set( DLT_REVISION "")
\r
32 execute_process(COMMAND git describe --tags WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
\r
33 OUTPUT_VARIABLE DLT_REVISION
\r
34 ERROR_VARIABLE GIT_ERROR
\r
35 OUTPUT_STRIP_TRAILING_WHITESPACE
\r
36 ERROR_STRIP_TRAILING_WHITESPACE)
\r
37 if( DLT_REVISION MATCHES "^$")
\r
38 set( PRINT_REVISION "Git revision unavailable")
\r
39 else( DLT_REVISION MATCHES "")
\r
40 string(REPLACE "-" "_" DLT_REVISION ${DLT_REVISION})
\r
41 set( PRINT_REVISION ${DLT_REVISION})
\r
42 endif( DLT_REVISION MATCHES "^$")
\r
44 # set default build type, if not defined by user
\r
45 if(NOT CMAKE_BUILD_TYPE)
\r
46 set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
\r
47 "Choose build type: Debug, Release, RelWithDebInfo, MinSizeRel."
\r
49 message(STATUS "Build type not defined. Using default build type 'RelWithDebInfo'.")
\r
50 endif(NOT CMAKE_BUILD_TYPE)
\r
52 # Set of indiviual options
\r
53 option(BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON )
\r
54 option(WITH_SYSTEMD "Set to ON to create unit files and systemd check on dlt-daemon startup" OFF )
\r
55 option(WITH_SYSTEMD_WATCHDOG "Set to ON to use the systemd watchdog in dlt-daemon" OFF)
\r
56 option(WITH_SYSTEMD_JOURNAL "Set to ON to use the systemd journal in dlt-system" OFF)
\r
57 option(WITH_DOC "Set to ON to build documentation target" OFF )
\r
58 option(WITH_MAN "Set to ON to build man pages" ON )
\r
59 option(WITH_CHECK_CONFIG_FILE "Set to ON to create a configure file of CheckIncludeFiles and CheckFunctionExists " OFF )
\r
60 option(WITH_TESTSCRIPTS "Set to ON to run CMakeLists.txt in testscripts" OFF )
\r
61 option(WITH_GPROF "Set -pg to compile flags" OFF )
\r
62 option(WITH_DLTTEST "Set to ON to build with modifications to test User-Daemon communication with corrupt messages" OFF)
\r
63 option(WITH_DLT_SHM_ENABLE "EXPERIMENTAL! Set to ON to use shared memory as IPC. EXPERIMENTAL!" OFF )
\r
64 option(WTIH_DLT_ADAPTOR "Set ton ON to build src/adaptor binaries" ON)
\r
65 option(WITH_DLT_CONSOLE "Set ton ON to build src/console binaries" ON)
\r
66 option(WITH_DLT_EXAMPLES "Set ton ON to build src/examples binaries" ON)
\r
67 option(WITH_DLT_SYSTEM "Set ton ON to build src/system binaries" ON)
\r
68 option(WITH_DLT_TESTS "Set ton ON to build src/test binaries" ON)
\r
70 set( GENIVI_RPM_RELEASE "1")#${DLT_REVISION}")
\r
71 set( LICENSE "Mozilla Public License Version 2.0" )
\r
73 # Build, project and include settings
\r
74 find_package(Threads REQUIRED)
\r
75 find_package(ZLIB REQUIRED)
\r
77 include_directories(
\r
78 ${CMAKE_SOURCE_DIR}/
\r
79 ${CMAKE_SOURCE_DIR}/include/dlt
\r
80 ${CMAKE_SOURCE_DIR}/src/shared/
\r
81 ${CMAKE_SOURCE_DIR}/src/lib/
\r
82 ${CMAKE_SOURCE_DIR}/src/daemon/
\r
83 ${CMAKE_SOURCE_DIR}/systemd/3rdparty/
\r
86 add_definitions( -D_GNU_SOURCE )
\r
89 add_definitions( -DDLT_TEST_ENABLE)
\r
92 if(WITH_DLT_SHM_ENABLE)
\r
93 add_definitions( -DDLT_SHM_ENABLE)
\r
94 endif(WITH_DLT_SHM_ENABLE)
\r
97 SET(CMAKE_C_FLAGS "-pg")
\r
100 add_definitions( "-Wall" )
\r
101 add_definitions( "-Wextra" )
\r
103 IF(${WITH_DOC} STREQUAL "OFF")
\r
104 SET(PACKAGE_DOC "#")
\r
105 ELSE (${WITH_DOC} STREQUAL "OFF")
\r
106 SET(PACKAGE_DOC "")
\r
107 ENDIF(${WITH_DOC} STREQUAL "OFF")
\r
109 set(LIB_INSTALL_DIR lib${LIB_SUFFIX})
\r
111 configure_file(${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.spec.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.spec)
\r
112 configure_file(${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.pc.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY)
\r
113 install(FILES ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig COMPONENT devel)
\r
115 add_subdirectory( cmake )
\r
117 if(WITH_SYSTEMD OR WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD_JOURNAL)
\r
119 add_definitions( -DDLT_SYSTEMD_ENABLE)
\r
120 endif(WITH_SYSTEMD)
\r
122 if(WITH_SYSTEMD_WATCHDOG)
\r
123 add_definitions( -DDLT_SYSTEMD_WATCHDOG_ENABLE)
\r
124 endif(WITH_SYSTEMD_WATCHDOG)
\r
126 if(WITH_SYSTEMD_JOURNAL)
\r
127 add_definitions( -DDLT_SYSTEMD_JOURNAL_ENABLE)
\r
128 endif(WITH_SYSTEMD_JOURNAL)
\r
130 set( systemd_SRCS ${CMAKE_SOURCE_DIR}/systemd/3rdparty/sd-daemon.c)
\r
132 add_subdirectory( systemd )
\r
133 endif(WITH_SYSTEMD OR WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD_JOURNAL)
\r
135 add_subdirectory( doc )
\r
136 add_subdirectory( src )
\r
137 add_subdirectory( include )
\r
138 add_subdirectory( testscripts )
\r
141 message( STATUS "-------------------------------------------------------------------------------" )
\r
142 message( STATUS "Build for Version ${DLT_VERSION} build ${DLT_REVISION} version state ${DLT_VERSION_STATE}")
\r
143 message( STATUS "WITH_SYSTEMD = ${WITH_SYSTEMD}" )
\r
144 message( STATUS "WITH_SYSTEMD_WATCHDOG = ${WITH_SYSTEMD_WATCHDOG}" )
\r
145 message( STATUS "WITH_SYSTEMD_JOURNAL = ${WITH_SYSTEMD_JOURNAL}" )
\r
146 message( STATUS "WITH_DOC = ${WITH_DOC}" )
\r
148 message( STATUS "WITH_MAN = ${WITH_MAN}" )
\r
149 message( STATUS "WTIH_DLT_ADAPTOR = ${WTIH_DLT_ADAPTOR}")
\r
150 message( STATUS "WITH_DLT_CONSOLE = ${WITH_DLT_CONSOLE}")
\r
151 message( STATUS "WITH_DLT_EXAMPLES = ${WITH_DLT_EXAMPLES}")
\r
152 message( STATUS "WITH_DLT_SYSTEM = ${WITH_DLT_SYSTEM}")
\r
153 message( STATUS "WITH_DLT_TESTS = ${WITH_DLT_TESTS}")
\r
154 message( STATUS "WITH_DLT_SHM_ENABLE = ${WITH_DLT_SHM_ENABLE}" )
\r
155 message( STATUS "WITH_DLTTEST = ${WITH_DLTTEST}" )
\r
156 message( STATUS "WITH_CHECK_CONFIG_FILE = ${WITH_CHECK_CONFIG_FILE}" )
\r
157 message( STATUS "WITH_TESTSCRIPTS = ${WITH_TESTSCRIPTS}" )
\r
158 message( STATUS "WITH_GPROF = ${WITH_GPROF}" )
\r
159 message( STATUS "BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}" )
\r
160 message( STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}" )
\r
161 message( STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}" )
\r
162 message( STATUS "Change a value with: cmake -D<Variable>=<Value>" )
\r
163 message( STATUS "-------------------------------------------------------------------------------" )
\r