[CMake] Including an external object file (.o) into static shared library using MS Visual Studio generator
Chatterjee, Shash
schatterjee at camber.com
Thu Feb 17 14:18:54 EST 2011
Hi David,
I truly appreciate your willingness to help, and your prompt response. Thanks a bunch!
I just installed 2.8.4 and tried again. As far as I can tell, the behavior did not change (I deleted the CMake-2.8.3 generated build directory, as well as uninstalling CMake-2.8.3). I still see the <ClInstall> element for the .o file, and it does not get included in the library.
Thanks,
Shash
-----Original Message-----
From: David Cole [mailto:david.cole at kitware.com]
Sent: Thursday, February 17, 2011 12:23 PM
To: Chatterjee, Shash
Cc: cmake at cmake.org
Subject: Re: [CMake] Including an external object file (.o) into static shared library using MS Visual Studio generator
This was a known bug, and has been fixed in CMake 2.8.4.
See here for details if you want:
http://public.kitware.com/Bug/view.php?id=11459
Upgrade to CMake 2.8.4 and try again. Should work....
Cheers,
David
On Thu, Feb 17, 2011 at 12:59 PM, Chatterjee, Shash
<schatterjee at camber.com> wrote:
> Hi!
>
>
>
> I need to include a 3rd-party API, which comes without source, as an object
> (.o) file into a static library using CMake 2.8.3. I know it is possible to
> add the .o when executables are linked, but that is not the preferred
> method.
>
>
>
> I have simply defined the .o file in the ADD_LIBRARY command. This works
> under linux, and nmake (MS Visual Studio 10 /2010). If I look in the
> cmake-generated build.make, CMake correctly recognizes the .o as an external
> dependency and defines a <libname>_EXTERNAL_OBJECTS variable in there, and
> it is listed at the tail end of objects1.rsp. So far, so good!
>
>
>
> When using the "Visual Studio 10" generator, CMake adds the object file as a
> <ClInclude Include="....."/> XML element under a <ItemGroup> element that also
> lists all the source files as <ClCompile> elements for the static library
> project. Of course the .o is not include in the lib when the project is
> built. I can manually go into the project properties, and add it as an
> "Additional Dependencies" dependency for the Librarian, and that works. Is
> there a way to get CMake to do this automatically?
>
>
>
> Thanks,
>
> Shash
>
> _______________________________________________
> 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://www.cmake.org/mailman/listinfo/cmake
>
More information about the CMake
mailing list