是否可以使用install(TARGETS ...)使用在使用add_subdirectory添加的目录中定义的目标?
我的用例是,我想为gtest构建一个e.gg。gtest项目恰好有一个不带任何install语句的CMakeLists.txt。我想在不将这些语句添加到gtest的CMakeLists.txt中的情况下构建包。
我得到了这样的目录结构:
+ gtest-1.5.0/...
+ CMakeLists.txt gtest-1.5.0的CMakeLists定义了这样的库:
cxx_static_library(gtest "${cxx_strict}" src/gtest-all.cc)
cxx_static_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
target_link_libraries(gtest_main gtest)现在,我想在我的CMakeLists.txt中添加类似这样的内容:
add_subdirectory(gtest-1.5.0)
install(TARGETS gtest gtest_main ARCHIVE DESTINATION lib)但cmake正确地声明:
CMake Error at CMakeLists.txt:10 (install):
install TARGETS given target "gtest" which does not exist in this
directory.有没有办法在不打gtest-1.5.0补丁的情况下做到这一点?
发布于 2010-08-23 21:23:33
您可以尝试使用文件安装,而不是安装目标。缺点是您必须处理共享和静态构建。
install(FILES gtest-1.5.0/gtest_main.so DESTINATION lib)
https://stackoverflow.com/questions/3547331
复制相似问题