From f070670e77fe36ece1a89ce00c13419de354b9ce Mon Sep 17 00:00:00 2001 From: Dudemanguy Date: Thu, 23 Feb 2023 10:00:21 -0600 Subject: dependencies: add custom atomic dependency Almost exactly the same as how the dl dependency works. On certain systems (like BSDs that use clang), stdatomic is provided by compiler-rt and doesn't need a separate library explictly linked. On a typical GNU/LINUX system, atomic is a separate library that must be explictly found and linked against. So just add a builtin and system method for these two use cases. --- docs/markdown/Dependencies.md | 10 ++++++++++ docs/markdown/snippets/atomic-dependency.md | 9 +++++++++ 2 files changed, 19 insertions(+) create mode 100644 docs/markdown/snippets/atomic-dependency.md (limited to 'docs') diff --git a/docs/markdown/Dependencies.md b/docs/markdown/Dependencies.md index 93f75d5a9..2e255b209 100644 --- a/docs/markdown/Dependencies.md +++ b/docs/markdown/Dependencies.md @@ -317,6 +317,16 @@ dep = dependency('appleframeworks', modules : 'foundation') These dependencies can never be found for non-OSX hosts. +## atomic (stdatomic) + +*(added 1.7.0)* + +Provides access to the atomic operations library. This first attempts +to look for a valid atomic external library before trying to fallback +to what is provided by the C runtime libraries. + +`method` may be `auto`, `builtin` or `system`. + ## Blocks Enable support for Clang's blocks extension. diff --git a/docs/markdown/snippets/atomic-dependency.md b/docs/markdown/snippets/atomic-dependency.md new file mode 100644 index 000000000..2eef5e0b1 --- /dev/null +++ b/docs/markdown/snippets/atomic-dependency.md @@ -0,0 +1,9 @@ +## New custom dependency for atomic + +``` +dependency('atomic') +``` + +checks for the availability of the atomic operation library. First, it looks +for the atomic library. If that is not found, then it will try to use what is +provided by the libc. -- cgit v1.2.3