On Wed, Aug 13, 2014 at 7:12 AM, marco restelli <mreste...@gmail.com> wrote:
> 2014-08-13 15:53 GMT+0200, Mark Abraham <mark.j.abra...@gmail.com>: > > On Wed, Aug 13, 2014 at 3:18 AM, marco restelli <mreste...@gmail.com> > > wrote: > > > >> Hi Petr, > >> thanks, very informative! > >> > >> 2014-08-13 9:20 GMT+0200, Petr Kmoch <petr.km...@gmail.com>: > >> > Hi Marco. > >> > > >> > Sane compilers allow later command-line options to override earlier > >> > ones, > >> > so what you're doing should be fine. Unfortunately, I know some > Fortran > >> > compilers are not sane in this regard. > >> > >> Here, I would really like to reduce as much as possible the flags > >> regardless of the chosen compiler, so "undoing" the chosen flags > >> seems to me cumbersome and compiler dependent, compared to resetting > >> them altogether. I like the idea of OBJECT libraries better (it also > >> solves other problems I have, I did not know about it!). > >> > >> > If you really need to solve this by explicitly modifying the global > >> > list > >> > for a particular file, the only thing I can think of is move those > >> > files > >> to > >> > a separate CMakeList and turn them into an object library: > >> > >> This almost works, I have a problem specifying liking dependencies for > >> the OBJECT libraries. With a normal library, I can use > >> > >> TARGET_LINK_LIBRARIES( my_library ${other_libs_my_library_depends_on} ) > >> > >> but if my_library is OBJECT I see the error > >> > >> Object library target "my_library" may not link to anything. > >> > > > > See http://www.cmake.org/cmake/help/v3.0/command/add_library.html for > the > > correct way to do things with object libraries - for this purpose, they > are > > closer to source files than libraries, which makes sense given that > there's > > not actually a library written to disk anywhere. > > Mark, thanks, but here I don't find anything that answers my question, > namely specifying that my OBJECT library (i.e. the files included in > it) require other libraries for linking. The object library is never linked, so the issue of linking with it or to it does not arise. The targets that use the object library have transitive linking dependencies, just like you had if the source files in the object library had been directly specified as part of those targets. Mark > Marco >
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake