CMake Mac: создание универсального двоичного файла с использованием пользовательской команды / цели

Общая история: я создаю 2 библиотеки (32, 64) и хочу создать из них универсальный двоичный файл, и что последний универсальный двоичный файл будет обновляться только в том случае, если:

(1) одна из двух библиотек изменилась. (2) универсальный двоичный файл был удален.

Детали: две библиотеки для каждой архитектуры созданы с использованием add_library (SHARED). Каждому нужны немного разные параметры сборки, в противном случае я бы использовал CMAKE_OSX_ARCHITECTURES.

У меня есть набор команд для создания универсального двоичного файла (lipo и т. Д.). Теперь при использовании add_custom_command() или add_custom_target() либо конечный универсальный двоичный файл ВСЕГДА строит, либо он не собирается вообще - в зависимости от того, как я настроил аргументы.

Как правильно это сделать?

Следующий код создает универсальный каждый раз:

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 ответов

Другие вопросы по тегам