CMake Mac: создание универсального двоичного файла с использованием пользовательской команды / цели - PullRequest
0 голосов
/ 27 декабря 2018

общая история: я создаю 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}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...