Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug] meson.configure() passed in the windows style path, which was escaped by libvips #14213

Closed
vcup opened this issue Jul 3, 2023 · 5 comments · Fixed by #14295
Closed
Assignees
Milestone

Comments

@vcup
Copy link

vcup commented Jul 3, 2023

Environment details

  • Operating System+version: Windows 11 Pro 22H2
  • Compiler+version: Msys2 Mingw64 gcc 12.2.0
  • Conan version: 2.0.6
  • Python version: 3.9.13

Steps to reproduce

  1. here is profile with naming mingw
[settings]
os=Windows
arch=x86_64
compiler=gcc
compiler.version=10.2
compiler.libcxx=libstdc++11
build_type=Release

[buildenv]
CC=C:/msys64/mingw64/bin/gcc.exe
CXX=C:/msys64/mingw64/bin/g++.exe
  1. using conanfile.py
from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMakeDeps


class Demo(ConanFile):
    name = "Demo"
    version = "0.0.0"
    settings = "os", "compiler", "build_type", "arch"
    requires = "libvips/8.14.2"

    def generate(self):
        toolchain = CMakeToolchain(self)
        toolchain.generator = "Ninja"
        toolchain.generate()

        deps = CMakeDeps(self)
        deps.generate()
  1. executing command
conan install . --output-folder build --build missing -s build_type=Debug --settings:build build_type=Debug --profile mingw --profile:build mingw

Logs

Details

PS C:\Users\miryo\Documents\GitHub\Demo> conan install . --output-folder build --build missing -s build_type=Debug --settings:build build_type=Debug --profile mingw --profile:build mingw

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Debug
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=10.2
os=Windows
[buildenv]
CC=C:/msys64/mingw64/bin/gcc.exe
CXX=C:/msys64/mingw64/bin/g++.exe

Profile build:
[settings]
arch=x86_64
build_type=Debug
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=10.2
os=Windows
[buildenv]
CC=C:/msys64/mingw64/bin/gcc.exe
CXX=C:/msys64/mingw64/bin/g++.exe


======== Computing dependency graph ========
Graph root
    conanfile.py (Demo/0.0.0): C:\Users\miryo\Documents\GitHub\Demo\conanfile.py
Requirements
    argtable3/3.2.2#69f2453e498a12ed762a4bdf96030612 - Cache
    bzip2/1.0.8#411fc05e80d47a89045edc1ee6f23c1d - Cache
    expat/2.5.0#91e43e4544923e4c934bfad1fa4306f9 - Cache
    fftw/3.3.10#ce174b2db98b5c2a45fe2f3bf34935c9 - Cache
    glib/2.76.1#c5378e4f4ca6147b9b40e98547465992 - Cache
    jbig/20160605#2d29fa02aacd76902e0d2cbbc24631ef - Cache
    lcms/2.14#9b224ef7d4281955c4e7edf4b51c7b1e - Cache
    libdeflate/1.18#3697b637656a9af04cabcbed50db9a7e - Cache
    libelf/0.8.13#4f70a3555809ae50cc8add44f0f84288 - Cache
    libffi/3.4.4#35eb63842b505824b70aedc1baefc916 - Cache
    libgettext/0.21#15048d595eec14eb66bbfdcbed2d6de3 - Cache
    libiconv/1.17#fa54397801cd96911a8294bc5fc76335 - Cache
    libjpeg/9e#68269859e4325ddc3f995d1fd3fc9187 - Cache
    libspng/0.7.3#42acdbb5f9614e08760dd769d0a90c02 - Cache
    libtiff/4.4.0#7f4813e5fcf93bd8472e5e3d6ec200c3 - Cache
    libvips/8.14.2#c3f83f087e6a9ffed6f4a70b986bfed8 - Cache
    libwebp/1.3.0#d92654dbce1f8cb8ae45d5388f86fcfe - Cache
    pcre2/10.42#2079a0447f9652dffcbbf1eb73ae2d4e - Cache
    xz_utils/5.4.2#b6ee8320403def553418874435445982 - Cache
    zlib/1.2.13#e377bee636333ae348d51ca90874e353 - Cache
    zstd/1.5.5#93372fe14bb7883bd4de82914e0a1841 - Cache
Build requirements
    meson/1.0.0#15586c0ac6f682805875ef903dbe7ee2 - Cache
    meson/1.0.1#3f8d8e95ef7d57ee4026e73f688d16a0 - Cache
    meson/1.1.0#6176e4f21370f5820c27da02836c32c9 - Cache
    msys2/cci.latest#567331f1604f3c584f04feade960f06e - Cache
    ninja/1.11.1#77587f8c8318662ac8e5a7867eb4be21 - Cache
    pkgconf/1.9.3#c55544f33a9b2d8e4ae5a0db24909c37 - Cache

======== Computing necessary packages ========
Requirements
    argtable3/3.2.2#69f2453e498a12ed762a4bdf96030612:234b0092fa685c6649718c4d83257f7579563813#fba6832aeb5799f065df98fc44a8f60b - Cache
    bzip2/1.0.8#411fc05e80d47a89045edc1ee6f23c1d:26fa82f7dacfb3ccf05cec7b981ae938cae353b4#9a60e77f2d184692b79dd6f202b5f1ec - Cache
    expat/2.5.0#91e43e4544923e4c934bfad1fa4306f9:3326c014d8bd1008e055ea0d2bbdfacec5eafcce#4bbd05df07fbca957d1ca6dd97b68bf4 - Cache
    fftw/3.3.10#ce174b2db98b5c2a45fe2f3bf34935c9:7313676f9368f0709dc2460bfcbae6f7fd1371df#57624a0b8b5e20f76a7d3c94de6ee30e - Cache
    glib/2.76.1#c5378e4f4ca6147b9b40e98547465992:96792e727f6a133b12770a295933d057f2554163#5c61535fa2cdf596af490bc92352efc0 - Cache
    jbig/20160605#2d29fa02aacd76902e0d2cbbc24631ef:c559a008fcc6e1d78d653c12d2e14525be8ceecd#75ea9fb6046f071fd0ddf33582e001e4 - Cache
    lcms/2.14#9b224ef7d4281955c4e7edf4b51c7b1e:234b0092fa685c6649718c4d83257f7579563813#92b3417e072e138d43cf2ae981b591e2 - Cache
    libdeflate/1.18#3697b637656a9af04cabcbed50db9a7e:234b0092fa685c6649718c4d83257f7579563813#17e9e0022f906b3d1ff6a0ed6a1e2bcd - Cache
    libelf/0.8.13#4f70a3555809ae50cc8add44f0f84288:234b0092fa685c6649718c4d83257f7579563813#d8e701962cbbde13b2da4a52c266abe8 - Cache
    libffi/3.4.4#35eb63842b505824b70aedc1baefc916:234b0092fa685c6649718c4d83257f7579563813#911458b51b6fdc960772ab04fa7e487d - Cache
    libgettext/0.21#15048d595eec14eb66bbfdcbed2d6de3:90448a82bcb72356b442bcf5867048190542df11#cdcf9afafd6dcb8432a6d0a7f5f9f22b - Cache
    libiconv/1.17#fa54397801cd96911a8294bc5fc76335:234b0092fa685c6649718c4d83257f7579563813#97f7718c49ce16adb552b557ade93dae - Cache
    libjpeg/9e#68269859e4325ddc3f995d1fd3fc9187:234b0092fa685c6649718c4d83257f7579563813#cadedf8fcbb4f963aced64fbda624112 - Cache
    libspng/0.7.3#42acdbb5f9614e08760dd769d0a90c02:c7e46adfe4a76b9a7655ead3d423693732745469#459699ce5b92681d57e017710bff1b83 - Cache
    libtiff/4.4.0#7f4813e5fcf93bd8472e5e3d6ec200c3:1f9a77bd95448d0c3e3eb2b5fb30bccefde71529#5407838c12740b3074539ce90f43eaa7 - Cache
    libvips/8.14.2#c3f83f087e6a9ffed6f4a70b986bfed8:e4ef544ea4b0370fe9c6b3f1c5a802aa82b7160a - Build
    libwebp/1.3.0#d92654dbce1f8cb8ae45d5388f86fcfe:6612144796ef4523c4465784848747c49376fdc8#b367291a1cdd300a842a20d2491d94ab - Cache
    pcre2/10.42#2079a0447f9652dffcbbf1eb73ae2d4e:a3a382030f9614e74c592772db0977b464de2e4e#74a6d47163e7472d9e858620f62c3980 - Cache
    xz_utils/5.4.2#b6ee8320403def553418874435445982:234b0092fa685c6649718c4d83257f7579563813#6ff13133fd118631a2723b65302481d6 - Cache
    zlib/1.2.13#e377bee636333ae348d51ca90874e353:234b0092fa685c6649718c4d83257f7579563813#165afceb442a17eae1661d12196a9486 - Cache
    zstd/1.5.5#93372fe14bb7883bd4de82914e0a1841:71be1c010eadce4753510ed4d0c76b7be23f89ae#ce72694f80f67a58172eed08cd5c49c0 - Cache
Build requirements
    meson/1.0.1#3f8d8e95ef7d57ee4026e73f688d16a0:da39a3ee5e6b4b0d3255bfef95601890afd80709#02d2b3557e5af1c43eae604708d8f4f8 - Cache
    ninja/1.11.1#77587f8c8318662ac8e5a7867eb4be21:e87e09fb175a1b4a35981cd53c3cf142cb86410f#40be9e6cbca0a8bc7318b35a4a920900 - Cache
    pkgconf/1.9.3#c55544f33a9b2d8e4ae5a0db24909c37:91420cb861614b87d9309a761373a2bdb8bb7530#09288364892a86bca0cc42be1e773d93 - Cache
Skipped binaries
    meson/1.0.0, meson/1.1.0, msys2/cci.latest

======== Installing packages ========
argtable3/3.2.2: Already installed! (1 of 24)
bzip2/1.0.8: Already installed! (2 of 24)
expat/2.5.0: Already installed! (3 of 24)
fftw/3.3.10: Already installed! (4 of 24)
jbig/20160605: Already installed! (5 of 24)
libdeflate/1.18: Already installed! (6 of 24)
libelf/0.8.13: Already installed! (7 of 24)
libwebp/1.3.0: Already installed! (8 of 24)
ninja/1.11.1: Already installed! (9 of 24)
zlib/1.2.13: Already installed! (10 of 24)
zstd/1.5.5: Already installed! (11 of 24)
libffi/3.4.4: Already installed! (12 of 24)
libiconv/1.17: Already installed! (13 of 24)
libjpeg/9e: Already installed! (14 of 24)
xz_utils/5.4.2: Already installed! (15 of 24)
lcms/2.14: Already installed! (16 of 24)
pkgconf/1.9.3: Already installed! (17 of 24)
pkgconf/1.9.3: Appending PATH env var: C:\Users\miryo\.conan2\p\b\pkgco2159e24689ad0\p\bin
pkgconf/1.9.3: Setting PKG_CONFIG env var: C:/Users/miryo/.conan2/p/b/pkgco2159e24689ad0/p/bin/pkgconf.exe
pkgconf/1.9.3: WARN: The use of 'unix_path_legacy_compat' is deprecated in Conan 2.0 and does not perform path conversions. This is retained for compatibility with Conan 1.x and will be removed in a future version.
pkgconf/1.9.3: Appending AUTOMAKE_CONAN_INCLUDES env var: C:/Users/miryo/.conan2/p/b/pkgco2159e24689ad0/p/bin/aclocal
libspng/0.7.3: Already installed! (18 of 24)
meson/1.0.1: Already installed! (19 of 24)
pcre2/10.42: Already installed! (20 of 24)
pcre2/10.42: Appending PATH environment variable: C:\Users\miryo\.conan2\p\b\pcre248479a9621255\p\bin
libgettext/0.21: Already installed! (21 of 24)
libtiff/4.4.0: Already installed! (22 of 24)
glib/2.76.1: Already installed! (23 of 24)

