从 cmake 项目运行 npm 命令

rud*_*nja 5 cmake node.js npm

我有一个复杂的 C++ 项目。现在我将 c++ node.js 插件添加到我基于 CMake 的项目中。我想用整个项目构建这个插件,所以我需要分别修改cmake文件。在我的根 cmake 文件中,我执行了以下操作:

add_subdirectory(nodejsaddon)
add_custom_target (
npm-target
COMMAND cd nodejsaddon && npm install node-addon-api && npm run build
)
Run Code Online (Sandbox Code Playgroud)

nodejsaddon- 包含我的插件源和相应的 .gyp 和 .json 文件的文件夹的名称。但是,当我运行时,cmake ..\\testproj\\ -G "Visual Studio 15 Win64" -T "v140, host=x64 我在 nodejsaddon 文件夹中看不到 npb 构建结果。我做错了什么?如何让npm在nodejsaddon文件夹中生成构建文件?

Fre*_*red 4

https://cmake.org/cmake/help/latest/command/add_custom_target.html

首先,自定义目标在项目生成期间不会运行。它们在构建过程中运行,例如cmake --build .构建项目。

其次,自定义目标通常仅在显式构建该目标时运行。例如cmake --build . --target npm-target

如果您想npm-target成为ALL目标的一部分,请添加ALL到命令中:

add_custom_target (npm-target ALL COMMAND cd nodejsaddon && npm install node-addon-api && npm run build )

如果目标依赖于首先构建的其他目标,则使用add_dependencies()添加依赖信息。

但尚不清楚您是否真的希望它在每次构建期间运行或仅在项目生成期间运行一次。