[CMake] exclude build project from solution

Johan Björk phb at spotify.com
Mon Aug 1 12:57:36 EDT 2011


And another update while at it.

The following cmake file illustrates the issue:

FILE(WRITE foo.c "")
add_library(foo EXCLUDE_FROM_ALL foo.c)
set_target_properties(foo PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
FILE(WRITE foobar.c "")
add_executable(foobar foobar.c)
target_link_libraries(foobar foo)

This works fine in the makefile (and xcode) generator, but fails in MSVC
2008 with
1>------ Skipped Build: Project: foo, Configuration: Debug Win32 ------
1>Project not selected to build for this solution configuration
2>------ Build started: Project: foobar, Configuration: Debug Win32 ------
2>Compiling...
2>foobar.c
2>Compiling manifest to resources...
2>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
2>Copyright (C) Microsoft Corporation.  All rights reserved.
2>Linking...
2>LINK : fatal error LNK1104: cannot open file 'Debug\foo.lib'
2>Build log was saved at "file://c:\Users\Felix Bruns\Documents\Visual
Studio 2008\Projects\a'\foobar.dir\Debug\BuildLog.htm"
2>foobar - 1 error(s), 0 warning(s)
3>------ Skipped Build: Project: ALL_BUILD, Configuration: Debug Win32
------
3>Project not selected to build for this solution configuration
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 2 skipped ==========

I'll file a bug.




On Mon, Aug 1, 2011 at 5:15 PM, Johan Björk <phb at spotify.com> wrote:

> and I just found
>
> The EXCLUDE_FROM_DEFAULT_BUILD property is used by the visual studio
> generators. If it is set to 1 the target will not be part of the default
> build when you select "Build Solution".
>
> Anyone know why it is different from EXLUDE_FROM_ALL ?
>
> -Johan
>
>
> On Mon, Aug 1, 2011 at 5:05 PM, Johan Björk <phb at spotify.com> wrote:
>
>> Hi all,
>>
>> Anyone know anything about this? I'm seeing the same issue with MSVC 2008
>> + cmake 2.8(.?)
>>
>> add_library(foo .. EXCLUDE_FROM_ALL ..)
>>
>> -Johan
>>
>>
>> On Tue, May 3, 2011 at 4:59 PM, Andrea Galeazzi <Galeazzi at korg.it> wrote:
>>
>>> I've a project made up of multiple executable target:
>>> add_executable(TARGET_NAME1 ${SOURCES1})
>>> add_executable(TARGET_NAME2 ${SOURCES2})
>>> add_executable(TARGET_NAME3 ${SOURCES3})
>>>
>>> ...........
>>> Now I'd like to build just only TARGET_NAME1 when I press F7 (build
>>> solution) in visual studio. I tried to add
>>> set_target_properties(TARGET_**NAME2 PROPERTIES EXCLUDE_FROM_ALL "TRUE")
>>> set_target_properties(TARGET_**NAME3 PROPERTIES EXCLUDE_FROM_ALL "TRUE")
>>> ......
>>> but it only remove the dependency from ALL_BUILD project.
>>> So, is it possible to generate a such kind of solution?
>>> ______________________________**_________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at http://www.kitware.com/**
>>> opensource/opensource.html<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<http://www.cmake.org/Wiki/CMake_FAQ>
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.cmake.org/mailman/**listinfo/cmake<http://www.cmake.org/mailman/listinfo/cmake>
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110801/63c6cc88/attachment.htm>


More information about the CMake mailing list