CMakeLists.txt 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
  2. PROJECT(Polycode)
  3. IF(NOT CMAKE_BUILD_TYPE)
  4. SET(CMAKE_BUILD_TYPE RelWithDebInfo 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(APPLE OR WIN32)
  10. # SET(build_player OFF)
  11. #ELSE()
  12. # SET(build_player OFF)
  13. #ENDIF()
  14. # Options for what components to build
  15. #OPTION(POLYCODE_BUILD_SHARED "Build Polycode shared libraries" OFF)
  16. #OPTION(POLYCODE_BUILD_STATIC "Build Polycode static libraries" ON)
  17. OPTION(POLYCODE_BUILD_BINDINGS "Build Polycode Lua bindings" OFF)
  18. OPTION(POLYCODE_BUILD_MODULES "Build Polycode modules" ON)
  19. OPTION(POLYCODE_BUILD_PLAYER "Build Polycode standalone player" OFF)
  20. OPTION(POLYCODE_BUILD_TOOLS "Build Polycode tools" ON)
  21. OPTION(POLYCODE_BUILD_DOCS "Build Polycode documentation" ON)
  22. OPTION(POLYCODE_INSTALL_FRAMEWORK "Install Polycode Core, Modules and Tools" ON)
  23. OPTION(POLYCODE_INSTALL_PLAYER "Install Polycode Player" ${POLYCODE_BUILD_PLAYER})
  24. OPTION(POLYCODE_INSTALL_TEMPLATE "Install Template project" ON)
  25. OPTION(POLYCODE_INSTALL_DOCS ${POLYCODE_BUILD_DOCS})
  26. # Some non-standard CMake modules
  27. SET(CMAKE_MODULE_PATH ${Polycode_SOURCE_DIR}/CMake)
  28. IF(NOT POLYCODE_RELEASE_DIR)
  29. SET(POLYCODE_RELEASE_DIR ${Polycode_SOURCE_DIR}/Release/${CMAKE_SYSTEM_NAME})
  30. MESSAGE("No POLYCODE_RELEASE_DIR specified, to ${POLYCODE_RELEASE_DIR}")
  31. ENDIF(NOT POLYCODE_RELEASE_DIR)
  32. SET(CMAKE_INSTALL_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/)
  33. # set default externals install location
  34. SET(CMAKE_PREFIX_PATH
  35. ${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies
  36. ${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies
  37. ${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies)
  38. # Process subdirectories
  39. ADD_SUBDIRECTORY(Core/Contents)
  40. ADD_SUBDIRECTORY("Assets/Default asset pack")
  41. ADD_SUBDIRECTORY("Assets/Templates")
  42. ADD_SUBDIRECTORY("Documentation")
  43. IF(POLYCODE_BUILD_BINDINGS)
  44. ADD_SUBDIRECTORY(Documentation/Lua/scripts)
  45. ADD_SUBDIRECTORY(Bindings)
  46. ENDIF(POLYCODE_BUILD_BINDINGS)
  47. IF(POLYCODE_BUILD_MODULES)
  48. ADD_SUBDIRECTORY(Modules/Contents)
  49. IF(POLYCODE_BUILD_BINDINGS)
  50. ADD_SUBDIRECTORY(Modules/Bindings)
  51. ENDIF(POLYCODE_BUILD_BINDINGS)
  52. ENDIF(POLYCODE_BUILD_MODULES)
  53. IF(POLYCODE_BUILD_PLAYER)
  54. ADD_SUBDIRECTORY(Player/Contents)
  55. ENDIF(POLYCODE_BUILD_PLAYER)
  56. IF(POLYCODE_BUILD_TOOLS)
  57. ADD_SUBDIRECTORY(Tools/Contents)
  58. ENDIF(POLYCODE_BUILD_TOOLS)
  59. INSTALL(FILES LICENSE.txt
  60. DESTINATION ./)
  61. INSTALL(DIRECTORY ${Polycode_SOURCE_DIR}/Examples/C++/Build/${CMAKE_SYSTEM_NAME} DESTINATION Examples)
  62. INSTALL(DIRECTORY ${Polycode_SOURCE_DIR}/Examples/C++/Contents DESTINATION Examples/${CMAKE_SYSTEM_NAME})
  63. INSTALL(DIRECTORY ${Polycode_SOURCE_DIR}/Examples/C++/Resources DESTINATION Examples/${CMAKE_SYSTEM_NAME})
  64. INSTALL(DIRECTORY ${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies DESTINATION Core)
  65. INSTALL(DIRECTORY ${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies DESTINATION Modules)
  66. SET(CPACK_PACKAGE_VERSION_MAJOR "0")
  67. SET(CPACK_PACKAGE_VERSION_MINOR "8")
  68. SET(CPACK_PACKAGE_VERSION_PATCH "2")
  69. IF(WIN32)
  70. SET(CPACK_GENERATOR "ZIP")
  71. ELSE(WIN32)
  72. SET(CPACK_GENERATOR "TGZ")
  73. ENDIF(WIN32)
  74. INCLUDE(CPack)
  75. # Install assets and dependencies