[Insight-developers] Re: shared library versioning

Steve M. Robbins steven.robbins at videotron.ca
Sun Apr 23 22:30:44 EDT 2006


Hello,

I wrote some time ago asking whether ITK could version its
shared libraries.

On Sun, Mar 05, 2006 at 01:47:34AM -0500, steve wrote:

> Debian's policy mandates that shared libraries be properly versioned
> with a shared object name (SONAME), which the ITK release currently
> does not have.  The SONAME encodes a version number that is a
> statement of binary compatibility.  From Debian's point of view,
> therefore, it is much preferable if the ITK development team took care
> of the SONAME.


Since no-one argued to the contrary, I append a patch to the HEAD
of ITK's cvs tree that sets VERSION and SOVERSION properties for
each library.

I followed VTK's model: the VERSION is set to MAJOR.MINOR.PATCH and
the SOVERSION is set to MAJOR.MINOR.  This effectively assumes that
ITK will not promise any compatibility when MAJOR or MINOR are
changed, but *does* promise ABI compatibility for PATCH number change.
Is this reasonable?

Comments welcomed,
-Steve

-------------- next part --------------
? Build
? soname-patch.diff
Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/CMakeLists.txt,v
retrieving revision 1.218
diff -u -b -B -r1.218 CMakeLists.txt
--- CMakeLists.txt	21 Apr 2006 20:08:38 -0000	1.218
+++ CMakeLists.txt	24 Apr 2006 02:20:32 -0000
@@ -109,6 +109,17 @@
 OPTION(BUILD_SHARED_LIBS "Build ITK with shared libraries." OFF)
 SET(ITK_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
 
+# This setting of SOVERSION assumes that any API change
+# will increment either the minor or major version number of ITK.
+SET(ITK_LIBRARY_PROPERTIES 
+    VERSION   "${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}"
+    SOVERSION "${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}"
+   )
+
+# Apply same properties to KWSYS libraries.
+SET(KWSYS_PROPERTIES_C ${ITK_LIBRARY_PROPERTIES})
+SET(KWSYS_PROPERTIES_CXX ${ITK_LIBRARY_PROPERTIES})
+
 OPTION(ITK_CSWIG_TCL "Build cswig Tcl wrapper support (requires CableSwig)." OFF)
 OPTION(ITK_CSWIG_PYTHON "Build cswig Python wrapper support (requires CableSwig)." OFF)
 OPTION(ITK_CSWIG_JAVA "Build cswig Java wrapper support " OFF)
Index: Code/Algorithms/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/Algorithms/CMakeLists.txt,v
retrieving revision 1.20
diff -u -b -B -r1.20 CMakeLists.txt
--- Code/Algorithms/CMakeLists.txt	7 Sep 2005 18:41:29 -0000	1.20
+++ Code/Algorithms/CMakeLists.txt	24 Apr 2006 02:20:32 -0000
@@ -24,5 +24,6 @@
         TARGET_LINK_LIBRARIES(ITKAlgorithms ${SCSL_LIB} )
 ENDIF(USE_SCSL)
 
+SET_TARGET_PROPERTIES(ITKAlgorithms PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKAlgorithms)
 INSTALL_FILES(/include/InsightToolkit/Algorithms "(\\.h|\\.txx)$")
Index: Code/BasicFilters/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/BasicFilters/CMakeLists.txt,v
retrieving revision 1.22
diff -u -b -B -r1.22 CMakeLists.txt
--- Code/BasicFilters/CMakeLists.txt	21 Feb 2003 19:21:20 -0000	1.22
+++ Code/BasicFilters/CMakeLists.txt	24 Apr 2006 02:20:33 -0000
@@ -1,4 +1,5 @@
 ADD_LIBRARY(ITKBasicFilters itkVTKImageExportBase.cxx)
 TARGET_LINK_LIBRARIES(ITKBasicFilters ITKCommon)
+SET_TARGET_PROPERTIES(ITKBasicFilters PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKBasicFilters)
 INSTALL_FILES(/include/InsightToolkit/BasicFilters "(\\.h|\\.txx)$")
Index: Code/Common/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/Common/CMakeLists.txt,v
retrieving revision 1.111
diff -u -b -B -r1.111 CMakeLists.txt
--- Code/Common/CMakeLists.txt	20 Apr 2006 18:49:33 -0000	1.111
+++ Code/Common/CMakeLists.txt	24 Apr 2006 02:20:33 -0000
@@ -177,5 +177,7 @@
   TARGET_LINK_LIBRARIES(ITKCommon ${CMAKE_THREAD_LIBS} ${CMAKE_DL_LIBS} -lm)
 ENDIF(UNIX)
 
+SET_TARGET_PROPERTIES(ITKCommon PROPERTIES ${ITK_LIBRARY_PROPERTIES})
+SET_TARGET_PROPERTIES(itkvnl_inst PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKCommon itkvnl_inst)
 INSTALL_FILES(/include/InsightToolkit/Common "(\\.h|\\.txx)$")
Index: Code/IO/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/IO/CMakeLists.txt,v
retrieving revision 1.69
diff -u -b -B -r1.69 CMakeLists.txt
--- Code/IO/CMakeLists.txt	14 Nov 2005 15:19:31 -0000	1.69
+++ Code/IO/CMakeLists.txt	24 Apr 2006 02:20:34 -0000
@@ -80,5 +80,6 @@
 ITKEXPAT
 ITKniftiio)
 
+SET_TARGET_PROPERTIES(ITKIO PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKIO)
 INSTALL_FILES(/include/InsightToolkit/IO "(\\.h|\\.txx)$")
Index: Code/Numerics/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/Numerics/CMakeLists.txt,v
retrieving revision 1.31
diff -u -b -B -r1.31 CMakeLists.txt
--- Code/Numerics/CMakeLists.txt	13 Apr 2006 19:31:12 -0000	1.31
+++ Code/Numerics/CMakeLists.txt	24 Apr 2006 02:20:34 -0000
@@ -35,5 +35,6 @@
 
 TARGET_LINK_LIBRARIES(ITKNumerics ITKCommon)
 
+SET_TARGET_PROPERTIES(ITKNumerics PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKNumerics)
 INSTALL_FILES(/include/InsightToolkit/Numerics "(\\.h|\\.txx)$")
Index: Code/Numerics/FEM/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/Numerics/FEM/CMakeLists.txt,v
retrieving revision 1.63
diff -u -b -B -r1.63 CMakeLists.txt
--- Code/Numerics/FEM/CMakeLists.txt	15 Dec 2003 14:13:19 -0000	1.63
+++ Code/Numerics/FEM/CMakeLists.txt	24 Apr 2006 02:20:34 -0000
@@ -188,5 +188,6 @@
   TARGET_LINK_LIBRARIES (ITKFEM -lm )
 ENDIF(UNIX)
 
+SET_TARGET_PROPERTIES(ITKFEM PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKFEM)
 INSTALL_FILES(/include/InsightToolkit/Numerics/FEM "(\\.h|\\.txx)$")
Index: Code/Numerics/Statistics/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/Numerics/Statistics/CMakeLists.txt,v
retrieving revision 1.14
diff -u -b -B -r1.14 CMakeLists.txt
--- Code/Numerics/Statistics/CMakeLists.txt	3 Oct 2005 15:18:45 -0000	1.14
+++ Code/Numerics/Statistics/CMakeLists.txt	24 Apr 2006 02:20:34 -0000
@@ -7,5 +7,6 @@
 
 TARGET_LINK_LIBRARIES(ITKStatistics ITKCommon)
 
+SET_TARGET_PROPERTIES(ITKStatistics PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKStatistics)
 INSTALL_FILES(/include/InsightToolkit/Numerics/Statistics "(\\.h|\\.txx)$")
