diff options
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r-- | mesonbuild/compilers/compilers.py | 2 | ||||
-rw-r--r-- | mesonbuild/compilers/d.py | 16 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/visualstudio.py | 15 |
3 files changed, 22 insertions, 11 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index fa1046a..fd3bdb7 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -289,7 +289,7 @@ base_options = {'b_pch': coredata.UserBooleanOption('Use precompiled headers', T 'b_bitcode': coredata.UserBooleanOption('Generate and embed bitcode (only macOS/iOS/tvOS)', False), 'b_vscrt': coredata.UserComboOption('VS run-time library type to use.', - ['none', 'md', 'mdd', 'mt', 'mtd', 'from_buildtype'], + ['none', 'md', 'mdd', 'mt', 'mtd', 'from_buildtype', 'static_from_buildtype'], 'from_buildtype'), } # type: OptionDictType diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 630291a..95850ea 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -389,19 +389,25 @@ class DmdLikeCompilerMixin(CompilerMixinBase): if crt_val in self.mscrt_args: return self.mscrt_args[crt_val] - assert(crt_val == 'from_buildtype') + assert(crt_val in ['from_buildtype', 'static_from_buildtype']) + + dbg = 'mdd' + rel = 'md' + if crt_val == 'static_from_buildtype': + dbg = 'mtd' + rel = 'mt' # Match what build type flags used to do. if buildtype == 'plain': return [] elif buildtype == 'debug': - return self.mscrt_args['mdd'] + return self.mscrt_args[dbg] elif buildtype == 'debugoptimized': - return self.mscrt_args['md'] + return self.mscrt_args[rel] elif buildtype == 'release': - return self.mscrt_args['md'] + return self.mscrt_args[rel] elif buildtype == 'minsize': - return self.mscrt_args['md'] + return self.mscrt_args[rel] else: assert(buildtype == 'custom') raise EnvironmentException('Requested C runtime based on buildtype, but buildtype is "custom".') diff --git a/mesonbuild/compilers/mixins/visualstudio.py b/mesonbuild/compilers/mixins/visualstudio.py index 75ab635..3e8b8e3 100644 --- a/mesonbuild/compilers/mixins/visualstudio.py +++ b/mesonbuild/compilers/mixins/visualstudio.py @@ -362,18 +362,23 @@ class VisualStudioLikeCompiler(Compiler, metaclass=abc.ABCMeta): def get_crt_compile_args(self, crt_val: str, buildtype: str) -> T.List[str]: if crt_val in self.crt_args: return self.crt_args[crt_val] - assert(crt_val == 'from_buildtype') + assert(crt_val in ['from_buildtype', 'static_from_buildtype']) + dbg = 'mdd' + rel = 'md' + if crt_val == 'static_from_buildtype': + dbg = 'mtd' + rel = 'mt' # Match what build type flags used to do. if buildtype == 'plain': return [] elif buildtype == 'debug': - return self.crt_args['mdd'] + return self.crt_args[dbg] elif buildtype == 'debugoptimized': - return self.crt_args['md'] + return self.crt_args[rel] elif buildtype == 'release': - return self.crt_args['md'] + return self.crt_args[rel] elif buildtype == 'minsize': - return self.crt_args['md'] + return self.crt_args[rel] else: assert(buildtype == 'custom') raise mesonlib.EnvironmentException('Requested C runtime based on buildtype, but buildtype is "custom".') |