Skip to content

executable does not accept File as argument and gives a traceback #1633

@keszybz

Description

@keszybz
project('meson6', 'c')
header = files('foo.h')
executable('foo',
	   'foo.c',
	   c_args : ['-include', header])
Traceback (most recent call last):
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/mesonmain.py", line 298, in run
    app.generate()
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/mesonmain.py", line 182, in generate
    g.generate(intr)
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/backend/ninjabackend.py", line 201, in generate
    self.generate_target(t, outfile)
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/backend/ninjabackend.py", line 439, in generate_target
    obj_list.append(self.generate_single_compile(target, outfile, src, False, [], header_deps))
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/backend/ninjabackend.py", line 1967, in generate_single_compile
    commands = self._generate_single_compile(target, compiler, is_generated)
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/backend/ninjabackend.py", line 1930, in _generate_single_compile
    target.get_extra_args(compiler.get_language()))
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/compilers.py", line 468, in __iadd__
    dedup = self._can_dedup(arg)
  File "/home/zbyszek/src/meson/meson.git/mesonbuild/compilers.py", line 435, in _can_dedup
    if arg.startswith(cls.dedup2_prefixes) or arg in cls.dedup2_args:
AttributeError: 'File' object has no attribute 'startswith'

The same request applies to add_project_arguments, add_global_argumens:

config_h = configure_file(...)
add_project_arguments('-include', config_h, language : 'c')

should just DTRT. It currently errors out with "Arguments must be strings.".

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions