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

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