|
1 | | -cmake_minimum_required(VERSION 3.8 FATAL_ERROR) |
2 | | -cmake_policy(VERSION 3.8) |
| 1 | +cmake_minimum_required(VERSION 3.6 FATAL_ERROR) |
| 2 | +cmake_policy(VERSION 3.6) |
3 | 3 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") |
4 | 4 | include("cmake/defaults.cmake") |
5 | 5 | set(NAME vulkanExamples) |
6 | 6 |
|
7 | 7 | project(${NAME}) |
8 | 8 |
|
9 | | -if (WIN32) |
10 | | - if (MSVC) |
11 | | - if (NOT MSVC14) |
12 | | - message(FATAL_ERROR "Visual Studio 2015 is required for Windows builds") |
13 | | - endif() |
14 | | - if(NOT ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")) |
15 | | - message(FATAL_ERROR "You must build for the Win64 architecture") |
16 | | - endif() |
17 | | - endif() |
18 | | -endif() |
19 | | - |
20 | | -add_custom_target(SetupRelease ALL ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin) |
21 | | -set_target_properties(SetupRelease PROPERTIES FOLDER "CMakeTargets") |
22 | | -add_custom_target(SetupDebug ALL ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin_debug) |
23 | | -set_target_properties(SetupDebug PROPERTIES FOLDER "CMakeTargets") |
24 | | - |
25 | | -find_package(Vulkan REQUIRED) |
26 | | -include_directories(${Vulkan_INCLUDE_DIR}) |
27 | | -link_libraries(${Vulkan_LIBRARY}) |
28 | 9 |
|
29 | 10 | if(WIN32) |
30 | | - add_definitions(-DVK_USE_PLATFORM_WIN32_KHR) |
31 | | -else() |
32 | | - add_definitions(-DVK_USE_PLATFORM_XCB_KHR) |
33 | | - find_package(XCB REQUIRED) |
34 | | - link_libraries(${XCB_LIBRARIES}) |
| 11 | + add_definitions(-D_CRT_SECURE_NO_WARNINGS) |
| 12 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") |
35 | 13 | endif() |
36 | 14 |
|
| 15 | +if(NOT ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")) |
| 16 | + message(FATAL_ERROR "32 bit builds not supported") |
| 17 | +endif() |
37 | 18 |
|
| 19 | +find_package(Threads REQUIRED) |
38 | 20 |
|
39 | | -if (WIN32) |
40 | | - add_dependency_external_projects(glfw3) |
41 | | - list(APPEND EXTERNALS glfw3) |
42 | | - include_directories(${GLFW3_INCLUDE_DIR}) |
43 | | - link_libraries(${GLFW3_LIBRARY}) |
44 | | - |
45 | | - add_dependency_external_projects(zlib) |
46 | | - list(APPEND EXTERNALS zlib) |
47 | | - include_directories(${ZLIB_INCLUDE_DIRS}) |
48 | | - link_libraries(${ZLIB_LIBRARIES}) |
| 21 | +if (NOT ANDROID) |
| 22 | + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin") |
| 23 | + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin") |
| 24 | + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin_debug") |
| 25 | + set(CMAKE_DEBUG_POSTFIX "d") |
49 | 26 |
|
50 | | - add_dependency_external_projects(assimp) |
51 | | - list(APPEND EXTERNALS assimp) |
52 | | - include_directories(${ASSIMP_INCLUDE_DIRS}) |
53 | | - link_libraries(${ASSIMP_LIBRARIES}) |
54 | | -else() |
55 | | - pkg_check_modules(GLFW3 REQUIRED glfw3>=3.2) |
56 | | - link_libraries(${GLFW3_LIBRARIES}) |
57 | | - include_directories(${GLFW3_INCLUDEDIR}) |
58 | | - link_directories(${GLFW3_LIBRARY_DIRS}) |
59 | | - |
60 | | - find_package(assimp) |
61 | | - link_libraries(${ASSIMP_LIBRARIES}) |
62 | | - include_directories(${ASSIMP_INCLUDEDIR}) |
63 | | - link_directories(${ASSIMP_LIBRARY_DIRS}) |
| 27 | + add_custom_target(SetupRelease ALL ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin) |
| 28 | + set_target_properties(SetupRelease PROPERTIES FOLDER "CMakeTargets") |
| 29 | + add_custom_target(SetupDebug ALL ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/bin_debug) |
| 30 | + set_target_properties(SetupDebug PROPERTIES FOLDER "CMakeTargets") |
64 | 31 | endif() |
65 | 32 |
|
66 | | -add_dependency_external_projects(glm) |
67 | | -list(APPEND EXTERNALS glm) |
68 | | -include_directories(${GLM_INCLUDE_DIRS}) |
69 | 33 |
|
70 | | -add_dependency_external_projects(gli) |
71 | | -list(APPEND EXTERNALS gli) |
72 | | -include_directories(${GLI_INCLUDE_DIRS}) |
| 34 | +if (ANDROID) |
| 35 | + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") |
| 36 | + set(APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue) |
| 37 | + include_directories(${APP_GLUE_DIR}) |
| 38 | + add_library(app-glue STATIC ${APP_GLUE_DIR}/android_native_app_glue.c) |
| 39 | +endif() |
73 | 40 |
|
74 | | -add_dependency_external_projects(glslang) |
75 | | -list(APPEND EXTERNALS glslang) |
76 | | -include_directories(${GLSLANG_INCLUDE_DIRS}) |
77 | | -link_libraries(${GLSLANG_LIBRARIES}) |
| 41 | +if (ANDROID) |
| 42 | + add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) |
| 43 | +elseif (WIN32) |
| 44 | + add_definitions(-DVK_USE_PLATFORM_WIN32_KHR) |
| 45 | +else() |
| 46 | + add_definitions(-DVK_USE_PLATFORM_XCB_KHR) |
| 47 | + find_package(XCB REQUIRED) |
| 48 | + link_libraries(${XCB_LIBRARIES}) |
| 49 | +endif() |
78 | 50 |
|
79 | 51 | add_subdirectory(base) |
80 | 52 |
|
81 | 53 | include_directories(base) |
82 | | -link_libraries(common) |
83 | 54 | if (NOT WIN32) |
84 | 55 | set(THREADS_PREFER_PTHREAD_FLAG ON) |
85 | 56 | find_package(Threads REQUIRED) |
86 | 57 | link_libraries(${CMAKE_THREAD_LIBS_INIT}) |
87 | 58 | endif() |
88 | 59 |
|
89 | | - |
90 | 60 | add_subdirectory(examples) |
91 | | - |
0 commit comments