Skip to content

Commit cff2ef8

Browse files
drelaptopminggo
authored and
minggo
committed
sync v3 build related codes into metal-support (cocos2d#173)
* strict initialization for std::array * remove proj.win32 project configs * modern cmake, cmake_cleanup_remove_unused_variables (cocos2d#19146) * Switch travis CI to xenial (cocos2d#19207) * Switch travis CI to xenial * Remove language: android * Set language: cpp * Fix java problem * Update sdkmanager * Fix sdkmanger * next sdkmanager fix * Remove xenial from android * revert to sdk-tools-{system}-3859397 * Remove linux cmake install * Update before-install.sh * Update .travis.yml * Simplify install-deps-linux.sh, tested on Ubuntu 16.04 (cocos2d#19212) * Simplify install-deps-linux.sh * Cleanup * pick: install ninja * update cocos2d-console submodule * for metal-support alpha release, we only test cpp * add HelloCpp into project(Cocos2d-x) for tmp test * update extenal metal-support-4
1 parent d80c3d8 commit cff2ef8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+41
-5946
lines changed

.travis.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ matrix:
22
include:
33
# linux
44
- os: linux
5+
dist: xenial
56
env:
67
- BUILD_TARGET=linux
78
- GEN_BINDING_AND_COCOSFILE=true
@@ -61,9 +62,10 @@ matrix:
6162
sudo: required
6263
- os: linux
6364
env: BUILD_TARGET=android_cocos_new_test
64-
language: cpp
65+
language: android
6566
sudo: required
6667
- os: linux
68+
dist: xenial
6769
env: BUILD_TARGET=linux_cocos_new_test
6870
language: cpp
6971
sudo: required

CMakeLists.txt

+17-7
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,27 @@ AssureOutOfSourceBuilds()
4141
# works before build libcocos2d
4242
include(CocosBuildSet)
4343

44-
# default tests include lua, js test project, so we set those option on to build libs
45-
set(BUILD_LUA_LIBS ON)
46-
set(BUILD_JS_LIBS ON)
44+
# for metal-support alpha release, we only test cpp
45+
set(BUILD_LUA_LIBS OFF)
46+
set(BUILD_JS_LIBS OFF)
4747

4848
add_subdirectory(${COCOS2DX_ROOT_PATH}/cocos ${ENGINE_BINARY_PATH}/cocos/core)
4949

5050
# prevent tests project to build "cocos2d-x/cocos" again
5151
set(BUILD_ENGINE_DONE ON)
52-
# add engine all tests project
52+
53+
# add cpp tests default
5354
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/cpp-empty-test ${ENGINE_BINARY_PATH}/tests/cpp-empty-test)
5455
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/cpp-tests ${ENGINE_BINARY_PATH}/tests/cpp-tests)
55-
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/js-tests/project ${ENGINE_BINARY_PATH}/tests/js-tests)
56-
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/lua-empty-test/project ${ENGINE_BINARY_PATH}/tests/lua-empty-test)
57-
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/lua-tests/project ${ENGINE_BINARY_PATH}/tests/lua-test)
56+
57+
if(BUILD_LUA_LIBS)
58+
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/lua-empty-test/project ${ENGINE_BINARY_PATH}/tests/lua-empty-test)
59+
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/lua-tests/project ${ENGINE_BINARY_PATH}/tests/lua-test)
60+
endif(BUILD_LUA_LIBS)
61+
62+
if(BUILD_JS_LIBS)
63+
add_subdirectory(${COCOS2DX_ROOT_PATH}/tests/js-tests/project ${ENGINE_BINARY_PATH}/tests/js-tests)
64+
endif()
65+
66+
# add cpp-template-default into project(Cocos2d-x) for tmp test
67+
add_subdirectory(${COCOS2DX_ROOT_PATH}/templates/cpp-template-default ${ENGINE_BINARY_PATH}/tests/HelloCpp)

build/install-deps-linux.sh

+1-48
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#!/bin/bash
22

