CMakeLists.txt 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. cmake_minimum_required(VERSION 3.8.2)
  2. # List all files containing tests. (Change as needed)
  3. set(TESTFILES
  4. runner.c
  5. src/test_euler.c
  6. src/test_bezier.c
  7. src/test_cam.c
  8. src/test_cam_lh_zo.c
  9. src/test_cam_rh_zo.c
  10. src/test_cam_lh_no.c
  11. src/test_cam_rh_no.c
  12. src/test_struct.c
  13. src/test_clamp.c
  14. src/test_common.c
  15. src/tests.c
  16. )
  17. set(TEST_MAIN tests)
  18. set(TEST_RUNNER_PARAMS "")
  19. add_executable(${TEST_MAIN} ${TESTFILES})
  20. target_compile_definitions(${TEST_MAIN} PRIVATE CGLM_DEFINE_PRINTS=1)
  21. if(CMAKE_SYSTEM_NAME STREQUAL WASI)
  22. target_compile_definitions(${TEST_MAIN} PRIVATE _WASI_EMULATED_PROCESS_CLOCKS=1)
  23. target_link_options(${TEST_MAIN} PRIVATE "-lwasi-emulated-process-clocks")
  24. endif()
  25. if(NOT MSVC)
  26. target_link_libraries(${TEST_MAIN} PRIVATE m)
  27. endif()
  28. target_link_libraries(${TEST_MAIN} PRIVATE cglm)
  29. target_include_directories(${TEST_MAIN} PRIVATE
  30. ${CMAKE_CURRENT_LIST_DIR}/include
  31. ${CMAKE_CURRENT_LIST_DIR}/src
  32. )
  33. set_target_properties(${TEST_MAIN} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
  34. if(LDFLAGS)
  35. target_compile_options(${TEST_MAIN} PRIVATE ${LDFLAGS})
  36. endif()
  37. add_test(
  38. NAME cglm.${TEST_MAIN}
  39. COMMAND ${TEST_MAIN} ${TEST_RUNNER_PARAMS})
  40. add_custom_target(check
  41. make
  42. COMMAND ${CMAKE_CTEST_COMMAND} -V
  43. DEPENDS cglm)