From: <ai...@us...> - 2011-11-25 01:43:20
|
Revision: 12045 http://plplot.svn.sourceforge.net/plplot/?rev=12045&view=rev Author: airwin Date: 2011-11-25 01:43:13 +0000 (Fri, 25 Nov 2011) Log Message: ----------- Implement NON_TRANSITIVE case for the tclmatrixd and plplottcltkd libraries. When obvious false positives are discounted, ldd -u showed good results for those libraries in the build tree and for the Tk examples written in C (i.e., xtk01) in both the build tree and the traditional installed examples tree. Build and run tests (using the test_diff_psc and test_interactive targets in the build tree and the compare and test_interactive targets in the traditional installed examples tree) produced results without obvious errors on Debian stable. However, the latest Linux distributions such as Fedora or Debian unstable have a linker that enforces linking rules much more stringently than Debian stable so additional tests (and likely some fixes) are required before -DNON_TRANSITIVE=ON will work correctly for the tclmatrixd and plplottcltkd libraries on those platforms. Modified Paths: -------------- trunk/bindings/tcl/CMakeLists.txt Modified: trunk/bindings/tcl/CMakeLists.txt =================================================================== --- trunk/bindings/tcl/CMakeLists.txt 2011-11-25 01:23:11 UTC (rev 12044) +++ trunk/bindings/tcl/CMakeLists.txt 2011-11-25 01:43:13 UTC (rev 12045) @@ -219,6 +219,18 @@ add_library(plplottcltk${LIB_TAG} ${plplottcltk${LIB_TAG}_LIB_SRCS}) +if(NON_TRANSITIVE) + # empty list ==> non-transitive linking for everything that links to + # libtclmatrixd and libplplottcltkd in the shared libraries case. + target_link_libraries(tclmatrix${LIB_TAG} LINK_INTERFACE_LIBRARIES) + target_link_libraries(plplottcltk${LIB_TAG} LINK_INTERFACE_LIBRARIES) + # This configures the pkg-config method to use non-transitive linking. + set(PC_REQUIRES_TAG "Requires.private") +else(NON_TRANSITIVE) + # This configures the pkg-config method to use transitive linking + set(PC_REQUIRES_TAG "Requires") +endif(NON_TRANSITIVE) + #message(STATUS #"plplottcltk${LIB_TAG}_link_libraries = #${plplottcltk${LIB_TAG}_link_libraries}" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |