1c95cf671SFeist, Jamescmake_minimum_required (VERSION 3.1 FATAL_ERROR) 2c95cf671SFeist, Jamesset (BUILD_SHARED_LIBRARIES OFF) 3c95cf671SFeist, Jamesinclude (ExternalProject) 4ffcaad8bSPatrick Williamsset (CMAKE_CXX_STANDARD 20) 5c95cf671SFeist, Jamesset (CMAKE_CXX_STANDARD_REQUIRED ON) 6c95cf671SFeist, James 7c95cf671SFeist, Jamesproject (hsbp-manager CXX) 8c95cf671SFeist, James 9c95cf671SFeist, Jamesset ( 10c95cf671SFeist, James CMAKE_CXX_FLAGS 11c95cf671SFeist, James "${CMAKE_CXX_FLAGS} -lstdc++fs \ 12c95cf671SFeist, James -Werror \ 13c95cf671SFeist, James -Wall \ 14c95cf671SFeist, James -Wextra \ 15c95cf671SFeist, James -Wshadow \ 16c95cf671SFeist, James -Wnon-virtual-dtor \ 17c95cf671SFeist, James -Wold-style-cast \ 18c95cf671SFeist, James -Wcast-align \ 19c95cf671SFeist, James -Wunused \ 20c95cf671SFeist, James -Woverloaded-virtual \ 21c95cf671SFeist, James -Wpedantic \ 22c95cf671SFeist, James -Wconversion \ 23c95cf671SFeist, James -Wmisleading-indentation \ 24c95cf671SFeist, James -Wduplicated-cond \ 25c95cf671SFeist, James -Wduplicated-branches \ 26c95cf671SFeist, James -Wlogical-op \ 27c95cf671SFeist, James -Wnull-dereference \ 28c95cf671SFeist, James -Wuseless-cast \ 29c95cf671SFeist, James -Wdouble-promotion \ 30c95cf671SFeist, James -Wformat=2 \ 31a83c827dSJason M. Bills " 32c95cf671SFeist, James) 33a83c827dSJason M. Bills# Temporarily disable rtti 34a83c827dSJason M. Bills# See https://github.com/chriskohlhoff/asio/issues/533 35a83c827dSJason M. Bills# -fno-rtti 36c95cf671SFeist, James 37c95cf671SFeist, Jamesoption (YOCTO "Enable Building in Yocto" OFF) 38c95cf671SFeist, James 39c95cf671SFeist, Jamesif (NOT YOCTO) 40c95cf671SFeist, James externalproject_add ( 41c95cf671SFeist, James Boost URL 42dad853a9SRohit Chandel https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.gz 43dad853a9SRohit Chandel URL_MD5 e425bf1f1d8c36a3cd464884e74f007a SOURCE_DIR 44c95cf671SFeist, James "${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR 45c95cf671SFeist, James "${CMAKE_BINARY_DIR}/boost-build" CONFIGURE_COMMAND "" BUILD_COMMAND "" 46c95cf671SFeist, James INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/" && cp -R 47c95cf671SFeist, James ${CMAKE_BINARY_DIR}/boost-src/boost ${CMAKE_BINARY_DIR}/prefix/include 48c95cf671SFeist, James ) # requires apt install autoconf-archive and autoconf 49c95cf671SFeist, James externalproject_add (sdbusplus-project PREFIX 50c95cf671SFeist, James ${CMAKE_BINARY_DIR}/sdbusplus-project GIT_REPOSITORY 51c95cf671SFeist, James https://github.com/openbmc/sdbusplus.git GIT_TAG 526fc0ed7cSPatrick Williams 8a97100b806225df40c490eb748c9a4e1b3c11b3 SOURCE_DIR 53c95cf671SFeist, James ${CMAKE_BINARY_DIR}/sdbusplus-src BINARY_DIR 54c95cf671SFeist, James ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND 55c95cf671SFeist, James "" BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src 560d26db38SPatrick Williams && meson build -Ddefault_library=static && ninja -C 570d26db38SPatrick Williams build libsdbusplus.a INSTALL_COMMAND "" 58c95cf671SFeist, James LOG_DOWNLOAD ON) 59c95cf671SFeist, James 60c95cf671SFeist, James include_directories (SYSTEM ${CMAKE_BINARY_DIR}/sdbusplus-src) 610d26db38SPatrick Williams link_directories (${CMAKE_BINARY_DIR}/sdbusplus-src/build) 62c95cf671SFeist, James 63c95cf671SFeist, James include_directories (SYSTEM ${CMAKE_BINARY_DIR}/boost-src) 64c95cf671SFeist, James set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/boost-src ${CMAKE_PREFIX_PATH}) 65c95cf671SFeist, Jamesendif () 66c95cf671SFeist, James 67c95cf671SFeist, Jamesadd_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY) 68c95cf671SFeist, Jamesadd_definitions (-DBOOST_SYSTEM_NO_DEPRECATED) 69c95cf671SFeist, Jamesadd_definitions (-DBOOST_ALL_NO_LIB) 70c95cf671SFeist, Jamesadd_definitions (-DBOOST_NO_RTTI) 71c95cf671SFeist, Jamesadd_definitions (-DBOOST_NO_TYPEID) 72c95cf671SFeist, Jamesadd_definitions (-DBOOST_ASIO_DISABLE_THREADS) 73c95cf671SFeist, James 74c95cf671SFeist, Jamesinclude_directories (${CMAKE_CURRENT_SOURCE_DIR}/include) 75c95cf671SFeist, James 76c95cf671SFeist, Jamesadd_executable (hsbp-manager src/hsbp_manager.cpp) 77c95cf671SFeist, James 78c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager -lsystemd) 79c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager i2c) 80c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager ${Boost_LIBRARIES}) 81c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager sdbusplus) 820b236ab8SJames Feisttarget_link_libraries (hsbp-manager stdc++fs) 8352639bebSRohit Chandeltarget_link_libraries (hsbp-manager gpiodcxx) 84c95cf671SFeist, James 85c95cf671SFeist, Jamesif (NOT YOCTO) 86c95cf671SFeist, James add_dependencies (hsbp-manager sdbusplus-project) 87c95cf671SFeist, Jamesendif () 88c95cf671SFeist, James 89*01a3964aSJason M. Bills 90*01a3964aSJason M. Billsfind_package (PkgConfig REQUIRED) 91*01a3964aSJason M. Billspkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir) 92*01a3964aSJason M. Bills 93c95cf671SFeist, Jamesset (SERVICE_FILES ${PROJECT_SOURCE_DIR}/service_files/hsbp-manager.service) 94c95cf671SFeist, James 95c95cf671SFeist, Jamesinstall (TARGETS hsbp-manager DESTINATION bin) 96*01a3964aSJason M. Billsinstall (FILES ${SERVICE_FILES} DESTINATION "${SYSTEMD_SYSTEM_UNIT_DIR}") 97