Skip to content

Commit

Permalink
swift: Add lang_version compiler option
Browse files Browse the repository at this point in the history
  • Loading branch information
2xsaiko committed Feb 25, 2025
1 parent 1b54239 commit de281ec
Showing 1 changed file with 26 additions and 1 deletion.
27 changes: 26 additions & 1 deletion mesonbuild/compilers/swift.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
import subprocess, os.path
import typing as T

from .. import mlog
from .. import mlog, options
from ..mesonlib import EnvironmentException, MesonException, version_compare
from .compilers import Compiler, clike_debug_args


if T.TYPE_CHECKING:
from .. import build
from ..coredata import MutableKeyedOptionDictType
from ..dependencies import Dependency
from ..envconfig import MachineInfo
from ..environment import Environment
Expand Down Expand Up @@ -115,6 +117,29 @@ def get_include_args(self, path: str, is_system: bool) -> T.List[str]:
def get_compile_only_args(self) -> T.List[str]:
return ['-c']

def get_options(self) -> MutableKeyedOptionDictType:
opts = super().get_options()

key = self.form_compileropt_key('lang_version')
opts[key] = options.UserStringOption(
self.make_option_name(key),
'Swift language version.',
'')

return opts

def get_option_compile_args(self, target: build.BuildTarget, env: Environment, subproject: T.Optional[str] = None
) -> T.List[str]:
args = []

lang_version = self.get_compileropt_value('lang_version', env, target, subproject)
assert isinstance(lang_version, str)

if lang_version != '':
args += ['-swift-version', lang_version]

return args

def get_working_directory_args(self, path: str) -> T.Optional[T.List[str]]:
if version_compare(self.version, '<4.2'):
return None
Expand Down

0 comments on commit de281ec

Please sign in to comment.