pfultz2 / cmake-get Goto Github PK
View Code? Open in Web Editor NEWGet dependencies with cmake
Get dependencies with cmake
Cget was updated to install single files here, so it would be useful for CMakeGet to support the same thing.
I have the following cmake script:
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
include(CMakeGet)
cmake_get(pfultz2/cget-recipes
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/deps)
cmake_get_from(${CMAKE_SOURCE_DIR}/requirements.txt
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/deps)
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_BINARY_DIR}/deps)
My requirements.txt has the following contents:
boost
sfml
nlohmann/json
fmtlib/fmt
When I configure the project, I get the foloowing error (after downloading a number of packages):
CMake Error at CMakeLists.txt:9 (include):
include could not find load file:
/boost.cmake
-- Configuring incomplete, errors occurred!
See also "/private/var/folders/d0/czkmg12j3036n3_skqccd62w0000gn/T/cget-23-35-10-DvU0L-1/build/CMakeFiles/CMakeOutput.log".
CMake Error at cmake/CMakeGet.cmake:130 (message):
Process failed:
COMMAND;/usr/local/Cellar/cmake/3.9.2/bin/cmake;-DCMAKE_PREFIX_PATH=/Users/tamas/work/JacobInTheDark/build/deps;-DCMAKE_INSTALL_PREFIX=/Users/tamas/work/JacobInTheDark/build/deps;-DCGET_CMAKE_ORIGINAL_SOURCE_FILE=/var/folders/d0/czkmg12j3036n3_skqccd62w0000gn/T/cget-23-35-10-DvU0L-1/download/boost_1_64_0/__cget_original_cmake_file__.cmake;-DBOOST_WITHOUT_CONTEXT=1;-DBOOST_WITHOUT_COROUTINE=1;-DBOOST_WITHOUT_COROUTINE2=1;-DBOOST_WITHOUT_PYTHON=1;/var/folders/d0/czkmg12j3036n3_skqccd62w0000gn/T/cget-23-35-10-DvU0L-1/download/boost_1_64_0;WORKING_DIRECTORY;/var/folders/d0/czkmg12j3036n3_skqccd62w0000gn/T/cget-23-35-10-DvU0L-1/build
Call Stack (most recent call first):
cmake/CMakeGet.cmake:161 (cget_exec)
cmake/CMakeGet.cmake:354 (cget_install_dir)
cmake/CMakeGet.cmake:405 (cmake_get)
cmake/CMakeGet.cmake:336 (cmake_get_from)
cmake/CMakeGet.cmake:405 (cmake_get)
CMakeLists.txt:11 (cmake_get_from)
I suspect that this is because there is a variable before /boost.cmake
that is expanded to nothing. But I don't know where this cmake script is located to further debug.
I've pasted to full output here: https://pastebin.com/DM8C0Mb1
I'm using the script mode to install dependencies but when I add dependencies to requirements.txt, cmake-get redownloads and rebuilds everything. This is very inefficient. Is there a way to avoid the constant rebuilds?
CMake Warning (dev) at cmake/CMakeGet.cmake:264 (list):
Policy CMP0007 is not set: list command no longer ignores empty elements.
Run "cmake --help-policy CMP0007" for policy details. Use the cmake_policy
command to set the policy and suppress this warning. List has value =
[https:;;github.com;akheron;jansson;archive;HEAD.tar.gz].
Call Stack (most recent call first):
cmake/CMakeGet.cmake:347 (cget_fetch)
cmake/CMakeGet.cmake:405 (cmake_get)
dependencies.cmake:14 (cmake_get_from)
This warning is for project developers. Use -Wno-dev to suppress it.
The current implementation of cmake-get
rises an empty list element warning each time a dependency is being pulled. This is due to the following line replacing each slash by a semicolon. This causes Cmake to generate empty list elements when parsing URL schemas (https://
turns into https:;;
).
Thank you for your amazing work and the time you spend on this module ๐
When cmake-get pulls from recipes it pull 1.64 not 1.58
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.