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中的后期制作步骤中的另一个位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)