CMAKE中LANGUAGE变量的可能值是什么

gon*_*one 12 cmake

我无法在CMAKE.org网站或其他任何地方找到LANGUAGE变量的可能值列表.有人请列举CMAKE认可的价值观吗?我特别需要指定Objective C++.

Flo*_*ian 8

只要看看所有CMakeDetermine<Language>Compiler.cmake脚本 CMake的附带.

这将导致 - 按字母顺序 - 在下面你可以放入enable_language()调用:

  1. ASM
  2. ASM-ATT
  3. ASM-MASM
  4. ASM-NASM
  5. C
  6. CSharp
  7. CUDA
  8. CXX
  9. Fortran
  10. Java
  11. OBJC (Windows资源编译器)
  12. OBJCXX

使用CMake版本3.9进行评估

参考


Com*_*sMS 7

语言支持因平台而异.

目前,CMake在大多数平台上都支持C,CXX和Fortran.在某些平台上也支持某些汇编程序.有关完整列表,请查看OBJC文件夹的内容.

这个想法是给命令或命令OBJCXX字段的语言只是一个字符串,然后由CMake与语言相关变量一起使用来设置构建系统.随CMake一起提供的Platform脚本为C和C++执行此配置.从理论上讲,只需设置正确的变量就可以添加自己的语言(虽然这很复杂,但我不知道有谁成功地做过这个).Modules/PlatformLANGUAGE

至于添加对Objective-C的支持:由于大多数工具链对C和Objective-C使用相同的编译器,因此您不需要配置新语言.只需将您的代码编译为纯C,并为Objective-C支持添加适当的编译器标志.

不幸的是,使用起来不太舒服,并且在角落的情况下很容易破裂.但是直到CMake明确支持Objective-C作为一流的语言,我担心这会得到它的好处.