xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置
我有一个动态库,根据配置获得不同的名称,在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上,您也可以将路径分隔符全部用于斜杠。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – std :: replace难度大
- quick-cocos2d-x 脚本和资源加密
- c# – 将遗留专有Web应用程序重写为MVC3 / Entity-Code-Fir
- Flex tree 遍历
- Vue.js报错Failed to resolve filter问题的解决方法
- Rails直接更新字段用where ... update_all ...或update_col
- ruby-on-rails – Ruby / Rails音频转换插件?
- oracle表中没有用bitmap索引,但是执行计划中却有bitmap的情
- Qt4.7在ARM开发板上如何设置中文显示
- c# – Entity Framework 6 Code First插入时的第一个默认日