CMakeLists.txt 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) # 2.8.5 needed for full URL support, 2.8.8 now needed for new Xcode support
  2. PROJECT(PolycodeDependencies)
  3. IF(NOT CMAKE_BUILD_TYPE)
  4. SET(CMAKE_BUILD_TYPE Release CACHE STRING
  5. "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
  6. FORCE)
  7. MESSAGE("No CMAKE_BUILD_TYPE specified, defaulting to ${CMAKE_BUILD_TYPE}")
  8. ENDIF(NOT CMAKE_BUILD_TYPE)
  9. IF(NOT POLYCODE_RELEASE_DIR)
  10. SET(POLYCODE_RELEASE_DIR ${PolycodeDependencies_SOURCE_DIR}/../Release/${CMAKE_SYSTEM_NAME}
  11. CACHE PATH "Choose the root directory that the Polycode release will be installed in.")
  12. MESSAGE("No POLYCODE_RELEASE_DIR specified, to ${POLYCODE_RELEASE_DIR}")
  13. ENDIF(NOT POLYCODE_RELEASE_DIR)
  14. IF(NOT POLYCODE_DEPS_DOWNLOAD_DIR)
  15. SET(POLYCODE_DEPS_DOWNLOAD_DIR ${PolycodeDependencies_SOURCE_DIR}/Downloads)
  16. MESSAGE("No POLYCODE_DEPS_DOWNLOAD_DIR specified, to ${POLYCODE_DEPS_DOWNLOAD_DIR}")
  17. ENDIF(NOT POLYCODE_DEPS_DOWNLOAD_DIR)
  18. # Install directories
  19. SET(POLYCODE_DEPS_CORE_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies)
  20. SET(POLYCODE_DEPS_MODULES_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies)
  21. SET(POLYCODE_DEPS_TOOLS_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies)
  22. # Some non-standard CMake modules
  23. SET(CMAKE_MODULE_PATH ${PolycodeDependencies_SOURCE_DIR}/../CMake)
  24. # Download and build all dependencies on Windows and Mac, for Linux recommend using prebuilt packages
  25. #IF(APPLE OR WIN32)
  26. SET(common_deps ON)
  27. #ELSE()
  28. # SET(common_deps OFF)
  29. #ENDIF()
  30. # Options for what components should be downloaded and built
  31. # glext.h is sometimes missing
  32. FIND_PATH(GLEXT_INCLUDE_DIR GL/glext.h)
  33. IF(GLEXT_INCLUDE_DIR)
  34. SET(internal_GLEXT OFF)
  35. ELSE(GLEXT_INCLUDE_DIR)
  36. SET(internal_GLEXT ${common_deps})
  37. ENDIF(GLEXT_INCLUDE_DIR)
  38. IF(MSVC)
  39. # wglext.h is needed on windows
  40. FIND_PATH(WGLEXT_INCLUDE_DIR GL/wglext.h)
  41. IF(WGLEXT_INCLUDE_DIR)
  42. SET(internal_WGLEXT OFF)
  43. ELSE(GLEXT_INCLUDE_DIR)
  44. SET(internal_WGLEXT ${common_deps})
  45. ENDIF(WGLEXT_INCLUDE_DIR)
  46. ELSE(MSVC)
  47. SET(internal_WGLEXT OFF)
  48. ENDIF(MSVC)
  49. #FIND_PACKAGE(PhysFS)
  50. #IF(PHYSFS_FOUND)
  51. # SET(internal_PHYSFS OFF)
  52. #ELSE(PHYSFS_FOUND)
  53. SET(internal_PHYSFS ON)
  54. #ENDIF(PHYSFS_FOUND)
  55. IF(APPLE)
  56. FIND_PACKAGE(OpenAL)
  57. IF(OPENAL_FOUND)
  58. SET(internal_OPENAL OFF)
  59. ELSE(OPENAL_FOUND)
  60. SET(internal_OPENAL ON)
  61. ENDIF(OPENAL_FOUND)
  62. ELSE()
  63. SET(internal_OPENAL ON)
  64. ENDIF(APPLE)
  65. #FIND_PACKAGE(Freetype)
  66. #IF(FREETYPE_FOUND)
  67. # SET(internal_FREETYPE OFF)
  68. #ELSE(FREETYPE_FOUND)
  69. SET(internal_FREETYPE ON)
  70. #ENDIF(FREETYPE_FOUND)
  71. #FIND_PACKAGE(PNG)
  72. #IF(PNG_FOUND)
  73. # SET(internal_PNG OFF)
  74. #ELSE(PNG_FOUND)
  75. SET(internal_PNG ON)
  76. #ENDIF(PNG_FOUND)
  77. #FIND_PACKAGE(VorbisFile)
  78. #IF(VORBISFILE_FOUND)
  79. # SET(internal_VORBISFILE OFF)
  80. #ELSE(VORBISFILE_FOUND)
  81. SET(internal_VORBISFILE ON)
  82. #ENDIF(VORBISFILE_FOUND)
  83. #FIND_PACKAGE(Lua51)
  84. #IF(LUA51_FOUND)
  85. # SET(internal_LUA OFF)
  86. #ELSE(LUA51_FOUND)
  87. SET(internal_LUA ON)
  88. #ENDIF(LUA51_FOUND)
  89. #FIND_PACKAGE(Box2D)
  90. #IF(BOX2D_FOUND)
  91. # SET(internal_BOX2D OFF)
  92. #ELSE(BOX2D_FOUND)
  93. SET(internal_BOX2D ON)
  94. #ENDIF(BOX2D_FOUND)
  95. #FIND_PACKAGE(Bullet)
  96. #IF(BULLET_FOUND)
  97. # SET(internal_BULLET OFF)
  98. #ELSE(BULLET_FOUND)
  99. SET(internal_BULLET ON)
  100. #ENDIF(BULLET_FOUND)
  101. #FIND_PACKAGE(Assimp)
  102. #IF(ASSIMP_FOUND)
  103. # SET(internal_ASSIMP OFF)
  104. #ELSE(ASSIMP_FOUND)
  105. SET(internal_ASSIMP ON)
  106. #ENDIF(ASSIMP_FOUND)
  107. SET(internal_LIBARCHIVE ON)
  108. OPTION(POLYCODE_DEPS_GLEXT "Download GL/glext.h header" ${internal_GLEXT})
  109. OPTION(POLYCODE_DEPS_WGLEXT "Download GL/wglext.h header" ${internal_WGLEXT})
  110. OPTION(POLYCODE_DEPS_PHYSFS "Download and build the PhysFS package" ${internal_PHYSFS})
  111. OPTION(POLYCODE_DEPS_OPENAL "Download and build the OpenAL package" ${internal_OPENAL})
  112. OPTION(POLYCODE_DEPS_FREETYPE "Download and build the Freetype2 package" ${internal_FREETYPE})
  113. OPTION(POLYCODE_DEPS_PNG "Download and build the PNG package" ${internal_PNG})
  114. OPTION(POLYCODE_DEPS_OGGVORBIS "Download and build the Ogg Vorbis packages" ${internal_VORBISFILE})
  115. OPTION(POLYCODE_DEPS_LUA51 "Download and build the Lua51 package" ${internal_LUA})
  116. OPTION(POLYCODE_DEPS_BOX2D "Download and build the Box2D package" ${internal_BOX2D})
  117. OPTION(POLYCODE_DEPS_BULLET "Download and build the Bullet package" ${internal_BULLET})
  118. OPTION(POLYCODE_DEPS_ASSIMP "Download and build the Assimp package" ${internal_ASSIMP})
  119. OPTION(POLYCODE_DEPS_LIBARCHIVE "Download and build the LibArchive package" ${internal_LIBARCHIVE})
  120. IF(POLYCODE_DEPS_PNG)
  121. INCLUDE(ExternalPNG)
  122. ENDIF(POLYCODE_DEPS_PNG)
  123. IF(POLYCODE_DEPS_PHYSFS)
  124. INCLUDE(ExternalPhysFS)
  125. ENDIF(POLYCODE_DEPS_PHYSFS)
  126. IF(POLYCODE_DEPS_OPENAL)
  127. INCLUDE(ExternalOpenAL)
  128. ENDIF(POLYCODE_DEPS_OPENAL)
  129. IF(POLYCODE_DEPS_FREETYPE)
  130. INCLUDE(ExternalFreetype)
  131. ENDIF(POLYCODE_DEPS_FREETYPE)
  132. IF(POLYCODE_DEPS_OGGVORBIS)
  133. INCLUDE(ExternalOggVorbis)
  134. ENDIF(POLYCODE_DEPS_OGGVORBIS)
  135. IF(POLYCODE_DEPS_LUA51)
  136. INCLUDE(ExternalLua51)
  137. ENDIF(POLYCODE_DEPS_LUA51)
  138. IF(POLYCODE_DEPS_BOX2D)
  139. INCLUDE(ExternalBox2D)
  140. ENDIF(POLYCODE_DEPS_BOX2D)
  141. IF(POLYCODE_DEPS_BULLET)
  142. INCLUDE(ExternalBullet)
  143. ENDIF(POLYCODE_DEPS_BULLET)
  144. IF(POLYCODE_DEPS_ASSIMP)
  145. INCLUDE(ExternalAssimp)
  146. ENDIF(POLYCODE_DEPS_ASSIMP)
  147. IF(POLYCODE_DEPS_LIBARCHIVE)
  148. INCLUDE(ExternalLibArchive)
  149. ENDIF(POLYCODE_DEPS_LIBARCHIVE)
  150. # Use SDL on non-Apple unixes
  151. #IF(UNIX AND NOT APPLE)
  152. # FIND_PACKAGE(SDL REQUIRED)
  153. #ENDIF(UNIX AND NOT APPLE)
  154. # Get missing GL headers for Windows
  155. IF(POLYCODE_DEPS_GLEXT)
  156. INCLUDE(ExternalGLExt)
  157. ENDIF(POLYCODE_DEPS_GLEXT)
  158. IF(POLYCODE_DEPS_WGLEXT)
  159. INCLUDE(ExternalWGLExt)
  160. ENDIF(POLYCODE_DEPS_WGLEXT)