CMakeLists.txt 3.8 KB
Newer Older
1
cmake_minimum_required (VERSION 2.8)
L
LiuHao 已提交
2
project (isulad)
O
overweight 已提交
3 4 5 6 7 8 9 10 11

include(cmake/helper.cmake)

include(cmake/options.cmake)

include(cmake/set_build_flags.cmake)

#set(CMAKE_C_COMPILER "gcc" CACHE PATH "c compiler")

H
haozi007 已提交
12
set(GIT_COMMIT_HASH "9014f8a4478a169f5426a27c8c1e58dcf14023ef")
O
overweight 已提交
13
message("--  commit id: " ${GIT_COMMIT_HASH})
L
LiuHao 已提交
14
add_definitions(-DISULAD_GIT_COMMIT="${GIT_COMMIT_HASH}")
O
overweight 已提交
15 16 17 18 19 20 21

execute_process(
	COMMAND sh -c "date --rfc-3339 ns | sed -e 's/ /T/'"
	OUTPUT_VARIABLE BUILD_DATE
	OUTPUT_STRIP_TRAILING_WHITESPACE
)
message("-- build time: " ${BUILD_DATE})
L
LiuHao 已提交
22
add_definitions(-DISULAD_BUILD_TIME="${BUILD_DATE}")
O
overweight 已提交
23

L
LiuHao 已提交
24 25
if (NOT ISULAD_ROOT_PATH)
add_definitions(-DISULAD_ROOT_PATH="/var/lib/isulad")
O
overweight 已提交
26
endif()
L
LiuHao 已提交
27 28
if (NOT ISULAD_STATE_PATH)
add_definitions(-DISULAD_STATE_PATH="/var/run/isulad")
O
overweight 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
endif()

if (LIB_INSTALL_DIR)
  set(LIB_INSTALL_DIR_DEFAULT ${LIB_INSTALL_DIR})
else()
  set(LIB_INSTALL_DIR_DEFAULT "lib")
endif()

# check depends library and headers
include(cmake/checker.cmake)
if (CHECKER_RESULT)
    message(FATAL_ERROR "ERROR: Check library and headers failed")
endif()

configure_file(
	"${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"
	"${CMAKE_BINARY_DIR}/conf/config.h"
)

configure_file(
L
LiuHao 已提交
49 50
	"${CMAKE_CURRENT_SOURCE_DIR}/isulad.pc.in"
	"${CMAKE_BINARY_DIR}/conf/isulad.pc"
O
overweight 已提交
51 52
)

D
dogsheng 已提交
53 54
# parse .proto files
include(cmake/protoc.cmake)
O
overweight 已提交
55 56 57 58 59

# llt and coverage
SET(CMAKE_VERBOSE_MAKEFILE OFF)
IF(ENABLE_COVERAGE)
    MESSAGE(STATUS "Enable coverage compile option")
D
dogsheng 已提交
60 61
    SET(COVERAGE_C_OPTION "${COVERAGE_OPTION} -fprofile-arcs -ftest-coverage -fkeep-inline-functions -fkeep-static-functions")
    SET(COVERAGE_CXX_OPTION "${COVERAGE_OPTION} -fprofile-arcs -ftest-coverage")
O
overweight 已提交
62 63
ENDIF(ENABLE_COVERAGE)

D
dogsheng 已提交
64 65 66 67 68 69 70 71 72 73
IF(ENABLE_ASAN)
    MESSAGE(STATUS "Enable asan compile option")
    SET(ASAN_OPTIONS "${ASAN_OPTION} -fsanitize=address -fsanitize-recover=address -fno-omit-frame-pointer")
ENDIF(ENABLE_ASAN)

IF(CMAKE_BUILD_TYPE STREQUAL Debug)
    SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COVERAGE_C_OPTION} ${ASAN_OPTIONS}")
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COVERAGE_CXX_OPTION} ${ASAN_OPTIONS}")
ENDIF()

O
overweight 已提交
74 75 76 77 78 79 80 81
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src)
OPTION(ENABLE_LLT "llt switch" OFF)
IF(ENABLE_LLT)
    enable_testing()
    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test)
ENDIF(ENABLE_LLT)

# install all files
L
LiuHao 已提交
82
install(FILES ${CMAKE_BINARY_DIR}/conf/isulad.pc
O
overweight 已提交
83
  DESTINATION ${LIB_INSTALL_DIR_DEFAULT}/pkgconfig PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
L
LiuHao 已提交
84 85 86 87
install(FILES src/libisula.h
	DESTINATION include/isulad)
install(FILES src/connect/client/isula_connect.h
	DESTINATION include/isulad)
O
overweight 已提交
88
install(FILES src/container_def.h
L
LiuHao 已提交
89
	DESTINATION include/isulad)
O
overweight 已提交
90
install(FILES src/types_def.h
L
LiuHao 已提交
91
	DESTINATION include/isulad)
O
overweight 已提交
92
install(FILES src/error.h
L
LiuHao 已提交
93
	DESTINATION include/isulad)
O
overweight 已提交
94
install(FILES src/engines/engine.h
L
LiuHao 已提交
95
	DESTINATION include/isulad)
O
overweight 已提交
96 97 98 99 100 101 102 103

# install config files
set(conf_prefix "/etc")
if (CMAKE_INSTALL_SYSCONFDIR)
    set(conf_prefix ${CMAKE_INSTALL_SYSCONFDIR})
endif()
install(FILES src/contrib/config/daemon.json
    DESTINATION ${conf_prefix}/isulad PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
Z
zhuchunyi 已提交
104
install(FILES src/contrib/config/config.json src/contrib/config/systemcontainer_config.json
L
LiuHao 已提交
105
    DESTINATION ${conf_prefix}/default/isulad PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
O
overweight 已提交
106 107 108
install(FILES src/contrib/config/seccomp_default.json
    DESTINATION ${conf_prefix}/isulad PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
install(FILES src/contrib/config/hooks/default.json
L
LiuHao 已提交
109
    DESTINATION ${conf_prefix}/default/isulad/hooks PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
O
overweight 已提交
110
install(FILES src/contrib/sysmonitor/isulad-check.sh
L
LiuHao 已提交
111
    DESTINATION ${conf_prefix}/default/isulad PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
O
overweight 已提交
112 113
install(FILES src/contrib/sysmonitor/isulad-monit
    DESTINATION ${conf_prefix}/sysmonitor/process PERMISSIONS OWNER_READ OWNER_WRITE)