Open Source Tomb Raider Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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")