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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. cmake_minimum_required (VERSION 2.8)
  2. project (OpenRaider)
  3. # Version Number
  4. set (OpenRaider_VERSION_MAJOR 0)
  5. set (OpenRaider_VERSION_MINOR 1)
  6. set (OpenRaider_VERSION_MICRO 2)
  7. # Build Host
  8. set (OpenRaider_BUILD_HOST ${CMAKE_HOST_SYSTEM})
  9. # Apple specific bundling
  10. if (APPLE)
  11. # Mac Bundle Data
  12. set (MACOSX_BUNDLE_INFO_STRING "Open Tomb Raider Engine")
  13. set (MACOSX_BUNDLE_ICON_FILE "AppIcon")
  14. set (MACOSX_BUNDLE_GUI_IDENTIFIER "de.xythobuz.OpenRaider")
  15. set (MACOSX_BUNDLE_LONG_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  16. set (MACOSX_BUNDLE_BUNDLE_NAME "OpenRaider")
  17. set (MACOSX_BUNDLE_SHORT_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  18. set (MACOSX_BUNDLE_BUNDLE_VERSION "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  19. set (MACOSX_BUNDLE_COPYRIGHT "2001 - 2014")
  20. # Copy Icon
  21. set (MAC_ICON "${PROJECT_SOURCE_DIR}/data/AppIcon.icns")
  22. set_source_files_properties(${MAC_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  23. set (SRCS ${SRCS} ${MAC_ICON})
  24. endif (APPLE)
  25. # Configuration Header file
  26. configure_file (
  27. "${PROJECT_SOURCE_DIR}/include/Config.h.in"
  28. "${PROJECT_BINARY_DIR}/Config.h"
  29. )
  30. include_directories ("${PROJECT_BINARY_DIR}")
  31. # Executable, Source files
  32. add_executable (OpenRaider MACOSX_BUNDLE
  33. src/Camera.cpp
  34. src/Emitter.cpp
  35. src/GLString.cpp
  36. src/MatMath.cpp
  37. src/Matrix.cpp
  38. src/Mesh.cpp
  39. src/Network.cpp
  40. src/OpenRaider.cpp
  41. src/Particle.cpp
  42. src/Quaternion.cpp
  43. src/Render.cpp
  44. src/SDLSystem.cpp
  45. src/SkeletalModel.cpp
  46. src/Sound.cpp
  47. src/System.cpp
  48. src/Texture.cpp
  49. src/TombRaider.cpp
  50. src/Vector3d.cpp
  51. src/ViewVolume.cpp
  52. src/World.cpp
  53. src/tga.cpp
  54. ${SRCS}
  55. )
  56. # Default to Debug build
  57. set (CMAKE_BUILD_TYPE "Debug")
  58. # Debug build warnings
  59. set (WARNINGS "${WARNINGS} -Weverything -Wno-padded -Wno-packed")
  60. set (WARNINGS "${WARNINGS} -Wno-global-constructors -Wno-exit-time-destructors")
  61. set (WARNINGS "${WARNINGS} -Wno-documentation-unknown-command -Wno-c++98-compat-pedantic")
  62. set (WARNINGS "${WARNINGS} -Wno-missing-prototypes -Wno-missing-variable-declarations")
  63. set (WARNINGS "${WARNINGS} -Wno-disabled-macro-expansion")
  64. set (WARNINGS "${WARNINGS} -Wno-shorten-64-to-32 -Wno-sign-conversion")
  65. # Flags for all builds
  66. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -std=c++11")
  67. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DUSING_EMITTER")
  68. # Flags for Debug build
  69. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -g -O0 ${WARNINGS}")
  70. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -DDEBUG")
  71. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -DEXPERIMENTAL")
  72. # Flags for Releasae builds
  73. set (OpenRaider_CXX_FLAGS_RELEASE "${OpenRaider_CXX_FLAGS_RELEASE} -ffast-math -funroll-loops")
  74. set (OpenRaider_CXX_FLAGS_RELEASE "${OpenRaider_CXX_FLAGS_RELEASE} -fomit-frame-pointer -O2")
  75. # Apply Flags
  76. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenRaider_CXX_FLAGS}")
  77. set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_DEBUG}")
  78. set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_RELEASE}")
  79. # Include directory
  80. include_directories ("${PROJECT_SOURCE_DIR}/include")
  81. # Include External Modules
  82. set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
  83. # Add Math Library
  84. set (LIBS ${LIBS} m)
  85. # Add SDL2 Library
  86. find_package (SDL2 REQUIRED)
  87. include_directories (SYSTEM ${SDL2_INCLUDE_DIR})
  88. set (LIBS ${LIBS} ${SDL2_LIBRARY})
  89. # Add SDL2_ttf Library
  90. find_package (SDL2TTF REQUIRED)
  91. include_directories (SYSTEM ${SDL2TTF_INCLUDE_DIR})
  92. set (LIBS ${LIBS} ${SDL2TTF_LIBRARY})
  93. # Add OpenGL Library
  94. find_package (OpenGL REQUIRED)
  95. include_directories (SYSTEM ${OPENGL_INCLUDE_DIRS})
  96. set (LIBS ${LIBS} ${OPENGL_LIBRARIES})
  97. # Add OpenAL Library
  98. find_package (OpenAL REQUIRED)
  99. include_directories (SYSTEM ${OPENAL_INCLUDE_DIRS})
  100. set (LIBS ${LIBS} ${OPENAL_LIBRARIES})
  101. # Add ALUT Library
  102. find_package (ALUT REQUIRED)
  103. include_directories (SYSTEM ${ALUT_INCLUDE_DIRS})
  104. set (LIBS ${LIBS} ${ALUT_LIBRARIES})
  105. # Add Z Library
  106. find_package (ZLIB REQUIRED)
  107. include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS})
  108. set (LIBS ${LIBS} ${ZLIB_LIBRARIES})
  109. # Add Thread Library
  110. find_package (Threads REQUIRED)
  111. set (LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT})
  112. # Link to all found libs
  113. target_link_libraries (OpenRaider ${LIBS})
  114. # Preparing the bundle on install
  115. # http://www.cmake.org/Wiki/BundleUtilitiesExample
  116. # Why does it even work?
  117. if (APPLE)
  118. set (plugin_dest_dir OpenRaider.app/Contents/MacOS)
  119. set (APPS "${PROJECT_BINARY_DIR}/OpenRaider.app")
  120. set (DIRS ${QT_LIBRARY_DIRS})
  121. install (CODE "
  122. file(GLOB_RECURSE PLUGINS
  123. \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
  124. include(BundleUtilities)
  125. fixup_bundle(\"${APPS}\" \"\${PLUGINS}\" \"${DIRS}\")
  126. " COMPONENT Runtime
  127. )
  128. endif (APPLE)