
SET( ise_PUBLIC_HEADERS
  iseMergeDriverClusterer.hpp
  iseSegmentationClusteringImageFeatureClusterer.hpp
  iseClustererFactoryTemplate.hxx
  iseClustererCvKMeans.hpp
  iseClusterer.hpp
  iseClustererExplicit.hpp
  iseImageLabelToger.hpp
  iseImageFeatureCollection.hpp
  iseImageFeatureColorimetricComputer.hpp
  iseGeometricComputer.hpp
  iseImageFeatureTextureComputer.hpp
  iseImageFeatureBinaryComputer.hpp
  iseImageFeatureThreshold.hpp
  iseImageFeatureCompositionComputer.hpp
  iseImageFeatureComputerDefault.hpp
  iseRegionSetInterfaceGeometric.hpp
  iseFeatureComputer.hpp
  iseFeatureComputerHandler.hpp
  iseAbstractFactoryTemplate.hxx
  iseFactoryTemplate.hxx
  iseMergeAlgorithmUntil.hpp
  iseRegionBinaryFunction.hpp
  iseRegionBinaryFunctionConstantNull.hpp
  iseRegionBinaryFunctionWithRegSet.hpp
  iseRegionBinaryFunctionWithRegSetEuclideanDistance.hpp
  iseRegionBinaryFunctionCommonBoundaryLength.hpp
  iseRegionBinaryFunctionCommonBoundaryTangentVariance.hpp
  iseRegionBinaryPredicate.hpp
  iseRegionBinaryPredicateTrue.hpp
  iseRegionBinaryPredicateThreshold.hpp
  iseRegionBinaryPredicateFromUnaryPredicate.hpp
  iseRegionBinaryPredicateFromUnaryFunction.hpp
  iseRegionFeature.hpp
  iseRegionFeatureAllocator.hpp
  iseRegionFeatureAllocatorStack.hpp
  iseRegionFeatureCacheState.hpp
  iseRegionFeatureCacheStateAlwaysStore.hpp
  iseRegionFeatureCacheStateLazy.hpp
  iseRegionFeatureCacheStateNeverStore.hpp
  iseRegionFeatureComputer.hpp
  iseRegionFeatureSelector.hpp
  iseRegionFeatureStorage.hpp
  iseRegionFeatureStorageHash.hpp
  iseRegionFeatureTemplate.hxx
  iseRegionFeatureTools.hpp
  iseRegionSetAbstractFactory.hpp
  iseRegionSetFactoryHandler.hpp
  iseRegionSetInterface.hpp
  iseRegionSetInterfaceArea.hpp
  iseRegionSetInterfaceClustering.hpp
  iseRegionSetInterfaceMoments.hpp
  iseRegionSetInterfaceMean.hpp
  iseRegionSetInterfaceVariance.hpp
  iseRegionSetParameters.hpp
  iseRegionStrictWeakOrdering.hpp
  iseRegionStrictWeakOrderingWithUnaryFunctions.hpp
  iseRegionStrictWeakOrderingAscending.hpp
  iseRegionStrictWeakOrderingDescending.hpp
  iseRegionSetStrictWeakOrdering.hpp  
  iseRegionStrictWeakOrderingIntraRegionAscending.hpp
  iseRegionStrictWeakOrderingIntraRegionDescending.hpp
  iseRegionUnaryFunction.hpp
  iseRegionUnaryFunctionWithRegSet.hpp
  iseRegionUnaryFunctionWithRegSetEuclideanDistance.hpp
  iseRegionUnaryFunctionWithRegSetIdentity.hpp
  iseRegionUnaryFunctionTangentVariance.hpp
  iseRegionUnaryPredicate.hpp
  iseRegionUnaryPredicateTrue.hpp
  iseRegionUnaryPredicateThreshold.hpp
  iseRegionUnaryPredicateBoolCombine.hpp 
  iseRegionBinaryPredicateBoolCombine.hpp 
  iseComparisonFunction.hpp
  iseImageFeatureComputer.hpp 
  iseImageFeatureColorSpace.hpp 
  iseImageFeatureColorProjection.hpp 
  iseSegmentationContext.hpp 
  iseRegionColorimetricFeatures.hpp 
  iseStat.hpp 
  iseRegionsHistogram.hpp 
  iseSplitDriver.hpp 
  iseSplitDriverDefault.hpp 
  iseMergeAlgorithmDefault.hpp 
  iseMergeDriver.hpp
  iseMergeDriverAlways.hpp
  iseMergeDriverDefault.hpp
  iseMergeDriverMeta.hpp
  iseSparseHistogram1D.hpp 
  iseSplitAlgorithm.hpp 
  iseSplitAlgorithmDefault.hpp 
  iseMergeAlgorithm.hpp 	
  iseSegmentationClustering.hpp 
  iseSegmentationClusteringGonogo1.hpp
  iseQuantification.hpp 
  iseHashHistogram.hpp 
  iseHistogram1D.hpp 
  iseQuantificationNbColors.hpp 
  iseColorBinaryTree.hpp 
  iseColorFrequency.hpp 
  iseRange.hpp
  iseDefinitions.h
  iseQuantificationThresholder.hpp 
  iseQuantificationThresholderOtsu.hpp 
  iseQuantificationThresholderMeanPlusTwoStdDev.hpp 
  iseQuantificationThresholds.hpp 
  iseConversion.hpp 
  iseFlt3Tools.hpp 
  iseRegionTools.hpp 
  iseRegionsHistogram.hpp 
  iseColorimetricMomentsComputer.hpp 
  iseHistogram1DTools.hpp
  iseHistoInfo.hpp 
  iseVector.hpp
  iseDistances.hpp 
  iseDistanceComputer.hpp 
  iseGenericKMeans.hpp 
  iseClustererGenericKMeans.hpp 
  iseTogerUtils.hpp
  )




