Open Source Tomb Raider Engine
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

CMakeLists.txt 6.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. # Include directory
  2. include_directories ("${PROJECT_SOURCE_DIR}/include")
  3. # Include External Modules
  4. set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
  5. # Flags for all builds
  6. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -std=c++11")
  7. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -g -O0 ${WARNINGS}")
  8. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DDEBUG")
  9. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DUNIT_TEST")
  10. #################################################################
  11. # TGA Test
  12. set (TGASRCS "${PROJECT_SOURCE_DIR}/test/tga.cpp" "${PROJECT_SOURCE_DIR}/src/utils/tga.cpp")
  13. add_executable (TGATest EXCLUDE_FROM_ALL ${TGASRCS})
  14. set_target_properties (TGATest PROPERTIES COMPILE_FLAGS ${OpenRaider_CXX_FLAGS})
  15. #################################################################
  16. # Add OpenAL Library
  17. find_package (OpenAL REQUIRED)
  18. include_directories (SYSTEM ${OPENAL_INCLUDE_DIRS})
  19. set (SOUNDLIBS ${SOUNDLIBS} ${OPENAL_LIBRARIES})
  20. # Add ALUT Library
  21. find_package (ALUT REQUIRED)
  22. include_directories (SYSTEM ${ALUT_INCLUDE_DIRS})
  23. set (SOUNDLIBS ${SOUNDLIBS} ${ALUT_LIBRARIES})
  24. # Sound Test
  25. set (SOUNDSRCS "${PROJECT_SOURCE_DIR}/test/Sound.cpp" "${PROJECT_SOURCE_DIR}/src/Sound.cpp")
  26. add_executable (SoundTest EXCLUDE_FROM_ALL ${SOUNDSRCS})
  27. set_target_properties (SoundTest PROPERTIES COMPILE_FLAGS ${OpenRaider_CXX_FLAGS})
  28. target_link_libraries (SoundTest ${SOUNDLIBS})
  29. #################################################################
  30. # Add Thread Library
  31. find_package (Threads REQUIRED)
  32. set (THREADLIBS ${THREADLIBS} ${CMAKE_THREAD_LIBS_INIT})
  33. # Network Test
  34. set (NETWORKSRCS "${PROJECT_SOURCE_DIR}/test/Network.cpp" "${PROJECT_SOURCE_DIR}/src/Network.cpp")
  35. set (NETWORKSRCS ${NETWORKSRCS} "${PROJECT_SOURCE_DIR}/src/utils/math.cpp" "${PROJECT_SOURCE_DIR}/src/Vector3d.cpp")
  36. add_executable (NetworkTest EXCLUDE_FROM_ALL ${NETWORKSRCS})
  37. set_target_properties (NetworkTest PROPERTIES COMPILE_FLAGS ${OpenRaider_CXX_FLAGS})
  38. target_link_libraries (NetworkTest m ${THREADLIBS})
  39. #################################################################
  40. # Math Test
  41. set (MATHSRCS "${PROJECT_SOURCE_DIR}/test/math.cpp" "${PROJECT_SOURCE_DIR}/src/utils/math.cpp" "${PROJECT_SOURCE_DIR}/src/Vector3d.cpp")
  42. add_executable (MathTest EXCLUDE_FROM_ALL ${MATHSRCS})
  43. set_target_properties (MathTest PROPERTIES COMPILE_FLAGS ${OpenRaider_CXX_FLAGS})
  44. #################################################################
  45. # Matrix Test
  46. set (MATRIXSRCS "${PROJECT_SOURCE_DIR}/test/Matrix.cpp" "${PROJECT_SOURCE_DIR}/src/Matrix.cpp")
  47. set (MATRIXSRCS ${MATRIXSRCS} "${PROJECT_SOURCE_DIR}/src/Vector3d.cpp" "${PROJECT_SOURCE_DIR}/src/utils/math.cpp")
  48. set (MATRIXSRCS ${MATRIXSRCS} "${PROJECT_SOURCE_DIR}/src/Quaternion.cpp")
  49. add_executable (MatrixTest EXCLUDE_FROM_ALL ${MATRIXSRCS})
  50. set_target_properties (MatrixTest PROPERTIES COMPILE_FLAGS ${OpenRaider_CXX_FLAGS})
  51. target_link_libraries (MatrixTest m)
  52. #################################################################
  53. # Add SDL2 Library
  54. find_package (SDL2 REQUIRED)
  55. include_directories (SYSTEM ${SDL2_INCLUDE_DIR})
  56. set (GLLIBS ${GLLIBS} ${SDL2_LIBRARY})
  57. # Add SDL2_ttf Library
  58. find_package (SDL2TTF REQUIRED)
  59. include_directories (SYSTEM ${SDL2TTF_INCLUDE_DIR})
  60. set (GLLIBS ${GLLIBS} ${SDL2TTF_LIBRARY})
  61. # Add OpenGL Library
  62. find_package (OpenGL REQUIRED)
  63. include_directories (SYSTEM ${OPENGL_INCLUDE_DIRS})
  64. set (GLLIBS ${GLLIBS} ${OPENGL_LIBRARIES})
  65. # GLString Test
  66. set (GLSTRINGSRCS "${PROJECT_SOURCE_DIR}/test/GLString.cpp" "${PROJECT_SOURCE_DIR}/src/GLString.cpp")
  67. set (GLSTRINGSRCS ${GLSTRINGSRCS} "${PROJECT_SOURCE_DIR}/src/utils/tga.cpp" "${PROJECT_SOURCE_DIR}/src/Texture.cpp")
  68. add_executable (GLStringTest EXCLUDE_FROM_ALL ${GLSTRINGSRCS})
  69. set_target_properties (GLStringTest PROPERTIES COMPILE_FLAGS ${OpenRaider_CXX_FLAGS})
  70. target_link_libraries (GLStringTest m ${GLLIBS})
  71. #################################################################
  72. # Add Z Library
  73. find_package (ZLIB REQUIRED)
  74. include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS})
  75. set (ZLIBS ${ZLIBS} ${ZLIB_LIBRARIES})
  76. # TombRaider Test
  77. set (TOMB_FLAGS "-D__TEST_TR5_DUMP_TGA -D__TEST_32BIT_TEXTILES")
  78. set (TOMBSRCS "${PROJECT_SOURCE_DIR}/test/TombRaider.cpp" "${PROJECT_SOURCE_DIR}/src/TombRaider.cpp")
  79. set (TOMBSRCS ${TOMBSRCS} "${PROJECT_SOURCE_DIR}/src/utils/tga.cpp")
  80. add_executable (TombRaiderTest EXCLUDE_FROM_ALL ${TOMBSRCS})
  81. set_target_properties (TombRaiderTest PROPERTIES COMPILE_FLAGS "${OpenRaider_CXX_FLAGS} ${TOMB_FLAGS}")
  82. target_link_libraries (TombRaiderTest ${ZLIBS})
  83. #################################################################
  84. # Add test build target
  85. add_custom_target (tests)
  86. add_dependencies (tests GLStringTest MathTest MatrixTest NetworkTest SoundTest TGATest TombRaiderTest)
  87. # Add test run target
  88. add_custom_target (testRun echo "Running Unit Tests..."
  89. COMMAND TGATest
  90. COMMAND SoundTest
  91. COMMAND MatrixTest
  92. COMMAND MathTest
  93. COMMAND GLStringTest
  94. )
  95. add_dependencies (testRun tests)
  96. # Add TombRaider regression test target
  97. set (REGTEST_TR1 "~/.OpenRaider/paks/tr1/level1.phd")
  98. set (REGTEST_TR2 "~/.OpenRaider/paks/tr2/unwater.tr2")
  99. #set (REGTEST_TR3 "~/.OpenRaider/paks/tr3/scotland.tr2")
  100. set (REGTEST_TR3 "~/.OpenRaider/paks/tr3/HOUSE.TR2")
  101. set (REGTEST_TR4 "~/.OpenRaider/paks/tr4/angkor1.tr4")
  102. #set (REGTEST_TR5 "~/.OpenRaider/paks/tr5/demo.trc")
  103. set (REGTEST_TR5 "~/.OpenRaider/paks/tr5/andy1.trc")
  104. add_custom_target (testReg echo "Running TombRaider 1 Regression Test..."
  105. COMMAND TombRaiderTest load ${REGTEST_TR1} > ../log.tr1
  106. COMMAND echo "Running TombRaider 2 Regression Test..."
  107. COMMAND TombRaiderTest load ${REGTEST_TR2} > ../log.tr2
  108. COMMAND echo "Running TombRaider 3 Regression Test..."
  109. COMMAND TombRaiderTest load ${REGTEST_TR3} > ../log.tr3
  110. COMMAND echo "Running TombRaider 4 Regression Test..."
  111. COMMAND TombRaiderTest load ${REGTEST_TR4} > ../log.tr4
  112. COMMAND echo "Running TombRaider 5 Regression Test..."
  113. COMMAND TombRaiderTest load ${REGTEST_TR5} > ../log.tr5
  114. )
  115. add_dependencies (testReg TombRaiderTest)
  116. # Clean regression test logs
  117. set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
  118. "../log.tr1;../log.tr2;../log.tr3;../log.tr4;../log.tr5")