Wie erstellt man ein externes Projekt, um einen Link herunterzuladen, der keine .tgz-Datei ist?cmake ExternalProject_Add, wie URL nicht tar-Datei herunterladen?
Zum Beispiel Catch bietet eine Freigabe, die eine einzige Header-Verteilung ist. Ich würde das lieber herunterladen als das Git Repo oder das .tgz Release. Aber ich habe nicht herausgefunden, wie ich CMake dazu bringen soll, das zu tun.
Ich möchte etwas tun:
Include(ExternalProject)
ExternalProject_Add(
catch
PREFIX ${CMAKE_BINARY_DIR}/catch
URL https://github.com/philsquared/Catch/releases/download/v1.9.6/catch.hpp ${CMAKE_BINARY_DIR}/catch
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
)
Dies scheitert als URL geht davon aus, dass url ist eine komprimierte tar-Datei. Ich habe auch verschiedene Varianten der DOWNLOAD_COMMAND ohne Erfolg ausprobiert.
Danke. Genau danach habe ich gesucht. Danke auch für den Tipp über LOG_DOWNLOAD. Die Datei wurde heruntergeladen. CMake ist jedoch nach dem Download fehlgeschlagen, bis ich LOG_DOWNLOAD ausgeschaltet habe. Ich benutzte sogar CMakeLists 3.8.2. Es sieht also so aus, als ob es wieder kaputt gehen könnte. – Tal
Ich habe dieses Problem gerade geöffnet: https://gitlab.kitware.com/cmake/cmake/issues/17046. – Tal
Nachverfolgung des CMake-Problems. Dies ist in CMake 3.9 behoben und wurde in den 3.8 Baum zurück gepatcht. Wenn es also ein 3.8 Release gibt (3.8.3), sollte es auch dort behoben werden. Für weitere Informationen: https://gitlab.kitware.com/cmake/cmake/issues/17046#note_289032 – Tal