blob: 97282be524c047f52ff85fb35b56cf37b523cb5f [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
Vernon Mauery380998b2022-09-29 14:02:25 -07006set(CMAKE_CXX_STANDARD 20)
Jason M. Bills7ef5a552020-04-06 14:58:44 -07007set_property(TARGET peci PROPERTY C_STANDARD 99)
8target_include_directories(peci PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
9set_target_properties(peci PROPERTIES VERSION "1.0" SOVERSION "1")
10
Jason M. Billsbdefaa32021-11-12 14:09:20 -080011option(DBUS_RAW_PECI "Add the raw PECI D-Bus daemon to the build." OFF)
12
Jason M. Bills7ef5a552020-04-06 14:58:44 -070013set(
14 CMAKE_C_FLAGS
15 "${CMAKE_C_FLAGS} \
Ed Tanousb78d4c82022-09-19 15:21:56 -070016 -Wall \
17 -Wextra \
18 -Wcast-align \
19 -Wunused \
20 -Wconversion \
21 -Wsign-conversion \
22 -Wnull-dereference \
23 -Wdouble-promotion \
24 -Wformat=2 \
25 -Wno-unused-parameter \
26 -Werror \
27 -Wduplicated-cond \
28 -Wduplicated-branches \
29 -Wlogical-op \
30")
Jason M. Bills7ef5a552020-04-06 14:58:44 -070031
32install(TARGETS peci DESTINATION lib)
33install(FILES peci.h DESTINATION include)
34
35add_executable(peci_cmds peci_cmds.c)
36add_dependencies(peci_cmds peci)
37target_link_libraries(peci_cmds peci)
38
39install(TARGETS peci_cmds
40 RUNTIME DESTINATION bin
41 LIBRARY DESTINATION lib
42 ARCHIVE DESTINATION lib/static)
Jason M. Billsbdefaa32021-11-12 14:09:20 -080043
44if(${DBUS_RAW_PECI})
Ed Tanousb78d4c82022-09-19 15:21:56 -070045 set(
46 CMAKE_CXX_FLAGS
47 "${CMAKE_CXX_FLAGS} \
48 -Wall \
49 -Wextra \
50 -Wcast-align \
51 -Wunused \
52 -Wconversion \
53 -Wsign-conversion \
54 -Wdouble-promotion \
55 -Wformat=2 \
56 -Wno-unused-parameter \
57 -Werror \
58 -Wduplicated-cond \
59 -Wduplicated-branches \
60 -Wlogical-op \
61 -Wno-psabi \
62 -fno-rtti \
63 ")
64 # This flag doesn't compile, but should be debuged in a future patchset
65 #-Wnull-dereference \
66
Jason M. Billsbdefaa32021-11-12 14:09:20 -080067 add_executable(raw-peci dbus_raw_peci.cpp)
68 add_dependencies(raw-peci peci)
69
70 find_package(Boost 1.73 REQUIRED)
71 include_directories(${BOOST_SRC_DIR})
72
73 add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
74 add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED)
75 add_definitions(-DBOOST_ALL_NO_LIB)
76 add_definitions(-DBOOST_NO_RTTI)
77 add_definitions(-DBOOST_NO_TYPEID)
Ed Tanousb78d4c82022-09-19 15:21:56 -070078 add_definitions(-DBOOST_EXCEPTION_DISABLE)
79 add_definitions(-DBOOST_ASIO_DISABLE_THREADS)
80 add_definitions(-DBOOST_ASIO_NO_DEPRECATED)
Jason M. Billsbdefaa32021-11-12 14:09:20 -080081
82 target_link_libraries(raw-peci peci -lsystemd sdbusplus)
83
84 install(TARGETS raw-peci
85 RUNTIME DESTINATION bin
86 LIBRARY DESTINATION lib
87 ARCHIVE DESTINATION lib/static)
88
89 set(SERVICE_FILES ${PROJECT_SOURCE_DIR}/service_files/com.intel.peci.service)
90
91 install(FILES ${SERVICE_FILES} DESTINATION /lib/systemd/system/)
Ed Tanousb78d4c82022-09-19 15:21:56 -070092endif()