-------- Installing package libvips/8.14.2 (24 of 24) --------
libvips/8.14.2: Building from source
libvips/8.14.2: Package libvips/8.14.2:e4ef544ea4b0370fe9c6b3f1c5a802aa82b7160a
libvips/8.14.2: Copying sources to build folder
libvips/8.14.2: Building your package in C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b
libvips/8.14.2: Calling generate()
libvips/8.14.2: Generators folder: C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug\conan
libvips/8.14.2: Generating aggregated env files
libvips/8.14.2: Generated aggregated env files: ['conanbuild.bat']
libvips/8.14.2: Calling build()
libvips/8.14.2: Meson configure cmd: meson setup --native-file "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug\conan\conan_meson_native.ini" "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug" "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\src" -Dprefix="C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\p"
libvips/8.14.2: RUN: meson setup --native-file "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug\conan\conan_meson_native.ini" "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug" "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\src" -Dprefix="C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\p"
The Meson build system
Version: 1.0.1
Source dir: C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\src
Build dir: C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug
Build type: native build
Project name: vips
Project version: 8.14.2
C compiler for the host machine: C:/msys64/mingw64/bin/gcc.exe (gcc 12.2.0 "gcc.exe (Rev10, Built by MSYS2 project) 12.2.0")
C linker for the host machine: C:/msys64/mingw64/bin/gcc.exe ld.bfd 2.40
C++ compiler for the host machine: C:/msys64/mingw64/bin/g++.exe (gcc 12.2.0 "g++.exe (Rev10, Built by MSYS2 project) 12.2.0")
C++ linker for the host machine: C:/msys64/mingw64/bin/g++.exe ld.bfd 2.40
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Werror=pointer-arith: YES
Found pkg-config: C:/Users/miryo/.conan2/p/b/pkgco2159e24689ad0/p/bin/pkgconf.exe (1.9.3)
Run-time dependency glib-2.0 found: YES 2.76.1
Run-time dependency gio-2.0 found: YES 2.76.1
Run-time dependency gobject-2.0 found: YES 2.76.1
Dependency gmodule-no-export-2.0 skipped: feature modules disabled
Run-time dependency expat found: YES 2.5.0
Run-time dependency threads found: YES
Library m found: YES
Compiler for C supports link arguments -Wl,-z,nodelete: NO
Compiler for C supports function attribute visibility:hidden: YES
Checking if "Has vector arithmetic" with dependency -lm compiles: YES
Checking if "Has signed constants in vector templates" with dependency -lm compiles: YES
Checking for function "vsnprintf" with dependency -lm: YES
Checking for function "_aligned_malloc" with dependency -lm: YES
Checking for function "posix_memalign" with dependency -lm: YES
Checking for function "memalign" with dependency -lm: NO
Checking for function "cbrt" with dependency -lm: YES
Checking for function "hypot" with dependency -lm: YES
Checking for function "atan2" with dependency -lm: YES
Checking for function "asinh" with dependency -lm: YES
Checking for function "pthread_setattr_default_np" with dependency threads: NO
Run-time dependency zlib found: YES 1.2.13
Dependency libgsf-1 skipped: feature gsf disabled
Run-time dependency fftw3 found: YES 3.3.10
Found CMake: C:\Program Files\CMake\bin\cmake.EXE (3.26.4)
Run-time dependency magickcore found: NO (tried pkgconfig and cmake)
Dependency ImageMagick skipped: feature magick disabled
Dependency cfitsio skipped: feature cfitsio disabled
Dependency imagequant skipped: feature imagequant disabled
Dependency quantizr skipped: feature quantizr disabled
Dependency libexif skipped: feature exif disabled
Run-time dependency libjpeg found: YES 9e
Checking for function "jpeg_c_bool_param_supported" with dependency libjpeg: NO
Run-time dependency spng found: NO (tried pkgconfig and cmake)
Run-time dependency libspng found: YES 0.7.3
Run-time dependency libwebp found: YES 1.3.0
Run-time dependency libwebpmux found: YES 1.3.0
Run-time dependency libwebpdemux found: YES 1.3.0
Dependency pangocairo skipped: feature pangocairo disabled
Dependency pangoft2 skipped: feature fontconfig disabled
Dependency fontconfig skipped: feature fontconfig disabled
Run-time dependency libtiff-4 found: YES 4.4.0
Fetching value of define "COMPRESSION_WEBP" with dependency libtiff-4: 50001
Dependency librsvg-2.0 skipped: feature rsvg disabled
Dependency cairo skipped: feature rsvg disabled
Dependency openslide skipped: feature openslide disabled
Dependency matio skipped: feature matio disabled
Run-time dependency lcms2 found: YES 2.14
Dependency OpenEXR skipped: feature openexr disabled
Dependency libopenjp2 skipped: feature openjpeg disabled
Dependency orc-0.4 skipped: feature orc disabled
Dependency pdfium skipped: feature pdfium disabled
Dependency libheif skipped: feature heif disabled
Dependency libjxl skipped: feature jpeg-xl disabled
Dependency libjxl_threads skipped: feature jpeg-xl disabled
Dependency poppler-glib skipped: feature poppler disabled
Dependency cairo skipped: feature poppler disabled
Run-time dependency niftiio found: NO (tried pkgconfig)
Run-time dependency nifti found: NO (tried cmake)
Has header "sys/file.h" : YES
Has header "sys/param.h" : YES
Has header "sys/mman.h" : NO
Has header "unistd.h" : YES
Has header "io.h" : YES
Has header "direct.h" : YES
Checking for function "ngettext" : NO
Library intl found: YES
Checking for function "bind_textdomain_codeset" with dependency -lintl: YES
Configuring config.h using configuration
Program glib-mkenums found: YES (C:\Users\miryo\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe C:\Users\miryo\.conan2\p\b\glib997b3d1498fe4\p\bin\glib-mkenums)
Program glib-mkenums found: YES (C:\Users\miryo\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe C:\Users\miryo\.conan2\p\b\glib997b3d1498fe4\p\bin\glib-mkenums)
Configuring version.h using configuration
Found pkg-config: C:/Users/miryo/.conan2/p/b/pkgco2159e24689ad0/p/bin/pkgconf.exe (1.9.3)
Program glib-genmarshal found: YES (C:\Users\miryo\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe C:\Users\miryo\.conan2\p\b\glib997b3d1498fe4\p\bin\glib-genmarshal)
Program msgfmt found: YES (C:\msys64\mingw64\bin\msgfmt.EXE)
Program msginit found: YES (C:\msys64\mingw64\bin\msginit.EXE)
Program msgmerge found: YES (C:\msys64\mingw64\bin\msgmerge.EXE)
Program xgettext found: YES (C:\msys64\mingw64\bin\xgettext.EXE)
Build targets in project: 32

