#
# Name of project
#
PROJECT (Files)

#
# Add QT for includes
#
if(Qt6_FOUND)
    include_directories(${Qt6Core_INCLUDE_DIRS})
    include_directories(${Qt6Gui_INCLUDE_DIRS})
    include_directories(${Qt6Network_INCLUDE_DIRS})
endif()
if(Qt5_FOUND)
    include_directories(${Qt5Core_INCLUDE_DIRS})
    include_directories(${Qt5Gui_INCLUDE_DIRS})
    include_directories(${Qt5Network_INCLUDE_DIRS})
endif()

#
# With AUTOMOC, do not need to specify files
# that contain Q_OBJECT macro for Qt to process with 'moc'
# (meta-object compiler).
#
IF(WORKBENCH_USE_CMAKE_AUTOMOC)
    SET(CMAKE_AUTOMOC ON)
ELSE()
    SET(MOC_INPUT_HEADER_FILES
        DataFileEditorModel.h
        LabelSelectionItemModel.h
    )

    IF(Qt6_FOUND)
        QT6_WRAP_CPP(MOC_SOURCE_FILES ${MOC_INPUT_HEADER_FILES})
    ENDIF()
    IF(Qt5_FOUND)
        QT5_WRAP_CPP(MOC_SOURCE_FILES ${MOC_INPUT_HEADER_FILES})
    ENDIF()
ENDIF()