3-
# Change directory to the location of this script
43
echo "This Shell Script will install dependencies for cocos2d-x"
5-
echo "if you execute this shell more than once it will get errors when building libGLFW.so"
64
echo -n "Are you continue? (y/n) "
75
read answer
86
if echo "$answer" | grep -iq "^y" ;then
@@ -11,24 +9,13 @@ else
119
exit
1210
fi
1311

14-
cd $(dirname ${BASH_SOURCE[0]})
15-
16-
if [ ! $(command -v apt-get) ]; then
17-
echo "Not a .deb package system. Please install dependencies manually"
18-
exit 0
19-
fi
20-
21-
#install g++-4.9
22-
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y > /dev/null
2312
sudo apt-get update
2413

2514
DEPENDS='libx11-dev'
2615
DEPENDS+=' libxmu-dev'
2716
DEPENDS+=' libglu1-mesa-dev'
2817
DEPENDS+=' libgl2ps-dev'
2918
DEPENDS+=' libxi-dev'
30-
DEPENDS+=' gcc-4.9'
31-
DEPENDS+=' g++-4.9'
3219
DEPENDS+=' libzip-dev'
3320
DEPENDS+=' libpng12-dev'
3421
DEPENDS+=' libcurl4-gnutls-dev'
@@ -39,38 +26,4 @@ DEPENDS+=' libssl-dev'
3926
DEPENDS+=' libgtk-3-dev'
4027
DEPENDS+=' binutils'
4128

42-
MISSING=
43-
echo "Checking for missing packages ..."
44-
for i in $DEPENDS; do
45-
if ! dpkg-query -W --showformat='${Status}\n' $i | grep "install ok installed" > /dev/null; then
46-
MISSING+="$i "
47-
fi
48-
done
49-
50-
if [ -n "$MISSING" ]; then
51-
TXTCOLOR_DEFAULT="\033[0;m"
52-
TXTCOLOR_GREEN="\033[0;32m"
53-
echo -e $TXTCOLOR_GREEN"Missing packages: $MISSING.\nYou may be asked for your password for package installation."$TXTCOLOR_DEFAULT
54-
CUR_APT_VERSION="$(apt --version | grep -o '[0-9].[0-9]')"
55-
REQ_APT_VERSION="1.1"
56-
if [ 1 -ge "$(echo "${CUR_APT_VERSION} >= ${REQ_APT_VERSION}" | bc)" ]
57-
then
58-
sudo apt-get install --allow-change-held-packages $MISSING -y > /dev/null
59-
else
60-
sudo apt-get install --force-yes --yes $MISSING > /dev/null
61-
fi
62-
fi
63-
64-
65-
66-
sudo update-alternatives --remove-all gcc
67-
sudo update-alternatives --remove-all g++
68-
69-
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60
70-
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 60
71-
72-
echo "Cocos uses GCC Version: `gcc --version`"
73-
echo "Cocos uses G++ Version: `g++ --version`"
74-
echo "Cocos uses ld Version: `ld --version`"
75-
echo "Cocos uses /usr/bin/ld Version: `/usr/bin/ld --version`"
76-
29+
sudo apt-get install --force-yes --yes $DEPENDS > /dev/null

cmake/Modules/CocosBuildSet.cmake

