Commit 004ecbd
committed
Fix string_view ABI mismatch between library and consumers
The library was forced to build with CMAKE_CXX_STANDARD 11, so
JSONCPP_HAS_STRING_VIEW was never defined at compile time. Consumers
building with C++17 would see the string_view APIs in the header but
fail to link them.
Fix:
- Remove the global CMAKE_CXX_STANDARD 11 override; the existing
target_compile_features(cxx_std_11) already enforces the minimum.
- Detect string_view support at configure time with
check_cxx_source_compiles and export JSONCPP_HAS_STRING_VIEW as a
PUBLIC compile definition on all library targets, so consumers
always see the same value the library was built with.
- Guard the __cplusplus fallback in value.h so it does not override
the CMake-set define.
Fixes #15951 parent ef08771 commit 004ecbd
3 files changed
Lines changed: 20 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | 43 | | |
50 | 44 | | |
51 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| 46 | + | |
45 | 47 | | |
46 | 48 | | |
47 | 49 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
28 | 34 | | |
29 | 35 | | |
30 | 36 | | |
| |||
129 | 135 | | |
130 | 136 | | |
131 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
132 | 142 | | |
133 | 143 | | |
134 | 144 | | |
| |||
162 | 172 | | |
163 | 173 | | |
164 | 174 | | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
165 | 179 | | |
166 | 180 | | |
167 | 181 | | |
| |||
188 | 202 | | |
189 | 203 | | |
190 | 204 | | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
191 | 209 | | |
192 | 210 | | |
193 | 211 | | |
| |||
0 commit comments