mirror of
https://github.com/nlohmann/json
synced 2024-12-04 17:20:06 +00:00
d909f80960
* Add versioned inline namespace Add a versioned inline namespace to prevent ABI issues when linking code using multiple library versions. * Add namespace macros * Encode ABI information in inline namespace Add _diag suffix to inline namespace if JSON_DIAGNOSTICS is enabled, and _ldvcmp suffix if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON is enabled. * Move ABI-affecting macros into abi_macros.hpp * Move std_fs namespace definition into std_fs.hpp * Remove std_fs namespace from unit test * Format more files in tests directory * Add unit tests * Update documentation * Fix GDB pretty printer * fixup! Add namespace macros * Derive ABI prefix from NLOHMANN_JSON_VERSION_*
20 lines
695 B
CMake
20 lines
695 B
CMake
# test linking library built with different JSON_DIAGNOSTICS setting
|
|
# into the same executable
|
|
|
|
# compile code using JSON_DIAGNOSTICS=1
|
|
add_library(abi_compat_diag_on STATIC diag_on.cpp)
|
|
target_link_libraries(abi_compat_diag_on PUBLIC abi_compat_common)
|
|
|
|
# compile code using JSON_DIAGNOSTICS=0
|
|
add_library(abi_compat_diag_off STATIC diag_off.cpp)
|
|
target_link_libraries(abi_compat_diag_off PUBLIC abi_compat_common)
|
|
|
|
# build test executable and add test
|
|
add_executable(abi_compat_diag diag.cpp)
|
|
target_link_libraries(abi_compat_diag PRIVATE
|
|
abi_compat_main abi_compat_diag_on abi_compat_diag_off)
|
|
|
|
add_test(
|
|
NAME test-abi_compat_diag
|
|
COMMAND abi_compat_diag ${DOCTEST_TEST_FILTER})
|