检索从CMake的宏指令

时间:2016-02-08 22:04:13

标签: c cmake macros

我有以下代码:

#if defined(__WIN32) || defined(__WIN64)
// Windows compiler compiles this code
#  define WINDOWS_PLATFORM
#elif defined(__linux__)
// GCC compiles
#  define LINUX_PLATFORM
#else
#  error "unsupported platform"
#endif

CMake是否能够检查宏 WINDOWS_PLATFORM LINUX_PLATFORM 并相应地将源文件路径设置为 win / posix /

1 个答案:

答案 0 :(得分:2)

CMake有自己的变量来检查您是否在某个特定平台上。例如,使用以下代码,您可以检查您是否位于最受欢迎的平台之一,并相应地调整您需要的任何内容:

if(WIN32)
...
elseif(APPLE)
...
elseif(UNIX AND NOT APPLE AND NOT CYGWIN)
...
endif()

所以你不需要任何自定义宏 - CMake具有这样的功能内置。