CMake ошибка с ExternalProject - PullRequest
4 голосов
/ 14 мая 2011

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

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

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

И одно из этих правил действительно указано (SOURCE_D):

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 ]

3 голосов
/ 26 января 2012

У меня была похожая проблема даже с 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, когда это не такесть.

3 голосов
/ 15 мая 2011

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

...