Генератор CPack Deb исключает файлы / цели - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь создать проект C ++ с CMake, который содержит общую библиотеку (Lua), проблема в том, что я хочу отправлять пакеты только с Lua при создании Tar.gz для Linux или установщика NSIS для Windows, при упаковке пакета deb или rpm библиотека должна быть указана как зависимость (liblua5.3-0), но не должна быть упакована на самом деле.

Это как-то Можно ли исключить файлы или построить цели в CPack на основе генератора?

1 Ответ

0 голосов
/ 27 мая 2020

Я думаю, что ответ будет на install условно

Я бы, вероятно, сделал для этого вариант, который установлен в верхней части моего файла cmake верхнего уровня, а затем использовал бы его в любых командах install Я пришел к вам.

option(INSTALL_3RD_PARTY "Installs third party content" OFF)

if(INSTALL_3RD_PARTY)
  install(FILES liblua5.3-0 DESTINATION ${CMAKE_INSTALL_PREFIX})
endif()

Если вам не нравится заставлять пользователей устанавливать слишком много параметров, не могли бы вы получить его из ${CPACK_GENERATOR}, если это определено пользователем. В своих проектах я обычно устанавливаю CPACK_GENERATOR после моих install команд, так что для меня это не сработает.

if (${CPACK_GENERATOR} EQUAL "DEB")
  set(INSTALL_3RD_PARTY OFF)
endif()
if (${CPACK_GENERATOR} EQUAL "TZ")
  set(INSTALL_3RD_PARTY ON)
endif()
...