fixed bug #1670741 - NSIS Menu can't be built on linux due to .rc & .cpp -> .o

added automatic code that changes the target name of resource files to something slightly unique


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4960 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2007-03-01 21:05:43 +00:00
parent 695fddbc32
commit 9cbba1c7ba
2 changed files with 8 additions and 7 deletions

View file

@ -25,4 +25,4 @@ docs = Split("""
Import('BuildPlugin')
BuildPlugin(target, files, libs, examples, docs, res = resources, res_target = 'StartMenuRC')
BuildPlugin(target, files, libs, examples, docs, res = resources)

View file

@ -435,9 +435,10 @@ def AddEnvStandardFlags(env, defines, flags, entry, nodeflib):
if nodeflib:
env.Append(LINKFLAGS = '$NODEFLIBS_FLAG') # no default libraries
def AppendRES(env, source, res, resources, target_name = None):
def AppendRES(env, source, res, resources):
if res:
target_res = env.RES(target_name, res)
target = MakeFileList(res)[0].name.replace('.rc', '-rc')
target_res = env.RES(target, res)
if resources:
env.Depends(target_res, resources)
source.append(target_res)
@ -456,9 +457,9 @@ def DistributeExtras(env, target, examples, docs):
######################################################################
def BuildPlugin(target, source, libs, examples = None, docs = None,
entry = 'DllMain', res = None, res_target = None,
resources = None, defines = None, flags = None,
nodeflib = True, cppused = False):
entry = 'DllMain', res = None, resources = None,
defines = None, flags = None, nodeflib = True,
cppused = False):
env = plugin_env.Clone()
if cppused and env['CPP_REQUIRES_STDLIB']:
@ -466,7 +467,7 @@ def BuildPlugin(target, source, libs, examples = None, docs = None,
AddEnvStandardFlags(env, defines, flags, entry, nodeflib)
AppendRES(env, source, res, resources, res_target)
AppendRES(env, source, res, resources)
plugin = env.SharedLibrary(target, source, LIBS = libs)
defenv.Alias(target, plugin)