Skip to content

Bug with MSVC Compiler (meson 1.5.0) #13402

Closed

Description

@Totto16

Describe the bug

When building my project, that uses the wrap file from cpp-httplib as subproject, it fails while configuring that subproject.

Error trace:

Executing subproject cpp-httplib

cpp-httplib| Project name: cpp-httplib
cpp-httplib| Project version: undefined
cpp-httplib| C++ compiler for the host machine: cl (msvc 19.40.33812 "Microsoft (R) C/C++-Optimierungscompiler Version 19.40.33812 für x64")
cpp-httplib| C++ linker for the host machine: link link 14.40.33812.0
cpp-httplib| WARNING: msvc does not support C++11; attempting best effort; setting the standard to C++14
Traceback (most recent call last):
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\mesonmain.py", line 188, in run
    return options.run_func(options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\msetup.py", line 364, in run
    app.generate()
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\msetup.py", line 187, in generate
    return self._generate(env, capture, vslite_ctx)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\msetup.py", line 226, in _generate
    intr.run()
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 3032, in run
    super().run()
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 169, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 201, in evaluate_statement
    return self.function_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 528, in function_call
    res = func(node, func_args, kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
    return f(*nargs, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 2451, in func_subdir
    self.evaluate_codeblock(codeblock)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 219, in evaluate_statement
    return self.evaluate_if(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 309, in evaluate_if
    self.evaluate_codeblock(i.block)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 219, in evaluate_statement
    return self.evaluate_if(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 314, in evaluate_if
    self.evaluate_codeblock(node.elseblock.block)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 205, in evaluate_statement
    self.assignment(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 642, in assignment
    value = self.evaluate_statement(node.value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 201, in evaluate_statement
    return self.function_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 528, in function_call
    res = func(node, func_args, kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  [Previous line repeated 4 more times]
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 98, in wrapped
    ret = f(*wrapped_args, **wrapped_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 116, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
    return f(*nargs, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 1809, in func_dependency
    d = df.lookup(kwargs)
        ^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\dependencyfallbacks.py", line 354, in lookup
    dep = func(kwargs, func_args, func_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\dependencyfallbacks.py", line 130, in _do_subproject
    self.interpreter.do_subproject(subp_name, func_kwargs)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 948, in do_subproject
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 936, in do_subproject
    return methods_map[method](subp_name, subdir, default_options, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 987, in _do_subproject_meson
    subi.run()
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 3032, in run
    super().run()
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 169, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 219, in evaluate_statement
    return self.evaluate_if(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 309, in evaluate_if
    self.evaluate_codeblock(i.block)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 205, in evaluate_statement
    self.assignment(cur)
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 642, in assignment
    value = self.evaluate_statement(node.value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 207, in evaluate_statement
    return self.method_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 542, in method_call
    obj = self.evaluate_statement(invocable)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 207, in evaluate_statement
    return self.method_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 557, in method_call
    res = obj.method_call(method_name, args, kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\baseobjects.py", line 81, in method_call
    return method(args, kwargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 663, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
    return f(*nargs, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\compiler.py", line 497, in get_define_method
    value, cached = self.compiler.get_define(element, kwargs['prefix'], self.environment,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\compilers\mixins\clike.py", line 654, in get_define
    args = self.build_wrapper_args(env, extra_args, dependencies,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\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 "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\compilers\mixins\clike.py", line 420, in <listcomp>
    extra_args = mesonlib.listify([e(mode.value) if callable(e) else e for e in extra_args])
                                   ^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\interpreter\compiler.py", line 274, in _determine_args
    args += self.compiler.get_option_compile_args(opts)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\compilers\cpp.py", line 857, in get_option_compile_args
    args = super().get_option_compile_args(options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\compilers\cpp.py", line 816, in get_option_compile_args
    options.set_value(key,  'c++14')
  File "~\AppData\Local\Programs\Python\Python311\Lib\site-packages\mesonbuild\coredata.py", line 940, in set_value
    self.overrides[key] = value
    ~~~~~~~~~~~~~~^^^^^
TypeError: 'NoneType' object does not support item assignment

subprojects\cpp-httplib-0.15.3\meson.build:24:16: ERROR: Unhandled python exception

    This is a Meson bug and should be reported!

To Reproduce

Just use the wrap-file for cpp-httplib from the wrapDB. Try to setup a project with it a subproject or use it as standalone target (meson setup builddir/ -Dwraps=cpp-httplib)

Expected behavior
It works as before the 1.5.0 version.
The last tested working version was 1.4.2 (which is strange)

All other compilers and OSes seem to work, see e.g. these CI runs.
I tested it on MacOS, Linux Clang + Linux GCC , Windows Msys2 Mingw64 and UCRT64.

system parameters

  • Native build
  • OS: Windows 10
  • python: 3.11.2
  • meson: 1.5.0
  • MSVC: VS 17.10.4

Activity

  1. changed the title [-]Bug with MSVC Compiler[/-] [+]Bug with MSVC Compiler (meson 1.5.0)[/+] on Jul 10, 2024
  2. added this to the 1.5.1 milestone on Jul 12, 2024
  3. eli-schwartz commented on Jul 21, 2024

    @eli-schwartz
    Member

    #13307 jumps out as a possible cause. @jpakkane?

  4. jpakkane commented on Jul 21, 2024

    @jpakkane
    Member

    Seems likely. I'll look into this tomorrow.

  5. jpakkane commented on Jul 22, 2024

    @jpakkane
    Member

    FTR, bisection points to this commit.

  6. thesamesam commented on Jul 22, 2024

    @thesamesam
    Member
  7. added a commit that references this issue on Jul 22, 2024
    f45f398
  8. jpakkane commented on Jul 22, 2024

    @jpakkane
    Member

    Can you test if the linked MR fixes this for you?

  9. Totto16 commented on Jul 22, 2024

    @Totto16
    Author

    Can you test if the linked MR fixes this for you?

    Yes, this PR / MR fixes this issue ❤️

  10. added a commit that references this issue on Jul 23, 2024
    a6bae13
  11. added a commit that references this issue on Jul 23, 2024
    a97de6b
  12. added a commit that references this issue on Jul 25, 2024
    22a9504
  13. added a commit that references this issue on Feb 19, 2025
    bc9e5d4
  14. added a commit that references this issue on Apr 16, 2025
  15. added a commit that references this issue on May 1, 2025
    9e38565
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions