CMake -- 让子目录使用自己的 Makefile

12

我有一个主要使用CMake的项目。

然而,有一个来自第三方/旧库的子目录。它有一个Makefile文件,可以将其编译为3rd_party.a库文件。

我的CMakeLists.txt能否调用那个Makefile,生成它的3rd_party.a库,并让我的代码链接到它?我不想将其旧的Makefile改成CMakeLists.txt。

├── my_source_folder_1
├── my_source_folder_2
├── CMakeLists.txt
├── 3rd_party
│   ├── 3rd_party_source
│   ├── 3rd_party_make
│   |   ├── Makefile

谢谢!

1个回答

8

相关链接: http://www.cmake.org/pipermail/cmake/2010-November/040631.html

从上面的链接中可以看出,您可以使用特殊命令来概述CMake应如何制作目标:

add_custom_target(
   extern_lib
   COMMAND make
   WORKING_DIRECTORY full_path to where Makefile is located
)
add_executable(myexecutable myexcutable.c)
target_link_libraries(myexecutable full_path_to_generated_library)
add_dependencies(myexecutable extern_lib)

这应该足以让你起步了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接