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}")