2018-02-08 09:24:33 +08:00
|
|
|
# Disable in-source builds to prevent source tree corruption.
|
|
|
|
if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
|
2018-05-02 15:33:01 +08:00
|
|
|
message(FATAL_ERROR "
|
2018-02-08 09:24:33 +08:00
|
|
|
FATAL: In-source builds are not allowed.
|
|
|
|
You should create a separate directory for build files.
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# It ensures that when Find*.cmake files included from cmake's Modules dir
|
|
|
|
# include another *.cmake file with relative path, that file will be included
|
|
|
|
# also from cmake's Modules dir, to not clash with per-project files.
|
|
|
|
cmake_policy(SET CMP0017 NEW)
|
|
|
|
|
|
|
|
# Use new behaviour with cmake >= 3.1:
|
|
|
|
# Only interpret if() arguments as variables or keywords when unquoted.
|
|
|
|
cmake_policy(SET CMP0054 NEW)
|
|
|
|
|
|
|
|
# print the info of CMAKE_TOOLCHAIN_FILE, if defined it
|
cmake support win32 ,and support generate&use prebuilt libs (#18683)
* fix win32 prebuilt error, and set cmake as default android native build
* cpp-template support msvc
* add msvc version check
* add -D_USRLUASTATIC, fix lua lib cmake compile error
* fix cpp-empty-test res copy dir, add function needed
* improve msvc res copy
* refactor cmake copy dll logic
* fix cpp-tests compile error
* refactor copy dll temp
* refactor win32 exe using dlls
* js-project compile support cmake using msvc
* improve res mark for win32
* update the way of lua project res mark
* add D_USRLUASTATIC for lua project
* unify RELEASE Release to Release, add CMAKE_CONFIGURATION_TYPES
* improve VS shows targets, add folder
* improve mac/ios res mark
* reduce useless comments
* unify cpp src include variable
* refactor cpp test project package logic
* improve pkg app logic
* start support prebuilt libs for cpp project using cmake
* improve prebuilt libs generate
* expand js/lua support prebuilt libs on mac
* adapt IDE generate libs path
* start do prebuilt for android
* improve the way of using external libs for prebuilt
* prebuilt libs support cpp-empty-test on android studio
* cpp-tests prebuilt libs, and remove useless
* start to improve libs using, to adapt prebuilt
* improve cpp tests prebuilt on android
* prebuilt support lua & js test on android
* prebuilt support cpp&js template
* rename prebuilt variabl, detail androd config
* finish android support prebuilt using cmake
* fix cmake script run in windows error
* reduce variable name length
* improve the way of win32 use dlls to adapt prebuilt
* loosen pick js/lua engine lib condition
* self review and start check linux build
* unify compile option location
* strict copy dlls condition
* improve libs link order
* start redo the way of copy dlls
* unify dlls copy logic
* fix linux res copy error
* update cmake copy file path in linux
* make prebuilt dir if needed, and divide Debug and Release dir
* cmake win32 divide Debug and Release dir well
* comment Lua Template project, for the unfinished lua simulator support
* add simulator cmake file
* start support simulator
* simulator support cmake build on macOS
* fix simulator compile error on win32
* add simulator prebuilt support
* improve mark cocos app macro
* improve cmake template project format
* improve cmake app files format
* fix format improve mistake
* detail cmake readme
* improve readme, useless comments
* add game.rc to template project
* check travis openssl version
* try update travis openssl
* upgrade travis openssl
* change openssl link
* change to upgrade openssl
* re install python with upgrade openssl
* add comment for macro and func, improve variable name
2018-03-08 09:47:57 +08:00
|
|
|
if(DEFINED CMAKE_TOOLCHAIN_FILE)
|
|
|
|
message(STATUS "using toolchain file: ${CMAKE_TOOLCHAIN_FILE}")
|
|
|
|
endif()
|
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# some useful variables for every one cocos project
|
|
|
|
set(COCOS_EXTERNAL_DIR ${COCOS2DX_ROOT_PATH}/external)
|
|
|
|
set(ENGINE_BINARY_PATH ${PROJECT_BINARY_DIR}/engine)
|
2018-02-08 09:24:33 +08:00
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
message(STATUS "COCOS2DX_ROOT_PATH:" ${COCOS2DX_ROOT_PATH})
|
|
|
|
message(STATUS "CMAKE_MODULE_PATH:" ${CMAKE_MODULE_PATH})
|
|
|
|
message(STATUS "COCOS_EXTERNAL_DIR:" ${COCOS_EXTERNAL_DIR})
|
|
|
|
message(STATUS "ENGINE_BINARY_PATH:" ${ENGINE_BINARY_PATH})
|
2018-02-08 09:24:33 +08:00
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# include helper functions for cmake build
|
|
|
|
include(CocosBuildHelpers)
|
2018-02-08 09:24:33 +08:00
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# select building modules
|
|
|
|
include(CocosSelectModule)
|
2018-02-08 09:24:33 +08:00
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# set common compiler options
|
|
|
|
include(CocosCompileOptions)
|
2018-02-08 09:24:33 +08:00
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# collect prebuilt libraries
|
|
|
|
include(CocosPickLibs)
|
2018-02-08 09:24:33 +08:00
|
|
|
|
2018-05-02 15:33:01 +08:00
|
|
|
# compile source libraries
|
|
|
|
include(CocosBuildModules)
|