SET( ise_SOURCES 
  iseComparisonFunction.cpp
  iseSplitAlgorithmDefault.cpp	
  iseFeatureComputerHandler.cpp
  iseMergeAlgorithmUntil.cpp
  iseRegionBinaryPredicateFromUnaryFunction.cpp
  iseRegionBinaryFunctionWithRegSetEuclideanDistance.cpp
  iseRegionFeatureCacheStateLazy.cpp
  iseRegionFeatureSelector.cpp
  iseRegionFeatureStorageHash.cpp
  iseRegionSetInterface.cpp
  iseRegionSetInterfaceArea.cpp
  iseRegionSetInterfaceClustering.cpp
  iseRegionSetInterfaceGeometric.cpp
  iseGeometricComputer.cpp
  iseRegionSetInterfaceMean.cpp
  iseRegionSetInterfaceMoments.cpp
  iseRegionSetParameters.cpp
  iseRegionUnaryFunctionWithRegSetEuclideanDistance.cpp
  iseRegionUnaryFunctionWithRegSetIdentity.cpp
  iseRegionUnaryPredicateBoolCombine.cpp
  iseRegionBinaryPredicateBoolCombine.cpp
  iseMergeDriverClusterer.cpp
  iseSegmentationClusteringImageFeatureClusterer.cpp
  iseClustererCvKMeans.cpp
  iseImageFeatureCollection.cpp
  iseImageFeatureThreshold.cpp
  iseImageFeatureComputerDefault.cpp
  iseMergeAlgorithmDefault.cpp
  iseMergeDriverAlways.cpp
  iseMergeDriverDefault.cpp
  iseMergeDriverMeta.cpp
  iseImageFeatureColorSpace.cpp
  iseImageFeatureColorProjection.cpp
  iseSegmentationContext.cpp 
  iseRegionColorimetricFeatures.cpp 
  iseStat.cpp 
  iseSplitDriverDefault.cpp 
  iseSegmentationClusteringGonogo1.cpp	
  iseQuantification.cpp 
  iseHashHistogram.cpp 
  iseHistogram1DTools.cpp
  iseHistogram1D.cpp 
  iseQuantificationNbColors.cpp 
  iseColorBinaryTree.cpp 
  iseColorFrequency.cpp 
  iseQuantificationThresholderOtsu.cpp 
  iseQuantificationThresholderMeanPlusTwoStdDev.cpp 
  iseQuantificationThresholds.cpp 
  iseConversion.cpp 
  iseFlt3Tools.cpp 
  iseRegionTools.cpp 
  iseDistanceComputer.cpp 
  iseTogerUtils.cpp
  )


