xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置

xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置,第1张

概述我有一个动态库,根据配置获得不同的名称,在CMake脚本中指定: set_target_properties(${name} PROPERTIES OUTPUT_NAME ${outputName}64)set_target_properties(${name} PROPERTIES DEBUG_OUTPUT_NAME ${outputName}64_d) 最终的结果是,我在发布和调试版本上得到 我有一个动态库,根据配置获得不同的名称,在CMake脚本中指定:

set_target_propertIEs(${name} PROPERTIES OUTPUT_name ${outputname}64)set_target_propertIEs(${name} PROPERTIES DEBUG_OUTPUT_name ${outputname}64_d)

最终的结果是,我在发布和调试版本上得到一个不同的名字。我想将结果库复制到不同的目录作为后期制作步骤,但是,CMake-Fu的礼物(?)并没有真正地对你的笑容。

我试过这样做:

GET_TARGET_PROPERTY(origfile mylibrary LOCATION)STRING(REGEX REPLACE "/" "\\" origfile ${origfile})set(targetfile my_target_path\${CMAKE_CFG_INTDIR}\)STRING(REGEX REPLACE "/" "\\" targetfile ${targetfile})add_custom_command(TARGET mylibrary POST_BUILD    COMMAND copy ${origfile} ${targetfile})

这对于发布版本是非常有用的,但是对于调试,源代码不包括我预期的_d。
如何获取目标的输出路径,以便我可以复制文件?

注意:从上面的代码段可以看出,这是目前为windows / Visual Studio,但我也希望这可以在OS X / Xcode / make上工作。

注意:我需要将库放在一个额外的目录中,作为依赖该库的其他几个项目的输出目录,以便这些项目能够在运行时加载库。可以接受的替代解决方案是能够创建执行复制的自定义目标,以便其他项目可以依赖于这个项目,而这依赖于库。

解决方法 而不是使用过时的LOCATION属性,更喜欢使用生成器表达式:

add_custom_command(TARGET mylibrary POST_BUILD    COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_file:mylibrary> ${targetfile})

您也可以直接通过设置目标属性RUNTIME_OUTPUT_DIRECTORY来生成目标目录中的exe,而不是复制它。这具有每个配置选项(例如RUNTIME_OUTPUT_DIRECTORY_DEBUG)。

set_target_propertIEs(mylibrary PROPERTIES                      RUNTIME_OUTPUT_DIRECTORY_DEBUG <deBUG path>                      RUNTIME_OUTPUT_DIRECTORY_RELEASE <release path>)

详细信息运行:

cmake --help-property "RUNTIME_OUTPUT_DIRECTORY"cmake --help-property "RUNTIME_OUTPUT_DIRECTORY_<CONfig>"

此外,即使在windows上,您也可以将路径分隔符全部用于斜杠。

总结

以上是内存溢出为你收集整理的xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置全部内容,希望文章能够帮你解决xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存