Index: Code/SpatialObject/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/SpatialObject/CMakeLists.txt,v
retrieving revision 1.8
diff -u -b -B -r1.8 CMakeLists.txt
--- Code/SpatialObject/CMakeLists.txt	12 Aug 2005 01:43:03 -0000	1.8
+++ Code/SpatialObject/CMakeLists.txt	24 Apr 2006 02:20:35 -0000
@@ -6,5 +6,6 @@
 
 ADD_LIBRARY(ITKSpatialObject ${ITKSpatialObject_SRCS})
 TARGET_LINK_LIBRARIES(ITKSpatialObject ITKNumerics ITKCommon ITKMetaIO) 
+SET_TARGET_PROPERTIES(ITKSpatialObject PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKSpatialObject)
 INSTALL_FILES(/include/InsightToolkit/SpatialObject "(\\.h|\\.txx)$")
Index: Utilities/DICOMParser/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/DICOMParser/CMakeLists.txt,v
retrieving revision 1.11
diff -u -b -B -r1.11 CMakeLists.txt
--- Utilities/DICOMParser/CMakeLists.txt	24 Mar 2004 19:26:09 -0000	1.11
+++ Utilities/DICOMParser/CMakeLists.txt	24 Apr 2006 02:20:36 -0000
@@ -56,6 +56,7 @@
 
 ADD_LIBRARY(${DICOMPARSER_LIBRARY} DICOMSource.cxx DICOMBuffer.cxx DICOMFile.cxx DICOMParser.cxx DICOMAppHelper.cxx)
 
+SET_TARGET_PROPERTIES(${DICOMPARSER_LIBRARY} PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ${DICOMPARSER_LIBRARY})
 INSTALL_FILES(/include/InsightToolkit "(\\.h|\\.txx)$")
 INSTALL_FILES(/include/InsightToolkit FILES
Index: Utilities/MetaIO/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/MetaIO/CMakeLists.txt,v
retrieving revision 1.25
diff -u -b -B -r1.25 CMakeLists.txt
--- Utilities/MetaIO/CMakeLists.txt	21 Mar 2006 16:45:58 -0000	1.25
+++ Utilities/MetaIO/CMakeLists.txt	24 Apr 2006 02:20:36 -0000
@@ -28,6 +28,7 @@
 
 #SUBDIRS(tests)
 
+SET_TARGET_PROPERTIES(ITKMetaIO PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKMetaIO)
 INSTALL_FILES(/include/InsightToolkit/Utilities/MetaIO "(\\.h)$")
 TARGET_LINK_LIBRARIES(ITKMetaIO ${ITK_ZLIB_LIBRARIES})
Index: Utilities/NrrdIO/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/NrrdIO/CMakeLists.txt,v
retrieving revision 1.6
diff -u -b -B -r1.6 CMakeLists.txt
--- Utilities/NrrdIO/CMakeLists.txt	20 Aug 2005 16:08:06 -0000	1.6
+++ Utilities/NrrdIO/CMakeLists.txt	24 Apr 2006 02:20:36 -0000
@@ -58,6 +58,7 @@
 ADD_LIBRARY(ITKNrrdIO ${nrrdio_SRCS} )
 TARGET_LINK_LIBRARIES(ITKNrrdIO ${ITK_ZLIB_LIBRARIES} )
 
+SET_TARGET_PROPERTIES(ITKNrrdIO PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKNrrdIO)
 INSTALL_FILES(/include/InsightToolkit/Utilities/NrrdIO "(\\.h)$")
 
Index: Utilities/expat/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/expat/CMakeLists.txt,v
retrieving revision 1.4
diff -u -b -B -r1.4 CMakeLists.txt
--- Utilities/expat/CMakeLists.txt	2 Feb 2005 21:15:32 -0000	1.4
+++ Utilities/expat/CMakeLists.txt	24 Apr 2006 02:20:36 -0000
@@ -21,5 +21,6 @@
 
 ADD_LIBRARY(ITKEXPAT ${expat_SRCS})
 
+SET_TARGET_PROPERTIES(ITKEXPAT PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ITKEXPAT)
 INSTALL_FILES(/include/InsightToolkit/expat .h expat expatDllConfig)
Index: Utilities/gdcm/src/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/gdcm/src/CMakeLists.txt,v
retrieving revision 1.15
diff -u -b -B -r1.15 CMakeLists.txt
--- Utilities/gdcm/src/CMakeLists.txt	2 Feb 2006 18:26:18 -0000	1.15
+++ Utilities/gdcm/src/CMakeLists.txt	24 Apr 2006 02:20:36 -0000
@@ -80,4 +80,5 @@
 ENDIF(CMAKE_SYSTEM MATCHES "SunOS.*")
 
 INSTALL_FILES(/include/InsightToolkit/gdcm/src "\\.h$")
+SET_TARGET_PROPERTIES(itkgdcm PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkgdcm)
Index: Utilities/itkjpeg/12/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/itkjpeg/12/CMakeLists.txt,v
retrieving revision 1.2
diff -u -b -B -r1.2 CMakeLists.txt
--- Utilities/itkjpeg/12/CMakeLists.txt	2 Feb 2005 21:15:32 -0000	1.2
+++ Utilities/itkjpeg/12/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -4,6 +4,7 @@
   "${CMAKE_CURRENT_BINARY_DIR}"
   "${ITKJPEG_SOURCE_DIR}")
 ADD_LIBRARY(itkjpeg12 ${JPEG_SOURCES})
