1- cmake_minimum_required (VERSION 3.4 )
2- set (CMAKE_GENERATOR_PLATFORM x64)
1+ cmake_minimum_required (VERSION 3.6 )
32
4- project (GLTFSample_${GFX_API} )
3+ option (GFX_API_DX12 "Build with DX12" ON )
4+ option (GFX_API_VK "Build with Vulkan" ON )
5+
6+ if (NOT DEFINED GFX_API)
7+ project (GLTFSample)
8+ else ()
9+ project (GLTFSample_${GFX_API} )
10+
11+ set_property (DIRECTORY ${CMAKE_PROJECT_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME} )
12+
13+ if (GFX_API STREQUAL DX12)
14+ set (GFX_API_DX12 ON )
15+ set (GFX_API_VK OFF )
16+ elseif (GFX_API STREQUAL VK)
17+ set (GFX_API_DX12 OFF )
18+ set (GFX_API_VK ON )
19+ else ()
20+ message (STATUS "----------------------------------------------------------------------------------------" )
21+ message (STATUS "" )
22+ message (STATUS "** Almost there!!" )
23+ message (STATUS "" )
24+ message (STATUS " This framework supports DX12 and VULKAN, you need to invoke cmake in one of these ways:" )
25+ message (STATUS "" )
26+ message (STATUS " Examples:" )
27+ message (STATUS " Generate selected one:" )
28+ message (STATUS " cmake <project_root_dir> -DGFX_API=DX12" )
29+ message (STATUS " cmake <project_root_dir> -DGFX_API=VK" )
30+ message (STATUS " Generate with switches (Default is ON):" )
31+ message (STATUS " cmake <project_root_dir> [-DGFX_API_DX12=ON|OFF] [-DGFX_API_VK=ON|OFF]" )
32+ message (STATUS "" )
33+ message (STATUS "----------------------------------------------------------------------------------------" )
34+ message (FATAL_ERROR "" )
35+ endif ()
36+ endif ()
37+
38+ # Check MSVC toolset version, Visual Studio 2019 required
39+ if (MSVC_TOOLSET_VERSION VERSION_LESS 142)
40+ message (FATAL_ERROR "Cannot find MSVC toolset version 142 or greater. Please make sure Visual Studio 2019 or newer installed" )
41+ endif ()
542
643# ouput exe to bin directory
744SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY} /bin)
@@ -10,28 +47,26 @@ foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
1047 set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_HOME_DIRECTORY} /bin )
1148endforeach ( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
1249
50+ add_compile_options (/MP )
51+
1352# reference libs used by both backends
1453add_subdirectory (libs/cauldron )
54+ add_subdirectory (src/Common )
1555
16- set_property (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME} )
56+ # application icon
57+ set (icon_src
58+ ${CMAKE_CURRENT_SOURCE_DIR} /libs/cauldron/src/common/Icon/GPUOpenChip.ico
59+ ${CMAKE_CURRENT_SOURCE_DIR} /libs/cauldron/src/common/Icon/resource.h
60+ ${CMAKE_CURRENT_SOURCE_DIR} /libs/cauldron/src/common/Icon/Cauldron_Common.rc
61+ )
1762
18- if (GFX_API STREQUAL DX12)
19- add_subdirectory (src/DX12 )
20- elseif (GFX_API STREQUAL VK)
63+ if (GFX_API_VK)
2164 find_package (Vulkan REQUIRED )
2265 add_subdirectory (src/VK )
23- else ()
24- message (STATUS "----------------------------------------------------------------------------------------" )
25- message (STATUS "" )
26- message (STATUS "** Almost there!!" )
27- message (STATUS "" )
28- message (STATUS " This framework supports DX12 or VULKAN, you need to invoke cmake in one of these ways:" )
29- message (STATUS "" )
30- message (STATUS " Examples:" )
31- message (STATUS " cmake <project_root_dir> -DGFX_API=DX12" )
32- message (STATUS " cmake <project_root_dir> -DGFX_API=VK" )
33- message (STATUS "" )
34- message (STATUS "----------------------------------------------------------------------------------------" )
35- message (FATAL_ERROR "" )
66+ endif ()
67+ if (GFX_API_DX12)
68+ add_subdirectory (src/DX12 )
3669endif ()
3770
71+ set_source_files_properties (${CMAKE_CURRENT_SOURCE_DIR} /libs/cauldron/src/common/Icon/Cauldron_Common.rc PROPERTIES VS_TOOL_OVERRIDE "Resource compiler" )
72+ set_source_files_properties (${CMAKE_CURRENT_SOURCE_DIR} /libs/cauldron/src/common/Icon/GPUOpenChip.ico PROPERTIES VS_TOOL_OVERRIDE "Image" )
0 commit comments