aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/vs2010backend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-03-18 23:26:38 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-03-18 23:26:38 +0200
commit7844fd54d9d12e009e4fad9f023df618d6af3e1e (patch)
tree59f57d86909a263c4287ba4a0cb890f6a691b3ae /mesonbuild/backend/vs2010backend.py
parent64a0dc626993f61106a4000ce24aed0806f8f5e8 (diff)
parent147b7aa3566e5b645d8e216c4e974e7534a53dc3 (diff)
downloadmeson-7844fd54d9d12e009e4fad9f023df618d6af3e1e.zip
meson-7844fd54d9d12e009e4fad9f023df618d6af3e1e.tar.gz
meson-7844fd54d9d12e009e4fad9f023df618d6af3e1e.tar.bz2
Merge pull request #458 from nioncode/vs-object-extraction
vs2010: fix object extraction
Diffstat (limited to 'mesonbuild/backend/vs2010backend.py')
-rw-r--r--mesonbuild/backend/vs2010backend.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index a72681b..ac4f0b2 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -36,7 +36,7 @@ class Vs2010Backend(backends.Backend):
super().__init__(build)
self.project_file_version = '10.0.30319.1'
# foo.c compiles to foo.obj, not foo.c.obj
- self.source_suffix_in_obj = False
+ self.source_suffix_in_objs = False
def generate_custom_generator_commands(self, target, parent_node):
all_output_files = []
@@ -116,7 +116,7 @@ class Vs2010Backend(backends.Backend):
result = {}
for o in obj_list:
if isinstance(o, build.ExtractedObjects):
- result[o.target.get_basename()] = True
+ result[o.target.get_id()] = True
return result.keys()
def determine_deps(self, p):
@@ -492,9 +492,10 @@ class Vs2010Backend(backends.Backend):
rel_path = self.relpath(lobj.subdir, target.subdir)
linkname = os.path.join(rel_path, lobj.get_import_filename())
additional_links.append(linkname)
- for o in self.flatten_object_list(target, down):
+ additional_objects = []
+ for o in self.flatten_object_list(target, down, include_dir_names=False):
assert(isinstance(o, str))
- additional_links.append(o)
+ additional_objects.append(o)
if len(additional_links) > 0:
additional_links.append('%(AdditionalDependencies)')
ET.SubElement(link, 'AdditionalDependencies').text = ';'.join(additional_links)
@@ -549,13 +550,15 @@ class Vs2010Backend(backends.Backend):
# just the file name instead of the relative path to the file.
pch_file.text = os.path.split(header)[1]
- if len(objects) > 0:
+ if len(objects) + len(additional_objects) > 0:
# Do not add gen_objs to project file. Those are automatically used by MSBuild, because they are part of
# the CustomBuildStep Outputs.
inc_objs = ET.SubElement(root, 'ItemGroup')
for s in objects:
relpath = s.rel_to_builddir(proj_to_src_root)
ET.SubElement(inc_objs, 'Object', Include=relpath)
+ for s in additional_objects:
+ ET.SubElement(inc_objs, 'Object', Include=s)
ET.SubElement(root, 'Import', Project='$(VCTargetsPath)\Microsoft.Cpp.targets')
# Reference the regen target.
ig = ET.SubElement(root, 'ItemGroup')