CMake依赖于自定义目标的“all”目标

3

我正在制作一个需要以精美方式打包的库,其中一部分是我有一个包含以下代码行的脚本:

#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 builder中找到了这段代码,但它在运行安装之前并没有构建所有内容或预安装。使我的目标依赖于非内置目标似乎可以工作,但我似乎不能依赖于任何内置目标。我该如何让它工作?

另外,如果我能依赖于单个组件安装,最好不要使用cmake的黑客调用,但无论哪种方式都可以。

3个回答

1
add_custom_target(my_deploy
    DEPENDS all
    # Add your commands...
)

0

不要自己拼凑安装目标,你应该直接利用现有的安装目标,使用install(CODE)形式:

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

-4
你可以使用ALL关键字来依赖于 'all' 目标。请参考文档

3
我认为这使得所有事情都依赖于定制目标,而不是相反。 - lrineau
可能吧。我不是以英语为母语的人,所以“except/expect”和“depend on”让我很困扰。 - arrowd

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