ADD_LIBRARY(JFJochScaleMerge
        SearchSpaceGroup.cpp
        SearchSpaceGroup.h
        TwinningAnalysis.cpp
        TwinningAnalysis.h
        CentreOfSymmetry.cpp
        CentreOfSymmetry.h
        AnisotropyAnalysis.cpp
        AnisotropyAnalysis.h
        Merge.cpp
        Merge.h
        ScaleOnTheFly.cpp
        ScaleOnTheFly.h
        CellPopulation.cpp
        CellPopulation.h
        StillsPartialityRefine.cpp
        StillsPartialityRefine.h
        RotationScaleMerge.cpp
        RotationScaleMerge.h
        ResolutionCutoff.cpp
        ResolutionCutoff.h
        HKLKey.cpp
        HKLKey.h
        RfreeFlags.cpp
        RfreeFlags.h
        FrenchWilson.cpp
        FrenchWilson.h
        SphericalHarmonicSurface.cpp
        SphericalHarmonicSurface.h
        ReindexAmbiguity.cpp
        ReindexAmbiguity.h
        ReferenceFreeReindex.cpp
        ReferenceFreeReindex.h
        CrystalSetting.cpp
        CrystalSetting.h
        TranslationalNCS.cpp
        TranslationalNCS.h
        ScalingResult.h
        ScalingResult.cpp
        WilsonOutliers.cpp
        WilsonOutliers.h
        ErrorModel.cpp
        ErrorModel.h
        AndersonMixing.cpp
        AndersonMixing.h
        SublatticeRelabel.cpp
        SublatticeRelabel.h
        IceRingVerdict.cpp
        IceRingVerdict.h)
TARGET_LINK_LIBRARIES(JFJochScaleMerge Ceres::ceres Eigen3::Eigen JFJochCommon JFJochBraggIntegration fftw3f)

IF (JFJOCH_CUDA_AVAILABLE)
    TARGET_SOURCES(JFJochScaleMerge PRIVATE ../indexing/CUDAMemHelpers.h
            RotationScaleMergeGPU.cu RotationScaleMergeGPU.h
            WilsonOutliersGPU.cu WilsonOutliersGPU.h
            PairSortGPU.cu PairSortGPU.h
            ErrorModelGPU.cu ErrorModelGPU.h)
ENDIF()