положить внешний проект в cPack - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь настроить проект cMake, который создает пакет, содержащий выходные данные нескольких внешних проектов. Итак, идея в том, что я использую этот проект cMake для создания пакетов для развертывания.

Теперь проблема в том, что когда я использую cMakeLists, показанный ниже, выходные данные внешнего проекта не включаются в пакет , Просто внутренний находится в упаковке. Последовательность установки внешнего проекта, кажется, работает, по крайней мере, вывод находится в каталоге установки. Кажется, что команда package не видит двоичные файлы и по этой причине не помещает их в zip-архив.

Кто-нибудь знает, как поместить выходные данные внешнего проекта в пакет?

Кстати: внешний проект также основан на cMake. Он содержит шаг установки, но не пакетный шаг.

cmake_minimum_required (VERSION 3.12)

project(PackedBinaries
    VERSION 0.0.42 
)

set(GLOBAL_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/temp)

include(ExternalProject)

# Builds external projects.
ExternalProject_Add(
  myExternalProject

  GIT_REPOSITORY "..."
  GIT_TAG "master"

  UPDATE_COMMAND ""
  PATCH_COMMAND ""

  SOURCE_DIR "${PROJECT_BINARY_DIR}/repo"
  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GLOBAL_OUTPUT_PATH}

  TEST_COMMAND ""
)

# Additional executable 
add_executable(myInternalProject hello.c)


if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "..." FORCE)
  set(CPACK_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "..." FORCE)
endif()

install(TARGETS  myInternalProject)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/temp DESTINATION "${CMAKE_BINARY_DIR}/install")

set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
set(CPACK_PACKAGE_VERSION_PATCH "0")

set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${PROJECT_NAME})

set(CPACK_GENERATOR "ZIP")

# Must be after the last CPACK macros
include(CPack)
...