CMake依赖于"所有"自定义目标的目标

时间:2014-04-05 02:27:01

标签: dependencies cmake

我正在制作一个需要以奇特的方式打包的库,作为其中的一部分,我有一个包含这些行的脚本:

#only install the lib component, nd put in the a special directory
ADD_CUSTOM_TARGET(o_destdir_install
  COMMAND DESTDIR=${CMAKE_BINARY_DIR}/o_package ${CMAKE_COMMAND} -DCOMPONENT=lib -P cmake_install.cmake
  DEPENDS ${CMAKE_BINARY_DIR}/cmake_install.cmake
  COMMENT "Building o_package directory with DESTDIR"
  )
ADD_DEPENDENCIES(o_destdir_install all preinstall)

我从旧的UseDebian.cmake dpkg构建器中找到了此代码,但它在运行安装之前并未构建所有和预安装。使我的目标依赖于非内置目标似乎有效,但我不能依赖它看起来的任何内置目标。我怎样才能让它发挥作用?

如果我可以依赖单个组件安装,最好不要使用cmake的黑客调用,这样会很好,但不管怎样,我都很好

2 个答案:

答案 0 :(得分:0)

您应该使用install(CODE)表单捎带现有的安装目标,而不是将自己的安装目标整合在一起:

install(CODE "execute_process(COMMAND DESTDIR=${CMAKE_BINARY_DIR}/o_package ${CMAKE_COMMAND} -DCOMPONENT=lib -P cmake_install.cmake")

答案 1 :(得分:-3)

您可以使用ALL关键字依赖“所有”目标。请参阅documentation