62 lines
2.9 KiB
CMake
62 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(FESA VERSION 0.1.0 LANGUAGES CXX)
|
|
|
|
file(GLOB_RECURSE FESA_CORE_SOURCES CONFIGURE_DEPENDS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp"
|
|
)
|
|
|
|
add_library(fesa_core STATIC ${FESA_CORE_SOURCES})
|
|
target_include_directories(fesa_core PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
)
|
|
target_compile_features(fesa_core PUBLIC cxx_std_17)
|
|
|
|
enable_testing()
|
|
|
|
add_executable(fesa_tests tests/test_main.cpp)
|
|
target_link_libraries(fesa_tests PRIVATE fesa_core)
|
|
target_compile_definitions(fesa_tests PRIVATE FESA_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
add_executable(fesa_core_module_tests tests/test_core_module_includes.cpp)
|
|
target_link_libraries(fesa_core_module_tests PRIVATE fesa_core)
|
|
|
|
add_executable(fesa_math_module_tests tests/test_math_module_includes.cpp)
|
|
target_link_libraries(fesa_math_module_tests PRIVATE fesa_core)
|
|
|
|
add_executable(fesa_io_module_tests tests/test_io_module_includes.cpp)
|
|
target_link_libraries(fesa_io_module_tests PRIVATE fesa_core)
|
|
target_compile_definitions(fesa_io_module_tests PRIVATE FESA_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
add_executable(fesa_results_module_tests tests/test_results_module_includes.cpp)
|
|
target_link_libraries(fesa_results_module_tests PRIVATE fesa_core)
|
|
target_compile_definitions(fesa_results_module_tests PRIVATE FESA_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
add_executable(fesa_element_module_tests tests/test_element_module_includes.cpp)
|
|
target_link_libraries(fesa_element_module_tests PRIVATE fesa_core)
|
|
|
|
if(MSVC)
|
|
target_compile_options(fesa_core PRIVATE /W4 /permissive-)
|
|
target_compile_options(fesa_tests PRIVATE /W4 /permissive-)
|
|
target_compile_options(fesa_core_module_tests PRIVATE /W4 /permissive-)
|
|
target_compile_options(fesa_math_module_tests PRIVATE /W4 /permissive-)
|
|
target_compile_options(fesa_io_module_tests PRIVATE /W4 /permissive-)
|
|
target_compile_options(fesa_results_module_tests PRIVATE /W4 /permissive-)
|
|
target_compile_options(fesa_element_module_tests PRIVATE /W4 /permissive-)
|
|
else()
|
|
target_compile_options(fesa_core PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(fesa_tests PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(fesa_core_module_tests PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(fesa_math_module_tests PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(fesa_io_module_tests PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(fesa_results_module_tests PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(fesa_element_module_tests PRIVATE -Wall -Wextra -Wpedantic)
|
|
endif()
|
|
|
|
add_test(NAME fesa_tests COMMAND fesa_tests)
|
|
add_test(NAME fesa_core_module_tests COMMAND fesa_core_module_tests)
|
|
add_test(NAME fesa_math_module_tests COMMAND fesa_math_module_tests)
|
|
add_test(NAME fesa_io_module_tests COMMAND fesa_io_module_tests)
|
|
add_test(NAME fesa_results_module_tests COMMAND fesa_results_module_tests)
|
|
add_test(NAME fesa_element_module_tests COMMAND fesa_element_module_tests)
|