cmake_minimum_required(VERSION 3.10) project(lsfg-vk-framegen DESCRIPTION "Lossless Scaling Frame Generation Backend" LANGUAGES C CXX) # FIXME: get rid of c language file(GLOB SOURCES "src/trans/*.cpp" "src/vk/core/*.cpp" "src/vk/pool/*.cpp" "src/vk/registry/*.cpp" "src/vk/types/*.cpp" "src/vk/*.cpp" "src/*.cpp" "src/thirdparty/*.c" ) add_library(lsfg-vk-framegen STATIC ${SOURCES}) set_target_properties(lsfg-vk-framegen PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON CXX_VISIBILITY_PRESET "hidden" EXPORT_COMPILE_COMMANDS ON) target_include_directories(lsfg-vk-framegen SYSTEM PUBLIC include/thirdparty) target_include_directories(lsfg-vk-framegen PUBLIC include) if(CMAKE_BUILD_TYPE STREQUAL "Debug") if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") message(WARNING "Debug builds should use Clang for better diagnostics") else() message(STATUS "Building with further diagnostics") set_target_properties(lsfg-vk-framegen PROPERTIES CXX_CLANG_TIDY clang-tidy) target_compile_options(lsfg-vk-framegen PRIVATE -Weverything # disable incompatible warnings -Wno-pre-c++20-compat-pedantic -Wno-c++98-compat -Wno-switch-default -Wno-switch-enum # disable noisy warnings -Wno-missing-designated-field-initializers -Wno-cast-function-type-strict -Wno-padded -Wno-shadow ) endif() endif()