conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
7.95k stars 951 forks source link

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

Closed vcup closed 11 months ago

vcup commented 1 year ago

Environment details

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


2. using conanfile.py
```python
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 commented 1 year ago

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.

https://github.com/conan-io/conan/blob/ae001d3da17fa9a76241fd09508d8040d55341d2/conan/tools/meson/meson.py#L50

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 commented 11 months ago

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:


[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

Is it happening that problem again?

vcup commented 11 months ago

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 https://github.com/conan-io/conan/issues/14213#issuecomment-1618192295

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

```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

https://github.com/conan-io/conan/blob/ae001d3da17fa9a76241fd09508d8040d55341d2/conan/tools/meson/meson.py#L50

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 commented 11 months ago

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 commented 11 months ago

This was fixed in #14295 for next 2.0.9 release