+SET_TARGET_PROPERTIES(itkjpeg12 PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkjpeg12)
 
 
Index: Utilities/itkjpeg/16/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/itkjpeg/16/CMakeLists.txt,v
retrieving revision 1.2
diff -u -b -B -r1.2 CMakeLists.txt
--- Utilities/itkjpeg/16/CMakeLists.txt	2 Feb 2005 21:15:33 -0000	1.2
+++ Utilities/itkjpeg/16/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -4,6 +4,7 @@
   "${CMAKE_CURRENT_BINARY_DIR}"
   "${ITKJPEG_SOURCE_DIR}")
 ADD_LIBRARY(itkjpeg16 ${JPEG_SOURCES})
+SET_TARGET_PROPERTIES(itkjpeg16 PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkjpeg16)
 
 
Index: Utilities/itkjpeg/8/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/itkjpeg/8/CMakeLists.txt,v
retrieving revision 1.2
diff -u -b -B -r1.2 CMakeLists.txt
--- Utilities/itkjpeg/8/CMakeLists.txt	2 Feb 2005 21:15:33 -0000	1.2
+++ Utilities/itkjpeg/8/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -4,5 +4,6 @@
   "${CMAKE_CURRENT_BINARY_DIR}"
   "${ITKJPEG_SOURCE_DIR}")
 ADD_LIBRARY(itkjpeg8 ${JPEG_SOURCES})
+SET_TARGET_PROPERTIES(itkjpeg8 PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkjpeg8)
 
Index: Utilities/nifti/fsliolib/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/nifti/fsliolib/CMakeLists.txt,v
retrieving revision 1.1
diff -u -b -B -r1.1 CMakeLists.txt
--- Utilities/nifti/fsliolib/CMakeLists.txt	5 Aug 2005 16:40:22 -0000	1.1
+++ Utilities/nifti/fsliolib/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -8,5 +8,6 @@
 ADD_LIBRARY(${PACKAGE_PREFIX}fslio ${FSLIOLIB_SRC} )
 TARGET_LINK_LIBRARIES( ${PACKAGE_PREFIX}fslio ${PACKAGE_PREFIX}niftiio)
 
+SET_TARGET_PROPERTIES(${PACKAGE_PREFIX}fslio PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib ${PACKAGE_PREFIX}fslio)
 INSTALL_FILES(/include "(\\.h)$")
