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 \ 31a2c6e1d0SJason M. Bills -fno-rtti" 32c95cf671SFeist, James) 33c95cf671SFeist, James 34c95cf671SFeist, Jamesoption (YOCTO "Enable Building in Yocto" OFF) 35c95cf671SFeist, James 36c95cf671SFeist, Jamesif (NOT YOCTO) 37c95cf671SFeist, James externalproject_add ( 38c95cf671SFeist, James Boost URL 39dad853a9SRohit Chandel https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.gz 40dad853a9SRohit Chandel URL_MD5 e425bf1f1d8c36a3cd464884e74f007a SOURCE_DIR 41c95cf671SFeist, James "${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR 42c95cf671SFeist, James "${CMAKE_BINARY_DIR}/boost-build" CONFIGURE_COMMAND "" BUILD_COMMAND "" 43c95cf671SFeist, James INSTALL_COMMAND mkdir -p "${CMAKE_BINARY_DIR}/prefix/include/" && cp -R 44c95cf671SFeist, James ${CMAKE_BINARY_DIR}/boost-src/boost ${CMAKE_BINARY_DIR}/prefix/include 45c95cf671SFeist, James ) # requires apt install autoconf-archive and autoconf 46c95cf671SFeist, James externalproject_add (sdbusplus-project PREFIX 47c95cf671SFeist, James ${CMAKE_BINARY_DIR}/sdbusplus-project GIT_REPOSITORY 48c95cf671SFeist, James https://github.com/openbmc/sdbusplus.git GIT_TAG 49*e4d159b7SJason M. Bills 757e1ad55c93e1c5a105e795d3bf87538072c238 SOURCE_DIR 50c95cf671SFeist, James ${CMAKE_BINARY_DIR}/sdbusplus-src BINARY_DIR 51c95cf671SFeist, James ${CMAKE_BINARY_DIR}/sdbusplus-build CONFIGURE_COMMAND 52c95cf671SFeist, James "" BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src 530d26db38SPatrick Williams && meson build -Ddefault_library=static && ninja -C 540d26db38SPatrick Williams build libsdbusplus.a INSTALL_COMMAND "" 55c95cf671SFeist, James LOG_DOWNLOAD ON) 56c95cf671SFeist, James 57c95cf671SFeist, James include_directories (SYSTEM ${CMAKE_BINARY_DIR}/sdbusplus-src) 580d26db38SPatrick Williams link_directories (${CMAKE_BINARY_DIR}/sdbusplus-src/build) 59c95cf671SFeist, James 60c95cf671SFeist, James include_directories (SYSTEM ${CMAKE_BINARY_DIR}/boost-src) 61c95cf671SFeist, James set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/boost-src ${CMAKE_PREFIX_PATH}) 62c95cf671SFeist, Jamesendif () 63c95cf671SFeist, James 64c95cf671SFeist, Jamesadd_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY) 65c95cf671SFeist, Jamesadd_definitions (-DBOOST_SYSTEM_NO_DEPRECATED) 66c95cf671SFeist, Jamesadd_definitions (-DBOOST_ALL_NO_LIB) 67c95cf671SFeist, Jamesadd_definitions (-DBOOST_NO_RTTI) 68c95cf671SFeist, Jamesadd_definitions (-DBOOST_NO_TYPEID) 69c95cf671SFeist, Jamesadd_definitions (-DBOOST_ASIO_DISABLE_THREADS) 70c95cf671SFeist, James 71c95cf671SFeist, Jamesinclude_directories (${CMAKE_CURRENT_SOURCE_DIR}/include) 72c95cf671SFeist, James 73c95cf671SFeist, Jamesadd_executable (hsbp-manager src/hsbp_manager.cpp) 74c95cf671SFeist, James 75c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager -lsystemd) 76c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager i2c) 77c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager ${Boost_LIBRARIES}) 78c95cf671SFeist, Jamestarget_link_libraries (hsbp-manager sdbusplus) 790b236ab8SJames Feisttarget_link_libraries (hsbp-manager stdc++fs) 8052639bebSRohit Chandeltarget_link_libraries (hsbp-manager gpiodcxx) 81c95cf671SFeist, James 82c95cf671SFeist, Jamesif (NOT YOCTO) 83c95cf671SFeist, James add_dependencies (hsbp-manager sdbusplus-project) 84c95cf671SFeist, Jamesendif () 85c95cf671SFeist, James 8601a3964aSJason M. Bills 8701a3964aSJason M. Billsfind_package (PkgConfig REQUIRED) 8801a3964aSJason M. Billspkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir) 8901a3964aSJason M. Bills 90c95cf671SFeist, Jamesset (SERVICE_FILES ${PROJECT_SOURCE_DIR}/service_files/hsbp-manager.service) 91c95cf671SFeist, James 92c95cf671SFeist, Jamesinstall (TARGETS hsbp-manager DESTINATION bin) 9301a3964aSJason M. Billsinstall (FILES ${SERVICE_FILES} DESTINATION "${SYSTEMD_SYSTEM_UNIT_DIR}") 94