diff options
Diffstat (limited to 'subprojects/packagefiles/boost/meson.build')
-rw-r--r-- | subprojects/packagefiles/boost/meson.build | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/subprojects/packagefiles/boost/meson.build b/subprojects/packagefiles/boost/meson.build new file mode 100644 index 0000000..f991d36 --- /dev/null +++ b/subprojects/packagefiles/boost/meson.build @@ -0,0 +1,44 @@ +project('boost', 'cpp', + version: '1.77', + meson_version: '>=0.56.0') + +cxx = meson.get_compiler('cpp') + +# Build if not available +build_dir = join_paths(meson.current_source_dir(), 'build') +r = run_command('[','!','-d', build_dir, ']') +if r.returncode() == 0 + r = run_command('./bootstrap.sh', '--with-libraries=coroutine,filesystem,iostreams,program_options,regex,system') + assert(r.returncode() == 0, + 'Bootstrap failed' + + '\nstdout: ' + r.stdout().strip() + + '\nstderr: ' + r.stderr().strip()) + + r = run_command('./b2', 'install','--prefix=build') + assert(r.returncode() == 0, + 'b2 failed' + + '\nstdout: ' + r.stdout().strip() + + '\nstderr: ' + r.stderr().strip()) +endif + +include_dir = join_paths('build', 'include') +lib_dir = join_paths(meson.current_source_dir(), 'build', 'lib') + +custom_dep = declare_dependency(link_args: ['-L' + lib_dir, + '-Wl,-rpath-link,' + lib_dir + ]) + +boost_inc = include_directories(include_dir, is_system:true) +boost_dep = declare_dependency( + include_directories : boost_inc, + dependencies : [cxx.find_library('boost_context', dirs: lib_dir, static: true), + cxx.find_library('boost_filesystem', dirs: lib_dir, static: true), + cxx.find_library('boost_regex', dirs: lib_dir, static: true), + cxx.find_library('boost_program_options', dirs: lib_dir, static: true), + cxx.find_library('boost_thread', dirs: lib_dir, static: true), + cxx.find_library('boost_coroutine', dirs: lib_dir, static: true), + cxx.find_library('boost_iostreams', dirs: lib_dir, static: true), + custom_dep + ]) + +meson.override_dependency('boost', boost_dep) |