mirror of
https://github.com/charles-lunarg/vk-bootstrap.git
synced 2024-11-10 02:41:47 +00:00
d759d3d575
Allows the tests to set the exact values vk-bootstrap will receieve rather than require a real vulkan driver to be present on the system. This is done by creating a `vulkan-1.dll` on windows that implements all of the API functions, and on linux/macOS intercepts `dlsym` to make it return the mock's functions.
37 lines
1.1 KiB
CMake
37 lines
1.1 KiB
CMake
if (WIN32)
|
|
add_library(VulkanMock SHARED vulkan_mock.hpp vulkan_mock.cpp)
|
|
# Need to name the target "vulkan-1" so that it'll be loaded instead of the *actual* vulkan-1.dll on the system
|
|
set_target_properties(VulkanMock PROPERTIES OUTPUT_NAME "vulkan-1")
|
|
else()
|
|
add_library(VulkanMock STATIC vulkan_mock.hpp vulkan_mock.cpp)
|
|
endif()
|
|
target_link_libraries(VulkanMock
|
|
PUBLIC
|
|
vk-bootstrap-vulkan-headers
|
|
PRIVATE
|
|
vk-bootstrap-compiler-warnings
|
|
)
|
|
target_compile_features(VulkanMock PUBLIC cxx_std_17)
|
|
|
|
add_executable(vk-bootstrap-test
|
|
vulkan_library_loader.hpp
|
|
bootstrap_tests.cpp
|
|
error_code_tests.cpp
|
|
unit_tests.cpp
|
|
)
|
|
|
|
target_link_libraries(vk-bootstrap-test
|
|
PRIVATE
|
|
vk-bootstrap
|
|
vk-bootstrap-vulkan-headers
|
|
vk-bootstrap-compiler-warnings
|
|
VulkanMock
|
|
Catch2::Catch2WithMain
|
|
)
|
|
|
|
# This should be how to make CTest aware of the tests, but unfortunately it fails to link. The tests run fine on their own, so this is left as a TODO
|
|
# list(APPEND CMAKE_MODULE_PATH ${Catch2_SOURCE_DIR}/extras)
|
|
# include(CTest)
|
|
# include(Catch)
|
|
# catch_discover_tests(vk-bootstrap-test)
|