diff options
author | David Robillard <d@drobilla.net> | 2022-07-17 17:33:37 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-07-18 20:10:45 -0400 |
commit | e2731cf7008b2f1f9e1f44283b07c3fe0296bbee (patch) | |
tree | 7e24b7005920af4d0e969000dc80e3fdffe3eb41 /meson/library | |
parent | 1cda90c39e4b2c55c775cd6bd6dcb08aee4d640d (diff) | |
download | sord-e2731cf7008b2f1f9e1f44283b07c3fe0296bbee.tar.gz sord-e2731cf7008b2f1f9e1f44283b07c3fe0296bbee.tar.bz2 sord-e2731cf7008b2f1f9e1f44283b07c3fe0296bbee.zip |
Switch to meson build system
Diffstat (limited to 'meson/library')
-rw-r--r-- | meson/library/meson.build | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/meson/library/meson.build b/meson/library/meson.build new file mode 100644 index 0000000..fffc831 --- /dev/null +++ b/meson/library/meson.build @@ -0,0 +1,31 @@ +# Copyright 2020-2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +# General definitions for building libraries. +# +# These are essentially workarounds for Meson/Windows/MSVC. Unfortunately, +# Meson's default_library option doesn't support shared and static builds very +# well. In particular, it's often necessary to define different symbols for +# static and shared builds of libraries so that symbols can be exported. To +# work around this, default_library=both isn't supported on Windows. On other +# platforms with GCC-like compilers, we can support both because symbols can +# safely be exported in the same way (giving them default visibility) in both +# static and shared builds. + +default_library = get_option('default_library') +host_system = host_machine.system() + +# Abort on Windows with default_library=both +if host_system == 'windows' and default_library == 'both' + error('default_library=both is not supported on Windows') +endif + +# Set library_suffix to the suffix for libraries +if host_system == 'windows' and default_library == 'shared' + # Meson appends a version to the name only for DLLs, which leads to + # inconsistent library names, like `mylib-1-1`. So, provide no suffix to + # ultimately get the same name as on other platforms, like `mylib-1`. + library_suffix = '' +else + library_suffix = '-@0@'.format(meson.project_version().split('.')[0]) +endif |