scons - 如何使生成的文件依赖于Scons中的java类

标签 scons

我的构建中有一段源代码,是通过运行 java 类生成的。

我一生都无法弄清楚如何指示 scons 的依赖关系,并且它在构建 .class 文件之前一直尝试构建源代码。

当我执行 o = env.Java(target = 'target_dir', source = Dir('source_dir')) 时,o 被设置为空列表。

最佳答案

您可以使用 Depends() 函数来实现此目的,如下所示:

o = env.Java(target = 'target_dir', source = Dir('source_dir'))
env.Depends(o, 'the_generated_file_and_path')

这是一个更好的选择(因为在调用 Depends() 时您不必担心生成的文件路径),假设您正在使用 SCons Command() 函数执行所述 java 类:

# $SOURCE and $TARGET will be filled in by SCons Command, $SOURCE is optional
cmdLine = 'theCommand $SOURCE $TARGET'

genTarget = env.Command(target = [list output files here],
                        source = 'java_class_executed',
                        action = cmdLine)
...
o = env.Java(...)
env.Depends(o, genTarget)

关于o是一个空列表,它总是一个空列表吗?如果是这样,请小心指定源的方式,它应该是包目录结构的根。例如,如果您的目录树是这样的:

.
|-- SConstruct
`-- src
   `-- com
       `-- tanner
           `-- application
               `-- main.java

您应该指定源目录,如下所示:'#/src/com'

关于scons - 如何使生成的文件依赖于Scons中的java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448067/

相关文章:

python - SCons - 为 CUDA、CORBA 等集成自定义构建器

visual-studio - 如何告诉 scons 使用 MinGW 而不是 MSVC

c++ - vc90 上的 jsoncpp?

windows - SConscript StaticLibrary 属性错误。

makefile - 将 scons 构建过程包装在 Makefile 中

python-3.x - SConstruct-SyntaxError : Invalid Syntax

c - Diab 链接器中 undefined symbol

python - 无法运行 scons 出现导入错误

scons - 使用 scons 生成预处理源?

gcc - CentOS 6 产生奇怪的链接错误