blob: 83d2dcd8de3dca8484578c878955f35f85fa43e7 [file] [log] [blame]
Jason M. Billsd1e40602019-05-09 11:43:51 -07001cmake_minimum_required (VERSION 3.6)
2project (peci-pcie CXX)
Jason M. Billsbce86a62020-10-08 16:03:47 -07003include (ExternalProject)
Jason M. Billsd1e40602019-05-09 11:43:51 -07004set (CMAKE_CXX_STANDARD 17)
5set (CMAKE_CXX_STANDARD_REQUIRED ON)
6
7add_executable (peci-pcie src/peci_pcie.cpp)
8
Jason M. Billsbce86a62020-10-08 16:03:47 -07009option (YOCTO "Enable Building in Yocto" OFF)
10
11if (NOT YOCTO)
12 add_dependencies (peci-pcie libpeci)
13 externalproject_add (libpeci PREFIX ${CMAKE_BINARY_DIR}/libpeci
14 GIT_REPOSITORY https://github.com/openbmc/libpeci.git
15 GIT_TAG bc641112abc99b4a972665aa984023a6713a21ac
16 INSTALL_COMMAND "")
17
18 externalproject_get_property (libpeci SOURCE_DIR)
19 include_directories (${SOURCE_DIR})
20
21 externalproject_get_property (libpeci BINARY_DIR)
22 add_library (peci SHARED IMPORTED)
23 set_target_properties (peci
24 PROPERTIES IMPORTED_LOCATION
25 ${BINARY_DIR}/libpeci.so)
26endif ()
27
Jason M. Billsd1e40602019-05-09 11:43:51 -070028target_include_directories (peci-pcie PRIVATE ${CMAKE_SOURCE_DIR})
29
30target_link_libraries (peci-pcie peci sdbusplus -lsystemd)
31
32include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
33
34install (TARGETS peci-pcie
35 RUNTIME DESTINATION bin
36 LIBRARY DESTINATION lib
37 ARCHIVE DESTINATION lib/static)
38
39find_package (Boost 1.66 REQUIRED)
40include_directories (${BOOST_SRC_DIR})
41
42add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY)
43add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED)
44add_definitions (-DBOOST_ALL_NO_LIB)
45add_definitions (-DBOOST_NO_RTTI)
46add_definitions (-DBOOST_NO_TYPEID)
47add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
48
49set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
50set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti")
51
52set (SERVICE_FILES
53 ${PROJECT_SOURCE_DIR}/service_files/xyz.openbmc_project.PCIe.service)
54install (FILES ${SERVICE_FILES} DESTINATION /lib/systemd/system/)