我当前的项目需要一个使用 Makefile 构建的库。我想在项目编译期间编译这个库;此功能是 FetchContent 的主要卖点,它与 CMake 依赖项配合得很好。尽管如此,我无法让它与 Makefile 一起使用,也找不到有关如何执行此操作的示例。
FetchContent_Declare(
make_lib
URL http://url/library_code.tar.gz
BUILD_COMMAND ${CMAKE_COMMAND} -E env make -j 8
BUILD_IN_SOURCE true
BINARY_DIR ""
)
FetchContent_GetProperties(make_lib)
if (NOT make_lib_POPULATED)
FetchContent_Populate(make_lib)
# here I would like to declare imported libraries:
add_library(make_lib::libA STATIC IMPORTED GLOBAL)
target_include_directories(make_lib::libA INTERFACE ${make_lib_SOURCE_DIR}/include)
set_property(TARGET make_lib::libA PROPERTY IMPORTED_LOCATION <path to "to be built" lib>)
endif()
Run Code Online (Sandbox Code Playgroud)
make?