[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] OBJECT Library Type
From:       Robert Maynard <robert.maynard () kitware ! com>
Date:       2018-02-16 19:33:12
Message-ID: CAFzjYVruCYNOf3KYCgHk0-eJ7hU1fCqQK3pX0yXOmjPZ++ss+Q () mail ! gmail ! com
[Download RAW message or body]

As the error message states an OBJECT library can't consume other
OBJECT libraries. When creating the actual library you will have to
explicitly state what $<TARGET_OBJECTS:?> you need.

If you are just looking at a way to simplify the logic for the
consuming library you should look at doing the following:

1. Use a global property to store what OBJECT targets should be consumed

2. Wait for https://gitlab.kitware.com/cmake/cmake/merge_requests/1524
to be finished.

On Fri, Feb 16, 2018 at 12:29 PM, Simone Atzeni <satzeni@nvidia.com> wrote:
> Hi,
> 
> 
> 
> I am trying to merge together two "OBJECT" libraries.
> 
> I am following the tutorial at:
> https://cmake.org/Wiki/CMake/Tutorials/Object_Library
> 
> 
> 
> However, in my case I have more level of folder nesting, and at the parent
> level I would like to merge two "OBJECT" libraries and only at the top I
> want to create the actual library.
> 
> 
> 
> I tried with:
> 
> 
> 
> add_library(common OBJECT "$<TARGET_OBJECTS:A> $<TARGET_OBJECTS:B>
> $<TARGET_OBJECTS:C>")
> 
> 
> 
> But I get the following error:
> 
> 
> 
> -----------------------------------------------------------------------------------------------------
>  
> CMake Error at lib/common/CMakeLists.txt:31 (add_library):
> 
> OBJECT library "common" contains:
> 
> 
> 
> file1.cpp.o
> 
> file2.cpp.o
> 
> file3.cpp.o
> 
> …
> 
> 
> 
> but may contain only sources that compile, header files, and other files
> 
> that would not affect linking of a normal library.
> 
> 
> 
> CMake Error at lib/common/CMakeLists.txt:31 (add_library):
> 
> Only executables and non-OBJECT libraries may reference target objects.
> 
> 
> 
> What's the correct way to do this?
> 
> 
> 
> Thanks.
> 
> Simone
> 
> 
> 
> ________________________________
> This email message is for the sole use of the intended recipient(s) and may
> contain confidential information.  Any unauthorized review, use, disclosure
> or distribution is prohibited.  If you are not the intended recipient,
> please contact the sender by reply email and destroy all copies of the
> original message.
> ________________________________
> 
> --
> 
> 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:
> https://cmake.org/mailman/listinfo/cmake
> 
-- 

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:
https://cmake.org/mailman/listinfo/cmake


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic