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 7.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. # Add OpenGL Library
  2. find_package (OpenGL REQUIRED)
  3. include_directories (SYSTEM ${OPENGL_INCLUDE_DIRS})
  4. set (LIBS ${LIBS} ${OPENGL_LIBRARIES})
  5. # Add Z Library
  6. find_package (ZLIB REQUIRED)
  7. include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS})
  8. set (LIBS ${LIBS} ${ZLIB_LIBRARIES})
  9. # Add SDL2 Library
  10. find_package (SDL2)
  11. if (SDL2_FOUND)
  12. include_directories (SYSTEM ${SDL2_INCLUDE_DIR})
  13. set (LIBS ${LIBS} ${SDL2_LIBRARY})
  14. # Add SDL2_ttf Library
  15. find_package (SDL2TTF)
  16. if (SDL2TTF_FOUND)
  17. include_directories (SYSTEM ${SDL2TTF_INCLUDE_DIR})
  18. set (LIBS ${LIBS} ${SDL2TTF_LIBRARY})
  19. endif (SDL2TTF_FOUND)
  20. endif (SDL2_FOUND)
  21. # Add OpenAL Library
  22. find_package (OpenAL)
  23. if (OPENAL_FOUND)
  24. include_directories (SYSTEM ${OPENAL_INCLUDE_DIRS})
  25. set (LIBS ${LIBS} ${OPENAL_LIBRARIES})
  26. # Add ALUT Library
  27. find_package (ALUT)
  28. if (ALUT_FOUND)
  29. include_directories (SYSTEM ${ALUT_INCLUDE_DIRS})
  30. set (LIBS ${LIBS} ${ALUT_LIBRARIES})
  31. endif (ALUT_FOUND)
  32. endif (OPENAL_FOUND)
  33. #################################################################
  34. # Set Source files
  35. set (SRCS ${SRCS} "Camera.cpp")
  36. set (SRCS ${SRCS} "Command.cpp")
  37. set (SRCS ${SRCS} "Console.cpp")
  38. set (SRCS ${SRCS} "Game.cpp")
  39. set (SRCS ${SRCS} "main.cpp")
  40. set (SRCS ${SRCS} "Menu.cpp")
  41. set (SRCS ${SRCS} "Mesh.cpp")
  42. set (SRCS ${SRCS} "OpenRaider.cpp")
  43. set (SRCS ${SRCS} "Render.cpp")
  44. set (SRCS ${SRCS} "Room.cpp")
  45. set (SRCS ${SRCS} "RoomData.cpp")
  46. set (SRCS ${SRCS} "SkeletalModel.cpp")
  47. set (SRCS ${SRCS} "Sound.cpp")
  48. set (SRCS ${SRCS} "Sprite.cpp")
  49. set (SRCS ${SRCS} "Texture.cpp")
  50. set (SRCS ${SRCS} "TombRaider.cpp")
  51. set (SRCS ${SRCS} "ViewVolume.cpp")
  52. set (SRCS ${SRCS} "Window.cpp")
  53. set (SRCS ${SRCS} "World.cpp")
  54. # Select available Sound library
  55. option (ENABLE_AUDIO "Enable Sound Output" YES)
  56. if (OPENAL_FOUND AND ALUT_FOUND AND ENABLE_AUDIO)
  57. set (SRCS ${SRCS} "SoundAL.cpp")
  58. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DUSING_AL")
  59. else (OPENAL_FOUND AND ALUT_FOUND AND ENABLE_AUDIO)
  60. set (SRCS ${SRCS} "SoundNull.cpp")
  61. message (STATUS "Disabled Sound support (no OpenAL and ALUT)!")
  62. endif (OPENAL_FOUND AND ALUT_FOUND AND ENABLE_AUDIO)
  63. # Select available Windowing library
  64. if (SDL2_FOUND AND SDL2TTF_FOUND)
  65. set (SRCS ${SRCS} "WindowSDL.cpp")
  66. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DUSING_SDL")
  67. else (SDL2_FOUND AND SDL2TTF_FOUND)
  68. # Currently only SDL2 support
  69. message (FATAL_ERROR "SDL2 and SDL2-TTF are required at the moment!")
  70. endif (SDL2_FOUND AND SDL2TTF_FOUND)
  71. #################################################################
  72. # Configuration Header file
  73. configure_file (
  74. "${PROJECT_SOURCE_DIR}/include/config.h.in"
  75. "${PROJECT_BINARY_DIR}/config.h"
  76. )
  77. #################################################################
  78. # Apple specific bundling
  79. if (APPLE)
  80. # Mac Bundle Data
  81. set (MACOSX_BUNDLE_INFO_STRING "OpenSource TombRaider Game Engine")
  82. set (MACOSX_BUNDLE_ICON_FILE "AppIcon")
  83. set (MACOSX_BUNDLE_GUI_IDENTIFIER "de.xythobuz.OpenRaider")
  84. set (MACOSX_BUNDLE_BUNDLE_NAME "OpenRaider")
  85. set (MACOSX_BUNDLE_SHORT_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}${OpenRaider_VERSION_RELEASE}")
  86. set (MACOSX_BUNDLE_LONG_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}${OpenRaider_VERSION_RELEASE} (${CMAKE_BUILD_TYPE})")
  87. set (MACOSX_BUNDLE_BUNDLE_VERSION "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}${OpenRaider_VERSION_RELEASE} (${CMAKE_BUILD_TYPE})")
  88. set (MACOSX_BUNDLE_COPYRIGHT "2001 - 2014")
  89. # Copy Icon
  90. set (MAC_ICON "../cmake/AppIcon.icns")
  91. set_source_files_properties (${MAC_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  92. set (SRCS ${SRCS} ${MAC_ICON})
  93. # Copy Data
  94. set (MAC_DATA "../data/OpenRaider.ini" "../data/test.ttf" "../data/splash.tga")
  95. set_source_files_properties (${MAC_DATA} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/defaults)
  96. set (SRCS ${SRCS} ${MAC_DATA})
  97. endif (APPLE)
  98. #################################################################
  99. # Check for SSE, enable if available
  100. include (../cmake/FindSSE.cmake)
  101. if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  102. if (SSE_FOUND)
  103. set (SSE_FOUND_MSG "${SSE_FOUND_MSG} SSE")
  104. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -msse")
  105. endif (SSE_FOUND)
  106. if (SSE2_FOUND)
  107. set (SSE_FOUND_MSG "${SSE_FOUND_MSG} SSE2")
  108. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -msse2")
  109. endif (SSE2_FOUND)
  110. if (SSE3_FOUND)
  111. set (SSE_FOUND_MSG "${SSE_FOUND_MSG} SSE3")
  112. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -msse3")
  113. endif (SSE3_FOUND)
  114. if (SSSE3_FOUND)
  115. set (SSE_FOUND_MSG "${SSE_FOUND_MSG} SSSE3")
  116. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -mssse3")
  117. endif (SSSE3_FOUND)
  118. if (SSE4_1_FOUND)
  119. set (SSE_FOUND_MSG "${SSE_FOUND_MSG} SSE4.1")
  120. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -msse4.1")
  121. endif (SSE4_1_FOUND)
  122. # Display message if something is enabled
  123. if (NOT "${SSE_FOUND_MSG}" STREQUAL "")
  124. message (STATUS "Enabled${SSE_FOUND_MSG}...")
  125. endif (NOT "${SSE_FOUND_MSG}" STREQUAL "")
  126. # TODO support SSE with other compilers than Clang
  127. endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  128. # Apply Flags
  129. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenRaider_CXX_FLAGS}")
  130. set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_DEBUG}")
  131. set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_RELEASE}")
  132. # Add subdirectories
  133. add_subdirectory ("math")
  134. add_subdirectory ("utils")
  135. # Add Executable
  136. add_executable (OpenRaider MACOSX_BUNDLE ${SRCS})
  137. #################################################################
  138. if (APPLE)
  139. if (${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
  140. # Copy setup script
  141. add_custom_command (TARGET OpenRaider POST_BUILD
  142. COMMAND echo "Injecting setup script..."
  143. COMMAND cp "${PROJECT_SOURCE_DIR}/cmake/setup_mac.sh" "${PROJECT_BINARY_DIR}/src/OpenRaider.app/Contents/MacOS/OpenRaider.sh"
  144. COMMAND chmod "a+x" "${PROJECT_BINARY_DIR}/src/OpenRaider.app/Contents/MacOS/OpenRaider.sh"
  145. )
  146. # Fix executable name, so setup script will be called
  147. add_custom_command (TARGET OpenRaider POST_BUILD
  148. COMMAND echo "Changing executable name..."
  149. COMMAND /usr/libexec/PlistBuddy -c "Set :CFBundleExecutable OpenRaider.sh" Info.plist
  150. WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/src/OpenRaider.app/Contents
  151. )
  152. # Preparing the bundle on install
  153. # http://www.cmake.org/Wiki/BundleUtilitiesExample
  154. set (plugin_dest_dir OpenRaider.app/Contents/MacOS)
  155. set (APPS "${PROJECT_BINARY_DIR}/src/OpenRaider.app")
  156. install (CODE "
  157. file(GLOB_RECURSE PLUGINS
  158. \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
  159. include(BundleUtilities)
  160. fixup_bundle(\"${APPS}\" \"\${PLUGINS}\" \"\")
  161. " COMPONENT Runtime
  162. )
  163. endif (${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
  164. endif (APPLE)
  165. #################################################################
  166. if (NOT APPLE)
  167. # Install binary
  168. install (TARGETS OpenRaider
  169. RUNTIME DESTINATION bin
  170. )
  171. endif (NOT APPLE)
  172. #################################################################
  173. # Add Math Library
  174. if (UNIX)
  175. set (LIBS ${LIBS} m)
  176. endif (UNIX)
  177. # Add utils Library
  178. set (LIBS ${LIBS} OpenRaider_math)
  179. set (LIBS ${LIBS} OpenRaider_utils)
  180. # Link to all found libs
  181. target_link_libraries (OpenRaider ${LIBS})
  182. #################################################################
  183. # Add target to run executable
  184. add_custom_target(run COMMAND OpenRaider DEPENDS OpenRaider WORKING_DIRECTORY ${CMAKE_PROJECT_DIR})