diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-06-15 03:17:52 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-06-15 03:17:52 +0300 |
commit | af126c9d0ed95287d0a3a7511ccc06d9a9b7f1e9 (patch) | |
tree | a51a499135b658f98c0bb07f796ae971eed61100 | |
parent | 45d51954941328342aecb710133785cefdacfe18 (diff) | |
download | meson-af126c9d0ed95287d0a3a7511ccc06d9a9b7f1e9.zip meson-af126c9d0ed95287d0a3a7511ccc06d9a9b7f1e9.tar.gz meson-af126c9d0ed95287d0a3a7511ccc06d9a9b7f1e9.tar.bz2 |
Dependency tracking works with MSVC.
-rwxr-xr-x | backends.py | 17 | ||||
-rwxr-xr-x | environment.py | 15 |
2 files changed, 26 insertions, 6 deletions
diff --git a/backends.py b/backends.py index e567ed5..7d43cdb 100755 --- a/backends.py +++ b/backends.py @@ -190,6 +190,7 @@ class Backend(): def generate_basic_compiler_flags(self, target, compiler): commands = [] + commands += compiler.get_always_flags() commands += self.build.get_global_flags(compiler) commands += target.get_extra_args(compiler.get_language()) if self.environment.coredata.buildtype != 'plain': @@ -540,10 +541,13 @@ class NinjaBackend(Backend): ' '.join(compiler.get_output_flags('$out')),\ ' '.join(compiler.get_compile_only_flags())) description = ' description = Compiling %s object $out\n' % langname - dep = ' depfile = $DEPFILE\n' + if compiler.get_id() == 'msvc': + deps = ' deps = msvc\n' + else: + deps = ' depfile = $DEPFILE\n' outfile.write(rule) outfile.write(command) - outfile.write(dep) + outfile.write(deps) outfile.write(description) outfile.write('\n') @@ -559,11 +563,14 @@ class NinjaBackend(Backend): ' '.join([qstr % d for d in depflags]),\ output,\ ' '.join(compiler.get_compile_only_flags())) - description = ' description = Precompilling header %s\n' % '$in' - dep = ' depfile = $DEPFILE\n' + description = ' description = Precompiling header %s\n' % '$in' + if compiler.get_id() == 'msvc': + deps = ' deps = msvc\n' + else: + deps = ' depfile = $DEPFILE\n' outfile.write(rule) outfile.write(command) - outfile.write(dep) + outfile.write(deps) outfile.write(description) outfile.write('\n') diff --git a/environment.py b/environment.py index 376ebfa..b9539b8 100755 --- a/environment.py +++ b/environment.py @@ -36,7 +36,10 @@ class CCompiler(): self.language = 'c' self.default_suffix = 'c' self.id = 'unknown' - + + def get_always_flags(self): + return [] + def get_id(self): return self.id @@ -244,11 +247,15 @@ class ObjCPPCompiler(CPPCompiler): class VisualStudioCCompiler(CCompiler): std_warn_flags = ['/W3'] std_opt_flags= ['/O2'] + always_flags = ['/nologo', '/showIncludes'] def __init__(self, exelist): CCompiler.__init__(self, exelist) self.id = 'msvc' + def get_always_flags(self): + return VisualStudioCCompiler.always_flags + def get_std_warn_flags(self): return VisualStudioCCompiler.std_warn_flags @@ -447,6 +454,7 @@ class ClangCPPCompiler(CPPCompiler): return 'pch' class VisualStudioLinker(): + always_flags = ['/NOLOGO'] def __init__(self, exelist): self.exelist = exelist @@ -462,6 +470,9 @@ class VisualStudioLinker(): def get_coverage_link_flags(self): return [] + def get_always_flags(self): + return VisualStudioLinker.always_flags + class ArLinker(): std_flags = ['csr'] @@ -480,6 +491,8 @@ class ArLinker(): def get_coverage_link_flags(self): return [] + def get_always_flags(self): + return [] def exe_exists(arglist): try: p = subprocess.Popen(arglist, stdout=subprocess.PIPE, stderr=subprocess.PIPE) |