vips 8.14.2

  Build options
    enable debug                      : YES
    enable deprecated                 : YES
    enable modules                    : NO
    enable gtk-doc                    : NO
    enable doxygen                    : NO
    enable introspection              : NO
    enable examples                   : NO
    enable cplusplus                  : YES
    enable RAD load/save              : YES
    enable Analyze7 load/save         : YES
    enable PPM load/save              : YES
    enable GIF load                   : YES

  Optional external packages
    use fftw for FFTs                 : YES
    accelerate loops with ORC         : NO
    ICC profile support with lcms     : YES
    zlib                              : YES
    text rendering with pangocairo    : NO
    font file support with fontconfig : NO
    EXIF metadata support with libexif: NO

  External image format libraries
    JPEG load/save with libjpeg       : YES
    JXL load/save with libjxl         : NO (dynamic module: NO)
    JPEG2000 load/save with OpenJPEG  : NO
    PNG load/save with libspng        : YES
    PNG load/save with libpng         : NO
    selected quantisation package     : none
    TIFF load/save with libtiff       : YES
    image pyramid save with libgsf    : NO
    HEIC/AVIF load/save with libheif  : NO (dynamic module: NO)
    WebP load/save with libwebp       : YES
    PDF load with PDFium              : NO
    PDF load with poppler-glib        : NO (dynamic module: NO)
    SVG load with librsvg             : NO
    EXR load with OpenEXR             : NO
    OpenSlide load                    : NO (dynamic module: NO)
    Matlab load with libmatio         : NO
    NIfTI load/save with niftiio      : NO
    FITS load/save with cfitsio       : NO
    GIF save with cgif                : NO
    selected Magick package           : none (dynamic module: NO)
    Magick API version                : none
    Magick load                       : NO
    Magick save                       : NO

  User defined options
    Native files                      : C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug\conan\conan_meson_native.ini
    prefix                            : C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\p

Found ninja-1.11.1 at C:\Users\miryo\.conan2\p\b\ninja85711585a5fc3\p\bin\ninja.EXE

libvips/8.14.2: Meson build cmd: meson compile -C "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug" -j12
libvips/8.14.2: RUN: meson compile -C "C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug" -j12
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: C:\Users\miryo\.conan2\p\b\ninja85711585a5fc3\p\bin\ninja.EXE -j 12
[4/464] Generating libvips/iofuncs/vipsmarshal_h with a custom command
INFO: Reading ../src/libvips/iofuncs/vipsmarshal.list...
[7/464] Generating libvips/iofuncs/vipsmarshal_c with a custom command
INFO: Reading ../src/libvips/iofuncs/vipsmarshal.list...
[380/464] Compiling C object libvips/iofuncs/libiofuncs.a.p/init.c.obj
FAILED: libvips/iofuncs/libiofuncs.a.p/init.c.obj
"C:/msys64/mingw64/bin/gcc.exe" "-Ilibvips\iofuncs\libiofuncs.a.p" "-Ilibvips\iofuncs" "-I..\src\libvips\iofuncs" "-I." "-I..\src" "-Ilibvips\include" "-I..\src\libvips\include" "-Ilibvips\include\vips" "-IC:/Users/miryo/.conan2/p/b/glib997b3d1498fe4/p/include" "-IC:/Users/miryo/.conan2/p/b/glib997b3d1498fe4/p/include/glib-2.0" "-IC:/Users/miryo/.conan2/p/b/glib997b3d1498fe4/p/lib/glib-2.0/include" "-IC:/Users/miryo/.conan2/p/b/pcre248479a9621255/p/include" "-IC:/Users/miryo/.conan2/p/b/zlibe7a62cff773b3/p/include" "-IC:/Users/miryo/.conan2/p/b/bzip22abfd45ea7254/p/include" "-IC:/Users/miryo/.conan2/p/b/libge2fa60dc15c7ee/p/include" "-IC:/Users/miryo/.conan2/p/b/libic7603ac339ce29/p/include" "-IC:/Users/miryo/.conan2/p/b/libff2d42ba0041dbb/p/include" "-IC:/Users/miryo/.conan2/p/b/expatd8b5bcdd42787/p/include" "-IC:/Users/miryo/.conan2/p/b/fftw38829d7dcc022/p/include" "-IC:/Users/miryo/.conan2/p/b/libjp871ccc26226c3/p/include" "-IC:/Users/miryo/.conan2/p/b/libspf8602a73d0f70/p/include" "-IC:/Users/miryo/.conan2/p/b/libwebb436afa43603/p/include" "-IC:/Users/miryo/.conan2/p/b/libtiff974e4e50ea8/p/include" "-IC:/Users/miryo/.conan2/p/b/libdee2c85e1585835/p/include" "-IC:/Users/miryo/.conan2/p/b/xz_utf2c68f56fe730/p/include" "-IC:/Users/miryo/.conan2/p/b/jbig3363bba4c4483/p/include" "-IC:/Users/miryo/.conan2/p/b/zstd7e4b3325a6c4c/p/include" "-IC:/Users/miryo/.conan2/p/b/lcmsd48b196a05e11/p/include" "-fvisibility=hidden" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-std=gnu99" "-O0" "-g" "-DDEBUG_LEAK" "-Werror=pointer-arith" "-DHAVE_CONFIG_H=1" "-DLZMA_API_STATIC" "-DSPNG_STATIC" "-DLIBJPEG_STATIC" "-pthread" "-DXML_STATIC" "-DFFI_BUILDING" "-DPCRE2_STATIC" -MD -MQ libvips/iofuncs/libiofuncs.a.p/init.c.obj -MF "libvips\iofuncs\libiofuncs.a.p\init.c.obj.d" -o libvips/iofuncs/libiofuncs.a.p/init.c.obj "-c" ../src/libvips/iofuncs/init.c
../src/libvips/iofuncs/init.c: In function 'vips_init':
../src/libvips/iofuncs/init.c:542:49: error: incomplete universal character name \U
  542 |         g_info( "VIPS_PREFIX = %s", VIPS_PREFIX );
      |                                                 ^
