[CMake] ExternalProject_Add() setting build command to run external project's makefile
Michael Ellery
mellery451 at gmail.com
Fri May 31 13:52:19 EDT 2019
It seems like the error might be related to the download/extract step. I think the fact that you are using the same dir for PREFIX, SOURCE_DIR and DOWNLOAD_DIR might be confusing things. I would try commenting out those three properties and see if it makes any difference, and then you can fine-tune those properties as needed once you get it working (maybe but just setting PREFIX).
-Mike
> On May 31, 2019, at 7:41 AM, David Starkweather <starkd88 at gmail.com> wrote:
>
> Hello
> First off, much thanks to all the contributors of cmake. A truly invaluable build utility. Your efforts
> are greatly appreciated.
>
> I've been successfully using cmake to build an external project (the client library for redis, hiredis)
> that has already been downloaded. I was able to do this with BUILD_IN_SOURCE set to true, like so:
>
> ExternalProject_Add(hiredis
> PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/hiredis
> SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/hiredis
> BUILD_IN_SOURCE 1
> CONFIGURE_COMMAND echo configure
> BUILD_COMMAND make static
> INSTALL_COMMAND echo install)
>
>
> However, now i'd like to automatically download the source from github. So, I switch to
> the following:
>
> set(HIREDIS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/hiredis)
> set(HIREDIS_INCLUDE_DIRS ${HIREDIS_DIR}/include)
> ExternalProject_Add(hiredis
> URL https://github.com/redis/hiredis/archive/v0.9.0.tar.gz
> PREFIX ${CMAKE_CURRENT_BINARY_DIR}/hiredis
> SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/hiredis
> DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/hiredis
> BUILD_IN_SOURCE 1
> CONFIGURE_COMMAND ""
> BUILD_COMMAND make static
> INSTALL_COMMAND "")
>
> And I get the following error:
>
> [ 3%] Creating directories for 'hiredis'
> [ 6%] Performing download step (download, verify and extract) for 'hiredis'
> -- Downloading...
> dst='/home/david/projects/clipseekr/hiredis/v0.9.0.tar.gz'
> timeout='none'
> -- Using src='https://github.com/redis/hiredis/archive/v0.9.0.tar.gz'
> -- Downloading... done
> -- extracting...
> src='/home/david/projects/clipseekr/hiredis/v0.9.0.tar.gz'
> dst='/home/david/projects/clipseekr/hiredis'
> -- extracting... [tar xfz]
> -- extracting... [analysis]
> -- extracting... [rename]
> -- extracting... [clean up]
> -- extracting... done
> make[2]: *** [CMakeFiles/hiredis.dir/build.make:93: hiredis/src/hiredis-stamp/hiredis-download] Error 1
> make[1]: *** [CMakeFiles/Makefile2:147: CMakeFiles/hiredis.dir/all] Error 2
> make: *** [Makefile:163: all] Error 2
>
> It seems cmake is trying to invoke its internal cmake make files, rather than just run the "make static"
> build command. How do I just run the the "make static" command directly?
>
> Once again, thanks.
> starkdg
>
>
> --
>
> 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:
> https://cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list