eclipse - CMake Eclipse 构建配置

标签 eclipse build cmake

我想用 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 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()

关于eclipse - CMake Eclipse 构建配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3654026/

相关文章:

ios - 迪尔德 : Library not loaded//stat() failed with errno=1//code signature invalid for

CMake add_custom_command/_target 在不同目录下进行交叉编译

c++ - 带 CUDA 的 CMake : ccbin enclosed with unnecessary quotation marks (\")

compiler-errors - 将选项传递给链接器时出现 "recompile with -fPIC"错误

java - Eclipse 编译器和 javac 之间的差异 - 枚举、接口(interface)和泛型

Windows 8 上的 Eclipse 兼容性

java - 如何避免 LOCATION_SERVICE 的 NullPointerException?

azure - 如何链接到 Visual Studio Team Services 的最新版本

eclipse - 如何捆绑本地库(.so + .jar)以在新的 Eclipse Android 项目中重用?

performance - 加速 Android Studio 构建