From 219083dcd5790b4829c147aa770828fd0d5ec0f8 Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Fri, 8 Aug 2025 16:23:59 +0200 Subject: [PATCH] feat(test): create file structure for tests --- CMakeLists.txt | 15 +++++++++--- framegen/CMakeLists.txt | 6 +++-- test/CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 test/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index a69990a..fa83c32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,11 @@ cmake_minimum_required(VERSION 3.10) set(CMAKE_SKIP_RPATH ON) -set(CMAKE_C_VISIBILITY_PRESET "hidden") -set(CMAKE_CXX_VISIBILITY_PRESET "hidden") + +if(NOT LSFGVK_EXCESS_DEBUG) + set(CMAKE_C_VISIBILITY_PRESET "hidden") + set(CMAKE_CXX_VISIBILITY_PRESET "hidden") +endif() # subprojects add_compile_options(-fPIC @@ -15,6 +18,10 @@ add_subdirectory(thirdparty/toml11 EXCLUDE_FROM_ALL) add_subdirectory(thirdparty/volk EXCLUDE_FROM_ALL) add_subdirectory(framegen) +if(LSFGVK_EXCESS_DEBUG) + add_subdirectory(test) +endif() + # main project project(lsfg-vk VERSION 1.0.0 @@ -36,8 +43,8 @@ set_target_properties(lsfg-vk PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON) target_include_directories(lsfg-vk - PRIVATE include) -target_link_libraries(lsfg-vk PRIVATE + PUBLIC include) +target_link_libraries(lsfg-vk PUBLIC pe-parse dxbc toml11 lsfg-vk-framegen) diff --git a/framegen/CMakeLists.txt b/framegen/CMakeLists.txt index c2e9ac9..a10b886 100644 --- a/framegen/CMakeLists.txt +++ b/framegen/CMakeLists.txt @@ -1,7 +1,9 @@ cmake_minimum_required(VERSION 3.10) -set(CMAKE_C_VISIBILITY_PRESET "hidden") -set(CMAKE_CXX_VISIBILITY_PRESET "hidden") +if(NOT LSFGVK_EXCESS_DEBUG) + set(CMAKE_C_VISIBILITY_PRESET "hidden") + set(CMAKE_CXX_VISIBILITY_PRESET "hidden") +endif() project(lsfg-vk-framegen DESCRIPTION "Lossless Scaling Frame Generation Backend" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..b3d81f7 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.10) + +if(NOT LSFGVK_EXCESS_DEBUG) + set(CMAKE_C_VISIBILITY_PRESET "hidden") + set(CMAKE_CXX_VISIBILITY_PRESET "hidden") +endif() + +project(lsfg-vk-test + DESCRIPTION "Test: lsfg-vk" + LANGUAGES CXX) + +file(GLOB SOURCES + "src/*.cpp" +) + +add_executable(lsfg-vk-test ${SOURCES}) + +# target +set_target_properties(lsfg-vk-test PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON) +target_include_directories(lsfg-vk-test + PRIVATE include) +target_link_libraries(lsfg-vk-test PUBLIC + vulkan lsfg-vk) + +# diagnostics +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set_target_properties(lsfg-vk-test PROPERTIES + EXPORT_COMPILE_COMMANDS ON) +endif() + +if(LSFGVK_EXCESS_DEBUG) + target_compile_options(lsfg-vk-test PRIVATE + -Weverything + # disable compat c++ flags + -Wno-pre-c++20-compat-pedantic + -Wno-pre-c++17-compat + -Wno-c++98-compat-pedantic + -Wno-c++98-compat + # disable other flags + -Wno-missing-designated-field-initializers + -Wno-shadow # allow shadowing + -Wno-switch-enum # ignore missing cases + -Wno-switch-default # ignore missing default + -Wno-padded # ignore automatic padding + -Wno-exit-time-destructors # allow globals + -Wno-global-constructors # allow globals + -Wno-cast-function-type-strict # for vulkan + ) + + set_target_properties(lsfg-vk-test PROPERTIES + CXX_CLANG_TIDY clang-tidy) +endif()