2010-09-06 64 views
7

我想用CMake生成一個Eclipse CDT項目,其中生成的Eclipse項目包含定義的構建類型作爲IDE內的可選構建配置。CMake Eclipse構建配置

例如:

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項目發電機給我建立configuriatons選擇PRODUCT_A product_B和正確地強調了有源代碼。

但是,如果我生成一個Eclipse項目的構建配置不存在。

如何獲得此項目以用於Eclipse項目?

回答

4

簡答:你沒有。

Eclipse CDT生成器爲生成的Makefiles創建一個包裝。基於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()