make use of enums

pull/6658/head
Michael 5 years ago
parent 15cbc4cf0d
commit ea93619092
  1. 46
      mesonbuild/minit.py

@ -15,6 +15,7 @@
"""Code that creates simple startup projects.""" """Code that creates simple startup projects."""
from pathlib import Path from pathlib import Path
from enum import Enum
import subprocess import subprocess
import shutil import shutil
import re import re
@ -42,10 +43,11 @@ FORTRAN_SUFFIXES = ('.f', '.for', '.F', '.f90', '.F90')
LANG_SUFFIXES = ('.c', '.cc', '.cpp', '.cs', '.cu', '.d', '.m', '.mm', '.rs', '.java') + FORTRAN_SUFFIXES LANG_SUFFIXES = ('.c', '.cc', '.cpp', '.cs', '.cu', '.d', '.m', '.mm', '.rs', '.java') + FORTRAN_SUFFIXES
LANG_SUPPORTED = ('c', 'cpp', 'cs', 'cuda', 'd', 'fortran', 'java', 'rust', 'objc', 'objcpp') LANG_SUPPORTED = ('c', 'cpp', 'cs', 'cuda', 'd', 'fortran', 'java', 'rust', 'objc', 'objcpp')
DEFAULT_EXE = 'executable'
DEFAULT_LIB = 'library'
DEFAULT_PROJECT = 'executable' DEFAULT_PROJECT = 'executable'
DEFAULT_VERSION = '0.1' DEFAULT_VERSION = '0.1'
class DEFAULT_TYPES(Enum):
EXE = 'executable'
LIB = 'library'
UNREACHABLE_CODE_ERROR = 'Unreachable code' UNREACHABLE_CODE_ERROR = 'Unreachable code'
@ -63,72 +65,72 @@ def create_sample(options) -> None:
then check for project type and create new Meson samples project. then check for project type and create new Meson samples project.
''' '''
if options.language == 'c': if options.language == 'c':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_c_sample(options.name, options.version) create_exe_c_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_c_sample(options.name, options.version) create_lib_c_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'cpp': elif options.language == 'cpp':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_cpp_sample(options.name, options.version) create_exe_cpp_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_cpp_sample(options.name, options.version) create_lib_cpp_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'cs': elif options.language == 'cs':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_cs_sample(options.name, options.version) create_exe_cs_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_cs_sample(options.name, options.version) create_lib_cs_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'cuda': elif options.language == 'cuda':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_cuda_sample(options.name, options.version) create_exe_cuda_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_cuda_sample(options.name, options.version) create_lib_cuda_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'd': elif options.language == 'd':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_d_sample(options.name, options.version) create_exe_d_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_d_sample(options.name, options.version) create_lib_d_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'fortran': elif options.language == 'fortran':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_fortran_sample(options.name, options.version) create_exe_fortran_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_fortran_sample(options.name, options.version) create_lib_fortran_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'rust': elif options.language == 'rust':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_rust_sample(options.name, options.version) create_exe_rust_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_rust_sample(options.name, options.version) create_lib_rust_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'objc': elif options.language == 'objc':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_objc_sample(options.name, options.version) create_exe_objc_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_objc_sample(options.name, options.version) create_lib_objc_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'objcpp': elif options.language == 'objcpp':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_objcpp_sample(options.name, options.version) create_exe_objcpp_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_objcpp_sample(options.name, options.version) create_lib_objcpp_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)
elif options.language == 'java': elif options.language == 'java':
if options.type == DEFAULT_EXE: if options.type == DEFAULT_TYPES['EXE'].value:
create_exe_java_sample(options.name, options.version) create_exe_java_sample(options.name, options.version)
elif options.type == DEFAULT_LIB: elif options.type == DEFAULT_TYPES['LIB'].value:
create_lib_java_sample(options.name, options.version) create_lib_java_sample(options.name, options.version)
else: else:
raise RuntimeError(UNREACHABLE_CODE_ERROR) raise RuntimeError(UNREACHABLE_CODE_ERROR)

Loading…
Cancel
Save