SET( ise_SRCS ${ise_SOURCES} ${ise_PUBLIC_HEADERS} ${ise_PRIVATE_HEADERS} )

INCLUDE_DIRECTORIES(${ISE_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${ISE_INCLUDE_DIRS})

ADD_DEFINITIONS(${ISE_DEFS})

ADD_LIBRARY( ${ise_major_minor} STATIC ${ise_SRCS} )
SET_TARGET_PROPERTIES( ${ise_major_minor} PROPERTIES DEFINE_SYMBOL "GIRL_DLL" )
SET_TARGET_PROPERTIES( ${ise_major_minor} PROPERTIES DEFINE_SYMBOL "GIRL_DLL_EXPORTS" )
IF(CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)
  SET_TARGET_PROPERTIES( ${ise_major_minor} PROPERTIES LINK_FLAGS "-Wl,--no-undefined" )
ENDIF(CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)

TARGET_LINK_LIBRARIES(${ise_major_minor} ${ISE_LINK_LIBS})  


# We do not install with 
# INSTALL(FILES ${ise_PUBLIC_HEADERS} DESTINATION include/${ise_major_minor}/ise)
# but by setting PUBLIC/PRIVATE_HEADER properties of target

FOREACH(FILE ${ise_PUBLIC_HEADERS})
  SET(ise_PUBLIC_HEADER_S "${ise_PUBLIC_HEADER_S};${FILE}")
ENDFOREACH()
FOREACH(FILE ${ise_PRIVATE_HEADERS})
  SET(ise_PRIVATE_HEADER_S "${ise_PRIVATE_HEADER_S};${FILE}")
ENDFOREACH()


SET_TARGET_PROPERTIES( ${ise_major_minor} 
  PROPERTIES
  # PRIVATE_HEADER "${ise_PRIVATE_HEADER_S}"
  PUBLIC_HEADER "${ise_PUBLIC_HEADER_S}" 
  )

IF(APPLE)
  
  IF (WANT_FRAMEWORK)

    SET_TARGET_PROPERTIES( ${ise_major_minor} 
      PROPERTIES
      FRAMEWORK TRUE
      FRAMEWORK_VERSION ${ise_VERSION}
      #	PRIVATE_HEADER ${ise_PRIVATE_HEADERS}
      #	PUBLIC_HEADER ${ise_PUBLIC_HEADERS}
      MACOSX_FRAMEWORK_BUNDLE_VERSION "${ise_VERSION}" 
      MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${ise_VERSION}" 
      #	MACOSX_FRAMEWORK_IDENTIFIER "ise ${MACOSX_BUNDLE_VERSION}" 
      ### Don't know what to put as identifier ??? 
      )
    
  ELSE(WANT_FRAMEWORK)

    SET_TARGET_PROPERTIES( ${ise_major_minor} 
      PROPERTIES
      FRAMEWORK FALSE
      )

  ENDIF(WANT_FRAMEWORK)

ENDIF()


INSTALL(TARGETS ${ise_major_minor}
  FRAMEWORK DESTINATION Library/Frameworks
  RUNTIME DESTINATION bin 
  LIBRARY DESTINATION lib 
  ARCHIVE DESTINATION lib
  #The following is ignored for Mac frameworks. 
  # PUBLIC_HEADER DESTINATION ${includedir}/${ise_major_minor}/ise
  PUBLIC_HEADER DESTINATION include/${ise_major_minor}/ise
  )
