windows - 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 兼容性)。
解决方案
推荐阅读
- r - 从 JSON 读取问题
- .net-core - .NET Core Web Api 无法访问模型文件夹
- asp.net-mvc - 身份验证期间 DotNet MVC Web App 中的重定向 URI 问题
- java - 将两个 JSON 合并到 JSONObject 而不是 JSONArray
- regex - 如何捕获带或不带扩展名的文件名
- c++ - 错误的模板参数数量
- tensorflow - 如何创建一个将单个数字作为输入并输出二维数组的网络?
- javascript - 反应不渲染传递的道具
- c# - Topshelf 服务不会作为服务启动:错误 1053 服务没有响应..”
- python - 将张量转换为 numpy 数组时出现值错误