cmake - 在cmake中检测项目语言

标签 cmake

我想检测当前的项目语言,例如,如果我有这样的东西:

cmake_minimum_required (VERSION 3.0)
project (foo VERSION 1.0 LANGUAGES CXX)

我需要这样的东西
if (project_lang EQUAL "CXX")
  # do something for c++
endif ()

谢谢!

最佳答案

您可以使用 global property ENABLED_LANGUAGES :

get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES)
message("languages: ${languages}")

对于 project(Foo) ,即默认值:
languages: C;CXX;RC

对于 project(Foo LANGUAGES CXX) ,即 C++ 项目:
languages: CXX;RC

对于 project(Foo LANGUAGES C) ,即 C 项目:
languages: C;RC

等等。

检查是否启用了确切语言的最佳命令是 if(... IN_LIST ...) (自 CMake 3.3 起可用):
if("CXX" IN_LIST languages)
  message("C++ enabled")
endif()

关于cmake - 在cmake中检测项目语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32389273/

相关文章:

cmake - 如何使用 add_custom_command 使用生成器表达式复制 dll?

c++ - 如何在我的 C++ 代码中获得运行时的双重自由错误

c++ - 为什么在 CMake 配置和生成完成后使用 CLion 构建 OpenCV 时会发生错误?

c++ - 在 Clion 中包含目录

linux - 在 Ubuntu 服务器上运行 QT-GUI 程序

boost - cmake 找不到 boost 库

build - 详细的 cmake : How to get more diagnostics?

c++ - 将 Makefile 转换为 CMAKEList(编译成功但程序行为不同)

c - 如何在 CMake 中添加测试用例?

c++ - cmake include_directories 传递给 externaproject_add