summaryrefslogtreecommitdiff
path: root/tests/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/CMakeLists.txt')
-rw-r--r--tests/CMakeLists.txt49
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)