../src/libvips/iofuncs/init.c:542:49: warning: unknown escape sequence: '\m'
../src/libvips/iofuncs/init.c:542:49: warning: unknown escape sequence: '\.'
../src/libvips/iofuncs/init.c:542:49: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c:542:49: warning: unknown escape sequence: '\l'
../src/libvips/iofuncs/init.c:542:49: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c: In function 'guess_prefix':
../src/libvips/iofuncs/init.c:1082:37: error: incomplete universal character name \U
 1082 |                 return( VIPS_PREFIX );
      |                                     ^
../src/libvips/iofuncs/init.c:1082:37: warning: unknown escape sequence: '\m'
../src/libvips/iofuncs/init.c:1082:37: warning: unknown escape sequence: '\.'
../src/libvips/iofuncs/init.c:1082:37: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c:1082:37: warning: unknown escape sequence: '\l'
../src/libvips/iofuncs/init.c:1082:37: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c:1131:29: error: incomplete universal character name \U
 1131 |         return( VIPS_PREFIX );
      |                             ^
../src/libvips/iofuncs/init.c:1131:29: warning: unknown escape sequence: '\m'
../src/libvips/iofuncs/init.c:1131:29: warning: unknown escape sequence: '\.'
../src/libvips/iofuncs/init.c:1131:29: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c:1131:29: warning: unknown escape sequence: '\l'
../src/libvips/iofuncs/init.c:1131:29: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c: In function 'vips_guess_libdir':
../src/libvips/iofuncs/init.c:1219:41: error: incomplete universal character name \U
 1219 |         if( strcmp( prefix, VIPS_PREFIX ) == 0 )
      |                                         ^
../src/libvips/iofuncs/init.c:1219:41: warning: unknown escape sequence: '\m'
../src/libvips/iofuncs/init.c:1219:41: warning: unknown escape sequence: '\.'
../src/libvips/iofuncs/init.c:1219:41: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c:1219:41: warning: unknown escape sequence: '\l'
../src/libvips/iofuncs/init.c:1219:41: warning: unknown escape sequence: '\p'
../src/libvips/iofuncs/init.c: At top level:
../src/libvips/iofuncs/init.c:1070:1: warning: 'guess_prefix' defined but not used [-Wunused-function]
 1070 | guess_prefix( const char *argv0, const char *name )
      | ^~~~~~~~~~~~
[382/464] Compiling C object libvips/iofuncs/libiofuncs.a.p/vector.c.obj
../src/libvips/iofuncs/vector.c:73:1: warning: 'vips_vector_error' defined but not used [-Wunused-function]
   73 | vips_vector_error( VipsVector *vector )
      | ^~~~~~~~~~~~~~~~~
[391/464] Compiling C object libvips/iofuncs/libiofuncs.a.p/util.c.obj
ninja: build stopped: subcommand failed.

