Hello community, here is the log from the commit of package meson for openSUSE:Leap:15.2 checked in at 2020-03-06 12:38:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/meson (Old) and /work/SRC/openSUSE:Leap:15.2/.meson.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "meson" Fri Mar 6 12:38:05 2020 rev:50 rq:779694 version:0.53.1 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/meson/meson.changes 2020-01-30 14:46:38.346782434 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.meson.new.26092/meson.changes 2020-03-06 12:38:54.786670975 +0100 @@ -1,0 +2,64 @@ +Tue Feb 18 14:07:46 UTC 2020 - Ondřej Súkup <[email protected]> + +- Add 6642.patch - allow skip python2 unittests + meson-testsuite-boost2.patch skip libboost_python tests on TW + +------------------------------------------------------------------- +Wed Feb 12 19:08:54 UTC 2020 - Dominique Leuenberger <[email protected]> + +- Add meson-6614.patch: cmake: Fix crash when no C++ compiler is + not installed (gh#mesonbuild/meson#6559). + +------------------------------------------------------------------- +Tue Feb 11 08:50:47 UTC 2020 - Frederic Crozat <[email protected]> + +- Add python2-PyYAML as BuildRequires for meson:test for SLE15. + +------------------------------------------------------------------- +Fri Jan 24 13:16:24 UTC 2020 - Dominique Leuenberger <[email protected]> + +- Update to version 0.53.1: + + Use python3 in some tests which were still using python. + + test_pkgconfig_gen_deps: set + PKG_CONFIG_SYSTEM_LIBRARY_PATH=/usr/lib. pkgconf automatically + prunes "system library paths" from its output. + + compilers: Derive CompilerArgs from collections instead of + typing. +- Drop meson-pkgconf-libdir.patch: fixed upstream. +- Rebase meson-testsuite-boost.patch. + +------------------------------------------------------------------- +Wed Jan 8 11:48:50 UTC 2020 - Dominique Leuenberger <[email protected]> + +- Update to version 0.53.0: + + A new module for filesystem operations. + + meson dist --include-subprojects. + + Added new Meson templates for Dlang, Rust, Objective-C + + Add a new summary() function + + Generic Overrider for Dynamic Linker selection + + fortran_std option + + python.dependency() embed kwarg + + Scalapack + + Search directories for find_program() + + Source tags targets + + Dictionary entry using string variable as key + + Improved CMake subprojects support + + compiler.get_linker_id() + + CUDA dependency + + Added global option to disable C++ RTTI + + Introspection API changes +- Add meson-testsuite-boost.patch: Fix detection of boost_python + names. This is apparently inconsistent accross distros. +- Add meson-pkgconf-libdir.patch: pkgconf does not honor /usr/lib + as 'system directory' on biarch systems. + +------------------------------------------------------------------- +Sat Nov 30 12:25:34 UTC 2019 - Dominique Leuenberger <[email protected]> + +- Update to version 0.52.1: + + linkers: Concatenate -L and the directory. + + Remove duplicated object files in static libraries. + + Revert "Add `-Wl,-rpath-link` for secondary dependencies". +- Drop meson-testsuite.patch: fixed upstream. + +------------------------------------------------------------------- @@ -9,0 +74,26 @@ + +------------------------------------------------------------------- +Mon Oct 7 09:56:54 UTC 2019 - Dominique Leuenberger <[email protected]> + +- Update to version 0.52.0: + + Gettext targets are ignored if gettext is not installed. + + Support taking environment values from a dictionary. + + Enhancements to the pkg_config_path argument. + + The meson test program now accepts an additional "--gdb-path" + argument to specify the GDB binary. + + Splitting of Compiler.get_function_attribute('visibility'). + + Compiler and dynamic linker representation split. + + Enhancements to the source_set module. + + added --only test(s) option to run_project_tests.py. + + Experimental Webassembly support via Emscripten. + + Version check in find_program(). + + Improved support for static libraries. + + Enhancements to the kconfig module. + + Enhancements to configure_file(). + + Projects args can be set separately for build and host machines + (potentially breaking change). + + Dist is now a top level command. +- Rebase meson-test-installed-bin.patch and meson-distutils.patch. +- Drop gcc9-sanitizer.patch: no longer needed. +- Add meson-testsuite.patch: linkers: Concatenate -L and the + directory. Old: ---- gcc9-sanitizer.patch meson-0.51.2.tar.gz meson-0.51.2.tar.gz.asc New: ---- 6642.patch meson-0.53.1.tar.gz meson-0.53.1.tar.gz.asc meson-6614.patch meson-testsuite-boost.patch meson-testsuite-boost2.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ meson.spec ++++++ --- /var/tmp/diff_new_pack.XF6Wf4/_old 2020-03-06 12:38:55.702671532 +0100 +++ /var/tmp/diff_new_pack.XF6Wf4/_new 2020-03-06 12:38:55.706671534 +0100 @@ -1,7 +1,7 @@ # # spec file for package meson # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -28,7 +28,7 @@ %{!?vim_data_dir:%global vim_data_dir %{_datadir}/vim} %bcond_with setuptools Name: meson%{name_ext} -Version: 0.51.2 +Version: 0.53.1 Release: 0 Summary: Python-based build system License: Apache-2.0 @@ -49,7 +49,14 @@ Patch4: meson-fix-gcc48.patch # PATCH-FEATURE-OPENSUSE meson-distutils.patch [email protected] -- build and install using distutils instead of full setuptools Patch5: meson-distutils.patch -Patch6: gcc9-sanitizer.patch +# PATCH-FIX-UPSTREAM meson-testsuite-boost.patch [email protected] -- https://github.com/mesonbuild/meson/issues/4788 +Patch6: meson-testsuite-boost.patch +# PATCH-FIX-UPSTREAM meson-6614.patch [email protected] -- cmake: Fix crash when no C++ compiler is not installed +Patch7: meson-6614.patch +# PATCH-FIX-UPSTREAM 6642.patch [email protected] -- Fix skip python2 unittests +Patch8: 6642.patch +# PATCH-FIX-OPENSUSE meson-testsuite-boost2.patch [email protected] -- disable libboost_python tests +Patch9: meson-testsuite-boost2.patch BuildRequires: fdupes BuildRequires: python-rpm-macros BuildRequires: python3-base @@ -87,8 +94,15 @@ BuildRequires: meson = %{version} BuildRequires: ninja BuildRequires: pkgconfig +%if 0%{?suse_version} <= 1500 +BuildRequires: python2-PyYAML +%endif +%if 0%{?suse_version} < 1550 BuildRequires: python2-devel +%endif +BuildRequires: distribution-release BuildRequires: python3-gobject +BuildRequires: python3-pytest-xdist BuildRequires: python3-setuptools BuildRequires: zlib-devel-static BuildRequires: cmake(Qt5Core) @@ -100,14 +114,18 @@ BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gtk-doc) BuildRequires: pkgconfig(ncurses) -BuildRequires: pkgconfig(python3) >= 3.4 +BuildRequires: pkgconfig(python3) >= 3.5 BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(vapigen) BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(zlib) %if 0%{?suse_version} >= 1500 +%if 0%{?suse_version} < 1550 +BuildRequires: libboost_python-devel +%endif BuildRequires: java-headless BuildRequires: libboost_log-devel +BuildRequires: libboost_python3-devel BuildRequires: libboost_system-devel BuildRequires: libboost_test-devel BuildRequires: libboost_thread-devel @@ -165,7 +183,16 @@ %if !%{with setuptools} %patch5 -p1 %endif -%patch6 -p1 +(cd "test cases/frameworks/1 boost" +%patch6 -p0 +) +%patch7 -p1 +%patch8 -p1 +%if 0%{?suse_version} >= 1550 +(cd "test cases/frameworks/1 boost" +%patch9 -p0 +) +%endif # Remove static boost tests from "test cases/frameworks/1 boost/". sed -i "/static/d" test\ cases/frameworks/1\ boost/meson.build @@ -190,7 +217,6 @@ %if !%{with test} %python3_build %else -# FIXME: you should use %%meson macros # Ensure we have no mesonbuild / meson in CWD, thus guaranteeing we use meson in $PATH rm -r meson.py mesonbuild %endif ++++++ gcc9-sanitizer.patch -> 6642.patch ++++++ --- /work/SRC/openSUSE:Leap:15.2/meson/gcc9-sanitizer.patch 2020-01-30 14:46:37.554782013 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.meson.new.26092/6642.patch 2020-03-06 12:38:54.314670688 +0100 @@ -1,13 +1,23 @@ -diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py -index e27ae2b..bc10824 100644 ---- a/mesonbuild/compilers/compilers.py -+++ b/mesonbuild/compilers/compilers.py -@@ -427,7 +427,7 @@ def sanitizer_compile_args(value): - def sanitizer_link_args(value): - if value == 'none': - return [] -- args = ['-fsanitize=' + value] -+ args = ['-fsanitize=' + value, '-ldl', '-lrt', '-lm', '-lpthread'] - return args - - def option_enabled(boptions, options, option): +From 2d9d7857b07002668600e2d076dc89685ea8da40 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20S=C3=BAkup?= + <[email protected]> +Date: Tue, 18 Feb 2020 09:49:45 +0100 +Subject: [PATCH] Skip Py2 tests correctly also on other systems than Debian + +--- + run_unittests.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: meson-0.53.1/run_unittests.py +=================================================================== +--- meson-0.53.1.orig/run_unittests.py ++++ meson-0.53.1/run_unittests.py +@@ -6659,7 +6659,7 @@ class NativeFileTests(BasePlatformTests) + # python module breaks. This is fine on other OSes because they + # don't need the extra indirection. + raise unittest.SkipTest('bat indirection breaks internal sanity checks.') +- if os.path.exists('/etc/debian_version'): ++ if os.path.exists('/etc/os-release') or os.path.exists('/etc/debian_version'): + rc = subprocess.call(['pkg-config', '--cflags', 'python2'], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL) ++++++ meson-0.51.2.tar.gz -> meson-0.53.1.tar.gz ++++++ ++++ 74989 lines of diff (skipped) ++++++ meson-6614.patch ++++++ >From c6684f3eee34888759171dd790f332cc57f00f60 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger <[email protected]> Date: Wed, 12 Feb 2020 19:23:25 +0100 Subject: [PATCH] cmake: Fix crash when no C++ compiler is not installed (fixes #6559) --- mesonbuild/cmake/executor.py | 96 +++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/mesonbuild/cmake/executor.py b/mesonbuild/cmake/executor.py index c3303ebd6c..7b9edf7b0c 100644 --- a/mesonbuild/cmake/executor.py +++ b/mesonbuild/cmake/executor.py @@ -23,6 +23,7 @@ import os import shutil import ctypes +import textwrap from .. import mlog, mesonlib from ..mesonlib import PerMachine, Popen_safe, version_compare, MachineChoice @@ -264,9 +265,12 @@ def choose_compiler(lang: str) -> T.Tuple[str, str]: if lang in compilers: exe_list = compilers[lang].get_exelist() else: - comp_obj = self.environment.compiler_from_language(lang, MachineChoice.BUILD) - if comp_obj is not None: - exe_list = comp_obj.get_exelist() + try: + comp_obj = self.environment.compiler_from_language(lang, MachineChoice.BUILD) + if comp_obj is not None: + exe_list = comp_obj.get_exelist() + except Exception: + pass if len(exe_list) == 1: return make_abs(exe_list[0], lang), '' @@ -278,10 +282,7 @@ def choose_compiler(lang: str) -> T.Tuple[str, str]: c_comp, c_launcher = choose_compiler('c') cxx_comp, cxx_launcher = choose_compiler('cpp') - try: - fortran_comp, fortran_launcher = choose_compiler('fortran') - except Exception: - fortran_comp = fortran_launcher = '' + fortran_comp, fortran_launcher = choose_compiler('fortran') # on Windows, choose_compiler returns path with \ as separator - replace by / before writing to CMAKE file c_comp = c_comp.replace('\\', '/') @@ -302,47 +303,50 @@ def choose_compiler(lang: str) -> T.Tuple[str, str]: cxx_comp_file = comp_dir / 'CMakeCXXCompiler.cmake' fortran_comp_file = comp_dir / 'CMakeFortranCompiler.cmake' - if not c_comp_file.is_file(): - c_comp_file.write_text('''# Fake CMake file to skip the boring and slow stuff -set(CMAKE_C_COMPILER "{}") # Should be a valid compiler for try_compile, etc. -set(CMAKE_C_COMPILER_LAUNCHER "{}") # The compiler launcher (if presentt) -set(CMAKE_C_COMPILER_ID "GNU") # Pretend we have found GCC -set(CMAKE_COMPILER_IS_GNUCC 1) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_SIZEOF_VOID_P "{}") -'''.format(c_comp, c_launcher, ctypes.sizeof(ctypes.c_voidp))) - - if not cxx_comp_file.is_file(): - cxx_comp_file.write_text('''# Fake CMake file to skip the boring and slow stuff -set(CMAKE_CXX_COMPILER "{}") # Should be a valid compiler for try_compile, etc. -set(CMAKE_CXX_COMPILER_LAUNCHER "{}") # The compiler launcher (if presentt) -set(CMAKE_CXX_COMPILER_ID "GNU") # Pretend we have found GCC -set(CMAKE_COMPILER_IS_GNUCXX 1) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) -set(CMAKE_SIZEOF_VOID_P "{}") -'''.format(cxx_comp, cxx_launcher, ctypes.sizeof(ctypes.c_voidp))) + if c_comp and not c_comp_file.is_file(): + c_comp_file.write_text(textwrap.dedent('''\ + # Fake CMake file to skip the boring and slow stuff + set(CMAKE_C_COMPILER "{}") # Should be a valid compiler for try_compile, etc. + set(CMAKE_C_COMPILER_LAUNCHER "{}") # The compiler launcher (if presentt) + set(CMAKE_C_COMPILER_ID "GNU") # Pretend we have found GCC + set(CMAKE_COMPILER_IS_GNUCC 1) + set(CMAKE_C_COMPILER_LOADED 1) + set(CMAKE_C_COMPILER_WORKS TRUE) + set(CMAKE_C_ABI_COMPILED TRUE) + set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) + set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) + set(CMAKE_SIZEOF_VOID_P "{}") + '''.format(c_comp, c_launcher, ctypes.sizeof(ctypes.c_voidp)))) + + if cxx_comp and not cxx_comp_file.is_file(): + cxx_comp_file.write_text(textwrap.dedent('''\ + # Fake CMake file to skip the boring and slow stuff + set(CMAKE_CXX_COMPILER "{}") # Should be a valid compiler for try_compile, etc. + set(CMAKE_CXX_COMPILER_LAUNCHER "{}") # The compiler launcher (if presentt) + set(CMAKE_CXX_COMPILER_ID "GNU") # Pretend we have found GCC + set(CMAKE_COMPILER_IS_GNUCXX 1) + set(CMAKE_CXX_COMPILER_LOADED 1) + set(CMAKE_CXX_COMPILER_WORKS TRUE) + set(CMAKE_CXX_ABI_COMPILED TRUE) + set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) + set(CMAKE_SIZEOF_VOID_P "{}") + '''.format(cxx_comp, cxx_launcher, ctypes.sizeof(ctypes.c_voidp)))) if fortran_comp and not fortran_comp_file.is_file(): - fortran_comp_file.write_text('''# Fake CMake file to skip the boring and slow stuff -set(CMAKE_Fortran_COMPILER "{}") # Should be a valid compiler for try_compile, etc. -set(CMAKE_Fortran_COMPILER_LAUNCHER "{}") # The compiler launcher (if presentt) -set(CMAKE_Fortran_COMPILER_ID "GNU") # Pretend we have found GCC -set(CMAKE_COMPILER_IS_GNUG77 1) -set(CMAKE_Fortran_COMPILER_LOADED 1) -set(CMAKE_Fortran_COMPILER_WORKS TRUE) -set(CMAKE_Fortran_ABI_COMPILED TRUE) -set(CMAKE_Fortran_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_Fortran_SOURCE_FILE_EXTENSIONS f;F;fpp;FPP;f77;F77;f90;F90;for;For;FOR;f95;F95) -set(CMAKE_SIZEOF_VOID_P "{}") -'''.format(fortran_comp, fortran_launcher, ctypes.sizeof(ctypes.c_voidp))) + fortran_comp_file.write_text(textwrap.dedent('''\ + # Fake CMake file to skip the boring and slow stuff + set(CMAKE_Fortran_COMPILER "{}") # Should be a valid compiler for try_compile, etc. + set(CMAKE_Fortran_COMPILER_LAUNCHER "{}") # The compiler launcher (if presentt) + set(CMAKE_Fortran_COMPILER_ID "GNU") # Pretend we have found GCC + set(CMAKE_COMPILER_IS_GNUG77 1) + set(CMAKE_Fortran_COMPILER_LOADED 1) + set(CMAKE_Fortran_COMPILER_WORKS TRUE) + set(CMAKE_Fortran_ABI_COMPILED TRUE) + set(CMAKE_Fortran_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) + set(CMAKE_Fortran_SOURCE_FILE_EXTENSIONS f;F;fpp;FPP;f77;F77;f90;F90;for;For;FOR;f95;F95) + set(CMAKE_SIZEOF_VOID_P "{}") + '''.format(fortran_comp, fortran_launcher, ctypes.sizeof(ctypes.c_voidp)))) return self.call(args, build_dir, env) ++++++ meson-distutils.patch ++++++ --- /var/tmp/diff_new_pack.XF6Wf4/_old 2020-03-06 12:38:57.318672514 +0100 +++ /var/tmp/diff_new_pack.XF6Wf4/_new 2020-03-06 12:38:57.330672521 +0100 @@ -1,9 +1,9 @@ -Index: meson-0.49.0/setup.py +Index: meson-0.52.0/setup.py =================================================================== ---- meson-0.49.0.orig/setup.py -+++ meson-0.49.0/setup.py -@@ -22,7 +22,7 @@ if sys.version_info < (3, 5, 0): - sys.exit(1) +--- meson-0.52.0.orig/setup.py ++++ meson-0.52.0/setup.py +@@ -21,7 +21,7 @@ if sys.version_info < (3, 5, 2): + '\nMeson requires Python 3.5.2 or greater'.format(sys.version)) from mesonbuild.coredata import version -from setuptools import setup ++++++ meson-test-installed-bin.patch ++++++ --- /var/tmp/diff_new_pack.XF6Wf4/_old 2020-03-06 12:38:57.606672689 +0100 +++ /var/tmp/diff_new_pack.XF6Wf4/_new 2020-03-06 12:38:57.622672698 +0100 @@ -1,11 +1,13 @@ ---- a/run_tests.py -+++ b/run_tests.py -@@ -104,18 +104,10 @@ def get_meson_script(): +Index: meson-0.53.0/run_tests.py +=================================================================== +--- meson-0.53.0.orig/run_tests.py ++++ meson-0.53.0/run_tests.py +@@ -134,18 +134,10 @@ def get_meson_script(): Also used by run_unittests.py to determine what meson to run when not running in-process (which is the default). ''' - # Is there a meson.py next to the mesonbuild currently in use? -- mesonbuild_dir = Path(mesonbuild.__file__).resolve().parent.parent +- mesonbuild_dir = Path(mesonmain.__file__).resolve().parent.parent - meson_script = mesonbuild_dir / 'meson.py' - if meson_script.is_file(): - return str(meson_script) @@ -21,7 +23,7 @@ def get_backend_args_for_dir(backend, builddir): ''' -@@ -296,12 +288,12 @@ def main(): +@@ -363,12 +355,12 @@ def main(): else: env['PYTHONPATH'] = temp_dir if not cross: @@ -37,6 +39,6 @@ + #returncode += subprocess.call(cmd, env=env) + #if options.failfast and returncode != 0: + # return returncode - cmd = mesonlib.python_command + ['run_unittests.py', '-v'] - if options.failfast: - cmd += ['--failfast'] + if no_unittests: + print('Skipping all unit tests.') + returncode = 0 ++++++ meson-testsuite-boost.patch ++++++ diff --git a/test cases/frameworks/1 boost/meson.build b/test cases/frameworks/1 boost/meson.build index eec8728e..c02223a0 100644 --- meson.build +++ meson.build @@ -35,28 +35,14 @@ python3dep = python3.dependency(required: host_machine.system() == 'linux', embe # compile python 2/3 modules only if we found a corresponding python version if(python2dep.found() and host_machine.system() == 'linux') - if(dep.version().version_compare('>=1.67')) - # if we have a new version of boost, we need to construct the module name based - # on the installed version of python (and hope that they match the version boost - # was compiled against) - py2version_string = ''.join(python2dep.version().split('.')) - bpython2dep = dependency('boost', modules : ['python' + py2version_string], required: false, disabler: true) - else - # if we have an older version of boost, we need to use the old module names - bpython2dep = dependency('boost', modules : ['python'], required: false, disabler: true) - endif + bpython2dep = dependency('boost', modules : ['python'], required: false, disabler: true) else python2dep = disabler() bpython2dep = disabler() endif if(python3dep.found() and host_machine.system() == 'linux') - if(dep.version().version_compare('>=1.67')) - py3version_string = ''.join(python3dep.version().split('.')) - bpython3dep = dependency('boost', modules : ['python' + py3version_string], required: false, disabler: true) - else - bpython3dep = dependency('boost', modules : ['python3'], required: false, disabler: true) - endif + bpython3dep = dependency('boost', modules : ['python3'], required: false, disabler: true) else python3dep = disabler() bpython3dep = disabler() ++++++ meson-testsuite-boost2.patch ++++++ Index: meson-0.53.1/test cases/frameworks/1 boost/meson.build =================================================================== --- meson.build +++ meson.build @@ -22,24 +22,14 @@ endif # Use one without a library dependency and one with it. linkdep = dependency('boost', modules : ['thread', 'system', 'test']) -staticdep = dependency('boost', modules : ['thread', 'system'], static : true) testdep = dependency('boost', modules : ['unit_test_framework']) nomoddep = dependency('boost') extralibdep = dependency('boost', modules : ['thread', 'system', 'log_setup', 'log']) pymod = import('python') -python2 = pymod.find_installation('python2', required: host_machine.system() == 'linux', disabler: true) python3 = pymod.find_installation('python3', required: host_machine.system() == 'linux', disabler: true) -python2dep = python2.dependency(required: host_machine.system() == 'linux', embed: true, disabler: true) python3dep = python3.dependency(required: host_machine.system() == 'linux', embed: true, disabler: true) -# compile python 2/3 modules only if we found a corresponding python version -if(python2dep.found() and host_machine.system() == 'linux') - bpython2dep = dependency('boost', modules : ['python'], required: false, disabler: true) -else - python2dep = disabler() - bpython2dep = disabler() -endif if(python3dep.found() and host_machine.system() == 'linux') bpython3dep = dependency('boost', modules : ['python3'], required: false, disabler: true) @@ -49,24 +39,19 @@ else endif linkexe = executable('linkedexe', 'linkexe.cc', dependencies : linkdep) -staticexe = executable('staticlinkedexe', 'linkexe.cc', dependencies : staticdep) unitexe = executable('utf', 'unit_test.cpp', dependencies: testdep) nomodexe = executable('nomod', 'nomod.cpp', dependencies : nomoddep) extralibexe = executable('extralibexe', 'extralib.cpp', dependencies : extralibdep) # python modules are shared libraries -python2module = shared_library('python2_module', ['python_module.cpp'], dependencies: [python2dep, bpython2dep], name_prefix: '', cpp_args: ['-DMOD_NAME=python2_module']) python3module = shared_library('python3_module', ['python_module.cpp'], dependencies: [python3dep, bpython3dep], name_prefix: '', cpp_args: ['-DMOD_NAME=python3_module']) test('Boost linktest', linkexe) -test('Boost statictest', staticexe) test('Boost UTF test', unitexe) test('Boost nomod', nomodexe) test('Boost extralib test', extralibexe) # explicitly use the correct python interpreter so that we don't have to provide two different python scripts that have different shebang lines -python2interpreter = find_program(python2.path(), required: false, disabler: true) -test('Boost Python2', python2interpreter, args: ['./test_python_module.py', meson.current_build_dir()], workdir: meson.current_source_dir(), depends: python2module) python3interpreter = find_program(python3.path(), required: false, disabler: true) test('Boost Python3', python3interpreter, args: ['./test_python_module.py', meson.current_build_dir()], workdir: meson.current_source_dir(), depends: python3module) @@ -74,3 +59,4 @@ subdir('partial_dep') # check we can apply a version constraint dependency('boost', version: '>=@0@'.format(dep.version())) +
