[CMake] Solution folder property does not work for external projects in cmake 2.8.3

David Cole david.cole at kitware.com
Wed Nov 10 09:22:42 EST 2010


Filed and fixed this bug : http://public.kitware.com/Bug/view.php?id=11436

Should be fixed by this commit, just merged to 'next' :
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b3cf739e2c784fbd6c8a93c1ac91bd4bcea5acbf

Please confirm, if you can build from CMake 'next'...

Thanks!


By the way: the location of the line:
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

...should not matter... As you can see from the diff of the commit, in
the test, I added that as the last line. The value of the property is
used at "Generate" time to decide whether to include the folder
information in the generated solution/project files or not. So as long
as its value is set *somewhere* in the CMakeLists.txt file, it should
work. I suspect you were thinking it wasn't working because of the bug
itself, and then moved it to the top at the same time you added an
empty custom target to see if it was an include_external_msproject
bug...


Thanks for the report,
David


On Thu, Nov 4, 2010 at 6:10 AM, David Cole <david.cole at kitware.com> wrote:
> On Thu, Nov 4, 2010 at 5:36 AM, Jens Auer <jensa at miltenyibiotec.de> wrote:
>> Hi,
>>
>> I just downloaded the new cmake 2.8.3 release and found a bug. We
>> include several external VC++ projects in our solution and group them
>> into folders using the old SOLUTION_FOLDER patch. When I checked the new
>> property FOLDER in cmake 2.8.3, it turns out that it works for all
>> projects except those included by include_external_msproject. When you
>> modify the following example to point to an existing .vcproj-file and
>> open the generated solution in visual studio 2005, only the custom
>> target will be found in folder1/folder2:
>>
>> set_property(GLOBAL PROPERTY USE_FOLDERS On)
>> cmake_minimum_required(VERSION 2.8.3)
>> project(project)
>> include_external_msproject(externalProject
>> <PATH_TO_SOME_EXTERNAL_VCPROJ_FILE>)
>> set_target_properties(externalProject PROPERTIES FOLDER folder1/folder2)
>> add_custom_target(infolder)
>> set_target_properties(infolder PROPERTIES FOLDER folder1/folder2)
>>
>> I also had to put the set_property in the first line of the file to
>> activate solution folders support, setting it after the
>> cmake_minimum_required did not turn the support on. I don't know if this
>> is intended or not.
>>
>> Best regards,
>>  Jens
>> _______________________________________________
>> 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
>>
>
> Thanks for the report. Too bad you didn't find this issue with the rc1
> release 6 weeks ago. I'll work on getting a fix into CMake 'next' for
> this.
>
> We have a test that uses the new FOLDER property and one that uses
> include_external_msproject ....... but not for the combination, and
> not for whether things are actually grouped correctly. I'd like to add
> a test like that as part of the fix.
>
> Presently, if the generated FOLDER structure is incorrect, our
> automated testing will not currently catch an error of that sort. Does
> anybody have a good idea for how to verify the correctness of the
> generated solution file? Right now it requires manual inspection of
> the VS GUI to determine whether the result is correct or not.
>
> Thanks again,
> David Cole
>


More information about the CMake mailing list