-23
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
# Disable in-source builds to prevent source tree corruption.
2-
if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
3-
message(FATAL_ERROR "
4-
FATAL: In-source builds are not allowed.
5-
You should create a separate directory for build files.
6-
")
7-
endif()
8-
91
# print cmake debug info
102
set(CMAKE_DEBUG_TARGET_PROPERTIES
113
# INCLUDE_DIRECTORIES
@@ -14,22 +6,8 @@ set(CMAKE_DEBUG_TARGET_PROPERTIES
146
# AUTOUIC_OPTIONS
157
# POSITION_INDEPENDENT_CODE
168
)
17-
# It ensures that when Find*.cmake files included from cmake's Modules dir
18-
# include another *.cmake file with relative path, that file will be included
19-
# also from cmake's Modules dir, to not clash with per-project files.
20-
cmake_policy(SET CMP0017 NEW)
21-
22-
# Use new behaviour with cmake >= 3.1:
23-
# Only interpret if() arguments as variables or keywords when unquoted.
24-
cmake_policy(SET CMP0054 NEW)
25-
26-
# print the info of CMAKE_TOOLCHAIN_FILE, if defined it
27-
if(DEFINED CMAKE_TOOLCHAIN_FILE)
28-
message(STATUS "using toolchain file: ${CMAKE_TOOLCHAIN_FILE}")
29-
endif()
309

3110
# some useful variables for every one cocos project
32-
set(COCOS_EXTERNAL_DIR ${COCOS2DX_ROOT_PATH}/external)
3311
set(ENGINE_BINARY_PATH ${PROJECT_BINARY_DIR}/engine)
3412

3513
if(CMAKE_TOOLCHAIN_FILE)
@@ -40,7 +18,6 @@ message(STATUS "PROJECT_NAME:" ${PROJECT_NAME})
4018
message(STATUS "PROJECT_SOURCE_DIR:" ${PROJECT_SOURCE_DIR})
4119
message(STATUS "COCOS2DX_ROOT_PATH:" ${COCOS2DX_ROOT_PATH})
4220
message(STATUS "CMAKE_MODULE_PATH:" ${CMAKE_MODULE_PATH})
43-
message(STATUS "COCOS_EXTERNAL_DIR:" ${COCOS_EXTERNAL_DIR})
4421
# delete binary dir if you hope a full clean re-build
4522
message(STATUS "PROJECT_BINARY_DIR:" ${PROJECT_BINARY_DIR})
4623
message(STATUS "ENGINE_BINARY_PATH:" ${ENGINE_BINARY_PATH})

cmake/Modules/CocosConfigDefine.cmake

-30
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,23 @@
66
#LINUX = Linux
77
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
88
set(WINDOWS TRUE)
9-
set(SYSTEM_STRING "Windows Desktop")
109
set(PLATFORM_FOLDER win32)
1110
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android")
12-
set(SYSTEM_STRING "Android")
1311
set(PLATFORM_FOLDER android)
1412
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
1513
if(ANDROID)
16-
set(SYSTEM_STRING "Android")
1714
set(PLATFORM_FOLDER android)
1815
else()
1916
set(LINUX TRUE)
20-
set(SYSTEM_STRING "Linux")
2117
set(PLATFORM_FOLDER linux)
2218
endif()
2319
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
2420
if(IOS)
2521
set(APPLE TRUE)
26-
set(SYSTEM_STRING "IOS")
2722
set(PLATFORM_FOLDER ios)
2823
else()
2924
set(APPLE TRUE)
3025
set(MACOSX TRUE)
31-
set(SYSTEM_STRING "Mac OSX")
3226
set(PLATFORM_FOLDER mac)
3327
endif()
3428
else()
@@ -78,30 +72,6 @@ define_property(TARGET
7872
FULL_DOCS "use to save depend libs of cocos2d lua project"
7973
)
8074

81-
# check and print compiler infos
82-
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
83-
set(COMPILER_STRING ${CMAKE_CXX_COMPILER_ID})
84-
set(CLANG TRUE)
85-
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
86-
if(MINGW)
87-
set(COMPILER_STRING "Mingw GCC")
88-
else()
89-
set(COMPILER_STRING "GCC")
90-
endif()
91-
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
92-
set(COMPILER_STRING "${CMAKE_CXX_COMPILER_ID} C++")
93-
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
94-
set(COMPILER_STRING "Visual Studio C++")
95-
else()
96-
set(COMPILER_STRING "${CMAKE_CXX_COMPILER_ID}")
97-
endif()
98-
if(CMAKE_CROSSCOMPILING)
99-
set(BUILDING_STRING "It appears you are cross compiling for ${SYSTEM_STRING} with ${COMPILER_STRING}")
100-
else()
101-
set(BUILDING_STRING "It appears you are building natively for ${SYSTEM_STRING} with ${COMPILER_STRING}")
102-
endif()
103-
message(STATUS ${BUILDING_STRING})
104-
10575
# check c++ standard
10676
set(CMAKE_C_STANDARD 99)
10777
set(CMAKE_C_STANDARD_REQUIRED ON)

0 commit comments

Comments
 (0)