[CMake] Boost external project doesn't build with VS2010 generator

Ben Medina ben.medina at gmail.com
Wed Oct 26 14:07:06 EDT 2011


I tend to use the online documentation:
http://www.cmake.org/cmake/help/cmake-2-8-docs.html#module:ExternalProject

But I agree that an example would also be useful. Perhaps the wiki
could have examples of how to use external project with common 3rd
party libs (e.g. boost, Qt).

On Wed, Oct 26, 2011 at 9:00 AM, David Cole <david.cole at kitware.com> wrote:
> On Wed, Oct 26, 2011 at 11:56 AM, Ben Medina <ben.medina at gmail.com> wrote:
>> David,
>>
>> Yes, adding "call" to the front of the command works. Thanks! Would be
>> great to get that fixed for 2.8.7, as I spent a good portion of
>> yesterday racking my brain about this.
>>
>> I also discovered that, if using a variable to build the
>> CONFIGURE_COMMAND, that variable should be a list, rather than a
>> space-separated string. Would be nice to document that, too.
>
> How / where should that be documented? Where would you have looked for
> that information?
>
> That's how all the *_COMMAND args for ExternalProject are...
>
> I think it would be better expressed through example/sample code that
> uses variables, but I'm not sure where the best place to put the
> documentation is.
>
>
> David
>
>
>>
>> Thanks,
>> Ben
>>
>> On Tue, Oct 25, 2011 at 6:51 PM, David Cole <david.cole at kitware.com> wrote:
>>> Try changing the configure command to "call bootstrap.bat" instead.
>>> I suspect this is related to the symptoms reported in these bugs:
>>>   http://public.kitware.com/Bug/view.php?id=12445
>>>   http://public.kitware.com/Bug/view.php?id=12461
>>>
>>> Related to using "bat" or "cmd" files as custom commands. We need to get
>>> those fixed for 2.8.7 in the VS 2010 generator.
>>> Let me know if adding "call " to the front of the command works in this
>>> case.
>>>
>>> Thanks,
>>> David
>>>
>>> On Tue, Oct 25, 2011 at 5:30 PM, Ben Medina <ben.medina at gmail.com> wrote:
>>>>
>>>> Hello all,
>>>>
>>>> I'm trying to build Boost as an external project, but it won't build
>>>> if I use the VS2010 generator. I've whittled the code down to the
>>>> following CMakeLists.txt:
>>>>
>>>> cmake_minimum_required(VERSION 2.8)
>>>> project (boost-external)
>>>>
>>>> set (Boost_Source "E:/boost_1_47_0")
>>>>
>>>> include(ExternalProject)
>>>> ExternalProject_Add(
>>>>    Boost
>>>>    SOURCE_DIR "${Boost_Source}"
>>>>    UPDATE_COMMAND ""
>>>>    BUILD_IN_SOURCE 1
>>>>    CONFIGURE_COMMAND bootstrap.bat
>>>>    BUILD_COMMAND b2 install
>>>>    INSTALL_COMMAND ""
>>>>    )
>>>>
>>>> When I build the project, the configure step happens, but the build
>>>> step is skipped:
>>>>
>>>> Microsoft (R) Visual Studio Version 10.0.40219.1.
>>>> Copyright (C) Microsoft Corp. All rights reserved.
>>>> 2>------ Build started: Project: Boost, Configuration: Debug x64 ------
>>>> 2>  Performing configure step for 'Boost'
>>>> 2>  Building Boost.Build engine
>>>> 2>
>>>> 2>  Bootstrapping is done. To build, run:
>>>> 2>
>>>> 2>      .\b2
>>>> 2>
>>>> 2>  To adjust configuration, edit 'project-config.jam'.
>>>> 2>  Further information:
>>>> 2>
>>>> 2>      - Command line help:
>>>> 2>      .\b2 --help
>>>> 2>
>>>> 2>      - Getting started guide:
>>>> 2>      http://boost.org/more/getting_started/windows.html
>>>> 2>
>>>> 2>      - Boost.Build documentation:
>>>> 2>      http://www.boost.org/boost-build2/doc/html/index.html
>>>> 3>------ Build started: Project: ALL_BUILD, Configuration: Debug x64
>>>> ------
>>>> 3>  Build all projects
>>>> ========== Build: 3 succeeded, 0 failed, 0 up-to-date, 0 skipped
>>>> ==========
>>>>
>>>> When I use the VS2008 generator, the project builds as expected:
>>>>
>>>> Microsoft (R) Visual Studio Version 9.0.30729.1.
>>>> Copyright (C) Microsoft Corp. All rights reserved.
>>>> 1>------ Build started: Project: Boost, Configuration: Debug x64 ------
>>>> 1>Creating directories for 'Boost'
>>>> 1>No download step for 'Boost'
>>>> 1>No patch step for 'Boost'
>>>> 1>No update step for 'Boost'
>>>> 1>Performing configure step for 'Boost'
>>>> 1>Building Boost.Build engine
>>>> ...
>>>> 1>Generating Code...
>>>> 1>Bootstrapping is done. To build, run:
>>>> 1>    .\b2
>>>> 1>
>>>> 1>To adjust configuration, edit 'project-config.jam'.
>>>> 1>Further information:
>>>> 1>    - Command line help:
>>>> 1>    .\b2 --help
>>>> 1>
>>>> 1>    - Getting started guide:
>>>> 1>    http://boost.org/more/getting_started/windows.html
>>>> 1>
>>>> 1>    - Boost.Build documentation:
>>>> 1>    http://www.boost.org/boost-build2/doc/html/index.html
>>>> 1>Performing build step for 'Boost'
>>>> 1>has_icu_test.cpp
>>>> 1>Performing configuration checks
>>>> ...
>>>>
>>>> And it goes on to build from there.
>>>>
>>>>
>>>> I'm using CMake 2.8.6. Is there some way I can work around this, or
>>>> should I file a bug?
>>>>
>>>> Thanks,
>>>> Ben
>>>> --
>>>>
>>>> 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
>>>
>>>
>>
>


More information about the CMake mailing list