meson: fix stdatomic detection on bsd

BSDs use compiler-rt instead of libatomic for atomic types. In this
case, we can handle it similar to how dl is detected. Check for the
library (allowing for it to fail), and then check for a header symbol
while linking latomic. Fixes #10906.
This commit is contained in:
Dudemanguy 2022-11-20 20:37:12 -06:00 committed by sfan5
parent 954d53612c
commit 37869fbcd7
1 changed files with 4 additions and 3 deletions

View File

@ -716,10 +716,11 @@ if features['sdl2-gamepad']
sources += files('input/sdl_gamepad.c')
endif
stdatomic = cc.find_library('atomic', required: get_option('stdatomic'))
features += {'stdatomic': stdatomic.found()}
stdatomic_dep = cc.find_library('atomic', required: false)
features += {'stdatomic': cc.has_header_symbol('stdatomic.h', 'atomic_int', dependencies: stdatomic_dep,
required: get_option('stdatomic'))}
if features['stdatomic']
dependencies += stdatomic
dependencies += stdatomic_dep
endif
uchardet_opt = get_option('uchardet').require(