Skip to content

meson init creates an incorrect build file if the folder its created in contains hyphens in its name #15416

@apache-hb

Description

@apache-hb

Describe the bug
Running meson init in a folder named configure-file-int-repro produces a build file that doesn't work.

elliothb@ELLIOT-SERVER:~/github/configure-file-int-repro$ meson setup build
The Meson build system
Version: 1.10.0
Source dir: /home/elliothb/github/configure-file-int-repro
Build dir: /home/elliothb/github/configure-file-int-repro/build
Build type: native build
Project name: configure-file-int-repro
Project version: 0.1
C compiler for the host machine: cc (clang 22.0.0 "clang version 22.0.0git (https://github.com/apache-hb/llvm-project 6bccd967b117176192b821c178a55ea31192b45a)")
C linker for the host machine: cc ld.lld 22.0.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Configuring thing.h using configuration

meson.build:26:6: ERROR: File configure-file-int-repro.c does not exist.

A full log can be found at /home/elliothb/github/configure-file-int-repro/build/meson-logs/meson-log.txt

This is because meson normalizes the file name of the executable to configure_file_int_repro.c but does not also normalize it in the produced meson.build file

To Reproduce

mkdir configure-file-int-repro
cd configure-file-int-repro
meson init
meson setup builddir

Expected behavior
The produced build file contains the normalized file name rather than the one with hyphens

system parameters

elliothb@ELLIOT-SERVER:~/github/configure-file-int-repro$ python3 --version
Python 3.10.12
elliothb@ELLIOT-SERVER:~/github/configure-file-int-repro$ meson --version
1.10.0
elliothb@ELLIOT-SERVER:~/github/configure-file-int-repro$ uname -a
Linux ELLIOT-SERVER 6.16.5-WSL2-STABLE+ #1 SMP PREEMPT_DYNAMIC Fri Sep  5 02:14:51 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
elliothb@ELLIOT-SERVER:~/github/configure-file-int-repro$ ninja --version
1.10.1

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions