Сохраняйте права на один файл при использовании функции install() в CMake
В KDE я скорректировал макрос для компиляции и установки файлов Python, но у меня возникла проблема с сохранением разрешений файлов.
Чтобы быть более понятным, строка оскорбления в макросе
install(FILES ${SOURCE_FILE} DESTINATION ${DESTINATION_DIR})
который работает в 99% случаев.
В одном случае, хотя у меня есть файл Python, помеченный как исполняемый файл (+ x, я говорю о Linux здесь) в исходном каталоге, который затем символически связан с установочным двоичным каталогом. Поскольку install() не сохраняет разрешения, бит выполнения удаляется из него, и это приводит к возникновению всех видов проблем позже.
Возможно ли сохранить права доступа к файлам или прочитать их и установить их соответствующим образом? Мне не хотелось бы использовать ручную команду chmod
, так как она не переносима.
EDIT: я не хочу, чтобы все файлы были установлены этим исполняемым макросом, так как это было бы бессмысленно.
Ответы
Ответ 1
Вы можете установить файлы с помощью разрешения +x
, используя
install(PROGRAMS ...
команды.
В качестве альтернативы вы можете установить права доступа к файлам с полным каталогом:
install(DIRECTORIES ... USE_SOURCE_PERMISSIONS)
Подробнее см. документацию для команды установки.