<p>在SCons中,我有一个生成未知数量文件的预构建步骤。一旦这些文件被生成,我需要能够将cpp文件添加到我的源列表中。我对SCons绝对是个初学者,我不知道该走什么样的路。最好的方法是什么?在</p>
<p><strong>原创:</strong>
基本/原始构建步骤如下:</p>
<pre><code>fpmFile = Dir('#').Dir('src').entry_abspath("FabricKINECT.fpm.json")
# The next step generates a bunch of source files
cppHeader = env.Command(
[env.File(target + '.h')],
klSources,
[[kl2edkBin, fpmFile, "-o", hdir, "-c", cppdir]]
)
env.Depends(cppSources, cppHeader)
# We pass in the supplied filelist to the build command
# however, this list does not include the cpp files generated above
# Currently I am hard-coding the generated files into
# the cppSources list, but I want to add them in dynamically
return env.SharedLibrary(
'-'.join([target, buildOS, buildArch]),
cppSources
)
</code></pre>
<p>我试过了什么
我试过几个不同的角度:</p>
<p><a href="http://www.scons.org/wiki/DynamicSourceGenerator" rel="nofollow noreferrer">http://www.scons.org/wiki/DynamicSourceGenerator</a>,但据我所知,这将为每个文件创建单独的生成目标,而我希望它们都包含在我的库构建中</p>
<p>使用发射器:<a href="https://stackoverflow.com/questions/13953964/scons-to-generate-variable-number-of-targets">SCons to generate variable number of targets</a>,但我似乎无法解决依赖关系-无论如何分配依赖项,我的扫描仪都会在任何其他操作之前运行</p>
<p>我试着做另一个命令来收集一份文件-</p>
^{pr2}$
<p>然而,这在</p>
<blockquote>
<p>fatal error LNK1181: cannot open input file 'dummy-file.obj'</p>
</blockquote>
<p>我想这是因为即使我清除了命令目标中的伪文件条目,但在它注册到buildsystem之后(并且生成了预期的目标)也会发生这种情况。在</p>
<p>所有这些都是为了说明—您将如何实现以下目标:</p>
<ul>
<li>一个命令生成一堆CPP文件</li>
<li>这些文件将添加到传入的文件列表中</li>
<li>我们从这个cpp文件列表中构建一个dll。在</li>
</ul>
<p>有什么建议吗?在</p>