Index: Utilities/nifti/niftilib/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/nifti/niftilib/CMakeLists.txt,v
retrieving revision 1.6
diff -u -b -B -r1.6 CMakeLists.txt
--- Utilities/nifti/niftilib/CMakeLists.txt	9 Aug 2005 01:55:25 -0000	1.6
+++ Utilities/nifti/niftilib/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -12,5 +12,6 @@
 TARGET_LINK_LIBRARIES(${PACKAGE_PREFIX}niftiio -lm)
 ENDIF(UNIX)
 
+SET_TARGET_PROPERTIES(${PACKAGE_PREFIX}niftiio PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(${LIB_INSTALL_DIR} ${PACKAGE_PREFIX}niftiio)
 INSTALL_FILES(${INCLUDE_INSTALL_DIR} "(\\.h)$")
Index: Utilities/nifti/znzlib/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/nifti/znzlib/CMakeLists.txt,v
retrieving revision 1.5
diff -u -b -B -r1.5 CMakeLists.txt
--- Utilities/nifti/znzlib/CMakeLists.txt	9 Aug 2005 01:55:25 -0000	1.5
+++ Utilities/nifti/znzlib/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -5,6 +5,7 @@
 
 ADD_LIBRARY(${PACKAGE_PREFIX}znz ${ZNZLIB_SRC} )
 TARGET_LINK_LIBRARIES( ${PACKAGE_PREFIX}znz ${NIFTI_ZLIB_LIBRARIES} )
+SET_TARGET_PROPERTIES(${PACKAGE_PREFIX}znz PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(${LIB_INSTALL_DIR} ${PACKAGE_PREFIX}znz)
 INSTALL_FILES(${INCLUDE_INSTALL_DIR} "(\\.h)$")
 
Index: Utilities/openjpeg/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/openjpeg/CMakeLists.txt,v
retrieving revision 1.6
diff -u -b -B -r1.6 CMakeLists.txt
--- Utilities/openjpeg/CMakeLists.txt	28 Feb 2006 15:58:58 -0000	1.6
+++ Utilities/openjpeg/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -38,5 +38,6 @@
 ADD_LIBRARY(${OPJ_PREFIX}openjpeg ${OpenJPEG_SRCS})
 
 # Install library
+SET_TARGET_PROPERTIES(${OPJ_PREFIX}openjpeg PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit ${OPJ_PREFIX}openjpeg)
 
Index: Utilities/png/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/png/CMakeLists.txt,v
retrieving revision 1.17
diff -u -b -B -r1.17 CMakeLists.txt
--- Utilities/png/CMakeLists.txt	2 Feb 2005 21:15:34 -0000	1.17
+++ Utilities/png/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -35,4 +35,5 @@
 TARGET_LINK_LIBRARIES(itkpng ${ITK_ZLIB_LIBRARIES})
 ENDIF(UNIX)
 
+SET_TARGET_PROPERTIES(itkpng PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkpng)
Index: Utilities/tiff/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/tiff/CMakeLists.txt,v
retrieving revision 1.11
diff -u -b -B -r1.11 CMakeLists.txt
--- Utilities/tiff/CMakeLists.txt	21 Nov 2005 20:31:03 -0000	1.11
+++ Utilities/tiff/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -150,4 +150,5 @@
 TARGET_LINK_LIBRARIES(itktiff -lm)
 ENDIF(UNIX)
 
+SET_TARGET_PROPERTIES(itktiff PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itktiff)
Index: Utilities/vxl/core/vnl/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/vxl/core/vnl/CMakeLists.txt,v
retrieving revision 1.9
diff -u -b -B -r1.9 CMakeLists.txt
--- Utilities/vxl/core/vnl/CMakeLists.txt	4 Aug 2005 15:51:55 -0000	1.9
+++ Utilities/vxl/core/vnl/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -200,6 +200,7 @@
   SUBDIRS(tests)
 ENDIF( BUILD_TESTING )
 
+SET_TARGET_PROPERTIES(itkvnl PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkvnl)
 INSTALL_FILES(${VXL_INSTALL_ROOT}/core/vnl "(\\.h|\\.txx)$")
 INSTALL_FILES(${VXL_INSTALL_ROOT}/core/vnl .h vnl_config)
Index: Utilities/vxl/core/vnl/algo/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/vxl/core/vnl/algo/CMakeLists.txt,v
retrieving revision 1.3
diff -u -b -B -r1.3 CMakeLists.txt
--- Utilities/vxl/core/vnl/algo/CMakeLists.txt	1 Aug 2005 20:53:40 -0000	1.3
+++ Utilities/vxl/core/vnl/algo/CMakeLists.txt	24 Apr 2006 02:20:37 -0000
@@ -83,6 +83,7 @@
 
   ADD_LIBRARY( itkvnl_algo ${vnl_algo_sources})
   TARGET_LINK_LIBRARIES( itkvnl_algo ${NETLIB_LIBRARIES} itkvnl )
+  SET_TARGET_PROPERTIES(itkvnl_algo PROPERTIES ${ITK_LIBRARY_PROPERTIES})
   INSTALL_TARGETS(/lib/InsightToolkit itkvnl_algo)
 
   IF( BUILD_TESTING )
Index: Utilities/vxl/v3p/netlib/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/vxl/v3p/netlib/CMakeLists.txt,v
retrieving revision 1.9
diff -u -b -B -r1.9 CMakeLists.txt
--- Utilities/vxl/v3p/netlib/CMakeLists.txt	1 Aug 2005 20:53:41 -0000	1.9
+++ Utilities/vxl/v3p/netlib/CMakeLists.txt	24 Apr 2006 02:20:38 -0000
@@ -307,4 +307,5 @@
   TARGET_LINK_LIBRARIES( itknetlib m )
 ENDIF(UNIX)
 
+SET_TARGET_PROPERTIES(itknetlib PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itknetlib)
Index: Utilities/vxl/vcl/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/vxl/vcl/CMakeLists.txt,v
retrieving revision 1.7
diff -u -b -B -r1.7 CMakeLists.txt
--- Utilities/vxl/vcl/CMakeLists.txt	5 Jan 2006 15:48:37 -0000	1.7
+++ Utilities/vxl/vcl/CMakeLists.txt	24 Apr 2006 02:20:38 -0000
@@ -362,6 +362,7 @@
   SUBDIRS(tests)
 ENDIF( BUILD_TESTING)
 
+SET_TARGET_PROPERTIES(itkvcl PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkvcl)
 INSTALL_FILES(${VXL_INSTALL_ROOT}/vcl "(\\.h|\\.txx)$")
 INSTALL_FILES(${VXL_INSTALL_ROOT}/vcl ".h"
Index: Utilities/zlib/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Utilities/zlib/CMakeLists.txt,v
retrieving revision 1.20
diff -u -b -B -r1.20 CMakeLists.txt
--- Utilities/zlib/CMakeLists.txt	23 Apr 2005 18:30:00 -0000	1.20
+++ Utilities/zlib/CMakeLists.txt	24 Apr 2006 02:20:38 -0000
@@ -35,6 +35,7 @@
 
 ADD_LIBRARY(itkzlib ${ZLIB_SRCS})
 
+SET_TARGET_PROPERTIES(itkzlib PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkzlib)
 INSTALL_FILES(${VXL_INSTALL_ROOT}/include/InsightToolkit/Utilities/zlib ".h" zlibDllConfig)
 INSTALL_FILES(/include/InsightToolkit/Utilities/zlib "(\\.h)$")
Index: Wrapping/CSwig/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Wrapping/CSwig/CMakeLists.txt,v
retrieving revision 1.55
diff -u -b -B -r1.55 CMakeLists.txt
--- Wrapping/CSwig/CMakeLists.txt	7 Jun 2005 14:19:10 -0000	1.55
+++ Wrapping/CSwig/CMakeLists.txt	24 Apr 2006 02:20:39 -0000
@@ -594,7 +594,7 @@
         ADD_DEPENDENCIES(${LIBRARY_NAME}Tcl ${lib}Tcl)
       ENDFOREACH(lib)
     ENDIF(ITK_WRAP_NEEDS_DEPEND)
-    SET_TARGET_PROPERTIES(${LIBRARY_NAME}Tcl PROPERTIES LINK_FLAGS "${CSWIG_EXTRA_LINKFLAGS}")
+    SET_TARGET_PROPERTIES(${LIBRARY_NAME}Tcl PROPERTIES LINK_FLAGS "${CSWIG_EXTRA_LINKFLAGS}" ${ITK_LIBRARY_PROPERTIES})
     TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Tcl ${EXTRA_LIBS} SwigRuntimeTcl ${TCL_LIBRARY})
     INSTALL_TARGETS(/lib/InsightToolkit ${LIBRARY_NAME}Tcl )
     IF(ITK_SWIG_FILE)
@@ -623,7 +623,7 @@
       ${ITK_EXTRA_PERL_SOURCES} 
       ${WRAP_FILE}
       ${EXTRA_SOURCES})
-    SET_TARGET_PROPERTIES(${LIBRARY_NAME}PErl PROPERTIES LINK_FLAGS "${CSWIG_EXTRA_LINKFLAGS}")
+    SET_TARGET_PROPERTIES(${LIBRARY_NAME}Perl PROPERTIES LINK_FLAGS "${CSWIG_EXTRA_LINKFLAGS}" ${ITK_LIBRARY_PROPERTIES})
     TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Perl ${EXTRA_LIBS} SwigRuntimePerl ${PERL_LIBRARY})
     IF(ITK_WRAP_NEEDS_DEPEND)
       FOREACH(lib ${DEPEND_LIBRARY})
