【问题标题】:CMake Eclipse Build ConfigurationsCMake Eclipse 构建配置
【发布时间】:2010-09-06 20:03:29
【问题描述】:

我想使用 CMake 生成一个 Eclipse CDT 项目,其中生成的 Eclipse 项目包含已定义的构建类型,作为 IDE 中的可选构建配置。

例如:

if(CMAKE_CONFIGURATION_TYPES)
   set(CMAKE_CONFIGURATION_TYPES PRODUCT_A PRODUCT_B)
   set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
     "Reset the configurations to what we need"
     FORCE)
 endif()

SET(CMAKE_C_FLAGS_PRODUCT_A
    "-DF_ENABLE_FEATURE_A -DF_ENABLE_FEATURE_B
    )

SET(CMAKE_C_FLAGS_PRODUCT_B
    "-DF_ENABLE_FEATURE_A
    )

使用上述方法,Visual Studio 项目生成器为我提供构建配置以选择 product_A product_B 并正确突出显示活动代码。

但是,如果我生成一个 Eclipse 项目,则构建配置不存在。

我如何让它适用于 Eclipse 项目?

【问题讨论】:

    标签: eclipse build cmake


    【解决方案1】:

    简短的回答:你不知道。

    Eclipse CDT 生成器围绕生成的 Makefile 创建一个包装器。基于 Makefile 的生成器不能进行多配置。

    您必须使用单独的二叉树(请注意,两者都可以引用同一个源树),并使用类似选项的东西来启用产品 A 和/或产品 B:

    OPTION(PRODUCT_A "Build product A." OFF)
    OPTION(PRODUCT_B "Build product B." OFF)
    IF(PRODUCT_A AND PRODUCT_B)
      MESSAGE(SEND_ERROR "Cannot build both product A and B at the same time.")
    ENDIF()
    
    IF(PRODUCT_A)
      SET(CMAKE_C_FLAGS
        "${CMAKE_C_FLAGS} -DF_ENABLE_FEATURE_A -DF_ENABLE_FEATURE_B"
      )
    ENDIF()
    
    IF(PRODUCT_B)
      SET(CMAKE_C_FLAGS
        "${CMAKE_C_FLAGS} -DF_ENABLE_FEATURE_A"
      )
    ENDIF()
    

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多