我一直在使用cmake来构建我的项目,这是非常方便的,因为您避免了不必要的文件污染您的源目录。
假设CMakeLists.txt位于当前目录中,可以这样做:
mkdir build
cd build
cmake ..
make
我怎么能做同样的事呢?
发布于 2009-11-19 06:48:44
在您的SConstruct
文件中,您使用了一个变体dir:
SConscript("main.scons", variant_dir="build", duplicate=0)
然后,在main.scons
中,您像往常一样设置了一切:
env = Environment()
env.Program(target='foo', source=Split('foo.c bar.c'))
如果不使用存储库将变体dir硬编码到SConstruct (Ab)中,就可以做到这一点,但是这种方法有其缺陷。为了记录在案,您可以按以下方式运行上面的代码,以便在另一个目录中构建:
mkdir mybuild
cd mybuild
scons -Y .. -f ../main.scons
最简单和最可行的方法就是只使用variant_dir
。然后,您将像往常一样从顶层源目录中运行此命令。所有构建工具都是在build
子目录中生成的。
针对JesperE的评论,下面是如何编写顶级SConstruct以添加一个可选的名为build目录:
AddOption('--build', default='build')
SConscript("main.scons", variant_dir=GetOption('build'), duplicate=0)
然后按照下面的命令行调用它,以创建一个名为“baz”的构建目录:
$ scons --build=baz
https://stackoverflow.com/questions/1762044
复制相似问题