[英]Using multiple code generators in CMake
我正在尝试使用基于单个CMake项目的SWIG创建C#应用程序,其中两个代码生成器通过像这样的依赖树被依次调用
CMake Project A
Target 1: Json -> C++ code generator using add_custom_command()
L Target 2: C++ -> C# code generator using swig_add_library()
L Target 3: C# application using add_executable()
问题是在构建Target 2时,SWIG会生成许多文件名未知的C#文件。 因此,我们需要提前知道所有这些文件名才能构建目标3。
谁能建议我要执行的操作是否可以在单个CMake项目(A)中完成,还是我必须将其拆分为两个CMake项目(A和B)?
CMake Project A
L CMake Project B
目标像这样分裂
CMake Project A
Target 1: Json -> C++ code generator using add_custom_command()
L Target 2: C++ -> C# code generator using swig_add_library()
CMake Project B
Target 1: C# application using add_executable()
有没有像我一样使用多个代码生成器的CMake模式?
阅读UseSWIG.cmake
源代码后,我想到了以下想法:
找出如何真正调用swig_add_library()
创建的目标。 在UseSWIG.cmake
代码中,它称为${SWIG_MODULE_${name}_REAL_NAME}
。 例如,您可以通过make help
找出来。
阅读swig目标的SOURCES
属性: get_property(TARGET <target from p.1> PROPERTY SOURCES
。这应该为您提供swig生成的来源列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.