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

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