CMakeLists.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. cmake_minimum_required(VERSION 3.6)
  2. project(spine-cocos2dx-example)
  3. set(EXAMPLE_DIR "${CMAKE_CURRENT_LIST_DIR}/example")
  4. option(USE_COCOS2DX_V4 "Use cocos2d-x version 4.0+" OFF)
  5. if(USE_COCOS2DX_V4)
  6. set(COCOS_FOLDER_NAME "cocos2d-x-4.0")
  7. set(COCOS_DOWNLOAD_URL "https://download.cocos.com/Cocos2D-X/${COCOS_FOLDER_NAME}.zip")
  8. set(COCOS_SHORT_VERSION "v4")
  9. set(EXAMPLE_DIR "${CMAKE_CURRENT_LIST_DIR}/example-v4")
  10. else()
  11. set(COCOS_FOLDER_NAME "cocos2d-x-3.17.2")
  12. set(COCOS_DOWNLOAD_URL "http://download.cocos.com/Cocos2D-X/${COCOS_FOLDER_NAME}.zip")
  13. set(COCOS_SHORT_VERSION "v3")
  14. endif()
  15. if((NOT ${COCOS_CURRENT_VERSION} STREQUAL ${COCOS_SHORT_VERSION}) AND (NOT ${COCOS_CURRENT_VERSION} STREQUAL ""))
  16. message(STATUS "Target Cocos2d-x version ${COCOS_SHORT_VERSION}, current ${COCOS_CURRENT_VERSION}")
  17. message(STATUS "remove current folder ${EXAMPLE_DIR}/cocos2d")
  18. file(REMOVE_RECURSE ${EXAMPLE_DIR}/cocos2d ${EXAMPLE_DIR}/cocos2dx.zip)
  19. endif()
  20. if (NOT EXISTS ${EXAMPLE_DIR}/cocos2d)
  21. if(NOT EXISTS ${EXAMPLE_DIR}/cocos2dx.zip)
  22. message(STATUS "Downloading cocos2dx ${COCOS_SHORT_VERSION}, this may take some time!")
  23. # download cocos2d-x package
  24. file(DOWNLOAD ${COCOS_DOWNLOAD_URL} "${EXAMPLE_DIR}/cocos2dx.zip" SHOW_PROGRESS)
  25. else()
  26. message(STATUS "${EXAMPLE_DIR}/cocos2dx.zip found!")
  27. endif()
  28. # untar
  29. message(STATUS "untar ${EXAMPLE_DIR}/cocos2dx.zip ...")
  30. execute_process(
  31. COMMAND ${CMAKE_COMMAND} -E tar x ${EXAMPLE_DIR}/cocos2dx.zip
  32. WORKING_DIRECTORY ${EXAMPLE_DIR}
  33. )
  34. # rename folder
  35. execute_process(
  36. COMMAND ${CMAKE_COMMAND} -E rename
  37. "${EXAMPLE_DIR}/${COCOS_FOLDER_NAME}" "${EXAMPLE_DIR}/cocos2d"
  38. )
  39. set(COCOS_CURRENT_VERSION ${COCOS_SHORT_VERSION} CACHE STRING "update current version" FORCE)
  40. # remove spine source code in cocos2d-x's source tree
  41. execute_process(
  42. COMMAND ${CMAKE_COMMAND} -E remove_directory "${EXAMPLE_DIR}/cocos2d/cocos/editor-support/spine"
  43. COMMAND ${CMAKE_COMMAND} -E make_directory "${EXAMPLE_DIR}/cocos2d/cocos/editor-support/spine"
  44. )
  45. else()
  46. message(STATUS "${EXAMPLE_DIR}/cocos2d is already exists, current version ${COCOS_SHORT_VERSION}.")
  47. endif()
  48. if(USE_COCOS2DX_V4)
  49. add_subdirectory("${EXAMPLE_DIR}")
  50. endif()