56 lines
1.5 KiB
CMake
56 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(bettola CXX C)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# === Sol2 ===
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
sol2
|
|
GIT_REPOSITORY https://github.com/ThePhD/sol2.git
|
|
GIT_TAG v3.3.1
|
|
)
|
|
FetchContent_MakeAvailable(sol2)
|
|
|
|
# === Asio ===
|
|
FetchContent_Declare(
|
|
asio
|
|
GIT_REPOSITORY https://github.com/chriskohlhoff/asio
|
|
git_TAG asio-1-36-0
|
|
)
|
|
FetchContent_MakeAvailable(asio)
|
|
|
|
# === SQLite ===
|
|
# Supress the developer warning for using Populate with declared content.
|
|
# We need it because sqlite zip isn't a CMAKE project.
|
|
cmake_policy(SET CMP0169 OLD)
|
|
FetchContent_Declare(
|
|
sqlite_source
|
|
URL https://sqlite.org/2025/sqlite-amalgamation-3500400.zip
|
|
URL_HASH SHA256=1d3049dd0f830a025a53105fc79fd2ab9431aea99e137809d064d8ee8356b032
|
|
DOWNLOAD_EXTRACT_TIMESTAMP true
|
|
)
|
|
FetchContent_GetProperties(sqlite_source)
|
|
if(NOT sqlite_source_POPULATED)
|
|
FetchContent_Populate(sqlite_source)
|
|
add_library(sqlite STATIC "${sqlite_source_SOURCE_DIR}/sqlite3.c")
|
|
target_include_directories(sqlite PUBLIC "${sqlite_source_SOURCE_DIR}")
|
|
endif()
|
|
# Revert policy to default.
|
|
cmake_policy(SET CMP0169 NEW)
|
|
|
|
# === sqlite_modern_cpp (SQLite wrapper) ===
|
|
FetchContent_Declare(
|
|
sqlite_modern_cpp
|
|
GIT_REPOSITORY https://github.com/SqliteModernCpp/sqlite_modern_cpp.git
|
|
GIT_TAG v3.2
|
|
)
|
|
FetchContent_MakeAvailable(sqlite_modern_cpp)
|
|
|
|
add_subdirectory(common)
|
|
add_subdirectory(client)
|
|
add_subdirectory(server)
|