Hello Brad,
Thanks for finding the issue. I had simply replaced the shared library
I was using with the name of the TARGET_OBJECTS generator.
The shared objects are great. It helps me bypass Apple security issues
when a system interpreter loads a shared library, which loads another
shared library.
Regards,
Juan
On 6/26/18 1:34 PM, Brad King wrote:
On 06/26/2018 01:32 PM, Juan E. Sanchez wrote:
The likely problem is that the symdiff_objects and the symdiff_tcl are
in side-by-side directories. They are both added using ADD_SUBDIRECTORY
one level up. If I put symdiff_python before symdiff_tcl, then that
target will fail. Please fix your Makefile generator.
Target dependencies are agnostic to the directories. The ordering at
most matters for serial builds of independent targets.
While trying to reproduce this in a simple example I found the problem:
```
TARGET_LINK_LIBRARIES (symdiff_tcl $<TARGET_OBJECTS:symdiff_objects>
${TCL_ARCHIVE})
```
That is not the way to reference an object library.
The documentation:
https://cmake.org/cmake/help/v3.12/manual/cmake-buildsystem.7.html#object-libraries
shows that `$<TARGET_OBJECTS:...>` belongs in the list of *sources*,
not linked libraries. You should be using:
```
add_library(symdiff_tcl SHARED ... $<TARGET_OBJECTS:symdiff_objects>)
```
-Brad
--
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