CMake Mac:使用自定义命令/目标创建通用二进制文件

时间:2018-12-27 16:36:51

标签: macos cmake universal-binary

总的故事:我正在创建2个库(32、64),并希望从它们中创建一个通用二进制文件,并且只有在以下情况下,最终的通用二进制文件才会更新:

(1)两个库之一已更改。 (2)通用二进制文件已被删除。

详细信息: 我的两个基于体系结构的库是使用add_library创建的 (共享)。每个都需要稍微不同的构建选项,否则我会使用CMAKE_OSX_ARCHITECTURES。

我有一组用于创建通用二进制文件(脂质等)的命令 现在,当使用add_custom_command()或add_custom_target()时,最终通用二进制ALWAYS始终会生成,或者根本不会生成-取决于我如何调整参数。

正确的方法是什么?

以下代码每次都会创建通用名称:

add_custom_target(${target} ALL
    "lipo" "-create" ${subtarget_filenames} "-output" "../Temp/${target_filename}"
    COMMAND "ln" "-f" "-s" "../Temp/${target_filename}" "../Products/${target_filename}"
    COMMENT "Creating a universal binary: ${target_filename}")

以下内容根本不会创建它:

add_custom_command(OUTPUT ../Temp/${target_filename}
    COMMAND "lipo" "-create" ${subtarget_filenames} "-output" "../Temp/${target_filename}"
    COMMAND "ln" "-f" "-s" "../Temp/${target_filename}" "../Products/${target_filename}"
    COMMENT "Creating a universal binary: ${target_filename}")

0 个答案:

没有答案