CMake ошибка с ExternalProject

Два дня назад я добавил внешний проект для компиляции проекта с использованием автоинструментов. Это было прекрасно работает до сегодняшнего дня...

У меня странная ошибка:

CMake Ошибка в /usr/share/cmake-2.8/Modules/ExternalProject.cmake:710 (сообщение): ошибка: нет информации о загрузке для 'libantlr3c' - укажите существующий SOURCE_DIR или один из URL, CVS_REPOSITORY и CVS_MODULE, SVN_REPOSITORY или DOWNLO

И одно из этих правил фактически указано (SOURCE_DIR):

cmake_minimum_required(VERSION 2.8)
# ...
include(ExternalProject)
ExternalProject_Add(
  libantlr3c
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
)

Так что эта ошибка не имеет никакого значения... И вчера она прекрасно работала (до сих пор ничего не изменилось).

Любая идея?

Спасибо!

2 ответа

Решение

Это ошибка версии 2.8.0. Установите версию 2.8.3 или выше...

У меня была похожая проблема даже с 2.8.6, и документация не сильно помогла. Я нашел пример в Интернете, который дал мне подсказку, в которой я нуждался.

Вам нужно использовать аргумент URL, но есть одна загвоздка. Если вы просто дадите ему путь к директории, предполагается, что вы собираетесь указать его на архив, а не на каталог. Вы должны предварять свой путь с помощью "file://", например:

ExternalProject_Add(
  libantlr3c
  URL file://${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
)

Теперь я просто должен выяснить (в моем проекте), почему он ищет <project>-mkdir когда его не существует

Другие вопросы по тегам