[CMake] Cross compile + shared libs problem

Alexander Neundorf a.neundorf-work at gmx.net
Tue Mar 25 12:55:00 EDT 2008


On Tuesday 25 March 2008, Frederik Deweerdt wrote:
> On Tue, Mar 25, 2008 at 01:19:52AM +0100, Alexander Neundorf wrote:
> > On Tuesday 25 March 2008, Frederik Deweerdt wrote:
> > > Hi,
> > >
> > > I'm trying to cross-compile static libraries for RTEMS. Our project's
> > > also targets Linux, where we use shared libraries. We declare the
> > > libraries with: add_library(libname srcs...). So STATIC or SHARED is
> > > omitted.
> > > On RTEMS there are no static libraries, so I was expecting that by
> > > setting BUILD_SHARED_LIBS to OFF in the toolchain file, I would get
> > > static libraries.
> >
> > Does this value end up in the cache ?
> > Is it still OFF in the cmake files of your application ?
>
> Hm yes, sorry I missed a trivial set in one of our CMakeLists.txt.

So it works now ?

> > In Modules/Platform/ you can find an eCos.cmake. eCos is in general quite
> > similar to RTEMS (also RTOS, also one address space, also no shared libs,
> > etc.). It contains:
> > # eCos doesn't support shared libs
> > SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
> >
> > SET(CMAKE_CXX_LINK_SHARED_LIBRARY )
> > SET(CMAKE_CXX_LINK_MODULE_LIBRARY )
> > SET(CMAKE_C_LINK_SHARED_LIBRARY )
> > SET(CMAKE_C_LINK_MODULE_LIBRARY )
> >
> > You should also create a RTEMS.cmake (if you haven't done so yet) and use
> > these settings there. If you have problems with this let me know.
> > I'd really be happy to add that to cmake cvs.
>
> I first did that, but as I need it done for tomorrow, I ended up
> throwing the four lines (a ripoff of eCos.cmake basically), in the
> Toolchain file.
> I'll be able to send you a cleaned-up patch later this week.

Yes, please do so :-)

Alex


More information about the CMake mailing list