有谁知道在CMake文件中应用“包含一次”模式的简单方法?在C / C ++中,它通常在头文件的开头和结尾都需要一个#ifdef / #endif对,直到#pragma变得常见为止。当然,可以在CMake中做同样的事情,但是我认为如果不需要显式的条件语句,那会很好。
重新版本:似乎return()命令应该这样做。我会定义一个这样的宏:
macro(include_once)
if (INCLUDED_${CMAKE_CURRENT_LIST_FILE})
return()
endif()
set(INCLUDED_${CMAKE_CURRENT_LIST_FILE} true)
endmacro()
Run Code Online (Sandbox Code Playgroud)
在文件开头使用宏,不带任何参数。因为它是一个宏,所以返回的是文件的include命令,而不是宏本身。
请注意,创建的变量的名称为奇数,但CMake似乎接受此名称。
cmake ×1