libvips/8.14.2: ERROR:
Package 'e4ef544ea4b0370fe9c6b3f1c5a802aa82b7160a' build failed
libvips/8.14.2: WARN: Build folder C:\Users\miryo\.conan2\p\b\libvi5e9d196a1f846\b\build-debug
*********************************************************
Recipe 'libvips/8.14.2' cannot build its binary
It is possible that this recipe is not Conan 2.0 ready
If the recipe comes from ConanCenter check: https://conan.io/cci-v2.html
If it is your recipe, check if it is updated to 2.0
*********************************************************

ERROR: libvips/8.14.2: Error in build() method, line 286
        meson.build()
        ConanException: Error 1 while executing

@vcup vcup changed the title [bug] meson.build() passed in the windows style path, which was escaped by libvips [bug] meson.configure() passed in the windows style path, which was escaped by libvips Jul 3, 2023
@vcup
Copy link
Author

vcup commented Jul 3, 2023

I have thoroughly debugged the process where this error occurs. The issue arises from the libvips macro VIPS_PREFIX which accepts the value of the meson command-line option -Dprefix. On Windows, the path separator \ ends up breaking the source code after it goes through the preprocessor.

cmd += ' -Dprefix="{}"'.format(self._conanfile.package_folder)

The solution is to either directly replace \ with the Unix-like /, or two \\. In conan, this requires dealing with the ConanFile.package_folder field. In the meson.build file, it involves replacing the section where the macro is added.

cmd += ' -Dprefix="{}"'.format(self._conanfile.package_folder.replace('\\', '/'))

or in the meson.build

change to

cfg_var.set_quoted('VIPS_PREFIX', prefix_dir.replace('\\', '/'))

Should I report this issue to the libvips repository? or would it be more effective to handle this upstream in conan to solve more potential problems?

@franramirez688
Copy link
Contributor

Hi @vcup - Thanks for reporting the issue!

I want to be sure if it's either a Conan or a recipe issue. Let's check the most simple case:

  • Create an empty folder with a simple "Hello World" library: conan new meson_lib -d name=myhello -d version=0.1
  • Copy your profile and, perhaps, add the path to the folder containing some DLLs? I'm not sure because I'm not using Windows at this moment:
[settings]
os=Windows
arch=x86_64
compiler=gcc
compiler.version=10.2
compiler.libcxx=libstdc++11
build_type=Release

[buildenv]
PATH+=(path)C:/msys64/mingw64/bin
CC=C:/msys64/mingw64/bin/gcc.exe
CXX=C:/msys64/mingw64/bin/g++.exe

[runenv]
PATH+=(path)C:/msys64/mingw64/bin
  • Finally, run the example: conan create . -pr mingw -pr:b mingw

Is it happening that problem again?

@vcup
Copy link
Author

vcup commented Jul 11, 2023

Hello, @franramirez688 - Thanks for your response.
I have tried the method you suggested, and of course, a new recipe won't present this issue. I am quite certain that the problem is caused by the meson.build of libvips, as explained in my previous comment #14213 (comment)

Therefore, if I add similar content that causes the issue to a new recipe, the problem will be reproduced.

meson.build

project('myhello ', 'c')
executable('myhello', 'src/main.c', install: true)

prefix_dir = get_option('prefix')

cfg_var = configuration_data()
cfg_var.set_quoted('MYHELLO_PREFIX', prefix_dir)

config_file = configure_file(
    configuration: cfg_var,
    output: 'config.h'
)

main.c

#include <config.h>

int main(void) {
    return 0;
}

char *issue_func() {
    return (MYHELLO_PREFIX);
}
Here is the log

conan build . -pr mingw -pr:b mingw

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=10.2
os=Windows
[buildenv]
PATH+=(path)C:/msys64/mingw64/bin
CC=C:/msys64/mingw64/bin/gcc.exe
CXX=C:/msys64/mingw64/bin/g++.exe
[runenv]
PATH+=(path)C:/msys64/mingw64/bin

Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=10.2
os=Windows
[buildenv]
PATH+=(path)C:/msys64/mingw64/bin
CC=C:/msys64/mingw64/bin/gcc.exe
CXX=C:/msys64/mingw64/bin/g++.exe
[runenv]
PATH+=(path)C:/msys64/mingw64/bin


======== Computing dependency graph ========
Graph root
    conanfile.py (demo/0.1): C:\Users\clini\Documents\codes\Demo\conanfile.py

======== Computing necessary packages ========

======== Installing packages ========

======== Installing packages ========

======== Finalizing install (deploy, generators) ========
conanfile.py (demo/0.1): Calling generate()
conanfile.py (demo/0.1): Generators folder: C:\Users\clini\Documents\codes\Demo\build-release\conan
conanfile.py (demo/0.1): Generating aggregated env files
conanfile.py (demo/0.1): Generated aggregated env files: ['conanbuild.bat', 'conanrun.bat']

