nutri/CMakeLists.txt

65 lines
1.3 KiB
CMake
Raw Normal View History

2024-10-15 17:48:16 +00:00
cmake_minimum_required(VERSION 3.30)
project(nutri)
set(CMAKE_CXX_STANDARD 26)
2024-10-16 12:02:16 +00:00
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
2024-11-10 20:39:27 +00:00
add_compile_options(-fdiagnostics-color=always)
2024-11-10 20:58:51 +00:00
find_program(MOLD_LINKER mold)
if (MOLD_LINKER)
add_link_options(-fuse-ld=mold)
endif()
2024-11-10 20:39:27 +00:00
if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
add_compile_options(-O3 -march=native)
2024-11-10 20:58:51 +00:00
add_link_options(-s)
2024-11-10 20:39:27 +00:00
endif()
2024-10-15 17:48:16 +00:00
2024-10-16 12:02:16 +00:00
include(FetchContent)
2024-11-10 17:26:07 +00:00
find_package(ctre QUIET)
if (NOT ctre_FOUND)
FetchContent_Declare(
ctre
GIT_REPOSITORY https://github.com/hanickadot/compile-time-regular-expressions.git
GIT_TAG v3.9.0
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(ctre)
endif()
2024-10-16 12:02:16 +00:00
2024-11-10 17:26:07 +00:00
find_package(cpr QUIET)
if (NOT cpr_FOUND)
FetchContent_Declare(
cpr
GIT_REPOSITORY https://github.com/libcpr/cpr.git
GIT_TAG 1.11.0
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(cpr)
endif()
find_package(glaze QUIET)
if (NOT glaze_FOUND)
FetchContent_Declare(
glaze
GIT_REPOSITORY https://github.com/stephenberry/glaze.git
GIT_TAG main
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(glaze)
endif()
2024-10-15 17:48:16 +00:00
add_executable(
2024-11-10 17:26:07 +00:00
nutri
src/main.cpp
src/ArgParser.hpp
src/Helpers/Utility.cpp
src/Helpers/Utility.hpp
src/Helpers/WolframAlpha.hpp
)
target_link_libraries(nutri PRIVATE cpr::cpr ctre::ctre glaze::glaze)