blob: 63241c51c154e95fb1438cf970ff5a56d9e2e2eb [file] [log] [blame]
Jason M. Bills7ef5a552020-04-06 14:58:44 -07001cmake_minimum_required(VERSION 3.6)
2project(libpeci)
3
4add_library(peci SHARED peci.c)
5
6set_property(TARGET peci PROPERTY C_STANDARD 99)
7target_include_directories(peci PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
8set_target_properties(peci PROPERTIES VERSION "1.0" SOVERSION "1")
9
Jason M. Billsbdefaa32021-11-12 14:09:20 -080010option(DBUS_RAW_PECI "Add the raw PECI D-Bus daemon to the build." OFF)
11
Jason M. Bills7ef5a552020-04-06 14:58:44 -070012set(
13 CMAKE_C_FLAGS
14 "${CMAKE_C_FLAGS} \
Ed Tanousb78d4c82022-09-19 15:21:56 -070015 -Wall \
16 -Wextra \
17 -Wcast-align \
18 -Wunused \
19 -Wconversion \
20 -Wsign-conversion \
21 -Wnull-dereference \
22 -Wdouble-promotion \
23 -Wformat=2 \
24 -Wno-unused-parameter \
25 -Werror \
26 -Wduplicated-cond \
27 -Wduplicated-branches \
28 -Wlogical-op \
29")
Jason M. Bills7ef5a552020-04-06 14:58:44 -070030
31install(TARGETS peci DESTINATION lib)
32install(FILES peci.h DESTINATION include)
33
34add_executable(peci_cmds peci_cmds.c)
35add_dependencies(peci_cmds peci)
36target_link_libraries(peci_cmds peci)
37
38install(TARGETS peci_cmds
39 RUNTIME DESTINATION bin
40 LIBRARY DESTINATION lib
41 ARCHIVE DESTINATION lib/static)
Jason M. Billsbdefaa32021-11-12 14:09:20 -080042
43if(${DBUS_RAW_PECI})
Ed Tanousb78d4c82022-09-19 15:21:56 -070044 set(
45 CMAKE_CXX_FLAGS
46 "${CMAKE_CXX_FLAGS} \
47 -Wall \
48 -Wextra \
49 -Wcast-align \
50 -Wunused \
51 -Wconversion \
52 -Wsign-conversion \
53 -Wdouble-promotion \
54 -Wformat=2 \
55 -Wno-unused-parameter \
56 -Werror \
57 -Wduplicated-cond \
58 -Wduplicated-branches \
59 -Wlogical-op \
60 -Wno-psabi \
61 -fno-rtti \
62 ")
63 # This flag doesn't compile, but should be debuged in a future patchset
64 #-Wnull-dereference \
65
Jason M. Billsbdefaa32021-11-12 14:09:20 -080066 add_executable(raw-peci dbus_raw_peci.cpp)
67 add_dependencies(raw-peci peci)
68
69 find_package(Boost 1.73 REQUIRED)
70 include_directories(${BOOST_SRC_DIR})
71
72 add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
73 add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED)
74 add_definitions(-DBOOST_ALL_NO_LIB)
75 add_definitions(-DBOOST_NO_RTTI)
76 add_definitions(-DBOOST_NO_TYPEID)
Ed Tanousb78d4c82022-09-19 15:21:56 -070077 add_definitions(-DBOOST_EXCEPTION_DISABLE)
78 add_definitions(-DBOOST_ASIO_DISABLE_THREADS)
79 add_definitions(-DBOOST_ASIO_NO_DEPRECATED)
Jason M. Billsbdefaa32021-11-12 14:09:20 -080080
81 target_link_libraries(raw-peci peci -lsystemd sdbusplus)
82
83 install(TARGETS raw-peci
84 RUNTIME DESTINATION bin
85 LIBRARY DESTINATION lib
86 ARCHIVE DESTINATION lib/static)
87
88 set(SERVICE_FILES ${PROJECT_SOURCE_DIR}/service_files/com.intel.peci.service)
89
90 install(FILES ${SERVICE_FILES} DESTINATION /lib/systemd/system/)
Ed Tanousb78d4c82022-09-19 15:21:56 -070091endif()