diff options
-rw-r--r-- | mesonbuild/backend/vs2010backend.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index 725b8ed..6df29f2 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -73,9 +73,13 @@ class Vs2010Backend(backends.Backend): commands = [] inputs = [] outputs = [] + custom_target_include_dirs = [] for genlist in target.get_generated_sources(): if isinstance(genlist, build.CustomTarget): all_output_files += [os.path.join(self.get_target_dir(genlist), i) for i in genlist.output] + idir = self.relpath(self.get_target_dir(genlist), self.get_target_dir(target)) + if idir not in custom_target_include_dirs: + custom_target_include_dirs.append(idir) else: generator = genlist.get_generator() exe = generator.get_exe() @@ -111,7 +115,7 @@ class Vs2010Backend(backends.Backend): ET.SubElement(cbs, 'Message').text = 'Generating custom sources.' pg = ET.SubElement(parent_node, 'PropertyGroup') ET.SubElement(pg, 'CustomBuildBeforeTargets').text = 'ClCompile' - return all_output_files + return all_output_files, custom_target_include_dirs def generate(self, interp): self.resolve_source_conflicts() @@ -436,7 +440,7 @@ class Vs2010Backend(backends.Backend): ET.SubElement(type_config, 'WholeProgramOptimization').text = 'false' ET.SubElement(type_config, 'UseDebugLibraries').text = 'true' ET.SubElement(root, 'Import', Project='$(VCTargetsPath)\Microsoft.Cpp.props') - generated_files = self.generate_custom_generator_commands(target, root) + generated_files, generated_files_include_dirs = self.generate_custom_generator_commands(target, root) (gen_src, gen_hdrs, gen_objs, gen_langs) = self.split_sources(generated_files) direlem = ET.SubElement(root, 'PropertyGroup') fver = ET.SubElement(direlem, '_ProjectFileVersion') @@ -455,7 +459,7 @@ class Vs2010Backend(backends.Backend): opt = ET.SubElement(clconf, 'Optimization') opt.text = 'disabled' inc_dirs = ['.', self.relpath(self.get_target_private_dir(target), self.get_target_dir(target)), - proj_to_src_dir] + proj_to_src_dir] + generated_files_include_dirs extra_args = {'c': [], 'cpp': []} for l, args in self.environment.coredata.external_args.items(): |