[CMake] Link step more than once

fungos fungos at gmail.com
Thu Sep 11 16:16:27 EDT 2014


Cool, this did the trick. It was needed a post-build step to rename the
target but it works.
Thank you

On Thu, Sep 11, 2014 at 2:19 PM, Chuck Atkins <chuck.atkins at kitware.com>
wrote:

> Sounds like what you want is an object library,
> http://www.cmake.org/Wiki/CMake/Tutorials/Object_Library:
>
> set(FOO_SOURCES
>   Foo1.cxx
>   Bar2.cxx
>   FooBar3.cxx
> )
> add_library(FooObjLib OBJECT ${FOO_SOURCES})
>
> add_executable(A $<TARGET_OBJECTS:FooObjLib>)
> set_target_properties(A PROPERTIES LINK_FLAGS "/Special /Flags /For /A")
>
> add_executable(B $<TARGET_OBJECTS:FooObjLib>)
> set_target_properties(B PROPERTIES LINK_FLAGS "/Special /Flags /For /B")
>
>
> - Chuck
>
> On Thu, Sep 11, 2014 at 2:09 PM, fungos <fungos at gmail.com> wrote:
>
>> Ok, but will this _recompile_ the sources for each target? We must use
>> the same generated object files for the two outputs, the only difference
>> must be the linker flags.
>>
>> On Thu, Sep 11, 2014 at 1:20 PM, Robert Maynard <
>> robert.maynard at kitware.com> wrote:
>>
>>> Generally the easiest way is to have two targets that share the same
>>> source files but have different linker flags.
>>>
>>> On Thu, Sep 11, 2014 at 12:53 PM, fungos <fungos at gmail.com> wrote:
>>> > Yes, we can say that.. in reality I need two outputs for a single
>>> target,
>>> > but these outputs are generated almost exactly with just 2 different
>>> linker
>>> > flags removed.
>>> >
>>> >
>>> > On Thu, Sep 11, 2014 at 11:31 AM, Robert Maynard
>>> > <robert.maynard at kitware.com> wrote:
>>> >>
>>> >> Are you trying to generate two different libraries from the same
>>> target?
>>> >>
>>> >> On Thu, Sep 11, 2014 at 10:45 AM, fungos <fungos at gmail.com> wrote:
>>> >> > Hi,
>>> >> >
>>> >> > How can I create two linker steps with different flags for the same
>>> >> > target
>>> >> > at the same build?
>>> >> >
>>> >> > Example:
>>> >> >
>>> >> >   target: X
>>> >> >     link: linker.exe libs_for_a linker_flags_for_a -o A/X.bin
>>> >> >     link: linker.exe libs_for_b linker_flags_for_b -o B/X.bin
>>> >> >
>>> >> > Thanks
>>> >> >
>>> >> >
>>> >> > --
>>> >> >
>>> >> > 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:
>>> >> > http://public.kitware.com/mailman/listinfo/cmake
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Animal Liberation Front
>>> > http://www.animal-liberation.com/
>>>
>>
>>
>>
>> --
>> Animal Liberation Front
>> http://www.animal-liberation.com/
>>
>> --
>>
>> 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:
>> http://public.kitware.com/mailman/listinfo/cmake
>>
>
>


-- 
Animal Liberation Front
http://www.animal-liberation.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20140911/63e7d730/attachment.html>


More information about the CMake mailing list