55 lines
1,011 B
CMake
55 lines
1,011 B
CMake
cmake_minimum_required(VERSION 3.18)
|
|
project(ikarus)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
|
|
|
add_subdirectory(vendor)
|
|
add_subdirectory(include)
|
|
add_subdirectory(src)
|
|
|
|
add_library(
|
|
libikarus OBJECT
|
|
${INCLUDE_FILES}
|
|
${SOURCE_FILES}
|
|
)
|
|
|
|
target_include_directories(
|
|
libikarus PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR}/include
|
|
)
|
|
|
|
target_include_directories(
|
|
libikarus PRIVATE
|
|
${CMAKE_CURRENT_LIST_DIR}/src
|
|
)
|
|
|
|
target_link_libraries(
|
|
libikarus PUBLIC
|
|
Catch2::Catch2WithMain
|
|
)
|
|
|
|
target_link_libraries(
|
|
libikarus PRIVATE
|
|
cppbase
|
|
sqlitecpp
|
|
)
|
|
|
|
set_target_properties(
|
|
libikarus PROPERTIES
|
|
LINKER_LANGUAGE CXX
|
|
)
|
|
|
|
add_executable(ikarus_tests ${SOURCE_FILES})
|
|
target_link_libraries(ikarus_tests PRIVATE Catch2::Catch2WithMain)
|
|
|
|
target_include_directories(
|
|
ikarus_tests PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR}/include
|
|
)
|
|
|
|
include(CTest)
|
|
include(vendor/catch2/extras/Catch.cmake)
|
|
catch_discover_tests(ikarus_tests)
|