#
# Files Library
#
ADD_LIBRARY(Files
AffineFile.h
AffineSeriesFile.h
AnnotationFile.h
AnnotationFileXmlFormatBase.h
AnnotationFileXmlReader.h
AnnotationFileXmlWriter.h
AnnotationTextSubstitutionFile.h
Border.h
BorderException.h
BorderFile.h
BorderLengthHelper.h
BorderPointFromSearch.h
BorderTracingHelper.h
BrainordinateRegionOfInterest.h
CaretDataFile.h
CaretDataFileHelper.h
CaretDataFileSelectionModel.h
CaretMappableDataFile.h
CaretMappableDataFileAndMapSelectionModel.h
CaretMappableDataFileClusterFinder.h
CaretMappableDataFileLabelSelectionDelegate.h
CaretSparseFile.h
CaretVolumeExtension.h
ChartableLineSeriesBrainordinateInterface.h
ChartableLineSeriesInterface.h
ChartableLineSeriesRowColumnInterface.h
ChartableMatrixInterface.h
ChartableMatrixParcelInterface.h
ChartableMatrixSeriesInterface.h
ChartableTwoFileDelegate.h
ChartableTwoFileBaseChart.h
ChartableTwoFileHistogramChart.h
ChartableTwoFileLineLayerChart.h
ChartableTwoFileLineSeriesChart.h
ChartableTwoFileMatrixChart.h
CiftiBrainordinateDataSeriesFile.h
CiftiBrainordinateLabelFile.h
CiftiBrainordinateScalarFile.h
CiftiConnectivityMatrixDenseFile.h
CiftiConnectivityMatrixDenseDynamicFile.h
CiftiConnectivityMatrixDenseParcelFile.h
CiftiConnectivityMatrixParcelDynamicFile.h
CiftiConnectivityMatrixParcelFile.h
CiftiConnectivityMatrixParcelDenseFile.h
CiftiFiberOrientationFile.h
CiftiFiberTrajectoryFile.h
CiftiFiberTrajectoryMapFile.h
CiftiMappableDataFile.h
CiftiMappableConnectivityMatrixDataFile.h
CiftiParcelColoringModeEnum.h
CiftiParcelLabelFile.h
CiftiParcelReordering.h
CiftiParcelReorderingModel.h
CiftiParcelSeriesFile.h
CiftiParcelScalarFile.h
CiftiScalarDataSeriesFile.h
CommaSeparatedValuesFile.h
ConnectivityCorrelationTwo.h
ConnectivityCorrelationModeEnum.h
ConnectivityCorrelationSettings.h
ConnectivityDataLoaded.h
ControlPointFile.h
CziDistanceFile.h
CziImage.h
CziImageFile.h
CziImageLoaderBase.h
CziImageLoaderMultiResolution.h
CziImageResolutionChangeModeEnum.h
CziNonLinearTransform.h
CziPixelCoordSpaceEnum.h
CziUtilities.h
DataFileColorModulateSelector.h
DataFileEditorColumnContent.h
DataFileEditorItem.h
DataFileEditorItemTypeEnum.h
DataFileEditorModel.h
DingOntologyTermsFile.h
EventCaretDataFilesGet.h
EventCaretMappableDataFileMapsViewedInOverlays.h
EventCaretMappableDataFilesGet.h
EventChartMatrixParcelYokingValidation.h
EventFocusFileGetColor.h
EventGetDisplayedDataFiles.h
EventHistologySlicesFilesGet.h
EventMapYokingSelectMap.h
EventMapYokingValidation.h
EventMediaFilesGet.h
EventSurfaceColoringInvalidate.h
EventSurfaceFileGet.h
EventSurfaceStructuresValidGet.h
EventVolumeColoringInvalidate.h
Fiber.h
FiberOrientation.h
FiberOrientationColoringTypeEnum.h
FiberOrientationTrajectory.h
FiberTrajectoryColorModel.h
FiberTrajectoryMapProperties.h
FiberTrajectoryDisplayModeEnum.h
FileIdentificationAttributes.h
FileIdentificationDisplayModeEnum.h
FileIdentificationMapSelectionEnum.h
FilePathNamePrefixCompactor.h
FociFile.h
FociFileSaxReader.h
Focus.h
GeodesicHelper.h
GiftiTypeFile.h
GroupAndNameCheckStateEnum.h
GroupAndNameHierarchyGroup.h
GroupAndNameHierarchyItem.h
GroupAndNameHierarchyModel.h
GroupAndNameHierarchyName.h
GroupAndNameHierarchyUserInterface.h
HistologyCoordinate.h
HistologySlice.h
HistologySliceImage.h
HistologySlicesFile.h
HistologySlicesFileXmlStreamBase.h
HistologySlicesFileXmlStreamReader.h
ImageCaptureDimensionsModeEnum.h
ImageCaptureDialogSettings.h
ImageFile.h
ImageResolutionUnitsEnum.h
ImageSpatialUnitsEnum.h
LabelDrawingProperties.h
LabelDrawingTypeEnum.h
LabelFile.h
LabelSelectionItem.h
LabelSelectionItemModel.h
MapYokingGroupEnum.h
MediaDisplayCoordinateModeEnum.h
MediaFile.h
MediaFileChannelInfo.h
MediaFileTransforms.h
MetricDynamicConnectivityFile.h
MetricFile.h
MetricSmoothingObject.h
NodeAndVoxelColoring.h
OmeZarrImageFile.h
OxfordSparseThreeFile.h
PaletteFile.h
PixelCoordinate.h
PixelIndex.h
PixelLogicalIndex.h
RectangleTransform.h
RgbaFile.h
RibbonMappingHelper.h
SamplesColorModeEnum.h
SamplesFile.h
SceneDataFileInfo.h
SceneFile.h
SceneFileXmlStreamBase.h
SceneFileXmlStreamReader.h
SceneFileXmlStreamWriter.h
SignedDistanceHelper.h
SparseVolumeIndexer.h
SpecFile.h
SpecFileDataFileTypeGroup.h
SpecFileDataFile.h
SpecFileSaxReader.h
StudyMetaDataLink.h
StudyMetaDataLinkSet.h
StudyMetaDataLinkSetSaxReader.h
SurfaceFile.h
SurfacePlaneIntersectionToContour.h
SurfaceProjectedItem.h
SurfaceProjectedItemSaxReader.h
SurfaceProjection.h
SurfaceProjectionBarycentric.h
SurfaceProjectionVanEssen.h
SurfaceProjector.h
SurfaceProjectorException.h
SurfaceResamplingHelper.h
SurfaceResamplingMethodEnum.h
SurfaceTypeEnum.h
TextFile.h
TopologyHelper.h
VolumeDynamicConnectivityFile.h
VolumeEditingModeEnum.h
VolumeFile.h
VolumeFileEditorDelegate.h
VolumeFileVoxelColorizer.h
VolumeGraphicsPrimitiveManager.h
VolumeMapUndoCommand.h
VolumePaddingHelper.h
VolumePlaneIntersection.h
VolumeSliceProjectionTypeEnum.h
VolumeSpline.h
VolumeToImageMapping.h
VolumeVerticesEdgesFaces.h
VoxelInterpolationTypeEnum.h
VtkFileExporter.h
WarpfieldFile.h
XmlStreamReaderHelper.h
XmlStreamWriterHelper.h

${MOC_SOURCE_FILES}

AffineFile.cxx
AffineSeriesFile.cxx
AnnotationFile.cxx
AnnotationFileXmlFormatBase.cxx
AnnotationFileXmlReader.cxx
AnnotationFileXmlWriter.cxx
AnnotationTextSubstitutionFile.cxx
Border.cxx
BorderException.cxx
BorderFile.cxx
BorderLengthHelper.cxx
BorderTracingHelper.cxx
BrainordinateRegionOfInterest.cxx
CaretDataFile.cxx
CaretDataFileHelper.cxx
CaretDataFileSelectionModel.cxx
CaretMappableDataFile.cxx
CaretMappableDataFileAndMapSelectionModel.cxx
CaretMappableDataFileClusterFinder.cxx
CaretMappableDataFileLabelSelectionDelegate.cxx
CaretSparseFile.cxx
CaretVolumeExtension.cxx
ChartableLineSeriesInterface.cxx
ChartableMatrixInterface.cxx
ChartableTwoFileDelegate.cxx
ChartableTwoFileBaseChart.cxx
ChartableTwoFileHistogramChart.cxx
ChartableTwoFileLineLayerChart.cxx
ChartableTwoFileLineSeriesChart.cxx
ChartableTwoFileMatrixChart.cxx
CiftiBrainordinateDataSeriesFile.cxx
CiftiBrainordinateLabelFile.cxx
CiftiBrainordinateScalarFile.cxx
CiftiConnectivityMatrixDenseFile.cxx
CiftiConnectivityMatrixDenseDynamicFile.cxx
CiftiConnectivityMatrixDenseParcelFile.cxx
CiftiConnectivityMatrixParcelFile.cxx
CiftiConnectivityMatrixParcelDynamicFile.cxx
CiftiConnectivityMatrixParcelDenseFile.cxx
CiftiFiberOrientationFile.cxx
CiftiFiberTrajectoryFile.cxx
CiftiFiberTrajectoryMapFile.cxx
CiftiMappableDataFile.cxx
CiftiMappableConnectivityMatrixDataFile.cxx
CiftiParcelColoringModeEnum.cxx
CiftiParcelLabelFile.cxx
CiftiParcelReordering.cxx
CiftiParcelReorderingModel.cxx
CiftiParcelSeriesFile.cxx
CiftiParcelScalarFile.cxx
CiftiScalarDataSeriesFile.cxx
CommaSeparatedValuesFile.cxx
ConnectivityCorrelationTwo.cxx
ConnectivityCorrelationModeEnum.cxx
ConnectivityCorrelationSettings.cxx
ConnectivityDataLoaded.cxx
ControlPointFile.cxx
CziDistanceFile.cxx
CziImage.cxx
CziImageFile.cxx
CziImageLoaderBase.cxx
CziImageLoaderMultiResolution.cxx
CziImageResolutionChangeModeEnum.cxx
CziNonLinearTransform.cxx
CziPixelCoordSpaceEnum.cxx
CziUtilities.cxx
DataFileColorModulateSelector.cxx
DataFileEditorColumnContent.cxx
DataFileEditorItem.cxx
DataFileEditorItemTypeEnum.cxx
DataFileEditorModel.cxx
DingOntologyTermsFile.cxx
EventCaretDataFilesGet.cxx
EventCaretMappableDataFileMapsViewedInOverlays.cxx
EventCaretMappableDataFilesGet.cxx
EventChartMatrixParcelYokingValidation.cxx
EventFocusFileGetColor.cxx
EventGetDisplayedDataFiles.cxx
EventHistologySlicesFilesGet.cxx
EventMapYokingSelectMap.cxx
EventMapYokingValidation.cxx
EventMediaFilesGet.cxx
EventSurfaceColoringInvalidate.cxx
EventSurfaceFileGet.cxx
EventSurfaceStructuresValidGet.cxx
EventVolumeColoringInvalidate.cxx
Fiber.cxx
FiberOrientation.cxx
FiberOrientationColoringTypeEnum.cxx
FiberOrientationTrajectory.cxx
FiberTrajectoryColorModel.cxx
FiberTrajectoryDisplayModeEnum.cxx
FiberTrajectoryMapProperties.cxx
FileIdentificationAttributes.cxx
FileIdentificationDisplayModeEnum.cxx
FileIdentificationMapSelectionEnum.cxx
FilePathNamePrefixCompactor.cxx
FociFile.cxx
FociFileSaxReader.cxx
Focus.cxx
GeodesicHelper.cxx
GiftiTypeFile.cxx
GroupAndNameCheckStateEnum.cxx
GroupAndNameHierarchyGroup.cxx
GroupAndNameHierarchyItem.cxx
GroupAndNameHierarchyModel.cxx
GroupAndNameHierarchyName.cxx
HistologyCoordinate.cxx
HistologySlice.cxx
HistologySliceImage.cxx
HistologySlicesFile.cxx
HistologySlicesFileXmlStreamBase.cxx
HistologySlicesFileXmlStreamReader.cxx
ImageCaptureDimensionsModeEnum.cxx
ImageCaptureDialogSettings.cxx
ImageFile.cxx
ImageResolutionUnitsEnum.cxx
ImageSpatialUnitsEnum.cxx
LabelDrawingProperties.cxx
LabelDrawingTypeEnum.cxx
LabelFile.cxx
LabelSelectionItem.cxx
LabelSelectionItemModel.cxx
MapYokingGroupEnum.cxx
MediaDisplayCoordinateModeEnum.cxx
MediaFile.cxx
MediaFileChannelInfo.cxx
MediaFileTransforms.cxx
MetricDynamicConnectivityFile.cxx
MetricFile.cxx
MetricSmoothingObject.cxx
NodeAndVoxelColoring.cxx
OmeZarrImageFile.cxx
OxfordSparseThreeFile.cxx
PaletteFile.cxx
PixelCoordinate.cxx
PixelIndex.cxx
PixelLogicalIndex.cxx
RectangleTransform.cxx
RgbaFile.cxx
RibbonMappingHelper.cxx
SamplesColorModeEnum.cxx
SamplesFile.cxx
SceneDataFileInfo.cxx
SceneFile.cxx
SceneFileXmlStreamBase.cxx
SceneFileXmlStreamReader.cxx
SceneFileXmlStreamWriter.cxx
SignedDistanceHelper.cxx
SparseVolumeIndexer.cxx
SpecFile.cxx
SpecFileDataFileTypeGroup.cxx
SpecFileDataFile.cxx
SpecFileSaxReader.cxx
StudyMetaDataLink.cxx
StudyMetaDataLinkSet.cxx
StudyMetaDataLinkSetSaxReader.cxx
SurfaceFile.cxx
SurfacePlaneIntersectionToContour.cxx
SurfaceProjectedItem.cxx
SurfaceProjectedItemSaxReader.cxx
SurfaceProjection.cxx
SurfaceProjectionBarycentric.cxx
SurfaceProjectionVanEssen.cxx
SurfaceProjector.cxx
SurfaceProjectorException.cxx
SurfaceResamplingHelper.cxx
SurfaceResamplingMethodEnum.cxx
SurfaceTypeEnum.cxx
TextFile.cxx
TopologyHelper.cxx
VolumeDynamicConnectivityFile.cxx
VolumeEditingModeEnum.cxx
VolumeFile.cxx
VolumeFileEditorDelegate.cxx
VolumeFileVoxelColorizer.cxx
VolumeGraphicsPrimitiveManager.cxx
VolumeMapUndoCommand.cxx
VolumePaddingHelper.cxx
VolumePlaneIntersection.cxx
VolumeSliceProjectionTypeEnum.cxx
VolumeSpline.cxx
VolumeToImageMapping.cxx
VolumeVerticesEdgesFaces.cxx
VoxelInterpolationTypeEnum.cxx
VtkFileExporter.cxx
WarpfieldFile.cxx
XmlStreamReaderHelper.cxx
XmlStreamWriterHelper.cxx
)

TARGET_LINK_LIBRARIES(Files ${CARET_QT5_LINK})

#
# Find Headers
#
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/Annotations
${CMAKE_SOURCE_DIR}/Charting
${CMAKE_SOURCE_DIR}/CZIlib/CZI
${CMAKE_SOURCE_DIR}/Files
${CMAKE_SOURCE_DIR}/FilesBase
${CMAKE_SOURCE_DIR}/Graphics
${CMAKE_SOURCE_DIR}/Cifti
${CMAKE_SOURCE_DIR}/Palette
${CMAKE_SOURCE_DIR}/Gifti
${CMAKE_SOURCE_DIR}/Nifti
${CMAKE_SOURCE_DIR}/QxtCore
${CMAKE_SOURCE_DIR}/Scenes
${CMAKE_SOURCE_DIR}/Xml
${CMAKE_SOURCE_DIR}/Common
)

IF (${HAVE_OME_ZARR_Z5_FLAG})
    INCLUDE_DIRECTORIES(
        ${CMAKE_SOURCE_DIR}/OmeZarr
    )
ENDIF ()

