meson: Use declare_dependency for libraries
Now example binaries and tests don't have to be aware of the nuances for
configuring the build to use the library. This makes the project library
look like any other system dependency.
Change-Id: I9bbf33d32057964011fd8387e742e0d92117f848
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/example/meson.build b/example/meson.build
index 815a78f..8762e3b 100644
--- a/example/meson.build
+++ b/example/meson.build
@@ -3,7 +3,6 @@
foreach example : examples
executable(example, example + '.cpp',
- include_directories: includes,
implicit_include_directories: false,
- link_with: stdplus)
+ dependencies: stdplus)
endforeach
diff --git a/meson.build b/meson.build
index 064ebf6..e7c30b1 100644
--- a/meson.build
+++ b/meson.build
@@ -6,8 +6,6 @@
'cpp_std=c++17'
])
-includes = include_directories('src')
-
subdir('src')
build_tests = get_option('tests')
diff --git a/src/meson.build b/src/meson.build
index 1653a7d..a6e82b9 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,13 +1,19 @@
-stdplus = library(
+stdplus_headers = include_directories('.')
+
+stdplus_lib = library(
'stdplus',
[
'stdplus/signal.cpp',
],
- include_directories: includes,
+ include_directories: stdplus_headers,
implicit_include_directories: false,
version: meson.project_version(),
install: true)
+stdplus = declare_dependency(
+ include_directories: stdplus_headers,
+ link_with: stdplus_lib)
+
import('pkgconfig').generate(
name: 'stdplus',
description: 'C++ helper utilities',
diff --git a/test/meson.build b/test/meson.build
index f11864e..bcd016e 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -10,8 +10,6 @@
foreach t : tests
test(t, executable(t.underscorify(), t + '.cpp',
- include_directories: includes,
implicit_include_directories: false,
- link_with: stdplus,
- dependencies: [gtest, gmock]))
+ dependencies: [stdplus, gtest, gmock]))
endforeach