lsfg-vk/framegen/CMakeLists.txt
2025-09-28 23:18:17 +02:00

53 lines
1.5 KiB
CMake

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()