forked from OGRECave/ogre
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ci-build.cmake
118 lines (104 loc) · 4.11 KB
/
ci-build.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
set(GENERATOR)
set(OTHER -DCMAKE_CXX_FLAGS=-Werror -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-undefined -DOGRE_CONFIG_ENABLE_PVRTC=ON)
set(CROSS)
set(CMAKE_BUILD_TYPE Debug)
set(BUILD_DEPS FALSE)
set(SWIG_EXECUTABLE /usr/bin/swig4.0)
set(RENDERSYSTEMS
-DOGRE_BUILD_PLUGIN_GLSLANG=TRUE # only builds on Linux, this is the Linux specific config
-DOGRE_BUILD_PLUGIN_RSIMAGE=TRUE
-DOGRE_BUILD_RENDERSYSTEM_VULKAN=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GL=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE
-DOGRE_BUILD_RENDERSYSTEM_TINY=TRUE)
if(DEFINED ENV{IOS})
set(GENERATOR -G Xcode)
set(RENDERSYSTEMS
-DOGRE_BUILD_RENDERSYSTEM_METAL=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE)
set(CROSS
-DIOS_PLATFORM=SIMULATOR
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CMake/toolchain/ios.toolchain.xcode.cmake)
set(OTHER
-DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps
${CROSS})
set(BUILD_DEPS TRUE)
elseif("$ENV{TRAVIS_OS_NAME}" STREQUAL "osx")
set(GENERATOR -G Xcode)
set(RENDERSYSTEMS
-DOGRE_BUILD_RENDERSYSTEM_METAL=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GL=FALSE
-DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE)
set(OTHER
-DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps
${CROSS})
endif()
if(DEFINED ENV{APPVEYOR})
set(CMAKE_BUILD_TYPE Release)
set(RENDERSYSTEMS
-DOGRE_BUILD_RENDERSYSTEM_D3D9=TRUE
-DOGRE_BUILD_RENDERSYSTEM_TINY=TRUE
-DOGRE_BUILD_RENDERSYSTEM_VULKAN=TRUE
-DOGRE_BUILD_PLUGIN_RSIMAGE=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GL=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE)
set(OTHER
"-DCMAKE_CXX_FLAGS=-WX -EHsc"
-DCMAKE_GENERATOR_PLATFORM=x64
-DCMAKE_GENERATOR_TOOLSET=v142
-DOGRE_BUILD_DEPENDENCIES=TRUE
"-DPYTHON_EXECUTABLE=C:\\Python310-x64\\python.exe"
"-DPYTHON_LIBRARY=C:\\Python310-x64\\libs\\python310.lib"
-DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps)
set(GENERATOR -G "Visual Studio 16 2019")
set(OTHER ${OTHER}
-DCMAKE_PREFIX_PATH="C:\\Qt\\6.2\\msvc2019_64"
-DQt6_DIR="C:\\Qt\\6.2\\msvc2019_64\\lib\\cmake\\Qt6")
set(BUILD_DEPS TRUE)
set(SWIG_EXECUTABLE "C:\\Python310-x64\\Scripts\\swig.exe")
endif()
if(DEFINED ENV{ANDROID})
set(CMAKE_BUILD_TYPE RelWithDebInfo)
set(CROSS
-DANDROID_PLATFORM=android-19
-DANDROID_NDK=${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r25c
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r25c/build/cmake/android.toolchain.cmake
-DANDROID_ARM_NEON=TRUE
-DANDROID_ABI=arm64-v8a)
set(RENDERSYSTEMS
-DOGRE_BUILD_RENDERSYSTEM_VULKAN=TRUE
-DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE)
set(OTHER
${CROSS}
-DCMAKE_CXX_FLAGS="-Werror"
-DOGRE_BUILD_ANDROID_JNI_SAMPLE=TRUE
-DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps)
set(BUILD_DEPS TRUE)
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r25c)
message(STATUS "Downloading Android NDK")
file(DOWNLOAD
https://dl.google.com/android/repository/android-ndk-r25c-linux.zip
./android-ndk-r25c-linux.zip)
message(STATUS "Extracting Android NDK")
execute_process(COMMAND unzip android-ndk-r25c-linux.zip OUTPUT_QUIET)
message(STATUS "Building Shaderc")
execute_process(COMMAND
../../../ndk-build -j2 NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk APP_STL=c++_static APP_ABI=arm64-v8a libshaderc_combined
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r25c/sources/third_party/shaderc/)
endif()
endif()
file(MAKE_DIRECTORY build)
execute_process(COMMAND ${CMAKE_COMMAND}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DOGRE_BUILD_TESTS=ON
-DOGRE_RESOURCEMANAGER_STRICT=2
-DOGRE_NODELESS_POSITIONING=OFF
-DOGRE_BUILD_DEPENDENCIES=${BUILD_DEPS}
-DSWIG_EXECUTABLE=${SWIG_EXECUTABLE}
${RENDERSYSTEMS}
${OTHER}
${GENERATOR}
..
WORKING_DIRECTORY build)