1set(GENERATOR)
2set(OTHER -DCMAKE_CXX_FLAGS=-Werror)
3set(CROSS)
4
5set(CMAKE_BUILD_TYPE Debug)
6set(BUILD_DEPS FALSE)
7set(SWIG_EXECUTABLE /usr/bin/swig3.0)
8
9set(RENDERSYSTEMS
10    # tests only run with the legacy GL rendersystem as MESA is too old on buildbot
11    -DOGRE_BUILD_RENDERSYSTEM_GL=TRUE
12    -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE
13    -DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE)
14
15if(DEFINED ENV{IOS})
16    set(GENERATOR -G Xcode)
17    set(RENDERSYSTEMS
18        -DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE
19        -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=TRUE)
20    set(CROSS
21        -DIOS_PLATFORM=SIMULATOR
22        -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CMake/toolchain/ios.toolchain.xcode.cmake)
23
24    set(OTHER
25        -DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps
26        ${CROSS})
27    set(BUILD_DEPS TRUE)
28elseif("$ENV{TRAVIS_OS_NAME}" STREQUAL "osx")
29    set(GENERATOR -G Xcode)
30    set(RENDERSYSTEMS
31        -DOGRE_BUILD_RENDERSYSTEM_GL=FALSE
32        -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE)
33
34    set(OTHER
35        ${OTHER}
36        -DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps
37        ${CROSS})
38endif()
39
40if(DEFINED ENV{APPVEYOR})
41    if("$ENV{APPVEYOR_BUILD_WORKER_IMAGE}" STREQUAL "Visual Studio 2017")
42        set(CMAKE_BUILD_TYPE Release)
43        set(GENERATOR -G "Visual Studio 15")
44    else()
45        set(GENERATOR -G "Visual Studio 12")
46    endif()
47    set(RENDERSYSTEMS
48        -DOGRE_BUILD_RENDERSYSTEM_D3D9=TRUE
49        -DOGRE_BUILD_RENDERSYSTEM_GL=TRUE
50        -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE)
51
52    set(OTHER
53        "-DCMAKE_CXX_FLAGS=-WX -EHsc"
54        -DCMAKE_GENERATOR_PLATFORM=x64
55        -DOGRE_BUILD_DEPENDENCIES=TRUE
56        -DOGRE_BUILD_COMPONENT_CSHARP=FALSE
57        "-DPYTHON_EXECUTABLE=C:\\Python37-x64\\python.exe"
58        "-DPYTHON_LIBRARY=C:\\Python37-x64\\libs\\python37.lib"
59        -DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps)
60
61    set(BUILD_DEPS TRUE)
62    set(SWIG_EXECUTABLE "C:\\ProgramData\\chocolatey\\bin\\swig.exe")
63endif()
64
65if(DEFINED ENV{ANDROID})
66    set(CROSS
67        -DANDROID_PLATFORM=android-16
68        -DANDROID_NDK=${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r17
69        -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r17/build/cmake/android.toolchain.cmake
70        "-DANDROID_ABI=armeabi-v7a with NEON")
71
72    set(RENDERSYSTEMS
73        -DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE
74        -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=FALSE)
75
76    set(OTHER
77        ${CROSS}
78        -DCMAKE_CXX_FLAGS=-Werror
79        -DOGRE_BUILD_ANDROID_JNI_SAMPLE=TRUE
80        -DOGRE_DEPENDENCIES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogredeps)
81    set(BUILD_DEPS TRUE)
82
83    if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/android-ndk-r17)
84        message(STATUS "Downloading Android NDK")
85        file(DOWNLOAD
86            http://dl.google.com/android/repository/android-ndk-r17-linux-x86_64.zip
87            ./android-ndk-r17-linux-x86_64.zip)
88        message(STATUS "Extracting Android NDK")
89        execute_process(COMMAND unzip android-ndk-r17-linux-x86_64.zip OUTPUT_QUIET)
90    endif()
91endif()
92
93file(MAKE_DIRECTORY build)
94execute_process(COMMAND ${CMAKE_COMMAND}
95    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
96    -DOGRE_BUILD_TESTS=ON
97    -DOGRE_RESOURCEMANAGER_STRICT=2
98    -DOGRE_BUILD_DEPENDENCIES=${BUILD_DEPS}
99    -DSWIG_EXECUTABLE=${SWIG_EXECUTABLE}
100    ${RENDERSYSTEMS}
101    ${OTHER}
102    ${GENERATOR}
103    ..
104    WORKING_DIRECTORY build)
105