mirror of
https://github.com/usatiuk/cardboy.git
synced 2025-10-28 15:17:48 +01:00
86 lines
2.3 KiB
CMake
86 lines
2.3 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(cardboy_sdk LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED YES)
|
|
set(CMAKE_CXX_EXTENSIONS NO)
|
|
|
|
add_library(cardboy_sdk INTERFACE)
|
|
|
|
target_include_directories(cardboy_sdk
|
|
INTERFACE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
target_compile_features(cardboy_sdk INTERFACE cxx_std_20)
|
|
|
|
target_sources(cardboy_sdk
|
|
INTERFACE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/app_system.cpp
|
|
)
|
|
|
|
add_library(cardboy_apps INTERFACE)
|
|
|
|
target_include_directories(cardboy_apps
|
|
INTERFACE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
target_link_libraries(cardboy_apps
|
|
INTERFACE
|
|
cardboy_sdk
|
|
)
|
|
|
|
target_sources(cardboy_apps
|
|
INTERFACE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/apps/menu_app.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/apps/clock_app.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/apps/tetris_app.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/apps/gameboy_app.cpp
|
|
)
|
|
|
|
option(CARDBOY_BUILD_SFML "Build SFML harness" OFF)
|
|
|
|
if (CARDBOY_BUILD_SFML)
|
|
include(FetchContent)
|
|
|
|
set(SFML_BUILD_AUDIO OFF CACHE BOOL "Disable SFML audio module" FORCE)
|
|
set(SFML_BUILD_NETWORK OFF CACHE BOOL "Disable SFML network module" FORCE)
|
|
set(SFML_BUILD_EXAMPLES OFF CACHE BOOL "Disable SFML examples" FORCE)
|
|
set(SFML_BUILD_TESTS OFF CACHE BOOL "Disable SFML tests" FORCE)
|
|
set(SFML_USE_SYSTEM_DEPS OFF CACHE BOOL "Use bundled SFML dependencies" FORCE)
|
|
|
|
FetchContent_Declare(
|
|
SFML
|
|
GIT_REPOSITORY https://github.com/SFML/SFML.git
|
|
GIT_TAG 3.0.2
|
|
GIT_SHALLOW ON
|
|
)
|
|
FetchContent_MakeAvailable(SFML)
|
|
|
|
add_executable(cardboy_desktop
|
|
hosts/sfml_main.cpp
|
|
)
|
|
|
|
target_link_libraries(cardboy_desktop
|
|
PRIVATE
|
|
cardboy_apps
|
|
SFML::Graphics
|
|
SFML::Window
|
|
SFML::System
|
|
)
|
|
|
|
target_include_directories(cardboy_desktop
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/hosts/include
|
|
)
|
|
|
|
target_compile_definitions(cardboy_desktop
|
|
PRIVATE
|
|
CARDBOY_SDK_BACKEND_HEADER=\"cardboy/backend/desktop_backend.hpp\"
|
|
CARDBOY_SDK_ACTIVE_BACKEND_TYPE=cardboy::backend::DesktopBackend
|
|
)
|
|
|
|
target_compile_features(cardboy_desktop PRIVATE cxx_std_20)
|
|
endif ()
|