Re: [CMake] Don't download external projects again after calling make clean
] -- [download 32% complete] -- [download 33% complete] -- [download 34% complete] -- [download 35% complete] -- [download 36% complete] -- [download 38% complete] -- [download 39% complete] -- [download 40% complete] -- [download 41% complete] -- [download 42% complete] -- [download 43% complete] -- [download 44% complete] -- [download 45% complete] -- [download 46% complete] -- [download 48% complete] -- [download 49% complete] -- [download 50% complete] -- [download 51% complete] -- [download 52% complete] -- [download 53% complete] -- [download 54% complete] -- [download 55% complete] -- [download 56% complete] -- [download 57% complete] -- [download 59% complete] -- [download 60% complete] -- [download 61% complete] -- [download 62% complete] -- [download 63% complete] -- [download 64% complete] -- [download 65% complete] -- [download 66% complete] -- [download 67% complete] -- [download 69% complete] -- [download 70% complete] -- [download 71% complete] -- [download 72% complete] -- [download 73% complete] -- [download 74% complete] -- [download 75% complete] -- [download 76% complete] -- [download 77% complete] -- [download 78% complete] -- [download 80% complete] -- [download 81% complete] -- [download 82% complete] -- [download 83% complete] -- [download 84% complete] -- [download 85% complete] -- [download 86% complete] -- [download 87% complete] -- [download 88% complete] -- [download 90% complete] -- [download 91% complete] -- [download 92% complete] -- [download 93% complete] -- [download 94% complete] -- [download 95% complete] -- [download 96% complete] -- [download 97% complete] -- [download 98% complete] -- [download 99% complete] -- [download 100% complete] -- downloading... done cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Downloads/eigen/src/eigen-stamp/verify-eigen.cmake -- verifying file... file='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' -- verifying file... done cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Downloads/eigen/src/eigen-stamp/extract-eigen.cmake -- extracting... src='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E touch /home/cdoucet/Downloads/eigen/src/eigen-stamp/eigen-download make[2]: *** [/home/cdoucet/Downloads/eigen/src/eigen-stamp/eigen-download] Erreur 1 make[2]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make[1]: *** [CMakeFiles/eigen.dir/all] Erreur 2 make[1]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make: *** [all] Erreur 2 = - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 20:39:57 Objet: Re: [CMake] Don't download external projects again after calling make clean What version of CMake are you using? All the modern pre-built CMake installations should support https without extra effort on your part. Are you using a pre-built version from somewhere or are you building CMake yourself? On Saturday, April 18, 2015, Cedric Doucet cedric.dou...@inria.fr wrote: Ok it seems the answer to my problem is here: http://www.cmake.org/pipermail/cmake/2010-December/041295.html I will try it. - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 13:38:31 Objet: Re: [CMake] Don't download external projects again after calling make clean I have just tried to install curl to get https support. To do that, I have followed the steps below: 1. Installation of openssl: 1.a. ./config --prefix=/my/openssl/path 1.b. make 1.c. make test 1.d. make install 2. Installation of curl 2.a. ./configure --prefix=/my/curl/path --with-ssl=/my/openssl/path/lib 2.b. make 2.c. make install I have also prepend PATH with /my/curl/path/bin. However, the error remains. It seems that my version of curl (7.41.0) is not taken into acount because I have still this line in the error message: User-Agent: curl/7.38.0 I tried to remove all previous of curl and libcurl but it does not change anything. Could you help me? Cédric - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: David Cole dlrd...@aol.com Cc: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 13:00:28 Objet: Re: [CMake] Don't download external projects again
Re: [CMake] Don't download external projects again after calling make clean
/usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E make_directory /home/cdoucet/Downloads/eigen/download /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E touch /home/cdoucet/Downloads/eigen/src/eigen-stamp/eigen-mkdir /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_progress_report /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles 4 [ 25%] Performing download step (download, verify and extract) for 'eigen' cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Downloads/eigen/src/eigen-stamp/download-eigen.cmake -- downloading... src='http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' timeout='none' -- [download 100% complete] -- [download 0% complete] -- [download 1% complete] -- [download 2% complete] -- [download 3% complete] -- [download 4% complete] -- [download 5% complete] -- [download 7% complete] -- [download 8% complete] -- [download 9% complete] -- [download 10% complete] -- [download 11% complete] -- [download 12% complete] -- [download 13% complete] -- [download 14% complete] -- [download 15% complete] -- [download 17% complete] -- [download 18% complete] -- [download 19% complete] -- [download 20% complete] -- [download 21% complete] -- [download 22% complete] -- [download 23% complete] -- [download 24% complete] -- [download 25% complete] -- [download 27% complete] -- [download 28% complete] -- [download 29% complete] -- [download 30% complete] -- [download 31% complete] -- [download 32% complete] -- [download 33% complete] -- [download 34% complete] -- [download 35% complete] -- [download 36% complete] -- [download 38% complete] -- [download 39% complete] -- [download 40% complete] -- [download 41% complete] -- [download 42% complete] -- [download 43% complete] -- [download 44% complete] -- [download 45% complete] -- [download 46% complete] -- [download 48% complete] -- [download 49% complete] -- [download 50% complete] -- [download 51% complete] -- [download 52% complete] -- [download 53% complete] -- [download 54% complete] -- [download 55% complete] -- [download 56% complete] -- [download 57% complete] -- [download 59% complete] -- [download 60% complete] -- [download 61% complete] -- [download 62% complete] -- [download 63% complete] -- [download 64% complete] -- [download 65% complete] -- [download 66% complete] -- [download 67% complete] -- [download 69% complete] -- [download 70% complete] -- [download 71% complete] -- [download 72% complete] -- [download 73% complete] -- [download 74% complete] -- [download 75% complete] -- [download 76% complete] -- [download 77% complete] -- [download 78% complete] -- [download 80% complete] -- [download 81% complete] -- [download 82% complete] -- [download 83% complete] -- [download 84% complete] -- [download 85% complete] -- [download 86% complete] -- [download 87% complete] -- [download 88% complete] -- [download 90% complete] -- [download 91% complete] -- [download 92% complete] -- [download 93% complete] -- [download 94% complete] -- [download 95% complete] -- [download 96% complete] -- [download 97% complete] -- [download 98% complete] -- [download 99% complete] -- [download 100% complete] -- downloading... done cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Downloads/eigen/src/eigen-stamp/verify-eigen.cmake -- verifying file... file='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' -- verifying file... done cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Downloads/eigen/src/eigen-stamp/extract-eigen.cmake -- extracting... src='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done cd /home/cdoucet/Downloads/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E touch /home/cdoucet/Downloads/eigen/src/eigen-stamp/eigen-download make[2]: *** [/home/cdoucet/Downloads/eigen/src/eigen-stamp/eigen-download] Erreur 1 make[2]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make[1]: *** [CMakeFiles/eigen.dir/all] Erreur 2 make[1]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make: *** [all] Erreur 2 = De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 20:39:57 Objet: Re: [CMake] Don't download external projects again after calling make clean What version of CMake are you using? All the modern pre-built CMake installations should support https without extra effort on your part
Re: [CMake] Don't download external projects again after calling make clean
Does the extracted eigen source tree look like it's a proper un-tarred eigen source directory? Yes, everything seems ok. Does this simple example work for you? (copied/pasted from another recent CMake mailing list discussion...) Yes, it works! Silly question, but do you need to build eigen, or are you using it as a header only library? Your question is not silly! Indeed, eigen is a header only library. So, you can copy and paste these header files wherever you want to install eigen. However, my goal is to provide a simple way to install a code which depends on external libraries. By 'simple', I mean users/developpers may just have to type the classical combo 'cmake/make/make install' to use the code. They are not expected to download and install anything by themselves. Cédric - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 14:01:54 Objet: Re: [CMake] Don't download external projects again after calling make clean I don't know why but providing my own STAMP_DIR seems to solve the problem: STAMP_DIR ${EXTERNAL_DIR}/eigen/stamp Hope it helps! Cédric - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 13:56:36 Objet: Re: [CMake] Don't download external projects again after calling make clean It looks correct. I don't understand what the error is. It looks like the download and extract succeeds, but then it simply doesn't move on to the next step of trying to configure with CMake... Does the extracted eigen source tree look like it's a proper un-tarred eigen source directory? Does this simple example work for you? (copied/pasted from another recent CMake mailing list discussion...) # -- # CMakeLists.txt cmake_minimum_required(VERSION 3.2) project(repro NONE) include(ExternalProject) ExternalProject_Add(name GIT_REPOSITORY https://github.com/dlrdave/SmallAndFast.git GIT_TAG 68c3cebf842aa8a13d659fec428fd85ca3a24307 CMAKE_ARGS INSTALL_COMMAND ) # Possible commits in this repo (most recent first) # # 68c3cebf842aa8a13d659fec428fd85ca3a24307 # a0acdce3a549796ca4424c591c038eeb19e59a72 # 5e98e304a464946dd34cb4c53eb3dd1fd348781b # 8ea36ce26a6b00ab839064a6066a984f6d6647f6 # END CMakeLists.txt Silly question, but do you need to build eigen, or are you using it as a header only library? And... if you do need to build it, does v3.2.4 of eigen build with CMake or does it require some other configure command? (I've been assuming you've actually built eigen manually, and you're just trying to automate it with ExternalProject... but now I'm back-tracking and trying not to assume anything...) HTH, David C. On Thu, Apr 23, 2015 at 7:31 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Thank you very much. Your remarks are very helpful to me to understand how it works. I hope the following file is now correct: == project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR ${CMAKE_CURRENT_BINARY_DIR}) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR /home/cdoucet/Downloads/eigen SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 4d0d77e06fef87b4fcd2c9b72cc8dc55 CMAKE_ARGS -D CMAKE_INSTALL_PREFIX=INSTALL_DIR ) === After deleting /home/cdoucet/Downloads/eigen and all the content of my build directory (from where I call cmake ..), I typed: cmake .. make and I still obtain the following error message: = /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -H/home/cdoucet/Documents/exemples/cmake/external_project/eigen -B/home/cdoucet/Documents/exemples/cmake/external_project/eigen/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_progress_start /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make -f CMakeFiles/eigen.dir/build.make
Re: [CMake] Don't download external projects again after calling make clean
Eigen is just an example of an external library which is very fast to download and install with ExternalProject_Add. It is convenient here to let you check that you have the same problem as mine on your machine. However, I have other external libraries which have to be compiled. - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 14:14:59 Objet: Re: [CMake] Don't download external projects again after calling make clean Does the extracted eigen source tree look like it's a proper un-tarred eigen source directory? Yes, everything seems ok. Does this simple example work for you? (copied/pasted from another recent CMake mailing list discussion...) Yes, it works! Silly question, but do you need to build eigen, or are you using it as a header only library? Your question is not silly! Indeed, eigen is a header only library. So, you can copy and paste these header files wherever you want to install eigen. However, my goal is to provide a simple way to install a code which depends on external libraries. By 'simple', I mean users/developpers may just have to type the classical combo 'cmake/make/make install' to use the code. They are not expected to download and install anything by themselves. Cédric - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 14:01:54 Objet: Re: [CMake] Don't download external projects again after calling make clean I don't know why but providing my own STAMP_DIR seems to solve the problem: STAMP_DIR ${EXTERNAL_DIR}/eigen/stamp Hope it helps! Cédric - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 13:56:36 Objet: Re: [CMake] Don't download external projects again after calling make clean It looks correct. I don't understand what the error is. It looks like the download and extract succeeds, but then it simply doesn't move on to the next step of trying to configure with CMake... Does the extracted eigen source tree look like it's a proper un-tarred eigen source directory? Does this simple example work for you? (copied/pasted from another recent CMake mailing list discussion...) # -- # CMakeLists.txt cmake_minimum_required(VERSION 3.2) project(repro NONE) include(ExternalProject) ExternalProject_Add(name GIT_REPOSITORY https://github.com/dlrdave/SmallAndFast.git GIT_TAG 68c3cebf842aa8a13d659fec428fd85ca3a24307 CMAKE_ARGS INSTALL_COMMAND ) # Possible commits in this repo (most recent first) # # 68c3cebf842aa8a13d659fec428fd85ca3a24307 # a0acdce3a549796ca4424c591c038eeb19e59a72 # 5e98e304a464946dd34cb4c53eb3dd1fd348781b # 8ea36ce26a6b00ab839064a6066a984f6d6647f6 # END CMakeLists.txt Silly question, but do you need to build eigen, or are you using it as a header only library? And... if you do need to build it, does v3.2.4 of eigen build with CMake or does it require some other configure command? (I've been assuming you've actually built eigen manually, and you're just trying to automate it with ExternalProject... but now I'm back-tracking and trying not to assume anything...) HTH, David C. On Thu, Apr 23, 2015 at 7:31 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Thank you very much. Your remarks are very helpful to me to understand how it works. I hope the following file is now correct: == project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR ${CMAKE_CURRENT_BINARY_DIR}) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR /home/cdoucet/Downloads/eigen SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 4d0d77e06fef87b4fcd2c9b72cc8dc55 CMAKE_ARGS -D CMAKE_INSTALL_PREFIX=INSTALL_DIR ) === After deleting /home/cdoucet/Downloads/eigen and all the content of my build directory (from where I call cmake ..), I typed: cmake .. make and I still obtain the following error message: = /usr/local/bibliotheques
Re: [CMake] Don't download external projects again after calling make clean
-stamp/eigen-download] Erreur 1 make[2]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make[1]: *** [CMakeFiles/eigen.dir/all] Erreur 2 make[1]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make: *** [all] Erreur 2 = - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 13:14:35 Objet: Re: [CMake] Don't download external projects again after calling make clean I don't understand what the error is here, but here are some comments: (1) CMAKE_INSTALL_PREFIX=$INSTALL_DIR The $ is unnecessary and incorrect in this context. The literal string INSTALL_DIR is the thing that ExternalProject will substitute when it is processed into custom commands... (2) ONLY the DOWNLOAD_DIR parameter should be in an external (outside of your build tree) directory, to avoid re-downloading the exact same tar.gz file over and over again. The source tree and the build tree of the project should be in your build tree somewhere. (3) CONFIGURE_COMMAND cd BINARY_DIR cmake should be unnecessary... The configure command is run in the binary dir by default. Instead, you should be able to use: CMAKE_ARGS -D CMAKE_INSTALL_PREFIX=INSTALL_DIR The binary dir is the working directory for configure, build and install commands. And the SOURCE_DIR is added automatically when you use CMAKE_ARGS with the default cmake CONFIGURE_COMMAND rather than specifying your own. Make those changes and try again with one more fresh build (i.e. -- blow away the whole /home/cdoucet/Downloads/eigen directory and start clean...) Let us know if you still have an error after making those changes. HTH, David C. On Thu, Apr 23, 2015 at 6:57 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello David, I am using CMake 3.2.2. I installed CMake from the sources because I use modules to manage my libraries. But it's ok now: I modified the installation so that to support https. Unfortunately, I still have a problem. :( Maybe you could help me! Here is my CMakeLists.txt: = cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR ${EXTERNAL_DIR}/eigen/download SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 4d0d77e06fef87b4fcd2c9b72cc8dc55 CONFIGURE_COMMAND cd BINARY_DIR cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR SOURCE_DIR ) = And here is the error message: = /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -H/home/cdoucet/Documents/exemples/cmake/external_project/eigen -B/home/cdoucet/Documents/exemples/cmake/external_project/eigen/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_progress_start /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make -f CMakeFiles/eigen.dir/build.make CMakeFiles/eigen.dir/depend make[2]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » cd /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_depends Unix Makefiles /home/cdoucet/Documents/exemples/cmake/external_project/eigen /home/cdoucet/Documents/exemples/cmake/external_project/eigen /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles/eigen.dir/DependInfo.cmake --color= make[2]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make -f CMakeFiles/eigen.dir/build.make CMakeFiles/eigen.dir/build make[2]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen
Re: [CMake] Don't download external projects again after calling make clean
I don't know why but providing my own STAMP_DIR seems to solve the problem: STAMP_DIR ${EXTERNAL_DIR}/eigen/stamp Hope it helps! Cédric - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 13:56:36 Objet: Re: [CMake] Don't download external projects again after calling make clean It looks correct. I don't understand what the error is. It looks like the download and extract succeeds, but then it simply doesn't move on to the next step of trying to configure with CMake... Does the extracted eigen source tree look like it's a proper un-tarred eigen source directory? Does this simple example work for you? (copied/pasted from another recent CMake mailing list discussion...) # -- # CMakeLists.txt cmake_minimum_required(VERSION 3.2) project(repro NONE) include(ExternalProject) ExternalProject_Add(name GIT_REPOSITORY https://github.com/dlrdave/SmallAndFast.git GIT_TAG 68c3cebf842aa8a13d659fec428fd85ca3a24307 CMAKE_ARGS INSTALL_COMMAND ) # Possible commits in this repo (most recent first) # # 68c3cebf842aa8a13d659fec428fd85ca3a24307 # a0acdce3a549796ca4424c591c038eeb19e59a72 # 5e98e304a464946dd34cb4c53eb3dd1fd348781b # 8ea36ce26a6b00ab839064a6066a984f6d6647f6 # END CMakeLists.txt Silly question, but do you need to build eigen, or are you using it as a header only library? And... if you do need to build it, does v3.2.4 of eigen build with CMake or does it require some other configure command? (I've been assuming you've actually built eigen manually, and you're just trying to automate it with ExternalProject... but now I'm back-tracking and trying not to assume anything...) HTH, David C. On Thu, Apr 23, 2015 at 7:31 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Thank you very much. Your remarks are very helpful to me to understand how it works. I hope the following file is now correct: == project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR ${CMAKE_CURRENT_BINARY_DIR}) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR /home/cdoucet/Downloads/eigen SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 4d0d77e06fef87b4fcd2c9b72cc8dc55 CMAKE_ARGS -D CMAKE_INSTALL_PREFIX=INSTALL_DIR ) === After deleting /home/cdoucet/Downloads/eigen and all the content of my build directory (from where I call cmake ..), I typed: cmake .. make and I still obtain the following error message: = /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -H/home/cdoucet/Documents/exemples/cmake/external_project/eigen -B/home/cdoucet/Documents/exemples/cmake/external_project/eigen/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_progress_start /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make -f CMakeFiles/eigen.dir/build.make CMakeFiles/eigen.dir/depend make[2]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » cd /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_depends Unix Makefiles /home/cdoucet/Documents/exemples/cmake/external_project/eigen /home/cdoucet/Documents/exemples/cmake/external_project/eigen /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/CMakeFiles/eigen.dir/DependInfo.cmake --color= Scanning dependencies of target eigen make[2]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make -f CMakeFiles/eigen.dir/build.make CMakeFiles/eigen.dir/build make[2]: entrant dans le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E cmake_progress_report /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build
Re: [CMake] Don't download external projects again after calling make clean
% complete] -- [download 15% complete] -- [download 17% complete] -- [download 18% complete] -- [download 19% complete] -- [download 20% complete] -- [download 21% complete] -- [download 22% complete] -- [download 23% complete] -- [download 24% complete] -- [download 25% complete] -- [download 27% complete] -- [download 28% complete] -- [download 29% complete] -- [download 30% complete] -- [download 31% complete] -- [download 32% complete] -- [download 33% complete] -- [download 34% complete] -- [download 35% complete] -- [download 36% complete] -- [download 38% complete] -- [download 39% complete] -- [download 40% complete] -- [download 41% complete] -- [download 42% complete] -- [download 43% complete] -- [download 44% complete] -- [download 45% complete] -- [download 46% complete] -- [download 48% complete] -- [download 49% complete] -- [download 50% complete] -- [download 51% complete] -- [download 52% complete] -- [download 53% complete] -- [download 54% complete] -- [download 55% complete] -- [download 56% complete] -- [download 57% complete] -- [download 59% complete] -- [download 60% complete] -- [download 61% complete] -- [download 62% complete] -- [download 63% complete] -- [download 64% complete] -- [download 65% complete] -- [download 66% complete] -- [download 67% complete] -- [download 69% complete] -- [download 70% complete] -- [download 71% complete] -- [download 72% complete] -- [download 73% complete] -- [download 74% complete] -- [download 75% complete] -- [download 76% complete] -- [download 77% complete] -- [download 78% complete] -- [download 80% complete] -- [download 81% complete] -- [download 82% complete] -- [download 83% complete] -- [download 84% complete] -- [download 85% complete] -- [download 86% complete] -- [download 87% complete] -- [download 88% complete] -- [download 90% complete] -- [download 91% complete] -- [download 92% complete] -- [download 93% complete] -- [download 94% complete] -- [download 95% complete] -- [download 96% complete] -- [download 97% complete] -- [download 98% complete] -- [download 99% complete] -- [download 100% complete] -- downloading... done cd /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen/src/eigen-stamp/verify-eigen.cmake -- verifying file... file='/home/cdoucet/Downloads/eigen/3.2.4.tar.gz' -- verifying file... done cd /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -P /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen/src/eigen-stamp/extract-eigen.cmake -- extracting... src='/home/cdoucet/Downloads/eigen/3.2.4.tar.gz' dst='/home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen/src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done cd /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen /usr/local/bibliotheques/cmake/3.2.2/bin/cmake -E touch /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build/eigen/src/eigen-stamp/eigen-download make[2]: *** [eigen/src/eigen-stamp/eigen-download] Erreur 1 make[2]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make[1]: *** [CMakeFiles/eigen.dir/all] Erreur 2 make[1]: quittant le répertoire « /home/cdoucet/Documents/exemples/cmake/external_project/eigen/build » make: *** [all] Erreur 2 = - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Jeudi 23 Avril 2015 13:14:35 Objet: Re: [CMake] Don't download external projects again after calling make clean I don't understand what the error is here, but here are some comments: (1) CMAKE_INSTALL_PREFIX=$INSTALL_DIR The $ is unnecessary and incorrect in this context. The literal string INSTALL_DIR is the thing that ExternalProject will substitute when it is processed into custom commands... (2) ONLY the DOWNLOAD_DIR parameter should be in an external (outside of your build tree) directory, to avoid re-downloading the exact same tar.gz file over and over again. The source tree and the build tree of the project should be in your build tree somewhere. (3) CONFIGURE_COMMAND cd BINARY_DIR cmake should be unnecessary... The configure command is run in the binary dir by default. Instead, you should be able to use: CMAKE_ARGS -D CMAKE_INSTALL_PREFIX=INSTALL_DIR The binary dir is the working directory for configure, build and install commands. And the SOURCE_DIR is added automatically when you use CMAKE_ARGS with the default cmake CONFIGURE_COMMAND rather than specifying your own. Make those changes and try again with one more fresh build (i.e. -- blow away the whole /home/cdoucet
Re: [CMake] Don't download external projects again after calling make clean
Hello David, thank you very much. Unfortunately, I get the following error message if I remove my download command: -- downloading... src='http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' timeout='none' -- [download 100% complete] CMake Error at src/eigen-stamp/download-eigen.cmake:27 (message): error: downloading 'http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' failed status_code: 1 status_string: Unsupported protocol log: Hostname was NOT found in DNS cache Trying 131.103.20.167... Connected to bitbucket.org (131.103.20.167) port 80 (#0) GET /eigen/eigen/get/3.2.4.tar.gz HTTP/1.1 User-Agent: curl/7.38.0 Host: bitbucket.org Accept: */* HTTP/1.1 301 Moved Permanently Server nginx/1.6.2 is not blacklisted Server: nginx/1.6.2 Date: Sat, 18 Apr 2015 10:55:20 GMT Content-Type: text/html Content-Length: 184 Location: https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz Ignoring the response-body html headtitle301 Moved Permanently/title/head body bgcolor=white centerh1301 Moved Permanently/h1/center hrcenternginx/1.6.2/center /body /html Connection #0 to host bitbucket.org left intact Issue another request to this URL: 'https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' Protocol https not supported or disabled in libcurl Closing connection -1 - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Vendredi 17 Avril 2015 13:21:08 Objet: Re: [CMake] Don't download external projects again after calling make clean Eliminate your DOWNLOAD_COMMAND. CMake knows how to do it with just the URL_MD5, DOWNLOAD_DIR and SOURCE_DIR information HTH, David On Fri, Apr 17, 2015 at 1:32 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello David, thank you very much for your help. Unfortunately I may do something wrong because it does not work. After cleaning, the library is downloaded again. I guess my mistake comes from the fact I do not understand the role of URL_MD5. Below is a simple example where downloading and installing is very fast. You just have to replace the value of EXTERNAL_DIR by the path to your own Downloads repository. I tried to put URL in my DOWNLOAD_COMMAND but the call wget URL does not seem to be understood by the wget command. Thanks again! Cédric -- cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR ${EXTERNAL_DIR}/eigen/download SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 ccb18a771f678b38a3d33c321a8e7daf DOWNLOAD_COMMAND wget http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz tar xvzf 3.2.4.tar.gz -C SOURCE_DIR --strip-components=1 CONFIGURE_COMMAND cd BINARY_DIR cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR SOURCE_DIR ) -- - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Lundi 13 Avril 2015 12:40:34 Objet: Re: [CMake] Don't download external projects again after calling make clean Use the URL_MD5 and DOWNLOAD_DIR arguments to ExternalProject_Add to put the downloaded files into a location outside the build tree (perhaps ~/Downloads on Mac/Linux or $ENV{USERPROFILE}/Downloads on Windows). With DOWNLOAD_DIR outside the build tree, and the checksums of the downloaded files being the same as you've specified via URL_MD5, the download portion will be avoided once there is a local copy of a file available. HTH, David C. On Mon, Apr 13, 2015 at 5:04 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello! I use the ExternalProject_Add function to download third-party libraries of a code. Once a library has been downloaded, I can call make as many times as I want without downloading this library again. It seems that CMake detects that the library has already been downloaded. However, calling make clean seems to destroy this feature. Even if my
Re: [CMake] Don't download external projects again after calling make clean
Ok it seems the answer to my problem is here: http://www.cmake.org/pipermail/cmake/2010-December/041295.html I will try it. - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 13:38:31 Objet: Re: [CMake] Don't download external projects again after calling make clean I have just tried to install curl to get https support. To do that, I have followed the steps below: 1. Installation of openssl: 1.a. ./config --prefix=/my/openssl/path 1.b. make 1.c. make test 1.d. make install 2. Installation of curl 2.a. ./configure --prefix=/my/curl/path --with-ssl=/my/openssl/path/lib 2.b. make 2.c. make install I have also prepend PATH with /my/curl/path/bin. However, the error remains. It seems that my version of curl (7.41.0) is not taken into acount because I have still this line in the error message: User-Agent: curl/7.38.0 I tried to remove all previous of curl and libcurl but it does not change anything. Could you help me? Cédric - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: David Cole dlrd...@aol.com Cc: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 13:00:28 Objet: Re: [CMake] Don't download external projects again after calling make clean Hello David, thank you very much. Unfortunately, I get the following error message if I remove my download command: -- downloading... src='http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' timeout='none' -- [download 100% complete] CMake Error at src/eigen-stamp/download-eigen.cmake:27 (message): error: downloading 'http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' failed status_code: 1 status_string: Unsupported protocol log: Hostname was NOT found in DNS cache Trying 131.103.20.167... Connected to bitbucket.org (131.103.20.167) port 80 (#0) GET /eigen/eigen/get/3.2.4.tar.gz HTTP/1.1 User-Agent: curl/7.38.0 Host: bitbucket.org Accept: */* HTTP/1.1 301 Moved Permanently Server nginx/1.6.2 is not blacklisted Server: nginx/1.6.2 Date: Sat, 18 Apr 2015 10:55:20 GMT Content-Type: text/html Content-Length: 184 Location: https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz Ignoring the response-body html headtitle301 Moved Permanently/title/head body bgcolor=white centerh1301 Moved Permanently/h1/center hrcenternginx/1.6.2/center /body /html Connection #0 to host bitbucket.org left intact Issue another request to this URL: 'https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' Protocol https not supported or disabled in libcurl Closing connection -1 - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Vendredi 17 Avril 2015 13:21:08 Objet: Re: [CMake] Don't download external projects again after calling make clean Eliminate your DOWNLOAD_COMMAND. CMake knows how to do it with just the URL_MD5, DOWNLOAD_DIR and SOURCE_DIR information HTH, David On Fri, Apr 17, 2015 at 1:32 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello David, thank you very much for your help. Unfortunately I may do something wrong because it does not work. After cleaning, the library is downloaded again. I guess my mistake comes from the fact I do not understand the role of URL_MD5. Below is a simple example where downloading and installing is very fast. You just have to replace the value of EXTERNAL_DIR by the path to your own Downloads repository. I tried to put URL in my DOWNLOAD_COMMAND but the call wget URL does not seem to be understood by the wget command. Thanks again! Cédric -- cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR ${EXTERNAL_DIR}/eigen/download SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 ccb18a771f678b38a3d33c321a8e7daf DOWNLOAD_COMMAND
Re: [CMake] Don't download external projects again after calling make clean
I have just tried to install curl to get https support. To do that, I have followed the steps below: 1. Installation of openssl: 1.a. ./config --prefix=/my/openssl/path 1.b. make 1.c. make test 1.d. make install 2. Installation of curl 2.a. ./configure --prefix=/my/curl/path --with-ssl=/my/openssl/path/lib 2.b. make 2.c. make install I have also prepend PATH with /my/curl/path/bin. However, the error remains. It seems that my version of curl (7.41.0) is not taken into acount because I have still this line in the error message: User-Agent: curl/7.38.0 I tried to remove all previous of curl and libcurl but it does not change anything. Could you help me? Cédric - Mail original - De: Cedric Doucet cedric.dou...@inria.fr À: David Cole dlrd...@aol.com Cc: cmake@cmake.org Envoyé: Samedi 18 Avril 2015 13:00:28 Objet: Re: [CMake] Don't download external projects again after calling make clean Hello David, thank you very much. Unfortunately, I get the following error message if I remove my download command: -- downloading... src='http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' timeout='none' -- [download 100% complete] CMake Error at src/eigen-stamp/download-eigen.cmake:27 (message): error: downloading 'http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' failed status_code: 1 status_string: Unsupported protocol log: Hostname was NOT found in DNS cache Trying 131.103.20.167... Connected to bitbucket.org (131.103.20.167) port 80 (#0) GET /eigen/eigen/get/3.2.4.tar.gz HTTP/1.1 User-Agent: curl/7.38.0 Host: bitbucket.org Accept: */* HTTP/1.1 301 Moved Permanently Server nginx/1.6.2 is not blacklisted Server: nginx/1.6.2 Date: Sat, 18 Apr 2015 10:55:20 GMT Content-Type: text/html Content-Length: 184 Location: https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz Ignoring the response-body html headtitle301 Moved Permanently/title/head body bgcolor=white centerh1301 Moved Permanently/h1/center hrcenternginx/1.6.2/center /body /html Connection #0 to host bitbucket.org left intact Issue another request to this URL: 'https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' Protocol https not supported or disabled in libcurl Closing connection -1 - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Vendredi 17 Avril 2015 13:21:08 Objet: Re: [CMake] Don't download external projects again after calling make clean Eliminate your DOWNLOAD_COMMAND. CMake knows how to do it with just the URL_MD5, DOWNLOAD_DIR and SOURCE_DIR information HTH, David On Fri, Apr 17, 2015 at 1:32 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello David, thank you very much for your help. Unfortunately I may do something wrong because it does not work. After cleaning, the library is downloaded again. I guess my mistake comes from the fact I do not understand the role of URL_MD5. Below is a simple example where downloading and installing is very fast. You just have to replace the value of EXTERNAL_DIR by the path to your own Downloads repository. I tried to put URL in my DOWNLOAD_COMMAND but the call wget URL does not seem to be understood by the wget command. Thanks again! Cédric -- cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR ${EXTERNAL_DIR}/eigen/download SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 ccb18a771f678b38a3d33c321a8e7daf DOWNLOAD_COMMAND wget http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz tar xvzf 3.2.4.tar.gz -C SOURCE_DIR --strip-components=1 CONFIGURE_COMMAND cd BINARY_DIR cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR SOURCE_DIR ) -- - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc
Re: [CMake] Don't download external projects again after calling make clean
What version of CMake are you using? All the modern pre-built CMake installations should support https without extra effort on your part. Are you using a pre-built version from somewhere or are you building CMake yourself? On Saturday, April 18, 2015, Cedric Doucet cedric.dou...@inria.fr wrote: Ok it seems the answer to my problem is here: http://www.cmake.org/pipermail/cmake/2010-December/041295.html I will try it. - Mail original - De: Cedric Doucet cedric.dou...@inria.fr javascript:; À: cmake@cmake.org javascript:; Envoyé: Samedi 18 Avril 2015 13:38:31 Objet: Re: [CMake] Don't download external projects again after calling make clean I have just tried to install curl to get https support. To do that, I have followed the steps below: 1. Installation of openssl: 1.a. ./config --prefix=/my/openssl/path 1.b. make 1.c. make test 1.d. make install 2. Installation of curl 2.a. ./configure --prefix=/my/curl/path --with-ssl=/my/openssl/path/lib 2.b. make 2.c. make install I have also prepend PATH with /my/curl/path/bin. However, the error remains. It seems that my version of curl (7.41.0) is not taken into acount because I have still this line in the error message: User-Agent: curl/7.38.0 I tried to remove all previous of curl and libcurl but it does not change anything. Could you help me? Cédric - Mail original - De: Cedric Doucet cedric.dou...@inria.fr javascript:; À: David Cole dlrd...@aol.com javascript:; Cc: cmake@cmake.org javascript:; Envoyé: Samedi 18 Avril 2015 13:00:28 Objet: Re: [CMake] Don't download external projects again after calling make clean Hello David, thank you very much. Unfortunately, I get the following error message if I remove my download command: -- downloading... src='http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' dst='/home/cdoucet/Downloads/eigen/download/3.2.4.tar.gz' timeout='none' -- [download 100% complete] CMake Error at src/eigen-stamp/download-eigen.cmake:27 (message): error: downloading ' http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' failed status_code: 1 status_string: Unsupported protocol log: Hostname was NOT found in DNS cache Trying 131.103.20.167... Connected to bitbucket.org (131.103.20.167) port 80 (#0) GET /eigen/eigen/get/3.2.4.tar.gz HTTP/1.1 User-Agent: curl/7.38.0 Host: bitbucket.org Accept: */* HTTP/1.1 301 Moved Permanently Server nginx/1.6.2 is not blacklisted Server: nginx/1.6.2 Date: Sat, 18 Apr 2015 10:55:20 GMT Content-Type: text/html Content-Length: 184 Location: https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz Ignoring the response-body html headtitle301 Moved Permanently/title/head body bgcolor=white centerh1301 Moved Permanently/h1/center hrcenternginx/1.6.2/center /body /html Connection #0 to host bitbucket.org left intact Issue another request to this URL: 'https://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz' Protocol https not supported or disabled in libcurl Closing connection -1 - Mail original - De: David Cole dlrd...@aol.com javascript:; À: Cedric Doucet cedric.dou...@inria.fr javascript:; Cc: cmake@cmake.org javascript:; Envoyé: Vendredi 17 Avril 2015 13:21:08 Objet: Re: [CMake] Don't download external projects again after calling make clean Eliminate your DOWNLOAD_COMMAND. CMake knows how to do it with just the URL_MD5, DOWNLOAD_DIR and SOURCE_DIR information HTH, David On Fri, Apr 17, 2015 at 1:32 AM, Cedric Doucet cedric.dou...@inria.fr javascript:; wrote: Hello David, thank you very much for your help. Unfortunately I may do something wrong because it does not work. After cleaning, the library is downloaded again. I guess my mistake comes from the fact I do not understand the role of URL_MD5. Below is a simple example where downloading and installing is very fast. You just have to replace the value of EXTERNAL_DIR by the path to your own Downloads repository. I tried to put URL in my DOWNLOAD_COMMAND but the call wget URL does not seem to be understood by the wget command. Thanks again! Cédric -- cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads
Re: [CMake] Don't download external projects again after calling make clean
Eliminate your DOWNLOAD_COMMAND. CMake knows how to do it with just the URL_MD5, DOWNLOAD_DIR and SOURCE_DIR information HTH, David On Fri, Apr 17, 2015 at 1:32 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello David, thank you very much for your help. Unfortunately I may do something wrong because it does not work. After cleaning, the library is downloaded again. I guess my mistake comes from the fact I do not understand the role of URL_MD5. Below is a simple example where downloading and installing is very fast. You just have to replace the value of EXTERNAL_DIR by the path to your own Downloads repository. I tried to put URL in my DOWNLOAD_COMMAND but the call wget URL does not seem to be understood by the wget command. Thanks again! Cédric -- cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR ${EXTERNAL_DIR}/eigen/download SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 ccb18a771f678b38a3d33c321a8e7daf DOWNLOAD_COMMAND wget http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz tar xvzf 3.2.4.tar.gz -C SOURCE_DIR --strip-components=1 CONFIGURE_COMMAND cd BINARY_DIR cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR SOURCE_DIR ) -- - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Lundi 13 Avril 2015 12:40:34 Objet: Re: [CMake] Don't download external projects again after calling make clean Use the URL_MD5 and DOWNLOAD_DIR arguments to ExternalProject_Add to put the downloaded files into a location outside the build tree (perhaps ~/Downloads on Mac/Linux or $ENV{USERPROFILE}/Downloads on Windows). With DOWNLOAD_DIR outside the build tree, and the checksums of the downloaded files being the same as you've specified via URL_MD5, the download portion will be avoided once there is a local copy of a file available. HTH, David C. On Mon, Apr 13, 2015 at 5:04 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello! I use the ExternalProject_Add function to download third-party libraries of a code. Once a library has been downloaded, I can call make as many times as I want without downloading this library again. It seems that CMake detects that the library has already been downloaded. However, calling make clean seems to destroy this feature. Even if my library is not uninstalled during cleaning, calling make after make clean will lead CMake to try download the library again. How could I tell CMake not to download the library again? Thank you very much for your help! Cédric -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] Don't download external projects again after calling make clean
Hello David, thank you very much for your help. Unfortunately I may do something wrong because it does not work. After cleaning, the library is downloaded again. I guess my mistake comes from the fact I do not understand the role of URL_MD5. Below is a simple example where downloading and installing is very fast. You just have to replace the value of EXTERNAL_DIR by the path to your own Downloads repository. I tried to put URL in my DOWNLOAD_COMMAND but the call wget URL does not seem to be understood by the wget command. Thanks again! Cédric -- cmake_minimum_required (VERSION 2.6) project (example CXX) set(CMAKE_VERBOSE_MAKEFILE ON) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) set(CMAKE_BUILD_FLAGS -j${N}) endif() include(ExternalProject) set(EXTERNAL_DIR /home/cdoucet/Downloads) ExternalProject_Add(eigen PREFIX ${EXTERNAL_DIR}/eigen DOWNLOAD_DIR ${EXTERNAL_DIR}/eigen/download SOURCE_DIR ${EXTERNAL_DIR}/eigen/src BINARY_DIR ${EXTERNAL_DIR}/eigen/build INSTALL_DIR ${EXTERNAL_DIR}/eigen/install URL http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz URL_MD5 ccb18a771f678b38a3d33c321a8e7daf DOWNLOAD_COMMAND wget http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz tar xvzf 3.2.4.tar.gz -C SOURCE_DIR --strip-components=1 CONFIGURE_COMMAND cd BINARY_DIR cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR SOURCE_DIR ) -- - Mail original - De: David Cole dlrd...@aol.com À: Cedric Doucet cedric.dou...@inria.fr Cc: cmake@cmake.org Envoyé: Lundi 13 Avril 2015 12:40:34 Objet: Re: [CMake] Don't download external projects again after calling make clean Use the URL_MD5 and DOWNLOAD_DIR arguments to ExternalProject_Add to put the downloaded files into a location outside the build tree (perhaps ~/Downloads on Mac/Linux or $ENV{USERPROFILE}/Downloads on Windows). With DOWNLOAD_DIR outside the build tree, and the checksums of the downloaded files being the same as you've specified via URL_MD5, the download portion will be avoided once there is a local copy of a file available. HTH, David C. On Mon, Apr 13, 2015 at 5:04 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello! I use the ExternalProject_Add function to download third-party libraries of a code. Once a library has been downloaded, I can call make as many times as I want without downloading this library again. It seems that CMake detects that the library has already been downloaded. However, calling make clean seems to destroy this feature. Even if my library is not uninstalled during cleaning, calling make after make clean will lead CMake to try download the library again. How could I tell CMake not to download the library again? Thank you very much for your help! Cédric -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
[CMake] Don't download external projects again after calling make clean
Hello! I use the ExternalProject_Add function to download third-party libraries of a code. Once a library has been downloaded, I can call make as many times as I want without downloading this library again. It seems that CMake detects that the library has already been downloaded. However, calling make clean seems to destroy this feature. Even if my library is not uninstalled during cleaning, calling make after make clean will lead CMake to try download the library again. How could I tell CMake not to download the library again? Thank you very much for your help! Cédric -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] Don't download external projects again after calling make clean
Use the URL_MD5 and DOWNLOAD_DIR arguments to ExternalProject_Add to put the downloaded files into a location outside the build tree (perhaps ~/Downloads on Mac/Linux or $ENV{USERPROFILE}/Downloads on Windows). With DOWNLOAD_DIR outside the build tree, and the checksums of the downloaded files being the same as you've specified via URL_MD5, the download portion will be avoided once there is a local copy of a file available. HTH, David C. On Mon, Apr 13, 2015 at 5:04 AM, Cedric Doucet cedric.dou...@inria.fr wrote: Hello! I use the ExternalProject_Add function to download third-party libraries of a code. Once a library has been downloaded, I can call make as many times as I want without downloading this library again. It seems that CMake detects that the library has already been downloaded. However, calling make clean seems to destroy this feature. Even if my library is not uninstalled during cleaning, calling make after make clean will lead CMake to try download the library again. How could I tell CMake not to download the library again? Thank you very much for your help! Cédric -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake