On 3/19/2012 2:25 PM, Eric Noulard wrote:
2012/3/19 Brad King<[email protected]>:
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.

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.

-Brad
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to