CMake Eclipse 构建配置

7
我希望使用CMake生成Eclipse CDT项目,使得在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项目起作用?
1个回答

4

简短回答:你不能。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接