-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
32 lines (24 loc) · 933 Bytes
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.24)
project(Metal)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_XCODE_GENERATE_SCHEME TRUE)
enable_language(OBJC OBJCXX)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(FetchExternal)
find_package(fmt CONFIG REQUIRED)
find_package(SDL3 CONFIG REQUIRED)
find_package(directxmath CONFIG REQUIRED)
find_package(Ktx CONFIG REQUIRED)
find_package(imgui CONFIG REQUIRED)
find_path(CGLTF_INCLUDE_DIRS "cgltf.h")
include_directories(${CGLTF_INCLUDE_DIRS})
# Add custom shader compilation for generators other than Xcode
# For Xcode, each target will include the Metal shaders as source
# to be compiled into the default library through Xcode
if (NOT CMAKE_GENERATOR MATCHES "Xcode")
include(CompileShaders)
file(GLOB_RECURSE METAL_SHADERS ${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.metal)
CompileMetalShaders("${METAL_SHADERS}")
endif ()
# Examples
add_subdirectory(source)