[CMake] Link step more than once

Robert Maynard robert.maynard at kitware.com
Thu Sep 11 16:52:13 EDT 2014


Set the OUTPUT_NAME or OUTPUT_NAME_<CONFIG> property on the target to
change what the name of the generated library will be. This will
eliminate the need for a post-build step.

On Thu, Sep 11, 2014 at 4:16 PM, fungos <fungos at gmail.com> wrote:
> 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/


More information about the CMake mailing list