[CMake] external project CONFIGURE_COMMAND adds quotation to arguments

Edoardo Pasca edo.paskino at gmail.com
Wed Sep 4 07:02:06 EDT 2019


Brilliant!

your suggestion has worked!

Thank you so much

Edo

On Wed, Sep 4, 2019 at 11:23 AM Eric Doenges <doenges at mvtec.com> wrote:

> On 04.09.2019 11:55, Edoardo Pasca wrote:
>
> Dear all,
>
> I'm using ExternalProjectAdd to build an external package.
>
> On the CONFIGURE_COMMAND I have to pass some variables to the configure
> script in this form:
>
> configure CPPFLAGS="-I/dir/include -L/dir/lib"
>
> To do this I use
>
> CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env ${CMAKE_BINARY_DIR}/configure
> CPPFLAGS="-I/dir/include -L/dir/lib"
>
> However, when cmake issues that command (you can see that with make
> VERBOSE=1) it wraps the CPPFLAGS parameters with quotation marks (as below)
> and the configure script fails
>
> configure "CPPFLAGS=\"-I/dir/include -L/dir/lib\""
>
> Below you can find a minimal CMakeLists.txt to test this.
>
> I'd appreciate any help on how I'd remove those quotation marks.
>
> Thanks
>
> Edo
>
>
> What I do is let CMake handle this itself by defining a (list) variable
> for the configure command:
>
> set(cmd "${CMAKE_BINARY_DIR}/configure")
> list(APPEND cmd "CPPFLAGS=-I/dir/include -L/dir/lib")
> ExternalProject_Add(...
>   CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env ${cmd}
>   ...)
>
> Since cmd is a list, CMake knows that the -L/dir/lib belongs to the
> CPPFLAGS=-I/dir/include part, and puts double quotes around the entire
> thing, e.g. the actual command line will look something like this:
>
> <xxx>/configure "CPPFLAG=-Idir/include -L/dir/lib"
> This works with GNU autoconf. I've found that in general, dealing with
> quoting in ExternalProject_Add is a gigantic pain, so if the method above
> is not sufficient, I use configure_file or file(WRITE) to generate a shell
> script (Linux) or batch file (Windows) with the correct parameters and call
> that instead.
>
> With kind regards,
> Eric Dönges
>
> *Dr. Eric Dönges *
> Senior Software Engineer
>
> MVTec Software GmbH | Arnulfstr. 205 | 80634 Munich | Germany
> doenges at mvtec.com | Tel: +49 89 457 695-0 | www.mvtec.com
>
>  Sign up <http://www.mvtec.com/newsletter> for our MVTec Newsletter!
>
> Geschäftsführer: Dr. Wolfgang Eckstein, Dr. Olaf Munkelt
> Amtsgericht München HRB 114695
>
>
> [image: MVTec Software GmbH Logo]
> --
>
> 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
>


-- 
Edo
I know you think you understand what you thought I said, but I'm not sure
you realize that what you heard is not what I meant (prob. Alan Greenspan)
:wq
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190904/43a151d6/attachment-0001.html>


More information about the CMake mailing list