diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 49 |
1 files changed, 35 insertions, 14 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 67baeda..416a3e5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,20 +1,41 @@ -# Unit tests for BoltDBG +# tests/CMakeLists.txt +# Build tests as an executable and reuse boltdbg_core object files. -# Optionally enable sanitizers for test builds -if(BOLTDBG_ENABLE_ASAN) - add_compile_options(-fsanitize=address -fno-omit-frame-pointer) - add_link_options(-fsanitize=address) -endif() +# Simple pattern: expect tests/*.cpp (you can change glob as needed) +file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.cc) -# Collect test sources -set(TEST_SOURCES - test_main.cpp - test_logger.cpp -) +if(NOT TEST_SOURCES) + message(STATUS "No test sources found in ${CMAKE_CURRENT_SOURCE_DIR}, skipping tests.") + return() +endif() +# Create tests executable (link object files from boltdbg_core so no separate lib is needed) add_executable(boltdbg_tests ${TEST_SOURCES}) -target_include_directories(boltdbg_tests PRIVATE ${CMAKE_SOURCE_DIR}/include) -target_link_libraries(boltdbg_tests PRIVATE libboltdbg) -# If using CTest (already enabled from top-level) +# Make sure boltdbg_core target exists (error early if not) + + +# Link dependencies used by tests (gtest or other test frameworks). Example: if you use Threads and platform libs: +if(TARGET spdlog::spdlog) + target_link_libraries(boltdbg_tests PRIVATE spdlog::spdlog) +endif() +if(TARGET imgui) + target_link_libraries(boltdbg_tests PRIVATE imgui) +endif() +if(TARGET glad) + target_link_libraries(boltdbg_tests PRIVATE glad) +endif() +if(DEFINED PLATFORM_LIBS AND PLATFORM_LIBS) + target_link_libraries(boltdbg_tests PRIVATE ${PLATFORM_LIBS}) +endif() +if(TARGET Threads::Threads) + target_link_libraries(boltdbg_tests PRIVATE Threads::Threads) +endif() + +# If you use a test framework (e.g. GoogleTest), link it here +# find_package(GTest REQUIRED) +# target_link_libraries(boltdbg_tests PRIVATE GTest::gtest_main) + +# Register test +enable_testing() add_test(NAME boltdbg_tests COMMAND boltdbg_tests) |
