gpt4 book ai didi

c# - 在 CMake 中使用多个代码生成器

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:07 27 4
gpt4 key购买 nike

我正在尝试使用基于单个 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# 文件。因此,我们需要提前知道所有这些文件名才能构建 Target 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我想出了以下想法:

  1. 弄清楚 swig_add_library() 是如何创建目标的真的被称为。在 UseSWIG.cmake代码称为${SWIG_MODULE_${name}_REAL_NAME} .你可以用 make help 找到它,例如。

  2. 阅读SOURCES swig 目标的属性:get_property(TARGET <target from p.1> PROPERTY SOURCES .这应该会为您提供 swig 生成的源列表。

关于c# - 在 CMake 中使用多个代码生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com