cmake -- 让一个子目录使用它自己的 Makefile
cmake -- let a subdirectory use its own Makefile
我有一个主要使用 CMake 的项目。
但是,有一个来自第 3 方/遗留库的子目录。它有一个 Makefile,可以将自身编译成 3rd_party.a 库文件。
我自己的 CMakeLists.txt 可以调用那个 Makefile,生成它的 3rd_party.a 库,然后让我的代码 link 使用它吗?我不想将其遗留的 Makefile 改编成 CMakeLists.txt
├── my_source_folder_1
├── my_source_folder_2
├── CMakeLists.txt
├── 3rd_party
│ ├── 3rd_party_source
│ ├── 3rd_party_make
│ | ├── Makefile
谢谢!
相关:http://www.cmake.org/pipermail/cmake/2010-November/040631.html
从上面的 link 看来,您可以使用特殊命令来概述 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)
这应该足以让你离开地面。
我有一个主要使用 CMake 的项目。
但是,有一个来自第 3 方/遗留库的子目录。它有一个 Makefile,可以将自身编译成 3rd_party.a 库文件。
我自己的 CMakeLists.txt 可以调用那个 Makefile,生成它的 3rd_party.a 库,然后让我的代码 link 使用它吗?我不想将其遗留的 Makefile 改编成 CMakeLists.txt
├── my_source_folder_1
├── my_source_folder_2
├── CMakeLists.txt
├── 3rd_party
│ ├── 3rd_party_source
│ ├── 3rd_party_make
│ | ├── Makefile
谢谢!
相关:http://www.cmake.org/pipermail/cmake/2010-November/040631.html
从上面的 link 看来,您可以使用特殊命令来概述 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)
这应该足以让你离开地面。