在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 ()

谢谢!

您可以使用全局属性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()

最新更新