Thanks for you help. They are really shared lib, not static. I know it sounds weird: it's a python extension which must not link the ${PYTHON_LIBRARY} (according to official docs; in fact If I do so I get a segmentation fault) but finally in my executable,a sort of custom/home made ${PYTHON_EXECUTABLE}, I have to link the ${PYTHON_LIBRARY}.
About the "B;A;ImportedExtLib;B;A" order. I agree too: it SHOULD work. Let's say I do: target_link_libraries(MyExe B A ImpLib) in command line (make VERBOSE=1) I;m getting g++ .... -o MyExe B A ImpLib A The last "A" is coming from target_link_libraries(B PUBLIC A) and the linker is complaining that this last "A" has undefined symbols. Thanks.Giorgio. Il giorno mar 6 nov 2018 alle ore 06:59 Robert Maynard < robert.mayn...@kitware.com> ha scritto: > You have order dependent static libraries which can be solved by > constructing a cycle. As Bo stated by constructing the cycle > B;A;ImportedExtLib;B;A each library can see each other. > > Looking at your original code example it looks like you are importing > the libraries as SHARED, but I think these are actually static > libraries and should be imported as such so that CMake does the > automatic cycle creation. In general CMake doesn't do cycle creation > for shared libraries as they are not link order dependent. > On Tue, Nov 6, 2018 at 8:51 AM Giorgio Scorzelli <scrgior...@gmail.com> > wrote: > > > > I read the docs about LINK_INTERFACE_MULTIPLICITY too. > > But I'm not in the situation of a "cyclic dependency" so I 'm not sure > if it solve my problem. > > In my case (with B A and ImpLib) what would be the syntax? > > > > Il giorno mar 6 nov 2018 alle ore 06:30 Robert Maynard < > robert.mayn...@kitware.com> ha scritto: > >> > >> The target_link_libraries has a property called > >> LINK_INTERFACE_MULTIPLICITY that should help you out. > >> > https://cmake.org/cmake/help/v3.13/command/target_link_libraries.html#cyclic-dependencies-of-static-libraries > >> > >> > >> On Tue, Nov 6, 2018 at 8:24 AM scrgiorgio <scrgior...@gmail.com> wrote: > >> > > >> > Thanks for the help, > >> > > >> > trying this (or any combination): > >> > > >> > target_link_libraries(MyExe B) > >> > target_link_libraries(MyExe A ) > >> > target_link_libraries(MyExe ImpLib) > >> > > >> > I get this order: > >> > > >> > 'B;...whatever...;A;ImpLib" > >> > > >> > and the last past is causing the problem. Apparently there is no way > to > >> > change the right part (-Wl,--start-group -Wl,--end-groun sometimes > work, > >> > sometimes not). > >> > Any advice? > >> > > >> > > >> > > >> > > >> > -- > >> > Sent from: http://cmake.3232098.n2.nabble.com/ > >> > -- > >> > > >> > 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