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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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} "Matrix.cpp")
  6. set (SRCS ${SRCS} "Mesh.cpp")
  7. set (SRCS ${SRCS} "Network.cpp")
  8. set (SRCS ${SRCS} "OpenRaider.cpp")
  9. set (SRCS ${SRCS} "Particle.cpp")
  10. set (SRCS ${SRCS} "Quaternion.cpp")
  11. set (SRCS ${SRCS} "Render.cpp")
  12. set (SRCS ${SRCS} "SDLSystem.cpp")
  13. set (SRCS ${SRCS} "SkeletalModel.cpp")
  14. set (SRCS ${SRCS} "Sound.cpp")
  15. set (SRCS ${SRCS} "System.cpp")
  16. set (SRCS ${SRCS} "Texture.cpp")
  17. set (SRCS ${SRCS} "TombRaider.cpp")
  18. set (SRCS ${SRCS} "Vector3d.cpp")
  19. set (SRCS ${SRCS} "ViewVolume.cpp")
  20. set (SRCS ${SRCS} "World.cpp")
  21. #################################################################
  22. # Apple specific bundling
  23. if (APPLE)
  24. # Mac Bundle Data
  25. set (MACOSX_BUNDLE_INFO_STRING "OpenSource TombRaider Game Engine")
  26. set (MACOSX_BUNDLE_ICON_FILE "AppIcon")
  27. set (MACOSX_BUNDLE_GUI_IDENTIFIER "de.xythobuz.OpenRaider")
  28. set (MACOSX_BUNDLE_LONG_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  29. set (MACOSX_BUNDLE_BUNDLE_NAME "OpenRaider")
  30. set (MACOSX_BUNDLE_SHORT_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  31. set (MACOSX_BUNDLE_BUNDLE_VERSION "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  32. set (MACOSX_BUNDLE_COPYRIGHT "2001 - 2014")
  33. # Copy Icon
  34. set (MAC_ICON "../cmake/AppIcon.icns")
  35. set_source_files_properties (${MAC_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  36. set (SRCS ${SRCS} ${MAC_ICON})
  37. # Copy Data
  38. set (MAC_DATA "../data/custom.cfg" "../data/OpenRaider.init" "../data/particle.tga" "../data/sample.wav")
  39. set (MAC_DATA ${MAC_DATA} "../data/snow.tga" "../data/snow2.tga" "../data/splash.tga" "../data/test.ttf")
  40. set (MAC_DATA ${MAC_DATA} "../data/white.tga")
  41. set_source_files_properties (${MAC_DATA} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/defaults)
  42. set (SRCS ${SRCS} ${MAC_DATA})
  43. endif (APPLE)
  44. #################################################################
  45. # Add utils directory
  46. add_subdirectory (utils)
  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. # Add utils Library
  138. set (LIBS ${LIBS} utilities)
  139. # Link to all found libs
  140. target_link_libraries (OpenRaider ${LIBS})
  141. #################################################################
  142. # Add target to run executable
  143. add_custom_target(run COMMAND OpenRaider DEPENDS OpenRaider WORKING_DIRECTORY ${CMAKE_PROJECT_DIR})