问题标签 [cmake-custom-command]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
22 浏览

string - 如何获取生成器表达式文件的基本名称?

这是我们在 CMake 文档中找到的自定义命令:

假设.hash我想用 . 替换任何现有扩展名,而不是添加.hash. 我需要一些方法来剥离扩展名$<TARGET_FILE:myExe>......我应该怎么做?我能比成熟的正则表达式匹配做得更好吗?

0 投票
1 回答
35 浏览

cmake - 如何使用 CMake 构建 fatbin 文件?

我想.cu使用 CMake 从我的源文件构建一个 fatbin 文件。

我试过这个:

不幸的是 - 这不起作用,因为您可以POST_BUILD依赖于OBJECT-type 库。但是,如果我删除该OBJECT属性,那么我就无法使用CUDA_PTX_COMPILATION ON它......

然后我会尝试以下OUTPUT版本add_custom_command()

这不会触发任何错误......但也不会构建 fatbin 文件。

如何让 CMake 构建我的 fatbin?:-(

0 投票
1 回答
41 浏览

cmake - 如果更新了依赖脚本,如何强制重建目标?

我编写了一些自定义脚本,这些脚本在 CMake 目标的自定义命令中调用。touch script.sh如果任何脚本被更新(例如),我希望重建目标。我已经使用 DEPENDS 参数尝试了几种变体,但我尝试过的都没有。

这是我所拥有的简化版本:

0 投票
1 回答
36 浏览

cmake - Do I always need a target in CMake?

I have a python script, which generates some files for me, and in my script, I have an argument --outputdir to specify the location of output files. I want to run this script to generate these files and install them later. I used

So output files are generated under ${CMAKE_CURRENT_BINARY_DIR}, and I can install them later.

but above code did not work, because I have to use a TARGET or OUTPUT from the error message. So if I use a dummy one:

This just worked and I can see files are generated under ${CMAKE_CURRENT_BINARY_DIR}. I believe if I use something like:

this should also work. My question is why do I need a dummy target anyway? Actually just with COMMAND I can run my script and with args I can specify where the output files are generated, then with some install command I can install files around. So Am I correct to use a dummy target in this case and do I have to use a it? Note generateFiles.py are not changed during the build process and will generate the same files every time. Thanks, i am new to CMake.

0 投票
0 回答
15 浏览

cmake - CMake:创建一个只依赖于另一个目标的目标

我正在寻找一种使用 CMake(makefile 示例)实现以下目标的方法:

我目前有以下内容:

这按预期工作,但现在我试图添加“后处理”目标,如下所示(注释掉我的一些测试尝试):

问题是我每次尝试从 CMakeLists.txt 生成 makefile 时都会收到以下错误(或类似错误):

关于如何实现预期功能的任何想法?

BR

0 投票
0 回答
18 浏览

git - 在 cmake 构建之前和之后执行 git patch 和 unpatch

我有一个项目,我想在构建代码之前将补丁应用到 git repo,然后在创建可执行文件后取消应用该补丁。原因是我希望将补丁应用于构建,但我希望已修补的存储库在其主分支上保持干净。我注意到add_custom_command 似乎有这种能力,带有PRE_BUILDPOST_BUILD说明符。我试过这样的事情:

但是,如果仔细查看文档,他们会在关于speciferadd_custom_command的部分中提到这一点:PRE_BUILD

在 Visual Studio 生成器上,在目标中执行任何其他规则之前运行。在其他生成器上,在 PRE_LINK 命令之前运行。

事实上,这就是发生的事情。该补丁仅在编译阶段之后和链接阶段之前应用。因此,在应用补丁之前正在编译代码。如何确保在编译代码之前执行补丁?