[CMake] how to set ar/ranlib flags per target
Hickel, Kelly
Kelly_Hickel at bmc.com
Thu Jul 22 07:45:44 EDT 2010
Arjen, I saw your response about "wrapping add_library" on the list, but for some reason it didn't get to my inbox.
I'm not sure what you mean by "wrapping", are you talking about a code change, or some sort of macro? So far, I haven't been able to come up with any way of jamming -X64 into the right place in the ar command.
Thanks,
Kelly Hickel
> -----Original Message-----
> From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On
> Behalf Of Hickel, Kelly
> Sent: Wednesday, July 21, 2010 3:46 PM
> To: Verweij, Arjen; cmake at cmake.org
> Subject: Re: [CMake] how to set ar/ranlib flags per target
>
>
> > -----Original Message-----
> > From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On
> > Behalf Of Verweij, Arjen
> > Sent: Wednesday, July 21, 2010 3:43 PM
> > To: cmake at cmake.org
> > Subject: Re: [CMake] how to set ar/ranlib flags per target
> >
> > Kelly,
> >
> > I suffer from the same problem and solved it like this:
> >
> > SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> -X64 cr <TARGET> <LINK_FLAGS>
> > <OBJECTS>")
> > SET(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> -X64 r <TARGET> <LINK_FLAGS>
> > <OBJECTS>")
> > SET(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -X64 <TARGET>")
> > SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
> > SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
> > SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
> > SET(CMAKE_Fortran_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
> > SET(CMAKE_Fortran_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
> > SET(CMAKE_Fortran_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
> >
> > Does that help you?
> >
> > Regards,
> > Arjen
>
> Thanks Arjen, but I don't believe it does.
> As far as I know that sets the flag globally, I have some targets that
> are 32 bit and some that are 64 bit, so I need to set it per target.
>
> Reading the source, I found STATIC_LIBRARY_FLAGS, which *almost* works,
> but it puts the flags AFTER the name of the output library, and ar on
> AIX doesn't like that, complains it can't find the object file -X64.
> Apparently the flag must come before the "cr" or "r" commands, e.g. "ar
> -X64 cr foo.a bar.o baz.o".
>
> Thanks,
> -Kelly
>
> >
> > >-----Original Message-----
> > >From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On
> > Behalf
> > >Of Hickel, Kelly
> > >Sent: woensdag 21 juli 2010 21:00
> > >To: cmake at cmake.org
> > >Subject: [CMake] how to set ar/ranlib flags per target
> > >
> > >
> > >Hello,
> > >
> > >I'm using CMake 2.8.1, and have a problem on AIX similar to this
> one:
> > >http://web.archiveorange.com/archive/v/5y7PkUbT6iizO31eshQa .
> > >
> > >I have the additional complication of needing to build both 32 and
> 64
> > >bit libraries from the same set of CMake files.
> > >
> > >I've tried a number of things (list below), does anyone have any
> > ideas?
> > >
> > >(Wherever I write CMAKE_C_xyz below, I've also changed CMAKE_CXX_xyz
> > >at the same time, where I write xyz_ARCHIVE_CREATE, I've also
> changed
> > >xyz_ARCHIVE_APPEND)
> > >
> > >1) Adding the flag to LINK_FLAGS because the definition for
> > > CMAKE_C_ARCHIVE_CREATE appears to include that on the command
> line,
> > > but the generated link.txt input files don't include any options.
> > >2) Changed the definition for CMAKE_C_ARCHIVE_CREATE in a private
> > > toolchain file that I specify on the command line. By writing
> > > messages that show the value of that variable, I can see my
> change
> > > take, but it appears to get reset to the default before
> processing
> > of
> > > my CMakeLists.txt file begins.
> > >3) Frequently set CMAKE_C_ARCHIVE_CREATE to "<CMAKE_AR> <AR_FLAGS> r
> > > <TARGET> <LINK_FLAGS> <OBJECTS>", when I did this, I ended up
> with
> > >the
> > > literal string "AR_FLAGS" in the link.txt file, not that useful!
> > >
> > >I'm sure I'm missing something, any hints will be appreciated!
> > >
> > >Thanks,
> > >Kelly
> > >
> > >_______________________________________________
> > >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
> > _______________________________________________
> > 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
>
> _______________________________________________
> 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