Build failure with Cairo 1.18.4
Luca Bacci
luca.bacci982 at gmail.com
Thu Apr 3 08:44:28 UTC 2025
It's probably fixed by https://github.com/mesonbuild/meson/pull/13459, try
upgrading to Meson 1.5.1.
Cheers,
Luca
Il giorno mer 2 apr 2025 alle ore 23:03 Helde, Paavo <
Paavo.Helde at revvity.com> ha scritto:
> I am trying to build the new cairo 1.18.4 on Windows, but it fails with
> some Meson error. I am not familiar with Meson, not sure if I have done
> something wrong myself, or is it something else. Maybe someone more
> familiar with it can help me?
>
> PS. Cairo 1.18.0 used to build fine with the same build (Meson itself
> might have been older).
>
> TIA
> Paavo
>
> The cairo build commands look like:
>
> $MESON setup \
> --reconfigure \
> --default-library=static \
> --buildtype release \
> -Dstrip=false \
> -Dtests=disabled \
> --prefix $INSTALL_ROOT/$PROJECT \
> --libdir $INSTALL_ROOT/$PROJECT/lib \
> $BUILD_ROOT/$PROJECT \
> $DOWNLOAD_ROOT/$PROJECT
> $MESON compile -C $BUILD_ROOT/$PROJECT
> $MESON install -C $BUILD_ROOT/$PROJECT
> # Meson build produces .a files which are unusable from CMake, rename to
> .lib
> cd $INSTALL_ROOT/$PROJECT/lib
> # In our minimal bash shell `rename` command is missing, do it in a harder
> way.
> for i in *.a; do
> mv $i ${i/.a/.lib}
> done
>
> The build output:
>
> Downloading cairo from
> https://cairographics.org/releases/cairo-1.18.4.tar.xz
> Unpacking cairo from cairo.tar.xz
> The Meson build system
> Version: 1.4.99
> Source dir: C:\work\Acapella\main\Build\Debug\ThirdParty\Download\cairo
> Build dir: C:\work\Acapella\main\Build\Debug\ThirdParty\build\cairo
> Build type: native build
> Program version.py found: YES
> (C:\work\Acapella\main\Build\Debug\ThirdParty\BuildProducts\python\PCbuild\amd64\python.exe
> C:\work\Acapella\main\Build\Debug\ThirdParty\Download\cairo\version.py)
> Project name: cairo
> Project version: 1.18.4
> C compiler for the host machine: cl (msvc 19.42.34438 "Microsoft (R)
> C/C++ Optimizing Compiler Version 19.42.34438 for x64")
> C linker for the host machine: link link 14.42.34438.0
> Host machine cpu family: x86_64
> Host machine cpu: x86_64
> Program python3 found: YES
> (C:\work\Acapella\main\Build\Debug\ThirdParty\BuildProducts\python\PCbuild\amd64\python.exe)
> Library m found: NO
> Dependency gtk+-2.0 skipped: feature gtk2-utils disabled
> Compiler for C supports link arguments -Wl,-Bsymbolic-functions: NO
> Fetching value of define "__FLOAT_WORD_ORDER__" : (undefined)
> CUSTOMBUILD : warning : Found pkg-config 'perl
> C:\\work\\Acapella\\main\\Build\\Debug\\ThirdParty\\Download\\strawberry-perl\\perl\\bin\\pkg-config'
> but it failed when ran
>
> [C:\work\Acapella\main\Build\Debug\Common\Windows\ThirdPartyBuild\ThirdPartyBuild_target.vcxproj]
> Found pkg-config: NO
> Found CMake:
> C:/work/Acapella/main/Production/Common/Windows/MasterbuildTools/CMake/bin/cmake.exe
> (3.27.6)
> Run-time dependency lzo2 found: NO (tried pkgconfig and cmake)
> Library dl found: NO
> Checking for function "dlsym" : NO
> Checking for function "dlsym" : NO
> Run-time dependency zlib found: NO (tried pkgconfig, cmake and system)
> Looking for a fallback subproject for the dependency zlib
> Downloading zlib source from http://zlib.net/fossils/zlib-1.3.1.tar.gz
> Downloading zlib patch from
> https://wrapdb.mesonbuild.com/v2/zlib_1.3.1-1/get_patch
>
> Executing subproject zlib
>
> zlib| Project name: zlib
> zlib| Project version: 1.3.1
> zlib| C compiler for the host machine: cl (msvc 19.42.34438 "Microsoft
> (R) C/C++ Optimizing Compiler Version 19.42.34438 for x64")
> zlib| C linker for the host machine: link link 14.42.34438.0
> zlib| Compiler for C supports link arguments
> -Wl,--version-script,C:\work\Acapella\main\Build\Debug\ThirdParty\Download\cairo\subprojects\zlib-1.3.1/zlib.map:
> NO
> zlib| Windows resource compiler: Microsoft (R) Windows (R) Resource
> Compiler Version 10.0.10011.16384
> zlib| Build targets in project: 3
> zlib| Subproject zlib finished.
>
> Dependency zlib from subproject subprojects/zlib-1.3.1 found: YES 1.3.1
> Run-time dependency libpng found: NO (tried pkgconfig and cmake)
> Looking for a fallback subproject for the dependency libpng
> Downloading libpng source from
> https://github.com/glennrp/libpng/archive/v1.6.43.tar.gz
> Downloading file of unknown size.
> Downloading libpng patch from
> https://wrapdb.mesonbuild.com/v2/libpng_1.6.43-1/get_patch
> Traceback (most recent call last):
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\mesonmain.py",
> line 188, in run
> return options.run_func(options)
> ^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\msetup.py",
> line 363, in run
> app.generate()
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\msetup.py",
> line 187, in generate
> return self._generate(env, capture, vslite_ctx)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\msetup.py",
> line 226, in _generate
> intr.run()
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreter\interpreter.py",
> line 3027, in run
> super().run()
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 169, in run
> self.evaluate_codeblock(self.ast, start=1)
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 195, in evaluate_codeblock
> raise e
>
> Executing subproject libpng
>
> libpng| Project name: libpng
> libpng| Project version: 1.6.43
> libpng| C compiler for the host machine: cl (msvc 19.42.34438 "Microsoft
> (R) C/C++ Optimizing Compiler Version 19.42.34438 for x64")
> libpng| C linker for the host machine: link link 14.42.34438.0
> libpng| Dependency zlib found: YES 1.3.1 (cached)
> libpng| Library m found: NO
> libpng| Fetching value of define "__ARM_NEON" : (undefined)
> libpng| Configuring libpng16.pc using configuration
> libpng| Configuring libpng.pc using configuration
> libpng| Build targets in project: 5
> libpng| Subproject libpng finished.
>
> Dependency libpng from subproject subprojects/libpng-1.6.43 found: YES
> 1.6.43
> Dependency fontconfig skipped: feature fontconfig disabled
> Program ttx found: NO
> Dependency freetype2 skipped: feature freetype disabled
> Run-time dependency x11 found: NO (tried pkgconfig and cmake)
> Run-time dependency xext found: NO (tried pkgconfig and cmake)
> Run-time dependency xcb found: NO (tried pkgconfig and cmake)
> Run-time dependency xcb-render found: NO (tried pkgconfig and cmake)
> C++ compiler for the host machine: cl (msvc 19.42.34438 "Microsoft (R)
> C/C++ Optimizing Compiler Version 19.42.34438 for x64")
> C++ linker for the host machine: link link 14.42.34438.0
> Library gdi32 found: YES
> Library msimg32 found: YES
> Library d2d1 found: YES
> Library dwrite found: YES
> CUSTOMBUILD : warning : msvc does not support C++11; attempting best
> effort; setting the standard to C++14
> [C:\work\Acapella\main\Build\Debug\Common\Windows\ThirdPartyBuild\ThirdPartyBuild_target.vcxproj]
>
> ..\cairo\meson.build(518,28): error G9B8F94EC: Unhandled python exception
> [C:\work\Acapella\main\Build\Debug\Common\Windows\ThirdPartyBuild\ThirdPartyBuild_target.vcxproj]
>
> This is a Meson bug and should be reported!
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 187, in evaluate_codeblock
> self.evaluate_statement(cur)
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 219, in evaluate_statement
> return self.evaluate_if(cur)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 309, in evaluate_if
> self.evaluate_codeblock(i.block)
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 195, in evaluate_codeblock
> raise e
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 187, in evaluate_codeblock
> self.evaluate_statement(cur)
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 205, in evaluate_statement
> self.assignment(cur)
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 642, in assignment
> value = self.evaluate_statement(node.value)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 207, in evaluate_statement
> return self.method_call(cur)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\interpreterbase.py",
> line 557, in method_call
> res = obj.method_call(method_name, args, kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\baseobjects.py",
> line 81, in method_call
> return method(args, kwargs)
> ^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\decorators.py",
> line 250, in wrapper
> return f(*nargs, **wrapped_kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreterbase\decorators.py",
> line 569, in wrapper
> return f(*wrapped_args, **wrapped_kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreter\compiler.py",
> line 653, in has_header_method
> return self._has_header_impl(args[0], kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreter\compiler.py",
> line 638, in _has_header_impl
> haz, cached = self.compiler.has_header(hname, kwargs['prefix'],
> self.environment,
>
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\compilers\mixins\clike.py",
> line 351, in has_header
> return self.compiles(code, env, extra_args=extra_args,
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\compilers\compilers.py",
> line 1310, in compiles
> with self._build_wrapper(code, env, extra_args, dependencies, mode,
> disable_cache=disable_cache) as p:
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\BuildProducts\python\Lib\contextlib.py",
> line 137, in __enter__
> return next(self.gen)
> ^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\compilers\compilers.py",
> line 1291, in _build_wrapper
> args = self.build_wrapper_args(env, extra_args, dependencies, mode)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\compilers\mixins\clike.py",
> line 420, in build_wrapper_args
> extra_args = mesonlib.listify([e(mode.value) if callable(e) else e
> for e in extra_args])
> ^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\interpreter\compiler.py",
> line 274, in _determine_args
> args += self.compiler.get_option_compile_args(opts)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\compilers\cpp.py",
> line 856, in get_option_compile_args
> args = super().get_option_compile_args(options)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\compilers\cpp.py",
> line 815, in get_option_compile_args
> options.set_value(key, 'c++14')
> File
> "C:\work\Acapella\main\Build\Debug\ThirdParty\Download\meson\mesonbuild\coredata.py",
> line 940, in set_value
> self.overrides[key] = value
> ~~~~~~~~~~~~~~^^^^^
> TypeError: 'NoneType' object does not support item assignment
> C:\Program Files\Microsoft Visual
> Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5):
> error MSB8066: Custom build for 'C:\work\Acapella\
> main\Build\Debug\CMakeFiles\577c39a0e18058a69e71990c40b7569a\ThirdPartyBuild_target.rule'
> exited with code 2. Build failed
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cairographics.org/archives/cairo/attachments/20250403/8e1c9197/attachment-0001.htm>
More information about the cairo
mailing list