On 11. Dec, 2008, at 16:25, Michael Wild wrote:
Hi all
Does anyone of you know how to reliably obtain the list of object
files belonging to a target? And in the same line, how would I
obtain the object file which corresponds to a certain source file
(provided that it is only used for a single target)?
Using the approach shown in the CMake-Book (4th ed., p. 52) which
simply replaces .cxx by .obj (obviously on Windows) does not work
reliably, especially if the sources are not in
CMAKE_CURRENT_SOURCE_DIR. On Windows (this is the case I'm
interested in, regrettably), particularly with MSVC, additional
problems arise if the same target has multiple files with the same
file name in different directories. Because, by default, all object
files seem to be built in ${CMAKE_CURRENT_BINARY_DIR}/$
{CMAKE_CFG_INTDIR}, EXCEPT if there are name clashes. In this case
one of the objects gets built in ${CMAKE_CURRENT_BINARY_DIR}/$
{CMAKE_CFG_INTDIR}, the others in subdirectories, in order to
prevent the name clash.
So, you see, obtaining the object file name is anything but trivial.
I scourged the documentation and Google, but couldn't find anything
useful...
Thanks for your help in advance
Michael
In case you wonder why I need the object files:
I'm working on porting a rather huge code to Windows which
a) consists of about 70 shared libraries
b) has cyclic dependencies between the libraries (yes, i agree...).
Under Unix-like platforms this is no problem, but under Windows I need
to create an import libraries in order to break the cycle.
c) is making heavy use of C++-templates (and typedefs thereof), so
identifying the places where I would need to insert these ugly and
stupid XXX_EXPORTS macros is just pure torture.
So, I hope someone here is coming up with a really good solution to
the problem...
Michael
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake