-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
94 lines (83 loc) · 4.09 KB
/
Copy pathCMakeLists.txt
File metadata and controls
94 lines (83 loc) · 4.09 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
cmake_minimum_required(VERSION 3.25)
project(aurora LANGUAGES C CXX)
if (APPLE)
enable_language(OBJC)
endif()
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
option(AURORA_ENABLE_GX "Enable GX implementation and WebGPU renderer" ON)
option(AURORA_ENABLE_DVD "Enable DVD implementation backed by nod" OFF) # TODO: need to fix tests
option(AURORA_ENABLE_CARD "Enable CARD implementation based on kabufuda" ON)
option(AURORA_ENABLE_RMLUI "Enable HTML/CSS Based UI Library for use in end-user UI development." OFF)
option(AURORA_CACHE_USE_ZSTD "Compress WebGPU cache entries with zstd" ON)
# Specifies a cache string and previous values to forcibly migrate from
macro(_aurora_dependency_version name value doc)
set(_aurora_old_defaults ${ARGN})
if (DEFINED CACHE{${name}} AND ${name} IN_LIST _aurora_old_defaults)
message(STATUS "aurora: Migrating ${name} from old default ${${name}} to ${value}")
set(${name} "${value}" CACHE STRING "${doc}" FORCE)
else ()
set(${name} "${value}" CACHE STRING "${doc}")
endif ()
unset(_aurora_old_defaults)
endmacro()
# Dependency versions
_aurora_dependency_version(AURORA_DAWN_VERSION "v20260618.032059" "Dawn prebuilt version tag (https://github.com/encounter/dawn/releases)"
"v20260523.201736" "v20260603.191052") # Previous versions
_aurora_dependency_version(AURORA_DAWN_REF "266c1cf8de969a364afa4fa49311631fc99a881e" "Dawn commit ref (https://github.com/encounter/dawn)"
"9aa45f938d4b36626722bbfdc2f18447179337e6" "13abc3bc8ea2d3c2050f9e77a12d012108ceee24") # Previous versions
_aurora_dependency_version(AURORA_SDL3_VERSION "3.4.10" "SDL3 prebuilt version tag (https://github.com/libsdl-org/SDL/releases)")
_aurora_dependency_version(AURORA_SDL3_REF "refs/tags/release-3.4.10" "SDL3 commit ref (https://github.com/libsdl-org/SDL)")
_aurora_dependency_version(AURORA_NOD_VERSION "v2.0.0-alpha.10" "nod version tag (https://github.com/encounter/nod/releases)")
# Platform-specific defaults
set(_default_provider "auto")
if (WIN32)
set(_default_linkage "shared")
else ()
set(_default_linkage "static")
endif ()
# Dawn/WebGPU (if AURORA_ENABLE_GX)
set(AURORA_DAWN_PROVIDER "${_default_provider}" CACHE STRING
"How to provide Dawn: auto, vendor (build from source), system (find_package/imported), package (download prebuilt)")
set_property(CACHE AURORA_DAWN_PROVIDER PROPERTY STRINGS auto vendor system package)
set(AURORA_DAWN_LINKAGE "${_default_linkage}" CACHE STRING "Dawn linkage type preference")
set_property(CACHE AURORA_DAWN_LINKAGE PROPERTY STRINGS shared static)
# SDL3
set(AURORA_SDL3_PROVIDER "${_default_provider}" CACHE STRING
"How to provide SDL3: auto, vendor (build from source), system (find_package/imported), or package (download prebuilt)")
set_property(CACHE AURORA_SDL3_PROVIDER PROPERTY STRINGS auto vendor system package)
set(AURORA_SDL3_LINKAGE "${_default_linkage}" CACHE STRING "SDL3 linkage type preference")
set_property(CACHE AURORA_SDL3_LINKAGE PROPERTY STRINGS shared static)
# nod (if AURORA_ENABLE_DVD)
set(AURORA_NOD_PROVIDER "${_default_provider}" CACHE STRING
"How to provide nod: auto, vendor (build from source), system (find_package/imported), package (download prebuilt)")
set_property(CACHE AURORA_NOD_PROVIDER PROPERTY STRINGS auto vendor system package)
set(AURORA_NOD_LINKAGE "${_default_linkage}" CACHE STRING "nod linkage type preference")
set_property(CACHE AURORA_NOD_LINKAGE PROPERTY STRINGS shared static)
add_subdirectory(extern)
include(cmake/aurora_core.cmake)
include(cmake/aurora_os.cmake)
if (AURORA_ENABLE_GX)
include(cmake/aurora_gx.cmake)
include(cmake/aurora_gd.cmake)
endif ()
include(cmake/aurora_pad.cmake)
include(cmake/aurora_ms.cmake)
include(cmake/aurora_si.cmake)
include(cmake/aurora_main.cmake)
include(cmake/aurora_mtx.cmake)
include(cmake/aurora_vi.cmake)
if(AURORA_ENABLE_CARD)
include(cmake/aurora_card.cmake)
endif()
if (AURORA_ENABLE_DVD)
include(cmake/aurora_dvd.cmake)
endif ()
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
add_subdirectory(examples)
endif ()
if (NOT CMAKE_CROSSCOMPILING)
enable_testing()
add_subdirectory(tests)
endif ()