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_compile_options(-Werror -O0 -Wall -Wextra -pedantic -Wno-unused-parameter -Wno-unused-variable # -Wno-error=unused-function # -Wshadow -Wformat=2 -Wfloat-equal -D_GLIBCXX_DEBUG -Wconversion) #add_compile_options(-fsanitize=address -fno-sanitize-recover -D_GLIBCXX_DEBUG) #add_link_options(-fsanitize=address -fno-sanitize-recover -D_GLIBCXX_DEBUG) add_subdirectory(utils) add_subdirectory(backend_interface) set(CARDBOY_SDK_BACKEND_LIBRARY "" CACHE STRING "Backend implementation library for Cardboy SDK") set(_cardboy_backend_default "${CARDBOY_SDK_BACKEND_LIBRARY}") option(CARDBOY_BUILD_SFML "Build desktop SFML backend and launcher" ON) if (CARDBOY_BUILD_SFML) add_subdirectory(backends/desktop) if (DEFINED CARDBOY_DESKTOP_BACKEND_TARGET AND NOT CARDBOY_DESKTOP_BACKEND_TARGET STREQUAL "") set(_cardboy_backend_default "${CARDBOY_DESKTOP_BACKEND_TARGET}") endif () endif () if (_cardboy_backend_default STREQUAL "") message(FATAL_ERROR "CARDBOY_SDK_BACKEND_LIBRARY is not set. Provide a backend implementation library or enable one of the available backends.") endif () set(CARDBOY_SDK_BACKEND_LIBRARY "${_cardboy_backend_default}" CACHE STRING "Backend implementation library for Cardboy SDK" FORCE) add_subdirectory(core) add_subdirectory(apps) if (CARDBOY_BUILD_SFML) add_subdirectory(launchers/desktop) endif ()