32 lines
1.3 KiB
CMake
32 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(ipmifan LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "..." FORCE)
|
|
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_search_module(IPMI_MONITORING REQUIRED libipmimonitoring)
|
|
pkg_search_module(IPMI REQUIRED libfreeipmi)
|
|
pkg_search_module(FANDEVICE REQUIRED fandevice)
|
|
pkg_search_module(SYSTEMD systemd)
|
|
|
|
|
|
add_executable(${PROJECT_NAME} main.cpp ipmi.cpp lm.cpp ipmifan.cpp fandevicefan.cpp fanzone.cpp)
|
|
target_link_libraries(${PROJECT_NAME} ${IPMI_LINK_LIBRARIES} ${FANDEVICE_LINK_LIBRARIES} ${IPMI_MONITORING_LINK_LIBRARIES} sensors)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${IPMI_INCLUDE_DIRS} ${FANDEVICE_INCLUDE_DIRS} ${IPMI_MONITORING_INCLUDE_DIRS})
|
|
target_compile_options(${PROJECT_NAME} PRIVATE "-Wall" "-O2" "-g" "-fno-strict-aliasing" "-Wfatal-errors" "-Wno-reorder")
|
|
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|
|
|
|
if(SYSTEMD_FOUND)
|
|
pkg_get_variable(SYSTEMD_UNIT_DIR_PKG systemd systemd_system_unit_path)
|
|
message(STATUS ${SYSTEMD_UNIT_DIR_PKG})
|
|
string(REPLACE ":" ";" SYSTEMD_UNIT_DIR_LIST ${SYSTEMD_UNIT_DIR_PKG})
|
|
list(GET SYSTEMD_UNIT_DIR_LIST 0 SYSTEMD_UNIT_DIR)
|
|
|
|
install(FILES ipmifan.service DESTINATION ${SYSTEMD_UNIT_DIR})
|
|
endif(SYSTEMD_FOUND)
|