如何将 cmake 输出设置为 make 的依赖项?

发布于 2024-11-17 09:51:07 字数 351 浏览 2 评论 0原文

摘要:
我正在使用一个内部使用“make”的开源项目。我发现它使用起来非常复杂,所以我想在我自己的代码中使用“cmake”,而现有的开源项目代码仍然由 make 管理。

问题:
但是,我找不到任何方法从“make”内调用“cmake”构建脚本,并将“cmake”输出(这是一个 .so 库)作为“make”构建的依赖项。 我阅读了手册的大部分内容,并浏览了许多有关“make”的在线教程,但没有成功。

更多信息:
我自己的代码是用 C++ 编写的,因此我的“cmake”脚本有两个分支:要么创建可执行文件,要么如果设置了变量,则创建一个库。需要将命令行参数从“make”内传递给“cmake”脚本。

我希望你能帮忙!

Summary:
I am using an open source project which uses 'make' internally. I find it extremely complicated to use, so I want to use 'cmake' for my own code while the existing open source project code remains managed by make.

Problem:
However I can't find any way to invoke my 'cmake' build script from within 'make' and have the 'cmake' output (which is a .so library) as a dependency to the 'make' build.
I read large parts of the manual and looked through many online tutorials on 'make' with no luck.

Further info:
My own code is written in C++ and therefore my 'cmake' script has two branches: Either it creates an executable, or if a variable is set, it creates a library. It will be necessary to pass a command line argument to the 'cmake' script from within 'make'.

I hope you can help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那支青花 2024-11-24 09:51:07

如果我正确理解你的问题,这就是如何做到这一点。 makefile 的默认目标(可能)是第一个目标,其规则如下:

all: maybe-some-preqs
    do-some-things

将其更改为:

all: maybe-some-preqs libraryName.so
    do-some-things

libraryName.so:
    command-that-runs-cmake-just-as-if-you-were-doing-it-from-the-command-line

If I understand your question correctly, this is how to do it. The default target of the makefile will (probably) be the first target, with a rule like this:

all: maybe-some-preqs
    do-some-things

Change it to this:

all: maybe-some-preqs libraryName.so
    do-some-things

libraryName.so:
    command-that-runs-cmake-just-as-if-you-were-doing-it-from-the-command-line
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文