Hello, I'm doing packages for CYGWIN, with updated or missing libraries that you can find here:
https://github.com/carlo-bramini/packages-cygwin While doing this task, I got troubles when using Cygport with Meson. If I create packages for CYGWIN, x86_64 or i686, I works fine. But if I create packages by using cross compilers, in other words NOARCH stuff, it doesn't work. To be more precise, existing libraries and tools into the sysroot are not found. This is an example output when building librubberband with MinGW cross compilers: Run-time dependency fftw3 found: NO (tried pkgconfig and cmake) Run-time dependency sleef found: NO (tried pkgconfig and cmake) Run-time dependency sleefdft found: NO (tried pkgconfig and cmake) Run-time dependency samplerate found: NO (tried pkgconfig and cmake) Run-time dependency speexdsp found: NO (tried pkgconfig and cmake) I did a correction to Meson.cygclass and now it works like this: Run-time dependency fftw3 found: YES 3.3.5 Run-time dependency sleef found: NO (tried pkgconfig and cmake) Run-time dependency sleefdft found: NO (tried pkgconfig and cmake) Run-time dependency samplerate found: YES 0.1.8 Run-time dependency speexdsp found: YES 1.2rc3 After applying attached patch, the object files will be generated inside ${B} rather than into a subdir of ${S}. I have found no other way to make it working. But afterall, ${B} exists for this purpose and I don't see a good reason because ${S} should be polluted with object files. I hope that you will find this patch useful. Sincerely, Carlo Bramini.
diff --git a/cygclass/meson.cygclass b/cygclass/meson.cygclass index 20df753..4f86210 100644 --- a/cygclass/meson.cygclass +++ b/cygclass/meson.cygclass @@ -55,12 +55,9 @@ inherit ninja cygmeson() { local crossargs mdir meson_version - if [ ! -e meson.build ] + if [ ! -e ${S}/meson.build ] then error "cygmeson: meson directory not found"; - elif [ -e ../meson.build ] - then - error "cygmeson: must be run from the top-level directory"; fi if cross_compiling @@ -93,7 +90,7 @@ cygmeson() { --sysconfdir=$(__host_sysconfdir) \ --buildtype=plain --wrap-mode=nodownload \ --auto-features=enabled \ - ${crossargs} ${CYGMESON_ARGS} "${@}" ${CHOST} \ + ${crossargs} ${CYGMESON_ARGS} "${@}" ${S} \ || error "meson failed" } @@ -107,8 +104,9 @@ cygmeson() { # meson_compile should be run in the directory containing the top-level meson.build. #**** meson_compile() { + cd ${B} cygmeson ${@} - cygninja -C ${CHOST} + cygninja } #****T* meson.cygclass/meson_test @@ -120,7 +118,8 @@ meson_compile() { # meson_test should be run in the directory containing the top-level meson.build. #**** meson_test() { - ninja_test -C ${CHOST} + cd ${B} + ninja_test } #****I* meson.cygclass/meson_install @@ -132,13 +131,14 @@ meson_test() { # meson_install should be run in the directory containing the top-level meson.build. #**** meson_install() { - ninja_install -C ${CHOST} + cd ${B} + ninja_install } #****o* meson.cygclass/src_compile (meson) # DEFINITION src_compile() { - cd ${S} + cd ${B} meson_compile } #**** @@ -146,7 +146,7 @@ src_compile() { #****o* meson.cygclass/src_test (meson) # DEFINITION src_test() { - cd ${S} + cd ${B} meson_test } #**** @@ -154,7 +154,7 @@ src_test() { #****o* meson.cygclass/src_install (meson) # DEFINITION src_install() { - cd ${S} + cd ${B} meson_install } #****