|
1 | | -cmake_minimum_required(VERSION 3.4) |
2 | | -set(CMAKE_GENERATOR_PLATFORM x64) |
| 1 | +#set a debug override for the project before we change project name for Cauldron |
| 2 | +cmake_minimum_required(VERSION 3.6) |
3 | 3 |
|
4 | | -project (Cauldron_${GFX_API}) |
| 4 | +option (GFX_API_DX12 "Build Cauldron with DX12" ON) |
| 5 | +option (GFX_API_VK "Build Cauldron with Vulkan" ON) |
| 6 | + |
| 7 | +if(NOT DEFINED GFX_API) |
| 8 | + project (Cauldron) |
| 9 | +else() |
| 10 | + project (Cauldron_${GFX_API}) |
| 11 | + |
| 12 | + set_property(DIRECTORY ${CMAKE_PROJECT_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME}) |
| 13 | + |
| 14 | + if(GFX_API STREQUAL DX12) |
| 15 | + set(GFX_API_DX12 ON) |
| 16 | + set(GFX_API_VK OFF) |
| 17 | + elseif(GFX_API STREQUAL VK) |
| 18 | + set(GFX_API_DX12 OFF) |
| 19 | + set(GFX_API_VK ON) |
| 20 | + else() |
| 21 | + message(STATUS "----------------------------------------------------------------------------------------") |
| 22 | + message(STATUS "") |
| 23 | + message(STATUS "** Almost there!!") |
| 24 | + message(STATUS "") |
| 25 | + message(STATUS " This framework supports DX12 and VULKAN, you need to invoke cmake in one of these ways:") |
| 26 | + message(STATUS "") |
| 27 | + message(STATUS " Examples:") |
| 28 | + message(STATUS " Generate selected one:") |
| 29 | + message(STATUS " cmake <project_root_dir> -DGFX_API=DX12") |
| 30 | + message(STATUS " cmake <project_root_dir> -DGFX_API=VK") |
| 31 | + message(STATUS " Generate with switches (Default is ON):") |
| 32 | + message(STATUS " cmake <project_root_dir> [-DGFX_API_DX12=ON|OFF] [-DGFX_API_VK=ON|OFF]") |
| 33 | + message(STATUS "") |
| 34 | + message(STATUS "----------------------------------------------------------------------------------------") |
| 35 | + message(FATAL_ERROR "") |
| 36 | + endif() |
| 37 | +endif() |
| 38 | + |
| 39 | +# Check MSVC toolset version, Visual Studio 2019 required |
| 40 | +if(MSVC_TOOLSET_VERSION VERSION_LESS 142) |
| 41 | + message(FATAL_ERROR "Cannot find MSVC toolset version 142 or greater. Please make sure Visual Studio 2019 or newer installed") |
| 42 | +endif() |
5 | 43 |
|
6 | 44 | list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) |
7 | 45 |
|
8 | 46 | # output exe to bin directory |
9 | 47 | SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin) |
| 48 | +# append 'd' to debug libs |
| 49 | +set(CMAKE_DEBUG_POSTFIX d) |
10 | 50 | foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} ) |
11 | 51 | string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) |
12 | 52 | set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_HOME_DIRECTORY}/bin ) |
13 | 53 | endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES ) |
14 | 54 |
|
| 55 | +add_compile_options(/MP) |
| 56 | + |
15 | 57 | # reference libs used by both backends |
16 | 58 | add_subdirectory(src/Common) |
17 | 59 | add_subdirectory(libs/json) |
18 | 60 | add_subdirectory(libs/ImGUI) |
19 | 61 | add_subdirectory(libs/stb) |
20 | 62 | add_subdirectory(libs/DXC) |
| 63 | +add_subdirectory(libs/vectormath) |
21 | 64 |
|
22 | | -if(GFX_API STREQUAL DX12) |
| 65 | +if(GFX_API_DX12) |
23 | 66 | add_subdirectory(libs/d3d12x) |
24 | | - add_subdirectory(libs/ags) |
25 | | - add_subdirectory(src/DX12) |
26 | | -elseif(GFX_API STREQUAL VK) |
| 67 | + add_subdirectory(libs/AGS) |
| 68 | + add_subdirectory(libs/WinPixEventRuntime) |
| 69 | + add_subdirectory(src/DX12) |
| 70 | +endif() |
| 71 | +if(GFX_API_VK) |
27 | 72 | find_package(Vulkan REQUIRED) |
28 | | - add_subdirectory(libs/VulkanMemoryAllocator) |
| 73 | + add_subdirectory(libs/VulkanMemoryAllocator) |
29 | 74 | add_subdirectory(src/VK) |
30 | | -else() |
31 | | - message(STATUS "----------------------------------------------------------------------------------------") |
32 | | - message(STATUS "") |
33 | | - message(STATUS "** Almost there!!") |
34 | | - message(STATUS "") |
35 | | - message(STATUS " This framework supports DX12 or VULKAN, you need to invoke cmake in one of these ways:") |
36 | | - message(STATUS "") |
37 | | - message(STATUS " Examples:") |
38 | | - message(STATUS " cmake <project_root_dir> -DGFX_API=DX12") |
39 | | - message(STATUS " cmake <project_root_dir> -DGFX_API=VK") |
40 | | - message(STATUS "") |
41 | | - message(STATUS "----------------------------------------------------------------------------------------") |
42 | | - message(FATAL_ERROR "") |
43 | 75 | endif() |
44 | 76 |
|
0 commit comments