Index: engine/SConscript
===================================================================
--- engine/SConscript (revision 2164)
+++ engine/SConscript (working copy)
@@ -94,7 +94,9 @@
for l in dupes: print l
Exit(1)
-def generate_msvc_project(projectfiles):
+msvcbuildpath = joinpath('build', 'win32', 'build_environments', 'visual_studio_8')
+
+def generate_msvc_project(target, source, env):
def create_dict_tree(source_dict):
for f in source_dict.keys():
parts = f.split(os.path.sep, 1)
@@ -122,27 +124,30 @@
retstr.append(tabcount * '\t' + '' % newpath.replace('/','\\'))
return '\n'.join(retstr)
- msvcbuildpath = joinpath('..', 'build', 'win32', 'build_environments', 'visual_studio_8')
- vcpaths = [os.path.abspath(f).split('%sengine%s' % (_sep, _sep))[-1] for f in projectfiles]
+ vcpaths = [os.path.abspath(str(f)).split('%sengine%s' % (_sep, _sep))[-1] for f in source]
xmlstr = get_msvc_repr(create_dict_tree(dict([[p, {}] for p in vcpaths])))
projtxt = open(joinpath(msvcbuildpath, 'engine_template.xml'), 'r').read()
projtxt = projtxt.replace('__FILE_INSERTION_POINT__', xmlstr)
- vcprojfilename = joinpath(msvcbuildpath, 'fife.vcproj')
oldprojtxt = ''
try:
- oldprojtxt = open(vcprojfilename, 'r').read()
+ oldprojtxt = open(str(target[0]), 'r').read()
except:
pass
if(oldprojtxt <> projtxt):
- open(vcprojfilename, 'w').write(projtxt)
- print "FIFE msvc project file succesfully created (%s)" % os.path.abspath(vcprojfilename)
+ open(str(target[0]), 'w').write(projtxt)
+ print "FIFE msvc project file succesfully created (%s)" % os.path.abspath(str(target[0]))
else:
- print "FIFE msvc project file already up-to-date (%s)" % os.path.abspath(vcprojfilename)
+ print "FIFE msvc project file already up-to-date (%s)" % os.path.abspath(str(target[0]))
+msvc_project_builder = Builder(action = generate_msvc_project, suffix = '.vcproj')
+env.Append(BUILDERS = {'MSVCProject': msvc_project_builder})
-def generate_codeblocks_project(projectfiles):
+
+cbbuildpath = joinpath('build', 'win32', 'build_environments', 'code_blocks')
+
+def generate_codeblocks_project(target, source, env):
codeblocksHeaderDef = \
'''
@@ -156,21 +161,21 @@
'''
- cbbuildpath = joinpath('..', 'build', 'win32', 'build_environments', 'code_blocks')
xmlstr = []
- for f in projectfiles:
- newf = os.path.abspath(f).split('%sengine%s' % (_sep, _sep))[-1]
+ for f in source:
+ newf = os.path.abspath(str(f)).split('%sengine%s' % (_sep, _sep))[-1]
newf = newf.replace('/', '\\')
- if f in headerfiles:
+ if str(f) in headerfiles:
xmlstr.append(codeblocksHeaderDef % newf)
else:
xmlstr.append(codeblocksCppDef % newf)
projtxt = open(joinpath(cbbuildpath, 'engine_template.xml'), 'r').read()
projtxt = projtxt.replace('__FILE_INSERTION_POINT__', '\n'.join(xmlstr))
- cbprojfilename = joinpath(cbbuildpath, 'fife_engine.cbp')
- open(cbprojfilename, 'w').write(projtxt)
- print "FIFE code::blocks project file succesfully created (%s)" % os.path.abspath(cbprojfilename)
+ open(str(target[0]), 'w').write(projtxt)
+ print "FIFE code::blocks project file succesfully created (%s)" % os.path.abspath(str(target[0]))
+codeblocks_project_builder = Builder(action = generate_codeblocks_project, suffix = '.cbp')
+env.Append(BUILDERS = {'CodeblocksProject': codeblocks_project_builder})
variated_dirs = eval(open(joinpath('config', 'variated_dirs'), 'r').read())
# filter out swigwrappers. fife_wrap.cxx is appended manually
@@ -199,18 +204,15 @@
implfiles = [f for f in allfiles if is_implfile(f)]
extensionfiles = list(extensionpath.walkfiles('*.py'))
-def generate_all_project_files():
- filtered_prj_paths = eval(open(joinpath('config', 'removed_from_project_files'), 'r').read())
- filtered_prj_paths = [joinpath(*p.split('/')) for p in filtered_prj_paths]
- projectfiles = remove_based_on_dir_filter(filtered_prj_paths, headerfiles + implfiles)
- projectfiles.sort()
-
- generate_msvc_project(projectfiles)
- generate_codeblocks_project(projectfiles)
+filtered_prj_paths = eval(open(joinpath('config', 'removed_from_project_files'), 'r').read())
+filtered_prj_paths = [joinpath(*p.split('/')) for p in filtered_prj_paths]
+projectfiles = [str(f) for f in remove_based_on_dir_filter(filtered_prj_paths, headerfiles + implfiles)]
-if not env.GetOption('clean'):
- generate_all_project_files()
+projectfiles.append('./swigwrappers/%s/fife_wrap.cxx' % env['script'])
+msvcproj = env.MSVCProject(joinpath('..', msvcbuildpath, 'fife'), projectfiles)
+cbproj = env.CodeblocksProject(joinpath('..', cbbuildpath, 'fife_engine'), projectfiles)
+
if not env['projectfiles_only']:
env.Append(CPPPATH = ['#/engine/core', '#/engine/swigwrappers'])
compilefiles = [str(f) for f in remove_based_on_dir_filter(filteredpaths, implfiles)]