templates: Add a Meson version

Without a version certain kinds of warnings will be suppressed, which is
bad.

I've picked 1.0 because it's pretty old, except for Rust where I've
maintained the 1.3.0 requirement
pull/14086/head
Dylan Baker 1 month ago
parent fbe5655707
commit 5c209e1966
  1. 2
      mesonbuild/templates/cpptemplates.py
  2. 2
      mesonbuild/templates/cstemplates.py
  3. 2
      mesonbuild/templates/ctemplates.py
  4. 2
      mesonbuild/templates/cudatemplates.py
  5. 2
      mesonbuild/templates/dlangtemplates.py
  6. 2
      mesonbuild/templates/fortrantemplates.py
  7. 2
      mesonbuild/templates/javatemplates.py
  8. 4
      mesonbuild/templates/mesontemplates.py
  9. 2
      mesonbuild/templates/objcpptemplates.py
  10. 2
      mesonbuild/templates/objctemplates.py
  11. 13
      mesonbuild/templates/rusttemplates.py
  12. 9
      mesonbuild/templates/sampleimpl.py
  13. 2
      mesonbuild/templates/valatemplates.py

@ -23,6 +23,7 @@ int main(int argc, char **argv) {{
hello_cpp_meson_template = '''project('{project_name}', 'cpp',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3',
'cpp_std=c++14'])
@ -95,6 +96,7 @@ int main(int argc, char **argv) {{
lib_cpp_meson_template = '''project('{project_name}', 'cpp',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3', 'cpp_std=c++14'])
# These arguments are only used to build the shared library

@ -26,6 +26,7 @@ public class {class_name} {{
hello_cs_meson_template = '''project('{project_name}', 'cs',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
exe = executable('{exe_name}', '{source_name}',
@ -63,6 +64,7 @@ public class {class_test} {{
lib_cs_meson_template = '''project('{project_name}', 'cs',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
stlib = shared_library('{lib_name}', '{source_file}',

@ -54,6 +54,7 @@ int main(int argc, char **argv) {{
lib_c_meson_template = '''project('{project_name}', 'c',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
# These arguments are only used to build the shared library
@ -105,6 +106,7 @@ int main(int argc, char **argv) {{
'''
hello_c_meson_template = '''project('{project_name}', 'c',
meson_version : '>= {meson_version}',
version : '{version}',
default_options : ['warning_level=3'])

@ -23,6 +23,7 @@ int main(int argc, char **argv) {{
hello_cuda_meson_template = '''project('{project_name}', ['cuda', 'cpp'],
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3',
'cpp_std=c++14'])
@ -95,6 +96,7 @@ int main(int argc, char **argv) {{
lib_cuda_meson_template = '''project('{project_name}', ['cuda', 'cpp'],
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
# These arguments are only used to build the shared library

@ -26,6 +26,7 @@ int main(string[] args) {{
hello_d_meson_template = '''project('{project_name}', 'd',
version : '{version}',
meson_version : '>= {meson_version}',
default_options: ['warning_level=3'])
exe = executable('{exe_name}', '{source_name}',
@ -64,6 +65,7 @@ int main(string[] args) {{
lib_d_meson_template = '''project('{project_name}', 'd',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
stlib = static_library('{lib_name}', '{source_file}',

@ -39,6 +39,7 @@ end program
lib_fortran_meson_template = '''project('{project_name}', 'fortran',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
# These arguments are only used to build the shared library
@ -83,6 +84,7 @@ end program
hello_fortran_meson_template = '''project('{project_name}', 'fortran',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
exe = executable('{exe_name}', '{source_name}',

@ -26,6 +26,7 @@ public class {class_name} {{
hello_java_meson_template = '''project('{project_name}', 'java',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
exe = jar('{exe_name}', '{source_name}',
@ -66,6 +67,7 @@ public class {class_test} {{
lib_java_meson_template = '''project('{project_name}', 'java',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
jarlib = jar('{class_name}', '{source_file}',

@ -11,6 +11,7 @@ if T.TYPE_CHECKING:
meson_executable_template = '''project('{project_name}', {language},
version : '{version}',
meson_version : '>= {meson_version}',
default_options : [{default_options}])
executable('{executable}',
@ -21,6 +22,7 @@ executable('{executable}',
meson_jar_template = '''project('{project_name}', '{language}',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : [{default_options}])
jar('{executable}',
@ -54,6 +56,7 @@ def create_meson_build(options: Arguments) -> None:
content = meson_executable_template.format(project_name=options.name,
language=language,
version=options.version,
meson_version='1.0.0',
executable=options.executable,
sourcespec=sourcespec,
depspec=depspec,
@ -62,6 +65,7 @@ def create_meson_build(options: Arguments) -> None:
content = meson_jar_template.format(project_name=options.name,
language=options.language,
version=options.version,
meson_version='1.0.0' if options.language != 'rust' else '1.3.0',
executable=options.executable,
main_class=options.name,
sourcespec=sourcespec,

@ -54,6 +54,7 @@ int main(int argc, char **argv) {{
lib_objcpp_meson_template = '''project('{project_name}', 'objcpp',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
# These arguments are only used to build the shared library
@ -106,6 +107,7 @@ int main(int argc, char **argv) {{
hello_objcpp_meson_template = '''project('{project_name}', 'objcpp',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
exe = executable('{exe_name}', '{source_name}',

@ -54,6 +54,7 @@ int main(int argc, char **argv) {{
lib_objc_meson_template = '''project('{project_name}', 'objc',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
# These arguments are only used to build the shared library
@ -106,6 +107,7 @@ int main(int argc, char **argv) {{
hello_objc_meson_template = '''project('{project_name}', 'objc',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['warning_level=3'])
exe = executable('{exe_name}', '{source_name}',

@ -8,6 +8,9 @@ import typing as T
from mesonbuild.templates.sampleimpl import FileImpl
if T.TYPE_CHECKING:
from ..minit import Arguments
lib_rust_template = '''#![crate_name = "{crate_file}"]
@ -35,7 +38,8 @@ mod tests {{
lib_rust_meson_template = '''project('{project_name}', 'rust',
version : '{version}', meson_version: '>=1.3.0',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['rust_std=2021', 'warning_level=3'])
rust = import('rust')
@ -58,7 +62,8 @@ fn main() {{
'''
hello_rust_meson_template = '''project('{project_name}', 'rust',
version : '{version}', meson_version: '>=1.3.0',
version : '{version}',
meson_version : '>= {meson_version}',
default_options : ['rust_std=2021', 'warning_level=3'])
exe = executable('{exe_name}', '{source_name}',
@ -77,6 +82,10 @@ class RustProject(FileImpl):
lib_test_template = None
lib_meson_template = lib_rust_meson_template
def __init__(self, args: Arguments):
super().__init__(args)
self.meson_version = '1.3.0'
def lib_kwargs(self) -> T.Dict[str, str]:
kwargs = super().lib_kwargs()
kwargs['crate_file'] = self.lowercase_token

@ -20,6 +20,7 @@ class SampleImpl(metaclass=abc.ABCMeta):
self.lowercase_token = re.sub(r'[^a-z0-9]', '_', self.name.lower())
self.uppercase_token = self.lowercase_token.upper()
self.capitalized_token = self.lowercase_token.capitalize()
self.meson_version = '1.0.0'
@abc.abstractmethod
def create_executable(self) -> None:
@ -67,7 +68,8 @@ class ClassImpl(SampleImpl):
f.write(self.exe_meson_template.format(project_name=self.name,
exe_name=self.name,
source_name=source_name,
version=self.version))
version=self.version,
meson_version=self.meson_version))
def create_library(self) -> None:
lib_name = f'{self.capitalized_token}.{self.source_ext}'
@ -83,6 +85,7 @@ class ClassImpl(SampleImpl):
'lib_name': self.lowercase_token,
'test_name': self.lowercase_token,
'version': self.version,
'meson_version': self.meson_version,
}
with open(lib_name, 'w', encoding='utf-8') as f:
f.write(self.lib_template.format(**kwargs))
@ -105,7 +108,8 @@ class FileImpl(SampleImpl):
f.write(self.exe_meson_template.format(project_name=self.name,
exe_name=self.name,
source_name=source_name,
version=self.version))
version=self.version,
meson_version=self.meson_version))
def lib_kwargs(self) -> T.Dict[str, str]:
"""Get Language specific keyword arguments
@ -126,6 +130,7 @@ class FileImpl(SampleImpl):
'lib_name': self.lowercase_token,
'test_name': self.lowercase_token,
'version': self.version,
'meson_version': self.meson_version,
}
def create_library(self) -> None:

@ -13,6 +13,7 @@ hello_vala_template = '''void main (string[] args) {{
'''
hello_vala_meson_template = '''project('{project_name}', ['c', 'vala'],
meson_version : '>= {meson_version}',
version : '{version}')
dependencies = [
@ -48,6 +49,7 @@ public void main() {{
'''
lib_vala_meson_template = '''project('{project_name}', ['c', 'vala'],
meson_version : '>= {meson_version}',
version : '{version}')
dependencies = [

Loading…
Cancel
Save