31 lines
1.1 KiB
CMake
31 lines
1.1 KiB
CMake
find_package(SDL2 REQUIRED)
|
|
|
|
file(GLOB_RECURSE PSEMEK_SDL2_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "include/*.hpp")
|
|
file(GLOB_RECURSE PSEMEK_SDL2_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "source/*.cpp")
|
|
|
|
set(PSEMEK_SDL2_PLATFORM_SOURCES)
|
|
|
|
if(APPLE)
|
|
file(GLOB_RECURSE PSEMEK_SDL2_PLATFORM_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "platform/apple/*.m")
|
|
endif()
|
|
|
|
psemek_add_library(psemek-sdl2 ${PSEMEK_SDL2_HEADERS} ${PSEMEK_SDL2_SOURCES} ${PSEMEK_SDL2_PLATFORM_SOURCES})
|
|
target_include_directories(psemek-sdl2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
target_link_libraries(psemek-sdl2 PUBLIC psemek-log psemek-util psemek-audio psemek-app SDL2)
|
|
if(PSEMEK_GRAPHICS_API STREQUAL OPENGL)
|
|
target_link_libraries(psemek-sdl2 PUBLIC psemek-gfx)
|
|
elseif(PSEMEK_GRAPHICS_API STREQUAL WEBGPU)
|
|
# TODO: shouldn't these come from SDL2 dependencies?
|
|
find_library(FOUNDATION_FRAMEWORK Foundation REQUIRED)
|
|
find_library(METAL_FRAMEWORK Metal REQUIRED)
|
|
find_library(QUARTZCORE_FRAMEWORK QuartzCore REQUIRED)
|
|
|
|
target_link_libraries(psemek-sdl2
|
|
PUBLIC
|
|
psemek-wgpu
|
|
PRIVATE
|
|
${FOUNDATION_FRAMEWORK}
|
|
${METAL_FRAMEWORK}
|
|
${QUARTZCORE_FRAMEWORK}
|
|
)
|
|
endif()
|