如何使用cmake编译autoconf项目?

如何使用cmake编译autoconf项目?,cmake,autoconf,Cmake,Autoconf,我正在使用cmake来构建我的项目,我希望它与名为project_a的第三方库集成,该库使用autoconf生成make,如何编写CMakeLists.txt来构建project_a和我的项目 谢谢 我认为在CMake中使用ExternalProject模块是最好的解决方案。有关api的详细介绍,请参阅。我认为在CMake中使用ExternalProject模块将是最好的解决方案。有关api的详细介绍,请参阅。如果您想进行词法代码重用(即,复制粘贴代码,而不是依赖依赖依赖项),请不要半途而废。通

我正在使用cmake来构建我的项目,我希望它与名为project_a的第三方库集成,该库使用autoconf生成make,如何编写CMakeLists.txt来构建project_a和我的项目


谢谢

我认为在CMake中使用ExternalProject模块是最好的解决方案。有关api的详细介绍,请参阅。

我认为在CMake中使用ExternalProject模块将是最好的解决方案。有关api的详细介绍,请参阅。

如果您想进行词法代码重用(即,复制粘贴代码,而不是依赖依赖依赖项),请不要半途而废。通过以这种方式使用外部代码,您实际上是为了项目的目的而声明对它的所有权,因此无需保留autotool构建。只需将代码拉出来并通过cmake构建即可。不要费心尝试创建一个混合构建。

如果您想进行词法代码重用(即,复制粘贴代码,而不是依赖依赖依赖项),那么不要半途而废。通过以这种方式使用外部代码,您实际上是为了项目的目的而声明对它的所有权,因此无需保留autotool构建。只需将代码拉出来并通过cmake构建即可。不要费心尝试创建一个混合构建。

项目a是一个依赖项。安装它。需要它。为什么要在源代码级别将其集成到您的项目中?@williampersell我们需要修改依赖项项目的代码,我们希望项目A的代码成为我的项目的一部分如果您要修改项目A,那么就这样做,但没有必要将其集成到您的树中。修改它,安装修改后的版本,然后使用它!如果有必要,请重命名它并将其分叉,但从长远来看,如果将库集成到代码库中,则维护会困难得多。@williampersell我希望将项目作为一个独立的包发布,而不需要外部依赖,因此我希望使用源代码进行编译,也许另一种方法是做一个静态链接项目,因为它是一个依赖项。安装它。需要它。为什么要在源代码级别将其集成到您的项目中?@williampersell我们需要修改依赖项项目的代码,我们希望项目A的代码成为我的项目的一部分如果您要修改项目A,那么就这样做,但没有必要将其集成到您的树中。修改它,安装修改后的版本,然后使用它!如果有必要,可以重命名它并将其分叉,但从长远来看,如果将库集成到代码库中,维护会困难得多。@williampersell我希望将项目作为独立的包提供,而不需要外部依赖项,因此这就是为什么我要使用源代码进行编译,也许另一种方法是执行静态编译link@ruipacheco对会的。如果您正在将代码复制到树中,那么如果您的项目是一个库,那么它就完全不相关了。@ruipacheco是的,它会。如果您要将代码复制到树中,那么如果您的项目是一个库,那么它是完全无关的。