在cmake中检测项目语言 [英] Detect project language in cmake

查看:175
本文介绍了在cmake中检测项目语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'd like to detect the current project language, for example if I have something like this:

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

我需要类似的东西

if (project_lang EQUAL "CXX")
  # do something for c++
endif ()

谢谢!

推荐答案

您可以使用全局属性 ENABLED_LANGUAGES

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

用于 project(Foo),即默认值:

languages: C;CXX;RC

用于项目(Foo语言CXX),即C ++项目:

for project(Foo LANGUAGES CXX), i.e. C++ project:

languages: CXX;RC

项目(Foo语言C),即C项目:

languages: C;RC

等。

最好的命令来检查启用的确切语言是 if(... IN_LIST ...)(自 CMake 3.3 ):

The best command to check that the exact language is enabled is if(... IN_LIST ...) (available since CMake 3.3):

if("CXX" IN_LIST languages)
  message("C++ enabled")
endif()

这篇关于在cmake中检测项目语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