2 # Copyright (c) 2015-2019 Samsung Electronics Co., Ltd All Rights Reserved
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
21 IF(NOT DEFINED VERSION)
23 ENDIF(NOT DEFINED VERSION)
25 INCLUDE(FindPkgConfig)
27 IF(NOT CMAKE_BUILD_TYPE)
28 SET(CMAKE_BUILD_TYPE "DEBUG")
29 ENDIF(NOT CMAKE_BUILD_TYPE)
31 SET(ODE_LIB ${PROJECT_SOURCE_DIR}/lib)
32 SET(ODE_KEY_STORAGE_PLUGIN ${PROJECT_SOURCE_DIR}/ode-key-storage-plugin)
33 SET(ODE_SERVER ${PROJECT_SOURCE_DIR}/server)
34 SET(ODE_TOOLS ${PROJECT_SOURCE_DIR}/tools)
35 SET(ODE_TESTS ${PROJECT_SOURCE_DIR}/tests)
36 SET(ODE_DUMMY_KSP ${PROJECT_SOURCE_DIR}/dummy-ksp)
37 SET(ODE_FOTA ${PROJECT_SOURCE_DIR}/fota)
39 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
45 EXECUTE_PROCESS(COMMAND getconf LFS_CFLAGS OUTPUT_VARIABLE LFS_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
46 EXECUTE_PROCESS(COMMAND getconf LFS_LDFLAGS OUTPUT_VARIABLE LFS_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
47 EXECUTE_PROCESS(COMMAND getconf LFS_LIBS OUTPUT_VARIABLE LFS_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
49 SET(COMPILE_BASE_FLAGS "-g -fPIC -Werror -Wall -Wl,--as-needed -Wl,--no-whole-archive ${LFS_CFLAGS}")
50 SET(CMAKE_C_FLAGS_PROFILING "${COMPILE_BASE_FLAGS} -O0 -pg")
51 SET(CMAKE_CXX_FLAGS_PROFILING "${COMPILE_BASE_FLAGS} -O0 -pg -std=${CXX_STD} -fno-rtti")
52 SET(CMAKE_C_FLAGS_DEBUG "${COMPILE_BASE_FLAGS} -O0 -ggdb")
53 SET(CMAKE_CXX_FLAGS_DEBUG "${COMPILE_BASE_FLAGS} -O0 -ggdb -std=${CXX_STD} -fno-rtti")
54 SET(CMAKE_C_FLAGS_RELEASE "${COMPILE_BASE_FLAGS} -O2 -DNDEBUG")
55 SET(CMAKE_CXX_FLAGS_RELEASE "${COMPILE_BASE_FLAGS} -O2 -DNDEBUG -std=${CXX_STD} -fno-rtti")
56 SET(CMAKE_C_FLAGS_CCOV "${COMPILE_BASE_FLAGS} -O0 --coverage")
57 SET(CMAKE_CXX_FLAGS_CCOV "${COMPILE_BASE_FLAGS} -O0 --coverage -std=${CXX_STD} -fno-rtti")
59 ADD_DEFINITIONS("-Wno-deprecated-declarations")
61 IF(NOT DEFINED LIB_DIR)
62 SET(LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
63 ENDIF(NOT DEFINED LIB_DIR)
65 IF(NOT DEFINED INCLUDE_DIR)
66 SET(INCLUDE__DIR "${CMAKE_INSTALL_INCLUDEDIR}")
67 ENDIF(NOT DEFINED INCLUDE_DIR)
69 IF(NOT DEFINED RUN_DIR)
71 ENDIF(NOT DEFINED RUN_DIR)
73 IF(NOT DEFINED BIN_DIR)
74 SET(BIN_DIR "${CMAKE_INSTALL_BINDIR}")
75 ENDIF(NOT DEFINED BIN_DIR)
77 IF(NOT DEFINED SBIN_DIR)
78 SET(SBIN_DIR "${CMAKE_INSTALL_SBINDIR}")
79 ENDIF(NOT DEFINED SBIN_DIR)
81 IF(NOT DEFINED HOME_DIR)
83 ENDIF(NOT DEFINED HOME_DIR)
85 IF(NOT DEFINED DATA_DIR)
86 SET(DATA_DIR "${SHARE_INSTALL_PREFIX}")
87 ENDIF(NOT DEFINED DATA_DIR)
89 IF(NOT DEFINED PAMD_DIR)
90 SET(PAMD_DIR "${SYSCONF_INSTALL_DIR}/pam.d")
91 ENDIF(NOT DEFINED PAMD_DIR)
93 IF(NOT DEFINED SYSTEMD_UNIT_DIR)
94 SET(SYSTEMD_UNIT_DIR "${CMAKE_INSTALL_PREFIX}/lib/systemd/system")
95 ENDIF(NOT DEFINED SYSTEMD_UNIT_DIR)
97 IF(NOT DEFINED SOFTRESET_DIR)
98 SET(SOFTRESET_DIR "/usr/system/RestoreDir/softreset")
99 ENDIF(NOT DEFINED SOFTRESET_DIR)
101 IF(NOT DEFINED KEY_STORAGE_PLUGIN_DIR)
102 SET(KEY_STORAGE_PLUGIN_DIR "${CMAKE_INSTALL_LIBDIR}/ode-key-storage-plugin")
103 ENDIF(NOT DEFINED KEY_STORAGE_PLUGIN_DIR)
105 IF(NOT DEFINED SOCKET_PATH)
106 SET(SOCKET_PATH "${RUN_DIR}/.ode.sock")
107 ENDIF(NOT DEFINED SOCKET_PATH)
109 IF(NOT DEFINED DBUS_SYSTEM_SERVICES_DIR)
110 SET(DBUS_SYSTEM_SERVICES_DIR "${DATA_DIR}/dbus-1/system-services/")
111 ENDIF(NOT DEFINED DBUS_SYSTEM_SERVICES_DIR)
113 IF(NOT DEFINED DBUS_CONF_DIR)
114 SET(DBUS_CONF_DIR "${SYSCONF_INSTALL_DIR}/dbus-1/system.d/")
115 ENDIF(NOT DEFINED DBUS_CONF_DIR)
117 IF(NOT DEFINED DBUS_NAME)
118 SET(DBUS_NAME "org.tizen.${PROJECT_NAME}")
119 ENDIF(NOT DEFINED DBUS_NAME)
121 SET(KEY_STORAGE_PLUGIN "key-storage-plugin")
123 ADD_DEFINITIONS(-DKEY_STORAGE_PLUGIN_DIR="${KEY_STORAGE_PLUGIN_DIR}")
124 ADD_DEFINITIONS(-DKEY_STORAGE_PLUGIN_LIB="${CMAKE_SHARED_LIBRARY_PREFIX}${KEY_STORAGE_PLUGIN}${CMAKE_SHARED_LIBRARY_SUFFIX}")
126 ADD_DEFINITIONS(-DUG_WAYLAND)
127 ADD_DEFINITIONS(-DSOCKET_PATH="${SOCKET_PATH}")
128 ADD_DEFINITIONS(-DDBUS_NAME="${DBUS_NAME}")
130 ADD_SUBDIRECTORY(${ODE_LIB})
131 ADD_SUBDIRECTORY(${ODE_KEY_STORAGE_PLUGIN})
132 ADD_SUBDIRECTORY(${ODE_SERVER})
133 ADD_SUBDIRECTORY(${ODE_TOOLS})
134 ADD_SUBDIRECTORY(${ODE_TESTS})
135 ADD_SUBDIRECTORY(${ODE_DUMMY_KSP})
136 ADD_SUBDIRECTORY(${ODE_FOTA})