在C++中,使用CMake進行條件編譯可以通過if()
函數來實現。以下是一個簡單的示例,展示了如何在CMakeLists.txt文件中根據不同的條件選擇性地編譯代碼:
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 設置一個變量
set(MY_FEATURE "ON")
# 根據變量的值選擇性地編譯代碼
if(MY_FEATURE STREQUAL "ON")
message(STATUS "Enabling MY_FEATURE")
# 添加支持MY_FEATURE的源文件
add_executable(MyProject main.cpp feature.cpp)
else()
message(STATUS "Disabling MY_FEATURE")
# 添加不包含MY_FEATURE的源文件
add_executable(MyProject main.cpp)
endif()
在這個示例中,我們首先設置了一個名為MY_FEATURE
的變量,并將其值設置為"ON"
。然后,我們使用if()
函數檢查MY_FEATURE
的值。如果它的值等于"ON"
,則添加支持該功能的源文件(在本例中為feature.cpp
);否則,只添加不包含該功能的源文件(在本例中僅為main.cpp
)。
你可以根據需要修改這個示例,以適應你的項目中的條件編譯需求。