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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. # Set Source files
  2. set (SRCS ${SRCS} Camera.cpp)
  3. set (SRCS ${SRCS} Emitter.cpp)
  4. set (SRCS ${SRCS} GLString.cpp)
  5. set (SRCS ${SRCS} MatMath.cpp)
  6. set (SRCS ${SRCS} Matrix.cpp)
  7. set (SRCS ${SRCS} Mesh.cpp)
  8. set (SRCS ${SRCS} Network.cpp)
  9. set (SRCS ${SRCS} OpenRaider.cpp)
  10. set (SRCS ${SRCS} Particle.cpp)
  11. set (SRCS ${SRCS} Quaternion.cpp)
  12. set (SRCS ${SRCS} Render.cpp)
  13. set (SRCS ${SRCS} SDLSystem.cpp)
  14. set (SRCS ${SRCS} SkeletalModel.cpp)
  15. set (SRCS ${SRCS} Sound.cpp)
  16. set (SRCS ${SRCS} System.cpp)
  17. set (SRCS ${SRCS} Texture.cpp)
  18. set (SRCS ${SRCS} TombRaider.cpp)
  19. set (SRCS ${SRCS} Vector3d.cpp)
  20. set (SRCS ${SRCS} ViewVolume.cpp)
  21. set (SRCS ${SRCS} World.cpp)
  22. set (SRCS ${SRCS} tga.cpp)
  23. #################################################################
  24. # Apple specific bundling
  25. if (APPLE)
  26. # Mac Bundle Data
  27. set (MACOSX_BUNDLE_INFO_STRING "OpenSource TombRaider Game Engine")
  28. set (MACOSX_BUNDLE_ICON_FILE "AppIcon")
  29. set (MACOSX_BUNDLE_GUI_IDENTIFIER "de.xythobuz.OpenRaider")
  30. set (MACOSX_BUNDLE_LONG_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  31. set (MACOSX_BUNDLE_BUNDLE_NAME "OpenRaider")
  32. set (MACOSX_BUNDLE_SHORT_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  33. set (MACOSX_BUNDLE_BUNDLE_VERSION "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  34. set (MACOSX_BUNDLE_COPYRIGHT "2001 - 2014")
  35. # Copy Icon
  36. set (MAC_ICON "../cmake/AppIcon.icns")
  37. set_source_files_properties (${MAC_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  38. set (SRCS ${SRCS} ${MAC_ICON})
  39. # Copy Data
  40. set (MAC_DATA "../data/custom.cfg" "../data/OpenRaider.init" "../data/particle.tga" "../data/sample.wav")
  41. set (MAC_DATA ${MAC_DATA} "../data/snow.tga" "../data/snow2.tga" "../data/splash.tga" "../data/test.ttf")
  42. set (MAC_DATA ${MAC_DATA} "../data/white.tga")
  43. set_source_files_properties (${MAC_DATA} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/defaults)
  44. set (SRCS ${SRCS} ${MAC_DATA})
  45. endif (APPLE)
  46. #################################################################
  47. # Add Executable
  48. add_executable (OpenRaider MACOSX_BUNDLE ${SRCS})
  49. #################################################################
  50. if (APPLE)
  51. # Copy setup script
  52. add_custom_command (TARGET OpenRaider POST_BUILD
  53. COMMAND echo "Injecting setup script..."
  54. COMMAND cp "${PROJECT_SOURCE_DIR}/cmake/setup_mac.sh" "${PROJECT_BINARY_DIR}/src/OpenRaider.app/Contents/MacOS/OpenRaider.sh"
  55. )
  56. # Fix executable name, so setup script will be called
  57. add_custom_command (TARGET OpenRaider POST_BUILD
  58. COMMAND echo "Changing executable name..."
  59. COMMAND /usr/libexec/PlistBuddy -c "Set :CFBundleExecutable OpenRaider.sh" Info.plist
  60. WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/src/OpenRaider.app/Contents
  61. )
  62. # Preparing the bundle on install
  63. # http://www.cmake.org/Wiki/BundleUtilitiesExample
  64. set (plugin_dest_dir OpenRaider.app/Contents/MacOS)
  65. set (APPS "${PROJECT_BINARY_DIR}/src/OpenRaider.app")
  66. install (CODE "
  67. file(GLOB_RECURSE PLUGINS
  68. \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
  69. include(BundleUtilities)
  70. fixup_bundle(\"${APPS}\" \"\${PLUGINS}\" \"\")
  71. " COMPONENT Runtime
  72. )
  73. endif (APPLE)
  74. #################################################################
  75. if (NOT APPLE)
  76. # Install binary
  77. install (TARGET OpenRaider
  78. RUNTIME DESTINATION bin
  79. )
  80. endif (NOT APPLE)
  81. #################################################################
  82. # Debug build warnings
  83. set (WARNINGS "${WARNINGS} -Weverything -Wno-padded -Wno-packed")
  84. set (WARNINGS "${WARNINGS} -Wno-global-constructors -Wno-exit-time-destructors")
  85. set (WARNINGS "${WARNINGS} -Wno-documentation-unknown-command -Wno-c++98-compat-pedantic")
  86. set (WARNINGS "${WARNINGS} -Wno-missing-prototypes -Wno-missing-variable-declarations")
  87. set (WARNINGS "${WARNINGS} -Wno-disabled-macro-expansion")
  88. set (WARNINGS "${WARNINGS} -Wno-shorten-64-to-32 -Wno-sign-conversion")
  89. # Flags for all builds
  90. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -std=c++11")
  91. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DUSING_EMITTER")
  92. # Flags for Debug build
  93. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -g -O0 ${WARNINGS}")
  94. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -DDEBUG")
  95. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -DEXPERIMENTAL")
  96. # Flags for Releasae builds
  97. set (OpenRaider_CXX_FLAGS_RELEASE "${OpenRaider_CXX_FLAGS_RELEASE} -ffast-math -funroll-loops")
  98. set (OpenRaider_CXX_FLAGS_RELEASE "${OpenRaider_CXX_FLAGS_RELEASE} -fomit-frame-pointer -O2")
  99. # Apply Flags
  100. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenRaider_CXX_FLAGS}")
  101. set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_DEBUG}")
  102. set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_RELEASE}")
  103. # Include directory
  104. include_directories ("${PROJECT_SOURCE_DIR}/include")
  105. # Include External Modules
  106. set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
  107. #################################################################
  108. # Add Math Library
  109. set (LIBS ${LIBS} m)
  110. # Add SDL2 Library
  111. find_package (SDL2 REQUIRED)
  112. include_directories (SYSTEM ${SDL2_INCLUDE_DIR})
  113. set (LIBS ${LIBS} ${SDL2_LIBRARY})
  114. # Add SDL2_ttf Library
  115. find_package (SDL2TTF REQUIRED)
  116. include_directories (SYSTEM ${SDL2TTF_INCLUDE_DIR})
  117. set (LIBS ${LIBS} ${SDL2TTF_LIBRARY})
  118. # Add OpenGL Library
  119. find_package (OpenGL REQUIRED)
  120. include_directories (SYSTEM ${OPENGL_INCLUDE_DIRS})
  121. set (LIBS ${LIBS} ${OPENGL_LIBRARIES})
  122. # Add OpenAL Library
  123. find_package (OpenAL REQUIRED)
  124. include_directories (SYSTEM ${OPENAL_INCLUDE_DIRS})
  125. set (LIBS ${LIBS} ${OPENAL_LIBRARIES})
  126. # Add ALUT Library
  127. find_package (ALUT REQUIRED)
  128. include_directories (SYSTEM ${ALUT_INCLUDE_DIRS})
  129. set (LIBS ${LIBS} ${ALUT_LIBRARIES})
  130. # Add Z Library
  131. find_package (ZLIB REQUIRED)
  132. include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS})
  133. set (LIBS ${LIBS} ${ZLIB_LIBRARIES})
  134. # Add Thread Library
  135. find_package (Threads REQUIRED)
  136. set (LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT})
  137. # Link to all found libs
  138. target_link_libraries (OpenRaider ${LIBS})
  139. #################################################################
  140. # Add target to run executable
  141. add_custom_target(run COMMAND OpenRaider DEPENDS OpenRaider WORKING_DIRECTORY ${CMAKE_PROJECT_DIR})