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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. # Apple specific bundling
  24. if (APPLE)
  25. # Mac Bundle Data
  26. set (MACOSX_BUNDLE_INFO_STRING "OpenSource TombRaider Game Engine")
  27. set (MACOSX_BUNDLE_ICON_FILE "AppIcon")
  28. set (MACOSX_BUNDLE_GUI_IDENTIFIER "de.xythobuz.OpenRaider")
  29. set (MACOSX_BUNDLE_LONG_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  30. set (MACOSX_BUNDLE_BUNDLE_NAME "OpenRaider")
  31. set (MACOSX_BUNDLE_SHORT_VERSION_STRING "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  32. set (MACOSX_BUNDLE_BUNDLE_VERSION "${OpenRaider_VERSION_MAJOR}.${OpenRaider_VERSION_MINOR}.${OpenRaider_VERSION_MICRO}")
  33. set (MACOSX_BUNDLE_COPYRIGHT "2001 - 2014")
  34. # Copy Icon
  35. set (MAC_ICON "../data/AppIcon.icns")
  36. set_source_files_properties(${MAC_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  37. set (SRCS ${SRCS} ${MAC_ICON})
  38. endif (APPLE)
  39. # Add Executable
  40. add_executable (OpenRaider MACOSX_BUNDLE ${SRCS})
  41. # Debug build warnings
  42. set (WARNINGS "${WARNINGS} -Weverything -Wno-padded -Wno-packed")
  43. set (WARNINGS "${WARNINGS} -Wno-global-constructors -Wno-exit-time-destructors")
  44. set (WARNINGS "${WARNINGS} -Wno-documentation-unknown-command -Wno-c++98-compat-pedantic")
  45. set (WARNINGS "${WARNINGS} -Wno-missing-prototypes -Wno-missing-variable-declarations")
  46. set (WARNINGS "${WARNINGS} -Wno-disabled-macro-expansion")
  47. set (WARNINGS "${WARNINGS} -Wno-shorten-64-to-32 -Wno-sign-conversion")
  48. # Flags for all builds
  49. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -std=c++11")
  50. set (OpenRaider_CXX_FLAGS "${OpenRaider_CXX_FLAGS} -DUSING_EMITTER")
  51. # Flags for Debug build
  52. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -g -O0 ${WARNINGS}")
  53. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -DDEBUG")
  54. set (OpenRaider_CXX_FLAGS_DEBUG "${OpenRaider_CXX_FLAGS_DEBUG} -DEXPERIMENTAL")
  55. # Flags for Releasae builds
  56. set (OpenRaider_CXX_FLAGS_RELEASE "${OpenRaider_CXX_FLAGS_RELEASE} -ffast-math -funroll-loops")
  57. set (OpenRaider_CXX_FLAGS_RELEASE "${OpenRaider_CXX_FLAGS_RELEASE} -fomit-frame-pointer -O2")
  58. # Apply Flags
  59. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenRaider_CXX_FLAGS}")
  60. set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_DEBUG}")
  61. set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${OpenRaider_CXX_FLAGS} ${OpenRaider_CXX_FLAGS_RELEASE}")
  62. # Include directory
  63. include_directories ("${PROJECT_SOURCE_DIR}/include")
  64. # Include External Modules
  65. set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
  66. # Add Math Library
  67. set (LIBS ${LIBS} m)
  68. # Add SDL2 Library
  69. find_package (SDL2 REQUIRED)
  70. include_directories (SYSTEM ${SDL2_INCLUDE_DIR})
  71. set (LIBS ${LIBS} ${SDL2_LIBRARY})
  72. # Add SDL2_ttf Library
  73. find_package (SDL2TTF REQUIRED)
  74. include_directories (SYSTEM ${SDL2TTF_INCLUDE_DIR})
  75. set (LIBS ${LIBS} ${SDL2TTF_LIBRARY})
  76. # Add OpenGL Library
  77. find_package (OpenGL REQUIRED)
  78. include_directories (SYSTEM ${OPENGL_INCLUDE_DIRS})
  79. set (LIBS ${LIBS} ${OPENGL_LIBRARIES})
  80. # Add OpenAL Library
  81. find_package (OpenAL REQUIRED)
  82. include_directories (SYSTEM ${OPENAL_INCLUDE_DIRS})
  83. set (LIBS ${LIBS} ${OPENAL_LIBRARIES})
  84. # Add ALUT Library
  85. find_package (ALUT REQUIRED)
  86. include_directories (SYSTEM ${ALUT_INCLUDE_DIRS})
  87. set (LIBS ${LIBS} ${ALUT_LIBRARIES})
  88. # Add Z Library
  89. find_package (ZLIB REQUIRED)
  90. include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS})
  91. set (LIBS ${LIBS} ${ZLIB_LIBRARIES})
  92. # Add Thread Library
  93. find_package (Threads REQUIRED)
  94. set (LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT})
  95. # Link to all found libs
  96. target_link_libraries (OpenRaider ${LIBS})
  97. # Add target to run executable
  98. add_custom_target(run COMMAND OpenRaider DEPENDS OpenRaider WORKING_DIRECTORY ${CMAKE_PROJECT_DIR})