======== Calling build() ========
conanfile.py (demo/0.1): Calling build()
conanfile.py (demo/0.1): Meson configure cmd: meson setup --native-file "C:\Users\clini\Documents\codes\Demo\build-release\conan\conan_meson_native.ini" "C:\Users\clini\Documents\codes\Demo\build-release" "C:\Users\clini\Documents\codes\Demo" -Dprefix="C:\Users\clini\Documents\codes\Demo"
conanfile.py (demo/0.1): RUN: meson setup --native-file "C:\Users\clini\Documents\codes\Demo\build-release\conan\conan_meson_native.ini" "C:\Users\clini\Documents\codes\Demo\build-release" "C:\Users\clini\Documents\codes\Demo" -Dprefix="C:\Users\clini\Documents\codes\Demo"
The Meson build system
Version: 1.1.1
Source dir: C:\Users\clini\Documents\codes\Demo
Build dir: C:\Users\clini\Documents\codes\Demo\build-release
Build type: native build
Project name: demo
Project version: undefined
C compiler for the host machine: C:/msys64/mingw64/bin/gcc.exe (gcc 13.1.0 "gcc.exe (Rev6, Built by MSYS2 project) 13.1.0")
C linker for the host machine: C:/msys64/mingw64/bin/gcc.exe ld.bfd 2.40
Host machine cpu family: x86_64
Host machine cpu: x86_64
Configuring config.h using configuration
Build targets in project: 1

demo  undefined

  User defined options
    Native files: C:\Users\clini\Documents\codes\Demo\build-release\conan\conan_meson_native.ini
    prefix      : C:\Users\clini\Documents\codes\Demo

Found ninja-1.11.1 at "C:\Program Files\Meson\ninja.EXE"

conanfile.py (demo/0.1): Meson build cmd: meson compile -C "C:\Users\clini\Documents\codes\Demo\build-release" -j12
conanfile.py (demo/0.1): RUN: meson compile -C "C:\Users\clini\Documents\codes\Demo\build-release" -j12
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: "C:\Program Files\Meson\ninja.EXE" -j 12
[1/2] Compiling C object demo.exe.p/main.c.obj
FAILED: demo.exe.p/main.c.obj
"C:/msys64/mingw64/bin/gcc.exe" "-Idemo.exe.p" "-I." "-I.." "-fdiagnostics-color=always" "-DNDEBUG" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O3" -MD -MQ demo.exe.p/main.c.obj -MF "demo.exe.p\main.c.obj.d" -o demo.exe.p/main.c.obj "-c" ../main.c
../main.c: In function 'issue_func':
../main.c:8:24: error: incomplete universal character name \U
    8 |     return (DEMO_PREFIX);
      |                        ^
../main.c:8:24: warning: unknown escape sequence: '\c'
../main.c:8:24: warning: unknown escape sequence: '\D'
../main.c:8:24: warning: unknown escape sequence: '\c'
../main.c:8:24: warning: unknown escape sequence: '\D'
ninja: build stopped: subcommand failed.

*********************************************************
Recipe 'conanfile.py (demo/0.1)' cannot build its binary
It is possible that this recipe is not Conan 2.0 ready
If the recipe comes from ConanCenter check: https://conan.io/cci-v2.html
If it is your recipe, check if it is updated to 2.0
*********************************************************

ERROR: conanfile.py (demo/0.1): Error in build() method, line 37
        meson.build()
        ConanException: Error 1 while executing

And this get_option('prefix') is specified from conan's meson.py

cmd += ' -Dprefix="{}"'.format(self._conanfile.package_folder)

Should I re-submit this issue to the libvips repository, or perhaps dealing with the escape character upstream in conan might solve more potential problems?

@vcup
Copy link
Author

vcup commented Jul 11, 2023

Here is minimize reproducible Demo.zip

Demo/
├── conanfile.py
├── main.c
├── meson.build
└── mingw

Run the command conan build . -pr mingw -pr:b mingw

@memsharded
Copy link
Member

This was fixed in #14295 for next 2.0.9 release

ericLemanissier added a commit to ericLemanissier/conan-center-index that referenced this issue Nov 28, 2023
conan-center-bot pushed a commit to conan-io/conan-center-index that referenced this issue Nov 29, 2023
* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericlemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericlemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericlemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericLemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericLemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericLemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericLemanissier.github.io/conan-center-index-bump-deps/)

* libvips/all: bump deps

Generated and committed by [Conan Center Bump Deps](https://github.com/ericLemanissier/conan-center-index-bump-deps)
Find more updatable recipes in the [GitHub Pages](https://ericLemanissier.github.io/conan-center-index-bump-deps/)

* workaround conan-io/conan#14213
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants