project(CoreImage)

remove_sdk_framework(CoreImage)

set(DYLIB_COMPAT_VERSION "1.0.1")
set(DYLIB_CURRENT_VERSION "5.0.0")

set(FRAMEWORK_VERSION "A")

generate_sdk_framework(CoreImage
    VERSION ${FRAMEWORK_VERSION}
    HEADER "include/CoreImage"
)

add_framework(CoreImage
    FAT
    CURRENT_VERSION
    VERSION ${FRAMEWORK_VERSION}

    SOURCES
        src/CoreImage.m
        src/CIColorMatrix.m
        src/CIColorInvert.m
        src/CIPortraitEffect.m
        src/CIPortraitEffectLight.m
        src/CIPortraitEffectCommercial.m
        src/CIPortraitEffectStudio.m
        src/CIPortraitEffectContour.m
        src/CIPortraitEffectBlack.m
        src/CIPortraitEffectStage.m
        src/CIPortraitEffectBlackoutMono.m
        src/CIPortraitEffectStageMono.m
        src/CIOpenGLContext.m
        src/CICMYKHalftone.m
        src/CIColorMap.m
        src/CIColorCurves.m
        src/CIConstantColorGenerator.m
        src/CIPhotoGrain.m
        src/CIUnsharpMask.m
        src/CITextImageGenerator.m
        src/CIAttributedTextImageGenerator.m
        src/CIBarcodeDescriptor.m
        src/CIQRCodeDescriptor.m
        src/CIAztecCodeDescriptor.m
        src/CIPDF417CodeDescriptor.m
        src/CIDataMatrixCodeDescriptor.m
        src/FBSProcessor.m
        src/FBSProcessorCPU.m
        src/FBSProcessorGPU.m
        src/CIFastBilateralSolver.m
        src/MetalFaceMask.m
        src/CILineOverlay.m
        src/CISpotColor.m
        src/CIComicEffect.m
        src/CIShadedMaterial.m
        src/CIHeightFieldFromMask.m
        src/CITriangleTile.m
        src/CIGlassDistortion.m
        src/CICheapBlur.m
        src/CIColorClamp.m
        src/CIMirror.m
        src/CIVignette.m
        src/CIVignetteEffect.m
        src/CISunbeamsGenerator.m
        src/CIGenericMetalProcessorSingleChannel.m
        src/CIGenericMetalProcessor.m
        src/CIContext.m
        src/CIContextCache.m
        src/CIReductionFilter.m
        src/CIAreaAverage.m
        src/CIColumnAverage.m
        src/CIRowAverage.m
        src/CIAreaMaximum.m
        src/CIAreaMinimum.m
        src/CIAreaMaximumAlpha.m
        src/CIAreaMinMaxRed.m
        src/CIAreaMinimumAlpha.m
        src/CIAreaMinMaxNormalize.m
        src/CIAreaMinMaxRedNormalize.m
        src/CIGlassLozenge.m
        src/CITorusLensDistortion.m
        src/CITwirlDistortion.m
        src/CIImageRowReader.m
        src/CISampler.m
        src/CIFaceCoreDetector.m
        src/CICircleGenerator.m
        src/CIMorphology.m
        src/CICheapMorphology.m
        src/CIMorphologyMinimum.m
        src/CIMorphologyMaximum.m
        src/CIMorphologyGradient.m
        src/CIMorphologyLaplacian.m
        src/CIPseudoMedian.m
        src/CITileFilter.m
        src/CITile2Filter.m
        src/CIFourfoldRotatedTile.m
        src/CISixfoldRotatedTile.m
        src/CITwelvefoldReflectedTile.m
        src/CIFourfoldTranslatedTile.m
        src/CIGlideReflectedTile.m
        src/CIEightfoldReflectedTile.m
        src/CIFourfoldReflectedTile.m
        src/CISixfoldReflectedTile.m
        src/CIWrapMirror.m
        src/CIVector.m
        src/CIEnhancementCalculator.m
        src/CIColorPosterize.m
        src/CIBarsSwipeTransition.m
        src/CIHighlightShadowAdjust.m
        src/CITriangleKaleidoscope.m
        src/CIDetector.m
        src/CIDepthOfField.m
        src/CIBitmapContext.m
        src/CIFilterPlugIn.m
        src/CIPixellate.m
        src/CIHexagonalPixellate.m
        src/CIKernelLibrary.m
        src/CICGContext.m
        src/CIBlendModeFilter.m
        src/CIMultiplyBlendMode.m
        src/CIScreenBlendMode.m
        src/CIOverlayBlendMode.m
        src/CIDarkenBlendMode.m
        src/CILightenBlendMode.m
        src/CIColorDodgeBlendMode.m
        src/CIColorBurnBlendMode.m
        src/CIHardLightBlendMode.m
        src/CISoftLightBlendMode.m
        src/CIDifferenceBlendMode.m
        src/CIExclusionBlendMode.m
        src/CIPDFNonSeparableBlendMode.m
        src/CIHueBlendMode.m
        src/CISaturationBlendMode.m
        src/CIColorBlendMode.m
        src/CILuminosityBlendMode.m
        src/CISubtractBlendMode.m
        src/CIDivideBlendMode.m
        src/CILinearBurnBlendMode.m
        src/CILinearDodgeBlendMode.m
        src/CIVividLightBlendMode.m
        src/CILinearLightBlendMode.m
        src/CIPinLightBlendMode.m
        src/CIHardMixBlendMode.m
        src/CISmartBlackAndWhite.m
        src/CILanczosScaleTransform.m
        src/CIGaussianBlur.m
        src/CIGaussianBlurXY.m
        src/CICGSFilter.m
        src/CIFilter.m
        src/CINoiseReduction.m
        src/CIProSharpenEdges.m
        src/CIStraightenFilter.m
        src/CIBoxBlur.m
        src/CIBoxBlur3_7.m
        src/CISobelHV.m
        src/CIMorphologicalMax5Mono.m
        src/CIConfidenceThresholdProcessor.m
        src/CIConfidenceThreshold.m
        src/CIPortraitPrepareStage.m
        src/CIConfidenceMap.m
        src/CITextDetector.m
        src/CIPortraitFaceMask.m
        src/CIPortraitFaceMaskProcessorKernel.m
        src/FaceLandmarks.m
        src/ComputedFaceData.m
        src/CIEdgePreserveUpsampleFilter.m
        src/CIEdgePreserveUpsampleRGFilter.m
        src/CICheatBlur.m
        src/CIMaskToAlpha.m
        src/CIColorBalance.m
        src/CIBilateralGridHash.m
        src/CILabDeltaE.m
        src/CIFilterShape.m
        src/CISmartToneFilter.m
        src/CISmartColorFilter.m
        src/CIPlugInStandardFilter.m
        src/CIImageProcessorInOut.m
        src/CIImageProcessorOutput.m
        src/CIImageProcessorInput.m
        src/CIImageProcessorKernel.m
        src/CIOpacity.m
        src/CIFaceMaskApply.m
        src/CIFaceMaskCalculator.m
        src/CIFaceMaskKernel.m
        src/CIBicubicScaleTransform.m
        src/CISoftCubicUpsample.m
        src/CIDepthToDisparity.m
        src/CIDisparityToDepth.m
        src/CIDepthDisparityConverter.m
        src/CIDepthEffectMakeBlurMap.m
        src/CIDepthEffectApplyBlurMap.m
        src/CIDepthEffect.m
        src/CIDepthBlurEffect.m
        src/CIKaleidoscope.m
        src/CIMetalConverter.m
        src/CIPlugIn.m
        src/Function.m
        src/CIPointillize.m
        src/Polyline.m
        src/PolylinePair.m
        src/TopBottomRegion.m
        src/CIHoleDistortion.m
        src/CIRAWFilterImpl.m
        src/CILocalLightMapPrepare.m
        src/CILocalLightFilter.m
        src/CIConvolution.m
        src/CIBokehBlur.m
        src/CIDiscBlur.m
        src/CIRingBlur.m
        src/CIModTransition.m
        src/CIRedEyeCorrection.m
        src/CIRedEyeCorrections.m
        src/CISharpenLuminance.m
        src/CIPortraitSkinMask.m
        src/CIPortraitSkinMaskProcessor.m
        src/CIParallelogramTile.m
        src/CILenticularHaloGenerator.m
        src/CICopyMachineTransition.m
        src/CICircularWrap.m
        src/CIGVNode.m
        src/CIAreaHistogram.m
        src/CITemperatureAndTint.m
        src/CIWhitePointAdjust.m
        src/CIFalseColor.m
        src/CIVNFeature.m
        src/CIVNDetector.m
        src/CIVNFaceFeature.m
        src/CIVNFaceDetector.m
        src/CIVNRectFeature.m
        src/CIVNRectDetector.m
        src/CICheckerboardGenerator.m
        src/CIRandomGenerator.m
        src/CISpotLight.m
        src/CIConvolution3X3.m
        src/CIConvolution5X5.m
        src/CIConvolution7X7.m
        src/CIConvolution9Horizontal.m
        src/CIConvolution9Vertical.m
        src/CIDisparityRefinement.m
        src/CIRenderDestination.m
        src/CIRenderInfo.m
        src/CIRenderTask.m
        src/CISimpleTile.m
        src/CIAffineTile.m
        src/CIColorMonochrome.m
        src/CIAffineTransform.m
        src/CILinearBlur.m
        src/CIMotionBlur.m
        src/CIZoomBlur.m
        src/CIPassThroughSelectFrom3.m
        src/CIPassThroughFilter.m
        src/CIPassThroughColorFilter.m
        src/CIPassThroughWarpFilter.m
        src/CIPassThroughGeneralFilter.m
        src/CIPassThroughGeneralAltFilter.m
        src/CIPassThroughIntermediateFilter.m
        src/CIBilateralSolverCPU.m
        src/CIDisparitySmoothing.m
        src/CIDisparitySmoothingProcessor.m
        src/Rgon.m
        src/RgonStack.m
        src/CIBloom.m
        src/CIGloom.m
        src/CIPremultiply.m
        src/CIUnpremultiply.m
        src/CIVortexDistortion.m
        src/_CICompositeFilter.m
        src/CISourceOverCompositing.m
        src/CISourceInCompositing.m
        src/CISourceOutCompositing.m
        src/CISourceAtopCompositing.m
        src/CIAdditionCompositing.m
        src/CIMultiplyCompositing.m
        src/CIMinimumCompositing.m
        src/CIMaximumCompositing.m
        src/CIPlusDarkerCompositing.m
        src/CIPlusLighterCompositing.m
        src/AutoCropper.m
        src/CIEdgeWork.m
        src/CUIScaleClampFilter.m
        src/CUIInnerGlowOrShadowFilter.m
        src/CUIOuterGlowOrShadowFilter.m
        src/CUIShapeEffectBlur1.m
        src/CUIOuterBevelEmbossFilter.m
        src/CUIInnerBevelEmbossFilter.m
        src/CISkyAndGrassAdjust.m
        src/CIRedEyeRepair.m
        src/CIMedianFilter.m
        src/CIBumpDistortion.m
        src/CIBumpDistortionLinear.m
        src/CIFeature.m
        src/CIFaceFeature.m
        src/CIRectangleFeature.m
        src/CIQRCodeFeature.m
        src/CITextFeature.m
        src/CIBlurmapSmoothing.m
        src/CIPortraitBlurNoise.m
        src/CIPortraitBlurDirectionalBlur.m
        src/CIPortraitBlur.m
        src/CIPortraitBlurPreProcess.m
        src/CIIntegralImageKernelProcessor.m
        src/CIIntegralImage.m
        src/CIPortraitLocalContrast.m
        src/CIFilterGeneratorCIFilter.m
        src/CIFilterGeneratorConnection.m
        src/CIFilterGenerator.m
        src/CIRadialGradient.m
        src/CILinearGradient.m
        src/CISmoothLinearGradient.m
        src/CIGaussianGradient.m
        src/CIHueSaturationValueGradient.m
        src/CIVariableBoxBlur.m
        src/CIColorControls.m
        src/CIHueAdjust.m
        src/CIBilateralSolverGPU.m
        src/CIRectangleGenerator.m
        src/CICrop.m
        src/CIPhotoEffect.m
        src/CIPhotoEffectNoir.m
        src/CIPhotoEffectChrome.m
        src/CIPhotoEffectFade.m
        src/CIPhotoEffectInstant.m
        src/CIPhotoEffectMono.m
        src/CIPhotoEffectProcess.m
        src/CIPhotoEffectTonal.m
        src/CIPhotoEffectTransfer.m
        src/CIPhotoEffectStageMono.m
        src/CIEdges.m
        src/CIPortraitLightingSide.m
        src/CIPortraitLightingFront.m
        src/CIPortraitLightingStrobe.m
        src/CIPortraitLightingContour.m
        src/CIPortraitLightingSpot.m
        src/CIPortraitLightingNeckContour.m
        src/CICircleSplashDistortion.m
        src/CPUFaceMask.m
        src/CIHistogramDisplayFilter.m
        src/CIColorCube.m
        src/CIColorCubeWithColorSpace.m
        src/CIColorCubesMixedWithMask.m
        src/CIPortraitToothMask.m
        src/CIPortraitToothMaskProcessor.m
        src/CIMinimumComponent.m
        src/CIMaximumComponent.m
        src/CIDocumentEnhancer.m
        src/CIPaperWash.m
        src/CIAutoEnhanceFace.m
        src/CIVibrance.m
        src/CIImageAccumulator.m
        src/CIStretchCrop.m
        src/CINinePartStretched.m
        src/CINinePartTiled.m
        src/CILocalContrast.m
        src/_CIScreenFilter.m
        src/CIDotScreen.m
        src/CIHatchedScreen.m
        src/CILineScreen.m
        src/CICircularScreen.m
        src/CIColor.m
        src/CICrystallize.m
        src/CISepiaTone.m
        src/CIPageCurlTransition.m
        src/CIPageCurlWithShadowTransition.m
        src/CIFlashTransition.m
        src/CISRGBToneCurveToLinear.m
        src/CILinearToSRGBToneCurve.m
        src/CIFilterClassAttributes.m
        src/CIFilterClassCategories.m
        src/CIFilterClassDefaults.m
        src/CIFilterClassInfo.m
        src/CIEnhancementHistogram.m
        src/CIExposureAdjust.m
        src/CILumaMap.m
        src/CIXRay.m
        src/CIThermal.m
        src/CIStripesGenerator.m
        src/CIDisintegrateWithMaskTransition.m
        src/CIDisplacementDistortion.m
        src/CIStarShineGenerator.m
        src/CIRAWTemperatureAdjust.m
        src/CIRAWGamutMapping.m
        src/CILightTunnel.m
        src/CIBlendWithMask.m
        src/CIBlendWithRedMask.m
        src/CIBlendWithBlueMask.m
        src/CIBlendWithAlphaMask.m
        src/CIImage.m
        src/CIReedSolomon.m
        src/CIStretch.m
        src/CIGammaAdjust.m
        src/CIDroste.m
        src/CIRectangleDetector.m
        src/CIOpTile.m
        src/CIClamp.m
        src/CIAffineClamp.m
        src/CISwipeTransition.m
        src/CIPinchDistortion.m
        src/CGRenderer.m
        src/PDFRenderer.m
        src/PNGRenderer.m
        src/DOTRenderer.m
        src/CIPerspectiveTransformWithExtent.m
        src/CIPerspectiveTransform.m
        src/CIPerspectiveTile.m
        src/CIPerspectiveCorrection.m
        src/CIFaceBalance.m
        src/CIPhotoEffect3D.m
        src/CIPhotoEffect3DVivid.m
        src/CIPhotoEffect3DVividWarm.m
        src/CIPhotoEffect3DVividCool.m
        src/CIPhotoEffect3DDramatic.m
        src/CIPhotoEffect3DDramaticWarm.m
        src/CIPhotoEffect3DDramaticCool.m
        src/CIPhotoEffect3DSilverplate.m
        src/CIPhotoEffect3DCommercial.m
        src/CIPhotoEffect3DNoir.m
        src/CIBarcodeDetector.m
        src/CIDissolveTransition.m
        src/CIColorPolynomial.m
        src/CIColorCrossPolynomial.m
        src/CIKernel.m
        src/CIColorKernel.m
        src/CIWarpKernel.m
        src/CIBlendKernel.m
        src/CIAccordionFoldTransition.m
        src/CIMaskedVariableBlur.m
        src/LightingFacePoints.m
        src/CIBarcodeGenerator.m
        src/CICodeGenerator.m
        src/CIQRCodeGenerator.m
        src/CIAztecCodeGenerator.m
        src/CIPDF417BarcodeGenerator.m
        src/CICode128BarcodeGenerator.m
        src/CIRippleTransition.m
        src/CILensModelCalculatorNative.m
        src/CILensModelCalculator.m
        src/CILensModelApply.m
        src/CILensModelKernel.m
        src/CIToneCurve.m
        src/CIEnhancementCalculation.m
        src/constants.m

    DEPENDENCIES
        system
        objc
        Foundation
)
