diff --git a/CMakeLists.txt b/CMakeLists.txt index fced657..1917110 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ set(CGLM_BUILD) option(CGLM_STATIC "Static build" ON) option(CGLM_SHARED "Shared build" OFF) option(CGLM_USE_C11 "" OFF) +option(CGLM_USE_TEST "Enable Tests" OFF) if(CGLM_STATIC AND NOT CGLM_SHARED) set(CGLM_BUILD STATIC) @@ -16,7 +17,7 @@ else(CGLM_SHARED) endif() if(CGLM_USE_C11) - set(C_STANDARD 99) + set(C_STANDARD 11) endif() if("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") @@ -141,8 +142,7 @@ add_library(cglm ) target_include_directories(cglm PUBLIC - ${CMAKE_CURRENT_LIST_DIR}/include - $/${CMAKE_INSTALL_PREFIX}> + ${CMAKE_CURRENT_SOURCE_DIR}/include ) if(LDFLAGS) @@ -166,3 +166,9 @@ if(CGLM_SHARED) endif() install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/cglm COMPONENT development) + +# Test Configuration +if(CGLM_USE_TEST) + enable_testing() + add_subdirectory(test) +endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..7121c6e --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.8.2) + +# List all files containing tests. (Change as needed) +set(TESTFILES + runner.c + src/test_euler.c + src/test_bezier.c + src/test_cam.c + src/test_struct.c + src/test_clamp.c + src/test_common.c + src/tests.c + ) + +set(TEST_MAIN tests) +set(TEST_RUNNER_PARAMS "") + +add_executable(${TEST_MAIN} ${TESTFILES}) + +target_link_libraries(${TEST_MAIN} PRIVATE cglm m) +target_include_directories(${TEST_MAIN} PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/include + ${CMAKE_CURRENT_LIST_DIR}/src + ) + +set_target_properties(${TEST_MAIN} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + +if(LDFLAGS) + target_compile_options(${TEST_MAIN} PRIVATE ${LDFLAGS}) +endif() + +# set(C_STANDARD 99) +# set(C_STANDARD_REQUIRED YES) + +# if(CGLM_USE_C11) +# set(C_STANDARD 11) +# endif() + +add_test( + NAME cglm.${TEST_MAIN} + COMMAND ${TEST_MAIN} ${TEST_RUNNER_PARAMS})