If you can build Ada sources first, you might wish to make that a
standalone project that is consumed downstream natively as an Imported
Library.  Do you generate the import library from a .def file, or via
some other means?

On Mon, Dec 14, 2015 at 9:59 AM, Tom Kacvinsky
<tom.kacvin...@vectorcast.com> wrote:
> Hi Petr,
>
>
> On Mon, Dec 14, 2015 at 10:53 AM, Petr Kmoch <petr.km...@gmail.com> wrote:
>> Hi Tom,
>>
>> linking the static archive into the DLL should not be done by
>> add_dependencies(), but by target_link_libraries(). There, you can
>> explicitly list the archive as PRIVATE so that it does not become a part of
>> the linking interface of the DLL:
>>
>> add_library(staticArchive STATIC ...)
>>
>> add_library(theDLL SHARED ...)
>>
>> target_link_libraries(theDLL PRIVATE staticArchive)
>>
>
> Thanks for the tip.   I'll try it out.  I hope it works as I am not
> using the MSVC tool chain
> to build the DLL (i.e., not using add_library and target_link_libraries).
>
> I sent a separate reply detailing what I am using to build the DLL.
>>
>> On Mon, Dec 14, 2015 at 3:34 PM, Tom Kacvinsky
>> <tom.kacvin...@vectorcast.com> wrote:
>>>
>>> I am getting link errors because cmake is adding transitive
>>> dependencies.  I am building a DLL which depends on a static archive
>>> (and is marked as such with add_dependencies), but when I link an
>>> executable that depends on the DLL, both libraries (import library for
>>> the DLL and static archive) are specified on the link. leading to
>>> duplicate symbol errors as the symbol are exported form the DLL and
>>> defined in the static archive.
>>>
>>> How do I work around this?  This is the one thing that has frustrated
>>> me over the last couple of years - I have never received an answer
>>> telling me how to turn off transitive dependencies.
>>>
>>> Sorry for the minor rant.
>>>
>>> Regards,
>>>
>>> Tom
>>> --
>>>
>>> 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
>>
>>
> --
>
> 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
-- 

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

Reply via email to