Add the StrictBinaryUTF8 and DeleteDeprecatedFunctions Meson options
JSON_StrictBinaryUTF8 (#5741) and JSON_DeleteDeprecatedFunctions (#5755) arrived with develop but were missing from the Meson build and the pkg-config file, so check_build_options failed. Both Meson options default to false and add JSON_STRICT_BINARY_UTF8=1 and JSON_DELETE_DEPRECATED_FUNCTIONS=1 to the dependency, the pkg-config file, and the generated CMake target; CMake's pkg-config file now carries both definitions too. The ci_meson_install job sets and checks them in its non-default install. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
5 files changed
+30
-2
No files matched your search
@@ -53,7 +53,7 @@ jobs:
|
|||||||
cmake --build build-import
|
cmake --build build-import
|
||||||
- name: Install with Meson and non-default options
|
- name: Install with Meson and non-default options
|
||||||
run: |
|
run: |
|
||||||
meson setup build-meson-options --prefix=${{ github.workspace }}/install-options -DMultipleHeaders=true -DDiagnostics=true -DGlobalUDLs=false -DDisableTupleReferenceConversion=true
|
meson setup build-meson-options --prefix=${{ github.workspace }}/install-options -DMultipleHeaders=true -DDiagnostics=true -DGlobalUDLs=false -DDisableTupleReferenceConversion=true -DStrictBinaryUTF8=true -DDeleteDeprecatedFunctions=true
|
||||||
meson install -C build-meson-options
|
meson install -C build-meson-options
|
||||||
- name: Check that the options reach the installed files
|
- name: Check that the options reach the installed files
|
||||||
run: |
|
run: |
|
||||||
@@ -63,7 +63,10 @@ jobs:
|
|||||||
echo "$cflags" | grep -q -- '-DJSON_DIAGNOSTICS=1'
|
echo "$cflags" | grep -q -- '-DJSON_DIAGNOSTICS=1'
|
||||||
echo "$cflags" | grep -q -- '-DJSON_USE_GLOBAL_UDLS=0'
|
echo "$cflags" | grep -q -- '-DJSON_USE_GLOBAL_UDLS=0'
|
||||||
echo "$cflags" | grep -q -- '-DJSON_DISABLE_TUPLE_REFERENCE_CONVERSION=1'
|
echo "$cflags" | grep -q -- '-DJSON_DISABLE_TUPLE_REFERENCE_CONVERSION=1'
|
||||||
|
echo "$cflags" | grep -q -- '-DJSON_STRICT_BINARY_UTF8=1'
|
||||||
|
echo "$cflags" | grep -q -- '-DJSON_DELETE_DEPRECATED_FUNCTIONS=1'
|
||||||
grep -q 'JSON_USE_GLOBAL_UDLS=0;JSON_DISABLE_TUPLE_REFERENCE_CONVERSION=1;JSON_DIAGNOSTICS=1' install-options/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake
|
grep -q 'JSON_USE_GLOBAL_UDLS=0;JSON_DISABLE_TUPLE_REFERENCE_CONVERSION=1;JSON_DIAGNOSTICS=1' install-options/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake
|
||||||
|
grep -q 'JSON_STRICT_BINARY_UTF8=1;JSON_DELETE_DEPRECATED_FUNCTIONS=1' install-options/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake
|
||||||
cmake -S tests/cmake_import/project -B build-import-options -DCMAKE_PREFIX_PATH=${{ github.workspace }}/install-options
|
cmake -S tests/cmake_import/project -B build-import-options -DCMAKE_PREFIX_PATH=${{ github.workspace }}/install-options
|
||||||
cmake --build build-import-options
|
cmake --build build-import-options
|
||||||
- name: Install with Meson and the include directory outside the prefix
|
- name: Install with Meson and the include directory outside the prefix
|
||||||
|
|||||||
@@ -216,6 +216,12 @@ endif()
|
|||||||
if (JSON_StrictNulHandling)
|
if (JSON_StrictNulHandling)
|
||||||
string(APPEND NLOHMANN_JSON_PKGCONFIG_CFLAGS " -DJSON_STRICT_NUL_HANDLING=1")
|
string(APPEND NLOHMANN_JSON_PKGCONFIG_CFLAGS " -DJSON_STRICT_NUL_HANDLING=1")
|
||||||
endif()
|
endif()
|
||||||
|
if (JSON_StrictBinaryUTF8)
|
||||||
|
string(APPEND NLOHMANN_JSON_PKGCONFIG_CFLAGS " -DJSON_STRICT_BINARY_UTF8=1")
|
||||||
|
endif()
|
||||||
|
if (JSON_DeleteDeprecatedFunctions)
|
||||||
|
string(APPEND NLOHMANN_JSON_PKGCONFIG_CFLAGS " -DJSON_DELETE_DEPRECATED_FUNCTIONS=1")
|
||||||
|
endif()
|
||||||
configure_file(
|
configure_file(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in"
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
||||||
|
|||||||
@@ -133,7 +133,8 @@ subproject fallback, rather than using the subproject directly.
|
|||||||
The options that change the library's configuration are available in Meson as well, named like the
|
The options that change the library's configuration are available in Meson as well, named like the
|
||||||
[CMake options](cmake.md#cmake-options) without the `JSON_` prefix: `MultipleHeaders`, `GlobalUDLs`,
|
[CMake options](cmake.md#cmake-options) without the `JSON_` prefix: `MultipleHeaders`, `GlobalUDLs`,
|
||||||
`ImplicitConversions`, `DisableEnumSerialization`, `DisableTupleReferenceConversion`, `Diagnostics`,
|
`ImplicitConversions`, `DisableEnumSerialization`, `DisableTupleReferenceConversion`, `Diagnostics`,
|
||||||
`Diagnostic_Positions`, `LegacyDiscardedValueComparison`, and `StrictNulHandling`. They have the same defaults as in CMake, except that
|
`Diagnostic_Positions`, `LegacyDiscardedValueComparison`, `StrictNulHandling`, `StrictBinaryUTF8`, and
|
||||||
|
`DeleteDeprecatedFunctions`. They have the same defaults as in CMake, except that
|
||||||
`MultipleHeaders` is `false`. Set them with `-D` when setting up the build, or with the subproject name as prefix when
|
`MultipleHeaders` is `false`. Set them with `-D` when setting up the build, or with the subproject name as prefix when
|
||||||
the library is used as a subproject:
|
the library is used as a subproject:
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,12 @@ endif
|
|||||||
if get_option('StrictNulHandling')
|
if get_option('StrictNulHandling')
|
||||||
json_defines += 'JSON_STRICT_NUL_HANDLING=1'
|
json_defines += 'JSON_STRICT_NUL_HANDLING=1'
|
||||||
endif
|
endif
|
||||||
|
if get_option('StrictBinaryUTF8')
|
||||||
|
json_defines += 'JSON_STRICT_BINARY_UTF8=1'
|
||||||
|
endif
|
||||||
|
if get_option('DeleteDeprecatedFunctions')
|
||||||
|
json_defines += 'JSON_DELETE_DEPRECATED_FUNCTIONS=1'
|
||||||
|
endif
|
||||||
|
|
||||||
cpp_args = []
|
cpp_args = []
|
||||||
foreach define : json_defines
|
foreach define : json_defines
|
||||||
|
|||||||
@@ -52,3 +52,15 @@ option(
|
|||||||
value: false,
|
value: false,
|
||||||
description: 'Enable strict NUL-byte handling',
|
description: 'Enable strict NUL-byte handling',
|
||||||
)
|
)
|
||||||
|
option(
|
||||||
|
'StrictBinaryUTF8',
|
||||||
|
type: 'boolean',
|
||||||
|
value: false,
|
||||||
|
description: 'Enable UTF-8 checks in the CBOR, UBJSON, BJData, and BSON writers',
|
||||||
|
)
|
||||||
|
option(
|
||||||
|
'DeleteDeprecatedFunctions',
|
||||||
|
type: 'boolean',
|
||||||
|
value: false,
|
||||||
|
description: 'Delete the deprecated functions instead of only deprecating them',
|
||||||
|
)
|
||||||
Reference in new issue
Block a user