mitsuba/data/windows/genproj.py

35 lines
1.1 KiB
Python
Raw Normal View History

2011-02-16 23:30:05 +08:00
from lxml import etree
import os, shutil
doc = etree.parse('data/windows/mitsuba.vcproj.template')
headers = etree.ETXPath('/VisualStudioProject/Files/Filter[@Name="Header Files"]')(doc)[0]
sources = etree.ETXPath('/VisualStudioProject/Files/Filter[@Name="Source Files"]')(doc)[0]
def traverse(dirname, base):
for file in [file for file in os.listdir(dirname) if not file in ['.', '..']]:
filename = os.path.join(dirname, file)
if os.path.isdir(filename):
if filename == '.\\include\\mitsuba':
traverse(filename, base)
else:
node = etree.SubElement(base, 'Filter')
node.set('Name', os.path.split(filename)[1])
node.tail = '\n\t\t'
node.text = '\n\t\t'
traverse(filename, node)
else:
ext = os.path.splitext(filename)[1]
if ext == '.cpp' or ext == '.c' or ext == '.h':
node = etree.SubElement(base, 'File')
node.set('RelativePath', filename)
node.tail = '\n\t\t'
traverse('.\\src', sources)
traverse('.\\include', headers)
of = open('mitsuba.vcproj', 'w')
of.write(etree.tostring(doc, pretty_print=True))
of.close()
shutil.copyfile('data/windows/mitsuba.sln.template', 'mitsuba.sln')