Генератор CPack Deb исключает файлы / цели

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

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


person feldim2425    schedule 26.05.2020    source источник


Ответы (1)


Я думаю, ответ на 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()
person Stewart    schedule 27.05.2020