finalise interface & documentation
Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
parent
ca67866d74
commit
67711a8d39
56 changed files with 2074 additions and 780 deletions
|
|
@ -3,9 +3,10 @@ project(ikarus)
|
|||
|
||||
option(LIBIKARUS_ENABLE_TESTS "Enable tests" OFF)
|
||||
option(LIBIKARUS_ENABLE_LINTS "Enable linting" OFF)
|
||||
option(LIBIKARUS_BUILD_DOCS "Build documentation" OFF)
|
||||
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
||||
|
|
@ -29,11 +30,6 @@ target_include_directories(
|
|||
${CMAKE_CURRENT_LIST_DIR}/src
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
libikarus PRIVATE
|
||||
Catch2::Catch2WithMain
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
libikarus PRIVATE
|
||||
cppbase
|
||||
|
|
@ -45,35 +41,44 @@ if (LIBIKARUS_ENABLE_LINTS)
|
|||
find_program(CLANG_TIDY_PATH NAMES clang-tidy REQUIRED)
|
||||
|
||||
set_property(TARGET libikarus PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${IWYU_PATH})
|
||||
string(
|
||||
CONCAT CLANG_TIDY_OPTIONS
|
||||
"-checks=-*,"
|
||||
"bugprone-*,"
|
||||
"concurrency-*,"
|
||||
"cppcoreguidelines-*,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-pro-type-union-access,"
|
||||
"misc-*,"
|
||||
"modernize-*,-modernize-use-trailing-return-type,"
|
||||
"performance-*,"
|
||||
"portability-*,"
|
||||
"readability-*,-readability-identifier-length,-readability-magic-numbers,-readability-function-cognitive-complexity"
|
||||
)
|
||||
|
||||
set_property(
|
||||
TARGET libikarus
|
||||
PROPERTY CXX_CLANG_TIDY ${CLANG_TIDY_PATH};${CLANG_TIDY_OPTIONS}
|
||||
PROPERTY CXX_CLANG_TIDY ${CLANG_TIDY_PATH};
|
||||
)
|
||||
endif ()
|
||||
|
||||
if (LIBIKARUS_ENABLE_TESTS)
|
||||
add_executable(libikarus_tests ${SOURCE_FILES})
|
||||
target_link_libraries(libikarus_tests PRIVATE Catch2::Catch2WithMain)
|
||||
target_link_libraries(libikarus_tests PRIVATE sqlitecpp Catch2::Catch2WithMain)
|
||||
|
||||
target_include_directories(
|
||||
libikarus_tests PUBLIC
|
||||
libikarus_tests PRIVATE
|
||||
${CMAKE_CURRENT_LIST_DIR}/include
|
||||
${CMAKE_CURRENT_LIST_DIR}/src
|
||||
)
|
||||
|
||||
include(CTest)
|
||||
include(vendor/catch2/extras/Catch.cmake)
|
||||
catch_discover_tests(libikarus_tests)
|
||||
endif ()
|
||||
|
||||
if (LIBIKARUS_BUILD_DOCS)
|
||||
find_program(DOXYGEN_PATH NAMES doxygen REQUIRED)
|
||||
add_custom_target(
|
||||
libikarus_docs
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/docs
|
||||
COMMAND ${DOXYGEN_PATH} DoxyFile
|
||||
COMMENT "Generating documentation with Doxygen"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
libikarus
|
||||
libikarus_docs
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
libikarus_tests
|
||||
libikarus_docs
|
||||
)
|
||||
endif ()
|
||||
Loading…
Add table
Add a link
Reference in a new issue