CMakeLists.txt 3.3 KB

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