summaryrefslogtreecommitdiff
path: root/security-manager/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'security-manager/CMakeLists.txt')
-rw-r--r--security-manager/CMakeLists.txt63
1 files changed, 63 insertions, 0 deletions
diff --git a/security-manager/CMakeLists.txt b/security-manager/CMakeLists.txt
new file mode 100644
index 0000000..cec3cb3
--- /dev/null
+++ b/security-manager/CMakeLists.txt
@@ -0,0 +1,63 @@
+cmake_minimum_required (VERSION 3.6 FATAL_ERROR)
+project (security-manager CXX)
+
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lstdc++fs \
+ -Werror \
+ -Wall \
+ -Wextra \
+ -Wshadow \
+ -Wnon-virtual-dtor \
+ -Wold-style-cast \
+ -Wunused \
+ -Woverloaded-virtual \
+ -Wpedantic \
+ -Wconversion \
+ -Wmisleading-indentation \
+ -Wduplicated-cond \
+ -Wduplicated-branches \
+ -Wlogical-op \
+ -Wnull-dereference \
+ -Wuseless-cast \
+ -Wdouble-promotion \
+ -Wformat=2 \
+")
+
+set (CMAKE_CXX_STANDARD 17)
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+
+add_executable (security-manager src/security-manager.cpp)
+
+target_include_directories (security-manager PRIVATE ${CMAKE_SOURCE_DIR})
+
+target_link_libraries (${PROJECT_NAME} -lstdc++fs)
+target_link_libraries (${PROJECT_NAME} gpiodcxx)
+target_link_libraries (${PROJECT_NAME} systemd)
+target_link_libraries (${PROJECT_NAME} sdbusplus)
+
+include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+install (
+ TARGETS security-manager
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib/static
+)
+
+find_package (Boost 1.66 REQUIRED)
+include_directories (${BOOST_SRC_DIR})
+
+add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY)
+add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED)
+add_definitions (-DBOOST_ALL_NO_LIB)
+add_definitions (-DBOOST_NO_RTTI)
+add_definitions (-DBOOST_NO_TYPEID)
+add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
+
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
+set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti")
+
+set (
+ SERVICE_FILES
+ ${PROJECT_SOURCE_DIR}/service_files/xyz.openbmc_project.SecurityManager.service
+)
+install (FILES ${SERVICE_FILES} DESTINATION /lib/systemd/system/)