Files
aurora/cmake/aurora_core.cmake
Luke Street 9ef9144b57 WIP gpu_prof
2026-06-12 10:28:52 -06:00

96 lines
3.6 KiB
CMake

add_library(aurora_core STATIC
lib/aurora.cpp
lib/device.cpp
lib/device.hpp
lib/input.cpp
lib/window.cpp
lib/logging.cpp
lib/system_info.cpp
lib/system_info.hpp
)
add_library(aurora::core ALIAS aurora_core)
set_target_properties(aurora_core PROPERTIES FOLDER "aurora")
target_compile_definitions(aurora_core PUBLIC AURORA TARGET_PC)
target_include_directories(aurora_core PUBLIC include)
target_link_libraries(aurora_core PUBLIC fmt::fmt ${AURORA_SDL3_TARGET} xxhash)
target_link_libraries(aurora_core PRIVATE absl::btree absl::flat_hash_map sqlite3 TracyClient)
if (AURORA_ENABLE_GX AND AURORA_CACHE_USE_ZSTD)
target_compile_definitions(aurora_core PRIVATE AURORA_CACHE_USE_ZSTD)
target_link_libraries(aurora_core PRIVATE zstd::libzstd)
endif ()
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
# stuff for fetching system info.
target_link_libraries(aurora_core PRIVATE wbemuuid.lib comsuppw.lib ntdll.lib DXGI.lib)
elseif (APPLE)
target_sources(aurora_core PRIVATE lib/system_info_mac.mm)
endif ()
if (IOS)
find_library(COREHAPTICS_FRAMEWORK CoreHaptics REQUIRED)
target_sources(aurora_core PRIVATE lib/device_ios.mm)
set_source_files_properties(lib/device_ios.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
target_link_libraries(aurora_core PUBLIC ${COREHAPTICS_FRAMEWORK})
endif ()
if (AURORA_ENABLE_GX)
target_sources(aurora_core PRIVATE lib/imgui.cpp)
target_link_libraries(aurora_core PUBLIC imgui)
endif ()
if(AURORA_ENABLE_RMLUI)
target_compile_definitions(aurora_core PUBLIC AURORA_ENABLE_RMLUI)
target_sources(aurora_core PRIVATE
lib/rmlui.cpp
lib/rmlui/RuntimeTextureProvider.cpp
lib/rmlui/RmlUi_Backend_Aurora.cpp
lib/rmlui/WebGPURenderInterface.cpp
lib/rmlui/SystemInterface_Aurora.cpp
lib/rmlui/FileInterface_SDL.cpp
)
target_link_libraries(aurora_core PUBLIC rmlui)
target_link_libraries(aurora_core PUBLIC rmlui_backends)
endif ()
if (AURORA_ENABLE_GX)
target_compile_definitions(aurora_core PUBLIC AURORA_ENABLE_GX WEBGPU_DAWN)
target_sources(aurora_core PRIVATE
lib/webgpu/gpu.cpp
lib/webgpu/gpu_cache.cpp
lib/webgpu/gpu_prof.cpp
lib/dawn/BackendBinding.cpp
lib/dawn/TracyPlatform.cpp
)
target_link_libraries(aurora_core PRIVATE dawn::webgpu_dawn)
if (DAWN_ENABLE_VULKAN)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_VULKAN)
endif ()
if (DAWN_ENABLE_METAL)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_METAL)
target_sources(aurora_core PRIVATE lib/dawn/MetalBinding.mm)
set_source_files_properties(lib/dawn/MetalBinding.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
target_link_options(aurora_core PUBLIC "LINKER:-weak_framework,Metal")
endif ()
if (DAWN_ENABLE_D3D11)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_D3D11)
endif ()
if (DAWN_ENABLE_D3D12)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_D3D12)
endif ()
if (DAWN_ENABLE_DESKTOP_GL OR DAWN_ENABLE_OPENGLES)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_OPENGL)
if (DAWN_ENABLE_DESKTOP_GL)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_DESKTOP_GL)
endif ()
if (DAWN_ENABLE_OPENGLES)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_OPENGLES)
endif ()
endif ()
if (DAWN_ENABLE_NULL)
target_compile_definitions(aurora_core PRIVATE DAWN_ENABLE_BACKEND_NULL)
endif ()
endif ()