| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 1 | cmake_minimum_required (VERSION 3.2 FATAL_ERROR) | 
|  | 2 | include (ExternalProject) | 
|  | 3 | set (CMAKE_CXX_STANDARD 17) | 
|  | 4 | set (CMAKE_CXX_STANDARD_REQUIRED ON) | 
|  | 5 | set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) | 
|  | 6 | set (DBUS_OBJECT_NAME "xyz/openbmc_project/Smbios/MDR_V2") | 
|  | 7 | set (DBUS_INTF_NAME "xyz.openbmc_project.Smbios.MDR_V2") | 
|  | 8 |  | 
| Zhikui Ren | 7745589 | 2020-11-19 12:29:44 -0800 | [diff] [blame] | 9 | # disable now to wa boost bug chriskohlhoff/asio#533 | 
|  | 10 | # set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 11 |  | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 12 | include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include) | 
|  | 13 | link_directories (${DBUSINTERFACE_LIBRARIES}) | 
|  | 14 |  | 
|  | 15 | find_package (PkgConfig REQUIRED) | 
| Jonathan Doman | 94c94bf | 2020-10-05 23:25:45 -0700 | [diff] [blame] | 16 |  | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 17 | pkg_check_modules (SYSTEMD libsystemd REQUIRED) | 
|  | 18 | include_directories (${SYSTEMD_INCLUDE_DIRS}) | 
|  | 19 | link_directories (${SYSTEMD_LIBRARY_DIRS}) | 
|  | 20 |  | 
|  | 21 | # import sdbusplus | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 22 | pkg_check_modules (SDBUSPLUSPLUS sdbusplus REQUIRED) | 
|  | 23 | include_directories (${SDBUSPLUSPLUS_INCLUDE_DIRS}) | 
|  | 24 | link_directories (${SDBUSPLUSPLUS_LIBRARY_DIRS}) | 
| Jonathan Doman | 94c94bf | 2020-10-05 23:25:45 -0700 | [diff] [blame] | 25 | find_program (SDBUSPLUSPLUS sdbus++) | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 26 |  | 
|  | 27 | # phosphor-dbus-interfaces | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 28 | pkg_check_modules (DBUSINTERFACE phosphor-dbus-interfaces REQUIRED) | 
|  | 29 | include_directories (${DBUSINTERFACE_INCLUDE_DIRS}) | 
|  | 30 | link_directories (${DBUSINTERFACE_LIBRARY_DIRS}) | 
|  | 31 |  | 
| Zhikui Ren | 18a5ab9 | 2020-09-01 21:35:20 -0700 | [diff] [blame] | 32 | # boost | 
|  | 33 | include_directories (SYSTEM ${CMAKE_BINARY_DIR}/boost-src) | 
|  | 34 | set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/boost-src ${CMAKE_PREFIX_PATH}) | 
|  | 35 | add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY) | 
|  | 36 | add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED) | 
|  | 37 | add_definitions (-DBOOST_ALL_NO_LIB) | 
|  | 38 | add_definitions (-DBOOST_NO_RTTI) | 
|  | 39 | add_definitions (-DBOOST_NO_TYPEID) | 
|  | 40 | add_definitions (-DBOOST_ASIO_DISABLE_THREADS) | 
|  | 41 |  | 
| Cheng C Yang | 2ca7a0f | 2019-12-19 10:46:42 +0800 | [diff] [blame] | 42 | set (SRC_FILES src/mdrv2.cpp src/mdrv2_main.cpp src/cpu.cpp src/dimm.cpp | 
|  | 43 | src/system.cpp) | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 44 |  | 
|  | 45 | include_directories (${CMAKE_CURRENT_BINARY_DIR}) | 
|  | 46 |  | 
| Cheng C Yang | eecaf82 | 2019-12-19 00:34:23 +0800 | [diff] [blame] | 47 | add_executable (smbiosmdrv2app ${SRC_FILES}) | 
|  | 48 | target_link_libraries (smbiosmdrv2app ${SYSTEMD_LIBRARIES}) | 
|  | 49 | target_link_libraries (smbiosmdrv2app ${DBUSINTERFACE_LIBRARIES}) | 
|  | 50 | target_link_libraries (smbiosmdrv2app ${SDBUSPLUSPLUS_LIBRARIES}) | 
|  | 51 | target_link_libraries (smbiosmdrv2app phosphor_logging) | 
|  | 52 |  | 
| Jonathan Doman | 94c94bf | 2020-10-05 23:25:45 -0700 | [diff] [blame] | 53 | add_executable (cpuinfoapp src/cpuinfo_main.cpp src/speed_select.cpp) | 
| Zhikui Ren | 18a5ab9 | 2020-09-01 21:35:20 -0700 | [diff] [blame] | 54 | target_link_libraries (cpuinfoapp ${SYSTEMD_LIBRARIES}) | 
|  | 55 | target_link_libraries (cpuinfoapp ${DBUSINTERFACE_LIBRARIES}) | 
|  | 56 | target_link_libraries (cpuinfoapp ${SDBUSPLUSPLUS_LIBRARIES}) | 
|  | 57 | target_link_libraries (cpuinfoapp phosphor_logging) | 
|  | 58 | target_link_libraries (cpuinfoapp i2c) | 
|  | 59 | target_link_libraries (cpuinfoapp peci) | 
|  | 60 |  | 
|  | 61 | option (DIMM_DBUS "Expose DIMM D-Bus Interface" ON) | 
|  | 62 |  | 
|  | 63 | if (DIMM_DBUS) | 
|  | 64 | target_compile_definitions (smbiosmdrv2app PRIVATE DIMM_DBUS) | 
|  | 65 | endif () | 
|  | 66 |  | 
|  | 67 | option (YOCTO "Enable Building in Yocto" OFF) | 
|  | 68 |  | 
|  | 69 | if (NOT YOCTO) | 
|  | 70 | add_dependencies (cpuinfoapp libpeci) | 
|  | 71 | externalproject_add (libpeci PREFIX ${CMAKE_BINARY_DIR}/libpeci | 
|  | 72 | GIT_REPOSITORY https://github.com/openbmc/libpeci.git | 
|  | 73 | GIT_TAG a2ceec2aa139277cebb62e1eda449ef60fa4c962 | 
|  | 74 | INSTALL_COMMAND "") | 
|  | 75 |  | 
|  | 76 | externalproject_get_property (libpeci SOURCE_DIR) | 
|  | 77 | include_directories (${SOURCE_DIR}) | 
|  | 78 |  | 
|  | 79 | externalproject_get_property (libpeci BINARY_DIR) | 
|  | 80 | add_library (peci SHARED IMPORTED) | 
|  | 81 | set_target_properties (peci | 
|  | 82 | PROPERTIES IMPORTED_LOCATION | 
|  | 83 | ${BINARY_DIR}/libpeci.so) | 
|  | 84 | endif () | 
|  | 85 |  | 
| Kuiying Wang | 3f244c0 | 2020-09-04 10:26:31 +0800 | [diff] [blame] | 86 | install (TARGETS smbiosmdrv2app DESTINATION bin) | 
| Zhikui Ren | 18a5ab9 | 2020-09-01 21:35:20 -0700 | [diff] [blame] | 87 |  | 
|  | 88 | install (TARGETS cpuinfoapp | 
|  | 89 | RUNTIME DESTINATION bin | 
|  | 90 | LIBRARY DESTINATION lib | 
|  | 91 | ARCHIVE DESTINATION lib/static) | 
|  | 92 |  | 
|  | 93 | set (SERVICE_FILES | 
| Kuiying Wang | 3f244c0 | 2020-09-04 10:26:31 +0800 | [diff] [blame] | 94 | ${PROJECT_SOURCE_DIR}/service_files/xyz.openbmc_project.cpuinfo.service | 
|  | 95 | ${PROJECT_SOURCE_DIR}/service_files/smbios-mdrv2.service) | 
| Zhikui Ren | 18a5ab9 | 2020-09-01 21:35:20 -0700 | [diff] [blame] | 96 | install (FILES ${SERVICE_FILES} DESTINATION /lib/systemd/system/) |