@@ -662,7 +662,7 @@
         ADD_DEPENDENCIES(_${LIBRARY_NAME}Python _${lib}Python)
       ENDFOREACH(lib)
     ENDIF(ITK_WRAP_NEEDS_DEPEND)
-    SET_TARGET_PROPERTIES( _${LIBRARY_NAME}Python PROPERTIES PREFIX "")
+    SET_TARGET_PROPERTIES( _${LIBRARY_NAME}Python PROPERTIES PREFIX "" ${ITK_LIBRARY_PROPERTIES})
     TARGET_LINK_LIBRARIES(_${LIBRARY_NAME}Python ${EXTRA_LIBS} SwigRuntimePython ${PYTHON_LIBRARY})
     INSTALL_TARGETS(/lib/InsightToolkit _${LIBRARY_NAME}Python) 
     IF(ITK_SWIG_FILE)
@@ -697,6 +697,7 @@
         ADD_DEPENDENCIES(${LIBRARY_NAME}Java ${lib}Java)
       ENDFOREACH(lib)
     ENDIF(ITK_WRAP_NEEDS_DEPEND)
+    SET_TARGET_PROPERTIES(${LIBRARY_NAME}Java PROPERTIES ${ITK_LIBRARY_PROPERTIES})
     INSTALL_TARGETS(${ITK_INSTALL_JAVA_LIBS_DIR} ${LIBRARY_NAME}Java)
     IF(ITK_SWIG_FILE)
       ADD_CUSTOM_COMMAND(
Index: Wrapping/CSwig/SwigRuntime/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Wrapping/CSwig/SwigRuntime/CMakeLists.txt,v
retrieving revision 1.12
diff -u -b -B -r1.12 CMakeLists.txt
--- Wrapping/CSwig/SwigRuntime/CMakeLists.txt	15 Apr 2005 21:45:21 -0000	1.12
+++ Wrapping/CSwig/SwigRuntime/CMakeLists.txt	24 Apr 2006 02:20:39 -0000
@@ -16,7 +16,7 @@
 
 IF(ITK_CSWIG_TCL)
   ADD_LIBRARY(SwigRuntimeTcl SHARED ${WrapITK_BINARY_DIR}/SwigRuntime/swigrunTcl.cxx)
-  SET_TARGET_PROPERTIES(SwigRuntimeTcl PROPERTIES LINK_FLAGS "${CSWIG_EXTRA_LINKFLAGS}")
+  SET_TARGET_PROPERTIES(SwigRuntimeTcl PROPERTIES LINK_FLAGS "${CSWIG_EXTRA_LINKFLAGS}" ${ITK_LIBRARY_PROPERTIES})
   TARGET_LINK_LIBRARIES(SwigRuntimeTcl ${TCL_LIBRARY})
   INSTALL_TARGETS(/lib/InsightToolkit SwigRuntimeTcl)
 ENDIF(ITK_CSWIG_TCL)
@@ -24,12 +24,14 @@
 IF(ITK_CSWIG_PYTHON)
   ADD_LIBRARY(SwigRuntimePython SHARED ${WrapITK_BINARY_DIR}/SwigRuntime/swigrunPython.cxx)
   TARGET_LINK_LIBRARIES(SwigRuntimePython ${PYTHON_LIBRARY})
+  SET_TARGET_PROPERTIES(SwigRuntimePython PROPERTIES ${ITK_LIBRARY_PROPERTIES})
   INSTALL_TARGETS(/lib/InsightToolkit SwigRuntimePython)
 ENDIF(ITK_CSWIG_PYTHON)
 
 IF(ITK_CSWIG_PERL)
   ADD_LIBRARY(SwigRuntimePerl SHARED ${WrapITK_BINARY_DIR}/SwigRuntime/swigrunPerl.cxx)
   TARGET_LINK_LIBRARIES(SwigRuntimePerl "${PERL_LIBRARY}")
+  SET_TARGET_PROPERTIES(SwigRuntimePerl PROPERTIES ${ITK_LIBRARY_PROPERTIES})
   INSTALL_TARGETS(/lib/InsightToolkit SwigRuntimePerl)
 ENDIF(ITK_CSWIG_PERL)
 
@@ -68,6 +70,7 @@
 IF(ITK_CSWIG_JAVA)
   SET_SOURCE_FILES_PROPERTIES(${WrapITK_BINARY_DIR}/SwigRuntime/JavaCWDJava.cxx GENERATED)
   ADD_LIBRARY(SwigRuntimeJava MODULE ${WrapITK_BINARY_DIR}/SwigRuntime/JavaCWDJava.cxx JavaCWD.cxx)
+  SET_TARGET_PROPERTIES(SwigRuntimeJava PROPERTIES ${ITK_LIBRARY_PROPERTIES})
   INSTALL_TARGETS(${ITK_INSTALL_JAVA_LIBS_DIR} SwigRuntimeJava)
   MAKE_DIRECTORY(${WrapITK_BINARY_DIR}/Java/InsightToolkit)
   ADD_CUSTOM_COMMAND(
Index: Wrapping/CSwig/Tcl/CMakeLists.txt
===================================================================
RCS file: /cvsroot/Insight/Insight/Wrapping/CSwig/Tcl/CMakeLists.txt,v
retrieving revision 1.6
diff -u -b -B -r1.6 CMakeLists.txt
--- Wrapping/CSwig/Tcl/CMakeLists.txt	8 Apr 2005 19:25:06 -0000	1.6
+++ Wrapping/CSwig/Tcl/CMakeLists.txt	24 Apr 2006 02:20:39 -0000
@@ -21,6 +21,7 @@
 )
 
 INSTALL_PROGRAMS(/bin itkwish itkwish)
+SET_TARGET_PROPERTIES(itkwish PROPERTIES ${ITK_LIBRARY_PROPERTIES})
 INSTALL_TARGETS(/lib/InsightToolkit itkwish)
 
 INSTALL_FILES(/lib/InsightToolkit/tcl .tcl itkinteraction itktesting itkdata)


More information about the Insight-developers mailing list