[CMake] External_Project_Add() and custom build configurations ?

David Cole david.cole at kitware.com
Fri Jul 1 13:01:42 EDT 2011


On Fri, Jul 1, 2011 at 7:23 AM, Glenn Coombs <glenn.coombs at gmail.com> wrote:

> I have just started using some externally supplied cmake projects in my
> cmake project.  To do this I added these lines to my top level
> CMakeLists.txt file:
>
> include(ExternalProject)
>
> ExternalProject_Add(external_proj
>     PREFIX                ${CMAKE_BINARY_DIR}/external_proj
>     SOURCE_DIR            ${CMAKE_SOURCE_DIR}/external/proj/dir
>     CMAKE_ARGS            -DCMAKE_BUILD_TYPE:STRING=Release
>                           -DMETAGS_DIR=${CMAKE_BINARY_DIR}/meta_install
>     INSTALL_COMMAND        ""
> )
>
> And that worked very well.  Inside Visual Studio when I build my project it
> automatically runs the cmake configure step for the external projects and
> builds them as well.  The problem I have just discovered is when using a
> build configuration other than the default ones.  I can build Debug and
> Release configurations fine.  My project also has a DebugOptimised
> configuration but the external projects don't.  When I try to build my
> project it fails to build the external projects.  I used build_command() to
> see what commands would be used to build each configuration and I can see
> the cause of the problem:
>
> Debug:          VCExpress.exe myProj.sln /build Debug          /project
> external_proj
> DebugOptimised: VCExpress.exe myProj.sln /build DebugOptimised /project
> external_proj
>
> Is there a way to tell cmake how to map my build configurations onto those
> that an external project has ?  In this case I would like to build the
> external project as Debug when I am building my project as DebugOptimised.
>
> --
> Glenn
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>

With Visual Studio builds, external projects get built (by default) with the
same configuration as the outer project. If you want a different
configuration built, then you will have to customize the BUILD_COMMAND. You
can look in the source for ExternalProject.cmake to see how the default
BUILD_COMMAND is constructed and go from there.

HTH,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110701/a382ea10/attachment.htm>


More information about the CMake mailing list