【问题标题】:How to get target install location from CMake?如何从 CMake 获取目标安装位置?
【发布时间】:2019-10-18 18:32:39
【问题描述】:

我想为我的 CMake 构建创建一个“安装后”脚本,但为此我需要给定目标的安装位置。

例如:

function(post_install_target target)
    set(target_install_loc ???) # Somehow
    message("Target install location is ${target_install_loc}")
endfunction(post_install_target)

# ...

post_install_target(A) # Some target defined elsewhere.

这可以打印:

-- Target install location is /usr/local/lib/libA.so

我已经尝试过this answer,(通过使用$<TARGET_FILE:tgt>)但结果是构建树中的位置,而不是安装树中的位置(即它打印/home/me/project/build/libA.so)。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    负责安装路径的变量是CMAKE_INSTALL_PREFIX,试试看,它的默认值应该是/usr/local/cmake documentation

    【讨论】:

    • 是的,CMAKE_INSTALL_PREFIX 是答案的一部分。但我还需要 CMAKE_INSTALL_PREFIX 之后的路径,即 DESTINATION 目录,例如,libbin 等...我使用的框架将我的一些目标存储在我想检索的 ${CMAKE_PREFIX_PATH}/lib/framework-${SOMEVAR}/plugins 中.
    • 在文档的这一部分中,您将找到安装过程中使用的所有次要变量。 cmake install documentations。例如 CMAKE_INSTALL_BIN - bin 文件夹。但如果您安装在特定目录中 - 您必须提前手动将这些路径保存到变量中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多