CMakeLists.txt 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. project(DoRayTested)
  2. set(THREADS_PREFER_PTHREAD_FLAG ON)
  3. find_package(Threads REQUIRED)
  4. set(TESTS_SRC math_test.cpp tuple_test.cpp colour_test.cpp canvas_test.cpp matrix_test.cpp transformation_test.cpp
  5. ray_test.cpp intersect_test.cpp sphere_test.cpp light_test.cpp material_test.cpp world_test.cpp camera_test.cpp
  6. shape_test.cpp plane_test.cpp pattern_test.cpp cube_test.cpp cylinder_test.cpp cone_test.cpp group_test.cpp
  7. boundingbox_test.cpp triangle_test.cpp sequence_test.cpp)
  8. add_executable(testMyRays)
  9. target_include_directories(testMyRays PUBLIC ${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
  10. target_include_directories(testMyRays PUBLIC ../source/include)
  11. target_sources(testMyRays PRIVATE ${TESTS_SRC})
  12. target_link_libraries(testMyRays gtest gtest_main rayonnement Threads::Threads)
  13. gtest_discover_tests(testMyRays
  14. WORKING_DIRECTORY ${PROJECT_DIR}
  15. PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${PROJECT_DIR}"
  16. )
  17. add_executable(hw3render)
  18. target_include_directories(hw3render PUBLIC ../source/include)
  19. target_sources(hw3render PRIVATE hw3render.cpp)
  20. target_link_libraries(hw3render rayonnement)
  21. add_executable(test_render)
  22. target_include_directories(test_render PUBLIC ../source/include)
  23. target_sources(test_render PRIVATE test_render.cpp)
  24. target_link_libraries(test_render rayonnement)
  25. add_executable(ch5_test)
  26. target_include_directories(ch5_test PUBLIC ../source/include)
  27. target_sources(ch5_test PRIVATE ch5_test.cpp)
  28. target_link_libraries(ch5_test rayonnement)
  29. add_executable(ch6_test)
  30. target_include_directories(ch6_test PUBLIC ../source/include)
  31. target_sources(ch6_test PRIVATE ch6_test.cpp)
  32. target_link_libraries(ch6_test rayonnement)
  33. add_executable(ch7_test)
  34. target_include_directories(ch7_test PUBLIC ../source/include)
  35. target_sources(ch7_test PRIVATE ch7_test.cpp)
  36. target_link_libraries(ch7_test rayonnement)
  37. add_executable(ch9_test)
  38. target_include_directories(ch9_test PUBLIC ../source/include)
  39. target_sources(ch9_test PRIVATE ch9_test.cpp)
  40. target_link_libraries(ch9_test rayonnement)
  41. add_executable(ch10_test)
  42. target_include_directories(ch10_test PUBLIC ../source/include)
  43. target_sources(ch10_test PRIVATE ch10_test.cpp)
  44. target_link_libraries(ch10_test rayonnement)
  45. add_executable(ch11_reflection)
  46. target_include_directories(ch11_reflection PUBLIC ../source/include)
  47. target_sources(ch11_reflection PRIVATE ch11_reflection.cpp)
  48. target_link_libraries(ch11_reflection rayonnement)
  49. add_executable(ch11_refraction)
  50. target_include_directories(ch11_refraction PUBLIC ../source/include)
  51. target_sources(ch11_refraction PRIVATE ch11_refraction.cpp)
  52. target_link_libraries(ch11_refraction rayonnement)
  53. add_executable(ch11_test)
  54. target_include_directories(ch11_test PUBLIC ../source/include)
  55. target_sources(ch11_test PRIVATE ch11_test.cpp)
  56. target_link_libraries(ch11_test rayonnement)
  57. add_executable(ch12_test)
  58. target_include_directories(ch12_test PUBLIC ../source/include)
  59. target_sources(ch12_test PRIVATE ch12_test.cpp)
  60. target_link_libraries(ch12_test rayonnement)
  61. add_executable(ch13_test)
  62. target_include_directories(ch13_test PUBLIC ../source/include)
  63. target_sources(ch13_test PRIVATE ch13_test.cpp)
  64. target_link_libraries(ch13_test rayonnement)
  65. add_executable(ch13_cone)
  66. target_include_directories(ch13_cone PUBLIC ../source/include)
  67. target_sources(ch13_cone PRIVATE ch13_cone.cpp)
  68. target_link_libraries(ch13_cone rayonnement)
  69. add_executable(ch14_test)
  70. target_include_directories(ch14_test PUBLIC ../source/include)
  71. target_sources(ch14_test PRIVATE ch14_test.cpp)
  72. target_link_libraries(ch14_test rayonnement)
  73. add_executable(arealight_test)
  74. target_include_directories(arealight_test PUBLIC ../source/include)
  75. target_sources(arealight_test PRIVATE arealight_test.cpp)
  76. target_link_libraries(arealight_test rayonnement)
  77. add_executable(triangle_rendertest)
  78. target_include_directories(triangle_rendertest PUBLIC ../source/include)
  79. target_sources(triangle_rendertest PRIVATE triangle_rendertest.cpp)
  80. target_link_libraries(triangle_rendertest rayonnement)
  81. add_executable(christmasball_render)
  82. target_include_directories(christmasball_render PUBLIC ../source/include)
  83. target_sources(christmasball_render PRIVATE christmasball_render.cpp)
  84. target_link_libraries(christmasball_render rayonnement)
  85. add_test(NAME Chapter05_Test COMMAND $<TARGET_FILE:ch5_test>)
  86. add_test(NAME Chapter06_Test COMMAND $<TARGET_FILE:ch6_test>)
  87. add_test(NAME Chapter07_Test COMMAND $<TARGET_FILE:ch7_test>)
  88. add_test(NAME Chapter09_Test COMMAND $<TARGET_FILE:ch9_test>)
  89. add_test(NAME Chapter10_Test COMMAND $<TARGET_FILE:ch10_test>)
  90. add_test(NAME Chapter11_Reflection COMMAND $<TARGET_FILE:ch11_reflection>)
  91. add_test(NAME Chapter11_Refraction COMMAND $<TARGET_FILE:ch11_refraction>)
  92. add_test(NAME Chapter11_Test COMMAND $<TARGET_FILE:ch11_test>)
  93. add_test(NAME Chapter12_Test COMMAND $<TARGET_FILE:ch12_test>)
  94. add_test(NAME Chapter13_Test COMMAND $<TARGET_FILE:ch13_test>)
  95. add_test(NAME Chapter13_ConeBonus COMMAND $<TARGET_FILE:ch13_cone>)
  96. add_test(NAME Chapter14_Test COMMAND $<TARGET_FILE:ch14_test>)
  97. add_test(NAME AreaLight_Test COMMAND $<TARGET_FILE:arealight_test>)
  98. add_test(NAME Test_Rendering COMMAND $<TARGET_FILE:test_render>)
  99. add_test(NAME Triangle_RenderTest COMMAND $<TARGET_FILE:triangle_rendertest>)
  100. add_test(NAME ChristmasBall_Rendering COMMAND $<TARGET_FILE:christmasball_render>)
  101. add_test(NAME Hw3Render COMMAND $<TARGET_FILE:hw3render> ${CMAKE_CURRENT_SOURCE_DIR}/test.hw3scene)
  102. add_test(NAME Hw3RenderAllCmds COMMAND $<TARGET_FILE:hw3render> ${CMAKE_CURRENT_SOURCE_DIR}/test_keys.hw3scene)