diff --git a/extra/meson/0001-tests-skip-objc-nsstring-test-if-gnustep-is-not-inst.patch b/extra/meson/0001-tests-skip-objc-nsstring-test-if-gnustep-is-not-inst.patch new file mode 100644 index 000000000..973912ba8 --- /dev/null +++ b/extra/meson/0001-tests-skip-objc-nsstring-test-if-gnustep-is-not-inst.patch @@ -0,0 +1,30 @@ +From 89d4decc9cdda01590c2a734c0f58924bcf30777 Mon Sep 17 00:00:00 2001 +Message-Id: <89d4decc9cdda01590c2a734c0f58924bcf30777.1517146929.git.jan.steffens@gmail.com> +From: Dylan Baker +Date: Tue, 19 Dec 2017 20:05:24 -0800 +Subject: [PATCH 1/2] tests: skip objc nsstring test if gnustep is not + installed + +--- + test cases/objc/2 nsstring/meson.build | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/test cases/objc/2 nsstring/meson.build b/test cases/objc/2 nsstring/meson.build +index a877d746..7f2483f4 100644 +--- a/test cases/objc/2 nsstring/meson.build ++++ b/test cases/objc/2 nsstring/meson.build +@@ -5,7 +5,10 @@ if host_machine.system() == 'darwin' + elif host_machine.system() == 'cygwin' + error('MESON_SKIP_TEST GNUstep is not packaged for Cygwin.') + else +- dep = dependency('gnustep') ++ dep = dependency('gnustep', required : false) ++ if not dep.found() ++ error('MESON_SKIP_TEST: GNUstep is not installed') ++ endif + if host_machine.system() == 'linux' and meson.get_compiler('objc').get_id() == 'clang' + error('MESON_SKIP_TEST: GNUstep is broken on Linux with Clang') + endif +-- +2.16.1 + diff --git a/extra/meson/0002-d-Detect-recent-DMD-compilers.patch b/extra/meson/0002-d-Detect-recent-DMD-compilers.patch new file mode 100644 index 000000000..858aef5ba --- /dev/null +++ b/extra/meson/0002-d-Detect-recent-DMD-compilers.patch @@ -0,0 +1,33 @@ +From 67d5488753911b06b80afd57066e36b4eddec892 Mon Sep 17 00:00:00 2001 +Message-Id: <67d5488753911b06b80afd57066e36b4eddec892.1517146929.git.jan.steffens@gmail.com> +In-Reply-To: <89d4decc9cdda01590c2a734c0f58924bcf30777.1517146929.git.jan.steffens@gmail.com> +References: <89d4decc9cdda01590c2a734c0f58924bcf30777.1517146929.git.jan.steffens@gmail.com> +From: Matthias Klumpp +Date: Sun, 7 Jan 2018 17:57:43 +0100 +Subject: [PATCH 2/2] d: Detect recent DMD compilers + +They now are published by the D Language Foundation, and not Digital +Mars. Therefore, their signature has changed slightly. +(We can not check for 'DMD', because that string appears in every +compiler version output to denote the frontend version used by the +compiler). +--- + mesonbuild/environment.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py +index 0cb1450e..7fa4732a 100644 +--- a/mesonbuild/environment.py ++++ b/mesonbuild/environment.py +@@ -725,7 +725,7 @@ class Environment: + return compilers.LLVMDCompiler(exelist, version, is_cross) + elif 'gdc' in out: + return compilers.GnuDCompiler(exelist, version, is_cross) +- elif 'Digital Mars' in out: ++ elif 'The D Language Foundation' in out or 'Digital Mars' in out: + return compilers.DmdDCompiler(exelist, version, is_cross) + raise EnvironmentException('Unknown compiler "' + ' '.join(exelist) + '"') + +-- +2.16.1 + diff --git a/extra/meson/PKGBUILD b/extra/meson/PKGBUILD index 966ff5699..c5ff19e11 100644 --- a/extra/meson/PKGBUILD +++ b/extra/meson/PKGBUILD @@ -4,31 +4,41 @@ # ALARM: Kevin Mihelich # - disable lto in arch-meson +# - remove checkdepend on dmd pkgname=meson pkgver=0.44.0 -pkgrel=1 +pkgrel=2 pkgdesc='High productivity build system' url='http://mesonbuild.com/' arch=('any') license=('Apache') depends=('python' 'ninja') makedepends=('python-setuptools') -checkdepends=('gcc-objc' 'vala' 'rust' 'gcc-fortran' 'mono' 'boost' 'qt4' 'qt5-base' 'git' 'gnustep-base' +checkdepends=('gcc-objc' 'vala' 'rust' 'gcc-fortran' 'mono' 'boost' 'qt4' 'qt5-base' 'git' 'cython' 'gtkmm3' 'gtest' 'gmock' 'protobuf' 'wxgtk' 'python-gobject' 'gobject-introspection' - 'itstool' 'gtk3' 'java-environment=8' 'gtk-doc' 'llvm' 'clang' 'sdl2' + 'itstool' 'gtk3' 'java-environment=8' 'gtk-doc' 'llvm' 'clang' 'sdl2' 'graphviz' 'doxygen' 'vulkan-validation-layers' 'openmpi' 'openssh' 'mercurial' 'gtk-sharp-2' - 'qt5-tools' 'libwmf') -checkdepends_x86_64=('ldc' 'valgrind') + 'qt5-tools' 'libwmf' 'valgrind') source=(https://github.com/mesonbuild/meson/releases/download/${pkgver}/meson-${pkgver}.tar.gz{,.asc} + 0001-tests-skip-objc-nsstring-test-if-gnustep-is-not-inst.patch + 0002-d-Detect-recent-DMD-compilers.patch arch-meson) sha512sums=('9aefa52d92d7750528e9a9236f19131c8e58bfc21212595c311f4e2787ad40bb53d6085f52283cad13923ddf12da1a59067d48424c72ace47fc127978d1af2ff' 'SKIP' - 'db8875aea3b8307305426c19db58481b678fedd2bb1c2c95e41d94fc93493553186a49000f465595f8eedb61b682c92b242a69f41194b08ba915ab7f3bf91f19') + '04a0f113ba5f1ae57591fad3f5ecf812ef88b8809b4ffe063e82f6548e728a1a7bd51c171a948873884c2631fc10a9cd141f56de22cd7cf766cdb74996840eec' + 'b38af817966e60db19c1efcc5e8e4f1b822925bf823b0a68c33eb0bfd0aa4ccff1439e352d8df032d0a189cd0ff37fb7dcefe0ed7a272e45f963f7e3d0b63f0f' + 'b9f86ded46ad7fc4c4cbd997bd2210e363f02189377d9159cae4a52d0bd8bb9e02de1680bc76f63ecd923922f9cbdba40efbe09231dc24fc1d445ed97c2f5132') validpgpkeys=('95181F4EED14FDF4E41B518D3BF4693BFEEB9428') # Jussi Pakkanen prepare() { cd ${pkgname}-${pkgver} + + # Skip gnustep tests + patch -Np1 -i ../0001-tests-skip-objc-nsstring-test-if-gnustep-is-not-inst.patch + + # Fix for recent DMD + patch -Np1 -i ../0002-d-Detect-recent-DMD-compilers.patch } build() { @@ -36,14 +46,18 @@ build() { python setup.py build } -check() { +check() ( cd ${pkgname}-${pkgver} - unset CLASSPATH # GNUstep breaks java tests - LDFLAGS="${LDFLAGS/,--as-needed/}" # --as-needed breaks openmpi linking - # export MESON_PRINT_TEST_OUTPUT=1 # set this for debug output - # graphviz: Installing breaks doxygen tests - LC_CTYPE=en_US.UTF-8 DC=ldc ./run_tests.py -} + + # --as-needed breaks openmpi linking + LDFLAGS="${LDFLAGS/,--as-needed/}" + + # set for debug output + #export MESON_PRINT_TEST_OUTPUT=1 + + export LC_CTYPE=en_US.UTF-8 + ./run_tests.py +) package() { cd ${pkgname}-${pkgver} diff --git a/extra/meson/arch-meson b/extra/meson/arch-meson index cd28ed31b..17bca752c 100644 --- a/extra/meson/arch-meson +++ b/extra/meson/arch-meson @@ -16,7 +16,6 @@ exec meson setup \ --localstatedir /var \ --sharedstatedir /var/lib \ --buildtype release \ - --warnlevel 2 \ --wrap-mode nofallback \ "$@" \ -D b_lto=false