首页 > 解决方案 > Windows 上的 Ninja:在 #define 中公开文件的文件名

问题描述

我正在开发一个跨平台项目,我们在 Linux、macOS 和 Windows 上使用 CMake 构建多个库。

在我们的 POSIX (Linux/macOS) 构建中,我们在 CMake 中使用了一个简单的定义:

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFILENAME='\"$(notdir $<)\"'")

notdir实际上是 的一个特点make。不幸的是,在 Windows 上没有make等价物,我们正在使用ninja来构建基于 Windows 的构建。

是否有类似的方法来公开FILENAME我们基于 Windows 的构建?我查看了忍者手册,但找不到解决方案。

切换到 MSBuild 不是一种选择,因为我们依赖CMAKE_C_COMPILER_LAUNCHER-feature 来预处理某些构建的代码(主要是 C89 兼容性)。

标签: windowscmakeninja

解决方案


推荐阅读