This replaces all of the Apache blurbs at the start of each file with an
`# SPDX-License-Identifier: Apache-2.0` string. It also fixes existing
uses to be consistent in capitalization, and to be placed above any
copyright notices.
This removes nearly 3000 lines of boilerplate from the project (only
python files), which no developer cares to look at.
SPDX is in common use, particularly in the Linux kernel, and is the
recommended format for Meson's own `project(license: )` field
The only real differences between these generators is the file extension
and the templates themselves. We can uses a shared abstract class
with a few abstract properties to provide all of this to the same base
class. This results in less code duplication and easier maintanence.
I've made a few cleanups to the shared template:
- use `str.capitalize()` instead of `str.upper()[0] + str[1:]`
- use `open` as a context manager
- use f-strings
- put some duplicate calculations in the initializer
D lang compilers have an option -release (or similar) which turns off
asserts, contracts, and other runtime type checking. This patch wires
that up to the b_ndebug flag.
Fixes#7082
It was generating an extra comma.
The Meson build system
Version: 0.54.0
Source dir: /tmp/tmp34halxhe
Build dir: /tmp/tmp34halxhe/build
Build type: native build
meson.build:6:15: ERROR: Expecting rparen got comma.
'Foo.java',,
^
For a block that started at 5,3
jar('tmp34halxhe',
^
A full log can be found at /tmp/tmp34halxhe/build/meson-logs/meson-log.txt
Using "tmp34halxhe" (name of current directory) as project name.
Using "tmp34halxhe" (project name) as name of executable to build.
Detected source files: Foo.java
Detected language: java
Generated meson.build file:
project('tmp34halxhe', 'java',
version : '0.1',
default_options : ['warning_level=3'])
jar('tmp34halxhe',
'Foo.java',,
main_class: tmp34halxhe,
install : true)
It was also missing quotes around the main class name.
The Meson build system
Version: 0.54.0
Source dir: /tmp/tmpjm5cg44a
Build dir: /tmp/tmpjm5cg44a/build
Build type: native build
Project name: tmpjm5cg44a
Project version: 0.1
Java compiler for the host machine: javac (unknown 1.8.0)
Host machine cpu family: x86_64
Host machine cpu: x86_64
meson.build:5:0: ERROR: Unknown variable "tmpjm5cg44a".
A full log can be found at /tmp/tmpjm5cg44a/build/meson-logs/meson-log.txt
Using "tmpjm5cg44a" (name of current directory) as project name.
Using "tmpjm5cg44a" (project name) as name of executable to build.
Detected source files: Foo.java
Detected language: java
Generated meson.build file:
project('tmpjm5cg44a', 'java',
version : '0.1',
default_options : ['warning_level=3'])
jar('tmpjm5cg44a',
'Foo.java',
main_class: tmpjm5cg44a,
install : true)
On Windows, the basename is used to determine the name of the PDB
file. So for a project called myproject, we will create myproject.dll
and myproject.exe, both of which will have myproject.pdb. This is
a file collision. Instead, append `_test`, similar to the C# template.
Fixes AllPlatformTest.test_templates on MSVC. This became a hard error
when we started listing PDBs in the implicit outputs list of ninja
targets.
Do the same for a test that was making the same mistake.