[cmake-developers] New OBJECT library feature
Eric Noulard
eric.noulard at gmail.com
Mon Mar 19 14:56:15 EDT 2012
2012/3/19 Brad King <brad.king at kitware.com>:
> On 3/19/2012 2:25 PM, Eric Noulard wrote:
>>
>> 2012/3/19 Brad King<brad.king at kitware.com>:
>>
>>> Can you enumerate use cases when the order of objects matters? Unlike
>>> static libraries *all* objects will be included. If there are duplicate
>>> symbols it is an error. If there are not duplicate symbols then how
>>> does order matter?
>>
>>
>> The custom command likn step looks like:
>> COMMAND ${CMAKE_LINKER} --oformat binary -Ttext ${BM_IMAGE_ADDRESS}
>> -melf_i386 -e _start -o ${BM_APPNAME}.bin ${BM_STARTUPOBJ}
>> --start-group $<TARGET_LINKER_FILE:system> $<TARGET_LINKER_FILE:xc>
>> $<TARGET_LINKER_FILE:${BM_APPNAME}> --end-group ${BM_LDSCRIPT}
>>
>> ${BM_STARTUPOBJ} is the specific object file compiled on its own using
>> custom command.
>
>
> I can imagine some cross compiling toolchains may want the object with
> the entry point to come first.
You may be right,
I did ask the question to the initial author, I'd like to understand why.
>> Now that I think about it, before that I was forced to create a custom
>> command in order
>> to compile the file ('with the same option as the one compiled by
>> add_library)
>> but now I will be able to build an "OBJECT library" containing a single
>> file
>> and refer to it using $<TARGET_OBJECTS:objlib> which is perfectly fine
>> for
>> ensuring the ordering I may need for the link step.
>
> Note that $<TARGET_OBJECTS:...> is not a full generator expression that
> can be used from add_custom_command. That is also reserved for the
> future (which is why I chose that syntax). Currently it is just a
> special source file syntax recognized by add_library and add_executable.
Ok, then I may not be able to test it in this particular context.
--
Erk
Le gouvernement représentatif n'est pas la démocratie --
http://www.le-message.org
More information about the cmake-developers
mailing list