如何将目标从Repository()路径生成到Variant_dir路径而不是Sconstruct文件夹

时间:2015-08-31 22:46:02

标签: build scons

我可以通过在Repository()中提供路径来找到特定文件。 但是生成的输出是在Sconstruct目录而不是在 variant_dir。

请告诉我如何解决此问题

具体解释问题 项目中的树结构如下所示。

树。

.
|-- SConstruct
|--Build
|   `-- SConscript_unitTest
|--FileB_mock.o
|--FileA.o 
|-- _Output
|   `-- unit_test
|        |--FileA_unittest.o    
`-- moduleA
|   |-- FileA.cpp
|   `-- UnitTest
|       |-- FileA_unittest.cpp
|        `-- SConscript
`-- moduleB
|   |-- FileB.cpp
|   `-- UnitTest
|       |-- FileB_unittest.cpp
|        `-- SConscript
`-- Mocks
     `-- moduleA
     |   |-- FileA_mock.cpp 
     |   `-- FileA_mock.h
     `-- moduleB
         |-- FileB_mock.cpp 
         `-- FileB_mock.h

对于上述结构,

  1. 在SConstruct中,我调用了SConscript_unitTest。

  2. Sconscript_unitTest的实现是

      

    'SConscript(' #\ moduleA \单元测试\ SConscript”,                variant_dir ='#_Output \ unit_test'),duplicate = 0)'

  3. moduleA \ UnitTest \ Sconscript的实现是

      

    Sources = ['FileA_unittest.cpp',               '#FileB_mock.cpp',               '#FileA.cpp'             ]

    Repository( '#\ModuleA', '#\Mocks\ModuleB')
    obj_files = Object(Sources)
    Program(target_name, obj_files)
    
  4. 如Heirarchical图所示,FileA_unittest.o属于预期的variant_dir,但FileB_mock.o和FileA.o位于根文件夹中。

  5. 我不确定我在这里做的是最好的机制..因为我正在将现有的make项目翻译成scons。 希望我已经提供了足够详细的问题。

0 个答案:

没有答案