2024-07-03 16:03:24 +08:00
|
|
|
# cmake_minimum_required(VERSION 3.30)
|
|
|
|
cmake_minimum_required(VERSION 3.29)
|
2024-05-05 12:58:35 +08:00
|
|
|
project(hpcstat VERSION 0.0.0 LANGUAGES CXX)
|
|
|
|
enable_testing()
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
|
|
message("Setting build type to 'Release' as none was specified.")
|
|
|
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
|
|
|
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
|
|
|
endif()
|
|
|
|
|
2024-05-23 13:39:27 +08:00
|
|
|
set(HPCSTAT_VERSION "unknown" CACHE STRING "Version of the hpcstat")
|
|
|
|
|
2024-09-25 10:34:26 +08:00
|
|
|
find_package(Boost REQUIRED COMPONENTS url)
|
2024-05-05 14:20:53 +08:00
|
|
|
find_package(SqliteOrm REQUIRED)
|
2024-05-05 12:58:35 +08:00
|
|
|
find_package(nlohmann_json REQUIRED)
|
2024-05-05 19:07:16 +08:00
|
|
|
find_package(date REQUIRED)
|
2024-05-05 21:44:21 +08:00
|
|
|
find_package(httplib REQUIRED)
|
2024-06-04 20:46:10 +08:00
|
|
|
find_package(termcolor REQUIRED)
|
2024-06-10 18:34:40 +08:00
|
|
|
find_package(biu REQUIRED)
|
2024-06-18 19:54:37 +08:00
|
|
|
find_package(OpenXLSX REQUIRED)
|
2024-05-05 12:58:35 +08:00
|
|
|
|
2024-05-05 21:44:21 +08:00
|
|
|
add_executable(hpcstat src/main.cpp src/env.cpp src/keys.cpp src/ssh.cpp src/sql.cpp src/lfs.cpp src/common.cpp
|
2024-06-04 20:46:10 +08:00
|
|
|
src/push.cpp src/disk.cpp)
|
2024-07-03 16:03:24 +08:00
|
|
|
# target_compile_features(hpcstat PRIVATE cxx_std_26)
|
|
|
|
target_compile_options(hpcstat PRIVATE "-std=c++26")
|
2024-07-03 16:59:55 +08:00
|
|
|
target_include_directories(hpcstat PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
2024-09-25 10:34:26 +08:00
|
|
|
target_link_libraries(hpcstat PRIVATE Boost::url sqlite_orm::sqlite_orm nlohmann_json::nlohmann_json date::date
|
|
|
|
date::date-tz httplib::httplib termcolor::termcolor biu::biu OpenXLSX::OpenXLSX)
|
2024-05-23 13:39:27 +08:00
|
|
|
target_compile_definitions(hpcstat PRIVATE HPCSTAT_VERSION="${HPCSTAT_VERSION}")
|
2024-05-05 12:58:35 +08:00
|
|
|
|
|
|
|
install(TARGETS hpcstat RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
install(DIRECTORY share/ DESTINATION ${CMAKE_INSTALL_DATADIR}/hpcstat)
|
|
|
|
|
|
|
|
get_property(ImportedTargets DIRECTORY "${CMAKE_SOURCE_DIR}" PROPERTY IMPORTED_TARGETS)
|
|
|
|
message("Imported targets: ${ImportedTargets}")
|
|
|
|
message("List of compile features: ${CMAKE_CXX_COMPILE_FEATURES}")
|
2024-08-24 17:05:41 +08:00
|
|
|
|
|
|
|
include(CTest)
|
|
|
|
add_executable(test-main test/main.cpp)
|
|
|
|
target_link_libraries(test-main PRIVATE biu::biu)
|
|
|
|
set_property(TARGET test-main PROPERTY CXX_STANDARD 23 CXX_STANDARD_REQUIRED ON)
|
|
|
|
add_test(NAME test-main COMMAND test-main)
|