Nicht unterstütztes Protokoll während download tar.gz Paket
Ich habe gerade ein upgrade meiner CMake ab version 2.8 auf 3.2.
Es funktioniert wie ein Charme in CMake 2.8 aber, nach dem upgrade, es ist zu scheitern.
Ich versuche zu bauen Drittanbieter-Bibliothek mit ExternalProject_Add()
CMake-Funktion.
ExternalProject_Add(
luacov
URL https://github.com/keplerproject/luacov/archive/v0.7.tar.gz
DOWNLOAD_DIR ${EXTERNAL_PROJECT_DOWNLOAD_DIR}
CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE}
SOURCE_DIR ${EXTERNAL_PROJECT_SRC_DIR}/luacov
BINARY_DIR ${EXTERNAL_PROJECT_BUILD_DIR}/luacov
UPDATE_COMMAND ""
PATCH_COMMAND ""
)
MEINE BEOBACHTUNG:
- Mit
GIT_REPOSITORY
optionExternalProject_Add()
ermöglichenhttp
undhttps
Protokoll zum herunterladen von externen Projekt. - Mit
URL
optionExternalProject_Add()
erlauben nurhttp
, aber nichthttps
Protokoll zum herunterladen von externen Projekt.
PROBLEM:
Gibt es eine Möglichkeit, download-und build-externe-Projekt mit https
Protokoll?
FEHLER:
[ 16%] Performing download step (download, verify and extract) for 'luacov'
-- downloading...
src='https://github.com/keplerproject/luacov/archive/v0.7.tar.gz'
dst='/home/build/my_build/external_projects/downloads/v0.7.tar.gz'
timeout='none'
CMake Error at /home/build/my_build/luacov-prefix/src/luacov-stamp/download-luacov.cmake:21 (message):
error: downloading
'https://github.com/keplerproject/luacov/archive/v0.7.tar.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log: Protocol "https" not supported or disabled in libcurl
Closing connection -1
make[3]: *** [luacov-prefix/src/luacov-stamp/luacov-download] Error 1
make[2]: *** [CMakeFiles/luacov.dir/all] Error 2
make[1]: *** [CMakeFiles/luacov.dir/rule] Error 2
make: *** [luacov] Error 2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem kann sein, dass die CURL-Bibliothek ausgeliefert, die mit CMake nicht mit SSL-Unterstützung standardmäßig. Ich hatte zum kompilieren mit cmake:
... und das ging, weil mein system die curl SSL-Unterstützung.
Was es bei mir funktioniert ist folgende:
Update openssl
Ändern bootstrap-Datei zu aktivieren CMAKE_USE_OPENSSL. Ersetzen Sie diese line von:
Laufen bootstrap-Skript normalerweise im cmake-Ordner
libssl-dev
war genug für mich. (Ubuntu 16.04) Bei OpenSSL undlibssl-div
installiert sind, CMake wird das bauen mit SSL-Unterstützung. Es besteht keine Notwendigkeit zum Bearbeiten der bootstrap-Datei oder manuell geben Sie die Parameter über die Kommando-Zeile.In meinem
ExternalProject_Add()
habe ich verwendenGIT_REPOSITORY
stattURL
option.Sowie
luacov
download und build erfolgreich.Für alle
https
- Protokoll verwendenDOWNLOAD_COMMAND
MöglichkeitExternalProject_Add()
Funktion.und seine Arbeit als erwartet.
Dank.
DOWNLOAD_COMMAND
? Beim Download über URL-dies erfolgt automatisch, aber das scheint nicht der Fall zu sein, wenn Sie es so machen.Ich hatte das gleiche problem, den Aufbau einer Bibliothek in einem computer, in dem CMake hatte keine Unterstützung für das https-Protokoll.
Hatte ich zu build cmake mich mit der option -DCMAKE_USE_OPENSSL=AUF-so der Vorschlag von @dekkard Kommentar.
Für CMake 3.8.0 dieser arbeitete für mich:
Installieren/aktualisieren von openssl:
Anpassung der Lösung aus einer CMake forum Antworten von Brad King:
Genießen!
Aussieht mit Cmake 3.2.1 funktioniert es wie erwartet.
Hier ist mein Beispiel project/CMakeLists.txt:
Werden und die Befehle:
EDIT
tag.CMake builds its own curl, without ssl support by default, unless you point it to the system curl. You can rebuild CMake with the CMAKE_USE_OPENSSL ON if you have all the right supporting system libraries installed.
Ich werde oft ändern Sie einfach die url von https auf http.