Files
Gryphn/CMakeLists.txt
2025-08-12 17:47:45 -04:00

52 lines
1.4 KiB
CMake

set(CMAKE_EXPORT_COMPILE_COMMANDS on)
project(Gryphn)
add_compile_definitions(GN_REVEAL_IMPL)
add_library(Gryphn INTERFACE)
if (UNIX AND NOT APPLE)
add_compile_definitions(
GN_PLATFORM_LINUX
GN_WINDOW_X11
GN_API_VULKAN GN_API_OPENGL
)
add_subdirectory(projects/apis/vulkan/)
add_subdirectory(projects/apis/opengl/)
set(VULKAN_BUILT ON)
set(OPENGL_BUILT ON)
endif()
if (APPLE)
add_compile_definitions(
GN_PLATFORM_MACOS
GN_API_VULKAN GN_API_METAL
)
add_subdirectory(projects/apis/vulkan/)
add_subdirectory(projects/apis/metal/)
set(VULKAN_BUILT ON)
set(METAL_BUILT ON)
endif()
add_subdirectory(projects/utils)
add_subdirectory(projects/loader) # build gryphn loader
add_subdirectory(projects/core) # build gryphn core
add_subdirectory(projects/extensions)
add_subdirectory(projects/platform) # build gryphn platform
add_subdirectory(projects/validation_layers/function_loader/)
add_subdirectory(projects/validation_layers/allocators/)
target_link_libraries(Gryphn INTERFACE GryphnCore GryphnLoader GryphnPlatform GryphnFunctionValidator GryphnAllocatorChecker GryphnExtensions)
if (VULKAN_BUILT)
target_link_libraries(Gryphn INTERFACE GryphnVulkanImpl)
endif()
if (METAL_BUILT)
target_link_libraries(Gryphn INTERFACE GryphnMetalImpl)
endif()
if (OPENGL_BUILT)
target_link_libraries(Gryphn INTERFACE GryphnOpenGLImpl)
endif()
target_link_libraries(Gryphn INTERFACE GryphnUtils)