#
# SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier, <caulier dot gilles at gmail dot com>
#
# SPDX-License-Identifier: BSD-3-Clause
#

APPLY_COMMON_POLICIES()

include_directories($<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Xml,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Network,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Gui,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Widgets,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Core,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Svg,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:Qt${QT_VERSION_MAJOR}::Concurrent,INTERFACE_INCLUDE_DIRECTORIES>

                    $<TARGET_PROPERTY:KF${QT_VERSION_MAJOR}::I18n,INTERFACE_INCLUDE_DIRECTORIES>
                    $<TARGET_PROPERTY:KF${QT_VERSION_MAJOR}::ConfigCore,INTERFACE_INCLUDE_DIRECTORIES>
)

set(marblewidget_SRCS

    astro/astrolib.cpp
    astro/astr2lib.cpp
    astro/attlib.cpp
    astro/eclsolar.cpp
    astro/planetarySats.cpp
    astro/solarsystem.cpp
    astro/Planet.cpp
    astro/PlanetFactory.cpp
    astro/SunLocator.cpp

    blendings/Blending.cpp
    blendings/BlendingAlgorithms.cpp
    blendings/BlendingFactory.cpp
    blendings/SunLightBlending.cpp

    core/AbstractFloatItem.cpp
    core/AbstractWorkerThread.cpp
    core/DialogConfigurationInterface.cpp
    core/EquirectScanlineTextureMapper.cpp
    core/ImageF.cpp
    core/GenericScanlineTextureMapper.cpp
    core/MarbleAbstractPresenter.cpp
    core/MarbleClock.cpp
    core/MarbleColors.cpp
    core/MarbleDirs.cpp
    core/MarbleGlobal.cpp
    core/MarbleInputHandler.cpp
    core/MarbleLocale.cpp
    core/MarblePhysics.cpp
    core/MarbleMap.cpp
    core/MarbleWidget.cpp
    core/MarbleWidgetInputHandler.cpp
    core/MarbleWidgetPopupMenu.cpp
    core/MathHelper.cpp
    core/MercatorScanlineTextureMapper.cpp
    core/Quaternion.cpp
    core/RenderState.cpp
    core/RunnerTask.cpp
    core/SphericalScanlineTextureMapper.cpp
    core/ScanlineTextureMapperContext.cpp
    core/StyleBuilder.cpp
    core/TemplateDocument.cpp
    core/TextureColorizer.cpp
    core/TextureMapperInterface.cpp
    core/ViewParams.cpp
    core/ViewportParams.cpp

    geodata/data/LonLatParser.cpp
    geodata/data/GeoDataRegion.cpp
    geodata/data/GeoDataUpdate.cpp
    geodata/data/GeoDataViewVolume.cpp
    geodata/data/GeoDataHotSpot.cpp
    geodata/data/GeoDataAlias.cpp
    geodata/data/GeoDataImagePyramid.cpp
    geodata/data/GeoDataGeometry.cpp
    geodata/data/GeoDataPoint.cpp
    geodata/data/GeoDataPhotoOverlay.cpp
    geodata/data/GeoDataTimePrimitive.cpp
    geodata/data/GeoDataVec2.cpp
    geodata/data/GeoDataBalloonStyle.cpp
    geodata/data/GeoDataNetworkLink.cpp
    geodata/data/GeoDataLineStyle.cpp
    geodata/data/GeoDataScreenOverlay.cpp
    geodata/data/GeoDataContainer.cpp
    geodata/data/GeoDataItemIcon.cpp
    geodata/data/GeoDataTour.cpp
    geodata/data/GeoDataTourPrimitive.cpp
    geodata/data/GeoDataOverlay.cpp
    geodata/data/GeoDataListStyle.cpp
    geodata/data/GeoDataFlyTo.cpp
    geodata/data/GeoDataMultiTrack.cpp
    geodata/data/GeoDataSnippet.cpp
    geodata/data/GeoDataStyle.cpp
    geodata/data/GeoDataLinearRing.cpp
    geodata/data/GeoDataFolder.cpp
    geodata/data/GeoDataDocument.cpp
    geodata/data/GeoDataLatLonAltBox.cpp
    geodata/data/GeoDataStyleSelector.cpp
    geodata/data/GeoDataLod.cpp
    geodata/data/GeoDataColorStyle.cpp
    geodata/data/GeoDataData.cpp
    geodata/data/GeoDataLocation.cpp
    geodata/data/GeoDataPolygon.cpp
    geodata/data/GeoDataLineString.cpp
    geodata/data/GeoDataOrientation.cpp
    geodata/data/GeoDataLookAt.cpp
    geodata/data/GeoDataPlacemark.cpp
    geodata/data/GeoDataPlaylist.cpp
    geodata/data/GeoDataPolyStyle.cpp
    geodata/data/GeoDataModel.cpp
    geodata/data/GeoDataLink.cpp
    geodata/data/GeoDataIconStyle.cpp
    geodata/data/GeoDataAbstractView.cpp
    geodata/data/GeoDataStyleMap.cpp
    geodata/data/GeoDataExtendedData.cpp
    geodata/data/GeoDataLabelStyle.cpp
    geodata/data/GeoDataTimeSpan.cpp
    geodata/data/GeoDataMultiGeometry.cpp
    geodata/data/GeoDataRelation.cpp
    geodata/data/GeoDataSimpleArrayData.cpp
    geodata/data/GeoDataObject.cpp
    geodata/data/GeoDataLatLonQuad.cpp
    geodata/data/GeoDataCoordinates.cpp
    geodata/data/GeoDataTrack.cpp
    geodata/data/GeoDataNetworkLinkControl.cpp
    geodata/data/GeoDataFeature.cpp
    geodata/data/GeoDataCamera.cpp
    geodata/data/GeoDataTimeStamp.cpp
    geodata/data/GeoDataGroundOverlay.cpp
    geodata/data/GeoDataLatLonBox.cpp
    geodata/data/GeoDataScale.cpp
    geodata/data/GeoDataResourceMap.cpp
    geodata/data/GeoDataTourControl.cpp
    geodata/data/GeoDataAccuracy.cpp
    geodata/data/GeoDataWait.cpp
    geodata/data/GeoDataSoundCue.cpp
    geodata/data/GeoDataAnimatedUpdate.cpp
    geodata/data/GeoDataSchema.cpp
    geodata/data/GeoDataSimpleField.cpp
    geodata/data/GeoDataChange.cpp
    geodata/data/GeoDataCreate.cpp
    geodata/data/GeoDataDelete.cpp
    geodata/data/GeoDataSchemaData.cpp
    geodata/data/GeoDataSimpleData.cpp
    geodata/data/GeoDataBuilding.cpp
    geodata/scene/GeoSceneAbstractTileProjection.cpp
    geodata/scene/GeoSceneMercatorTileProjection.cpp
    geodata/scene/GeoSceneEquirectTileProjection.cpp
    geodata/scene/GeoSceneIcon.cpp
    geodata/scene/GeoSceneTileDataset.cpp
    geodata/scene/GeoSceneVectorTileDataset.cpp
    geodata/scene/GeoSceneGeodata.cpp
    geodata/scene/GeoSceneGroup.cpp
    geodata/scene/GeoSceneZoom.cpp
    geodata/scene/GeoSceneLegend.cpp
    geodata/scene/GeoSceneTextureTileDataset.cpp
    geodata/scene/GeoSceneAbstractDataset.cpp
    geodata/scene/GeoSceneItem.cpp
    geodata/scene/GeoSceneLicense.cpp
    geodata/scene/GeoSceneSection.cpp
    geodata/scene/GeoSceneFilter.cpp
    geodata/scene/GeoSceneHead.cpp
    geodata/scene/GeoSceneVector.cpp
    geodata/scene/GeoSceneSettings.cpp
    geodata/scene/GeoSceneDocument.cpp
    geodata/scene/GeoSceneMap.cpp
    geodata/scene/GeoSceneProperty.cpp
    geodata/scene/GeoSceneLayer.cpp
    geodata/scene/GeoScenePalette.cpp
    geodata/handlers/dgml/DgmlFilterTagHandler.h
    geodata/handlers/dgml/DgmlHeadingTagHandler.h
    geodata/handlers/dgml/DgmlDocumentTagHandler.cpp
    geodata/handlers/dgml/DgmlMinimumTagHandler.cpp
    geodata/handlers/dgml/DgmlHeadTagHandler.h
    geodata/handlers/dgml/DgmlLayerTagHandler.cpp
    geodata/handlers/dgml/DgmlMinimumTagHandler.h
    geodata/handlers/dgml/DgmlTargetTagHandler.cpp
    geodata/handlers/dgml/DgmlSourceFileTagHandler.h
    geodata/handlers/dgml/DgmlSourceFileTagHandler.cpp
    geodata/handlers/dgml/DgmlGeodataTagHandler.h
    geodata/handlers/dgml/DgmlDownloadPolicyTagHandler.h
    geodata/handlers/dgml/DgmlProjectionTagHandler.cpp
    geodata/handlers/dgml/DgmlLegendTagHandler.cpp
    geodata/handlers/dgml/DgmlTargetTagHandler.h
    geodata/handlers/dgml/DgmlAuxillaryDictionary.cpp
    geodata/handlers/dgml/DgmlGeodataTagHandler.cpp
    geodata/handlers/dgml/DgmlBlendingTagHandler.h
    geodata/handlers/dgml/DgmlSourceDirTagHandler.cpp
    geodata/handlers/dgml/DgmlValueTagHandler.h
    geodata/handlers/dgml/DgmlMapTagHandler.h
    geodata/handlers/dgml/DgmlPropertyTagHandler.h
    geodata/handlers/dgml/DgmlAttributeDictionary.h
    geodata/handlers/dgml/DgmlThemeTagHandler.cpp
    geodata/handlers/dgml/DgmlInstallMapTagHandler.h
    geodata/handlers/dgml/DgmlPropertyTagHandler.cpp
    geodata/handlers/dgml/DgmlAvailableTagHandler.h
    geodata/handlers/dgml/DgmlMaximumTagHandler.h
    geodata/handlers/dgml/DgmlHeadTagHandler.cpp
    geodata/handlers/dgml/DgmlLegendTagHandler.h
    geodata/handlers/dgml/DgmlProjectionTagHandler.h
    geodata/handlers/dgml/DgmlAttributeDictionary.cpp
    geodata/handlers/dgml/DgmlInstallMapTagHandler.cpp
    geodata/handlers/dgml/DgmlVectorTagHandler.h
    geodata/handlers/dgml/DgmlDiscreteTagHandler.cpp
    geodata/handlers/dgml/DgmlNameTagHandler.cpp
    geodata/handlers/dgml/DgmlLicenseTagHandler.h
    geodata/handlers/dgml/DgmlAvailableTagHandler.cpp
    geodata/handlers/dgml/DgmlStorageLayoutTagHandler.h
    geodata/handlers/dgml/DgmlThemeTagHandler.h
    geodata/handlers/dgml/DgmlSettingsTagHandler.h
    geodata/handlers/dgml/DgmlDescriptionTagHandler.h
    geodata/handlers/dgml/DgmlCenterTagHandler.h
    geodata/handlers/dgml/DgmlBrushTagHandler.cpp
    geodata/handlers/dgml/DgmlSectionTagHandler.h
    geodata/handlers/dgml/DgmlTextureTagHandler.h
    geodata/handlers/dgml/DgmlDownloadUrlTagHandler.cpp
    geodata/handlers/dgml/DgmlBlendingTagHandler.cpp
    geodata/handlers/dgml/DgmlBrushTagHandler.h
    geodata/handlers/dgml/DgmlZoomTagHandler.h
    geodata/handlers/dgml/DgmlVectorTagHandler.cpp
    geodata/handlers/dgml/DgmlDiscreteTagHandler.h
    geodata/handlers/dgml/DgmlMapTagHandler.cpp
    geodata/handlers/dgml/DgmlVectortileTagHandler.cpp
    geodata/handlers/dgml/DgmlVisibleTagHandler.cpp
    geodata/handlers/dgml/DgmlHeadingTagHandler.cpp
    geodata/handlers/dgml/DgmlTileSizeTagHandler.h
    geodata/handlers/dgml/DgmlPenTagHandler.h
    geodata/handlers/dgml/DgmlZoomTagHandler.cpp
    geodata/handlers/dgml/DgmlTileSizeTagHandler.cpp
    geodata/handlers/dgml/DgmlTextureTagHandler.cpp
    geodata/handlers/dgml/DgmlPenTagHandler.cpp
    geodata/handlers/dgml/DgmlCenterTagHandler.cpp
    geodata/handlers/dgml/DgmlDescriptionTagHandler.cpp
    geodata/handlers/dgml/DgmlElementDictionary.h
    geodata/handlers/dgml/DgmlIconTagHandler.cpp
    geodata/handlers/dgml/DgmlValueTagHandler.cpp
    geodata/handlers/dgml/DgmlLicenseTagHandler.cpp
    geodata/handlers/dgml/DgmlTextTagHandler.cpp
    geodata/handlers/dgml/DgmlMaximumTagHandler.cpp
    geodata/handlers/dgml/DgmlPaletteTagHandler.cpp
    geodata/handlers/dgml/DgmlGroupTagHandler.cpp
    geodata/handlers/dgml/DgmlDownloadUrlTagHandler.h
    geodata/handlers/dgml/DgmlItemTagHandler.h
    geodata/handlers/dgml/DgmlSourceDirTagHandler.h
    geodata/handlers/dgml/DgmlGroupTagHandler.h
    geodata/handlers/dgml/DgmlStorageLayoutTagHandler.cpp
    geodata/handlers/dgml/DgmlTextTagHandler.h
    geodata/handlers/dgml/DgmlFilterTagHandler.cpp
    geodata/handlers/dgml/DgmlVisibleTagHandler.h
    geodata/handlers/dgml/DgmlSectionTagHandler.cpp
    geodata/handlers/dgml/DgmlDownloadPolicyTagHandler.cpp
    geodata/handlers/dgml/DgmlIconTagHandler.h
    geodata/handlers/dgml/DgmlNameTagHandler.h
    geodata/handlers/dgml/DgmlDocumentTagHandler.h
    geodata/handlers/dgml/DgmlPaletteTagHandler.h
    geodata/handlers/dgml/DgmlVectortileTagHandler.h
    geodata/handlers/dgml/DgmlElementDictionary.cpp
    geodata/handlers/dgml/DgmlItemTagHandler.cpp
    geodata/handlers/dgml/DgmlSettingsTagHandler.cpp
    geodata/handlers/dgml/DgmlAuxillaryDictionary.h
    geodata/handlers/dgml/DgmlLayerTagHandler.h
    geodata/handlers/dgml/DgmlRenderOrderTagHandler.cpp
    geodata/handlers/dgml/DgmlRenderOrderTagHandler.h
    geodata/writers/dgml/DgmlSectionTagWriter.h
    geodata/writers/dgml/DgmlSettingsTagWriter.cpp
    geodata/writers/dgml/DgmlTagWriter.h
    geodata/writers/dgml/DgmlItemTagWriter.h
    geodata/writers/dgml/DgmlSettingsTagWriter.h
    geodata/writers/dgml/DgmlMapTagWriter.cpp
    geodata/writers/dgml/DgmlSectionTagWriter.cpp
    geodata/writers/dgml/DgmlGeodataTagWriter.h
    geodata/writers/dgml/DgmlVectorTagWriter.h
    geodata/writers/dgml/DgmlGeodataTagWriter.cpp
    geodata/writers/dgml/DgmlLayerTagWriter.cpp
    geodata/writers/dgml/DgmlDocumentTagWriter.cpp
    geodata/writers/dgml/DgmlTextureTagWriter.h
    geodata/writers/dgml/DgmlMapTagWriter.h
    geodata/writers/dgml/DgmlVectorTagWriter.cpp
    geodata/writers/dgml/DgmlDocumentTagWriter.h
    geodata/writers/dgml/DgmlHeadTagWriter.cpp
    geodata/writers/dgml/DgmlLegendTagWriter.cpp
    geodata/writers/dgml/DgmlLegendTagWriter.h
    geodata/writers/dgml/DgmlHeadTagWriter.h
    geodata/writers/dgml/DgmlTextureTagWriter.cpp
    geodata/writers/dgml/DgmlTagWriter.cpp
    geodata/writers/dgml/DgmlLayerTagWriter.h
    geodata/writers/dgml/DgmlItemTagWriter.cpp
    geodata/graphicsitem/GeoLineStringGraphicsItem.cpp
    geodata/graphicsitem/GeoPhotoGraphicsItem.cpp
    geodata/graphicsitem/GeoPolygonGraphicsItem.cpp
    geodata/graphicsitem/AbstractGeoPolygonGraphicsItem.cpp
    geodata/graphicsitem/BuildingGraphicsItem.cpp
    geodata/graphicsitem/GeoTrackGraphicsItem.cpp
    geodata/graphicsitem/ScreenOverlayGraphicsItem.cpp
    geodata/graphicsitem/ServerLayout.cpp
    geodata/handlers/kml/KmlAddressTagHandler.cpp
    geodata/handlers/kml/KmlAltitudeModeTagHandler.cpp
    geodata/handlers/kml/KmlAltitudeTagHandler.cpp
    geodata/handlers/kml/KmlAnimatedUpdateTagHandler.cpp
    geodata/handlers/kml/KmlAreaTagHandler.cpp
    geodata/handlers/kml/KmlBalloonStyleTagHandler.cpp
    geodata/handlers/kml/KmlBeginTagHandler.cpp
    geodata/handlers/kml/KmlBgColorTagHandler.cpp
    geodata/handlers/kml/KmlCameraTagHandler.cpp
    geodata/handlers/kml/KmlChangeTagHandler.cpp
    geodata/handlers/kml/KmlColorModeTagHandler.cpp
    geodata/handlers/kml/KmlColorTagHandler.cpp
    geodata/handlers/kml/KmlCoordinatesTagHandler.cpp
    geodata/handlers/kml/KmlCountrycodeTagHandler.cpp
    geodata/handlers/kml/KmlCountryNameCodeTagHandler.cpp
    geodata/handlers/kml/KmlDataTagHandler.cpp
    geodata/handlers/kml/KmlDescriptionTagHandler.cpp
    geodata/handlers/kml/KmlDisplayModeTagHandler.cpp
    geodata/handlers/kml/KmlDisplayNameTagHandler.cpp
    geodata/handlers/kml/KmlDocumentTagHandler.cpp
    geodata/handlers/kml/KmlDurationTagHandler.cpp
    geodata/handlers/kml/KmldrawOrderTagHandler.cpp
    geodata/handlers/kml/KmlEastTagHandler.cpp
    geodata/handlers/kml/KmlElementDictionary.cpp
    geodata/handlers/kml/KmlEndTagHandler.cpp
    geodata/handlers/kml/KmlExtendedDataTagHandler.cpp
    geodata/handlers/kml/KmlExtrudeTagHandler.cpp
    geodata/handlers/kml/KmlFillTagHandler.cpp
    geodata/handlers/kml/KmlFlyToModeTagHandler.cpp
    geodata/handlers/kml/KmlFlyToTagHandler.cpp
    geodata/handlers/kml/KmlFlyToViewTagHandler.cpp
    geodata/handlers/kml/KmlFolderTagHandler.cpp
    geodata/handlers/kml/KmlGroundOverlayTagHandler.cpp
    geodata/handlers/kml/KmlGxAltitudeModeTagHandler.cpp
    geodata/handlers/kml/KmlGxTimeSpanTagHandler.cpp
    geodata/handlers/kml/KmlGxTimeStampTagHandler.cpp
    geodata/handlers/kml/KmlHeadingTagHandler.cpp
    geodata/handlers/kml/KmlHotSpotTagHandler.cpp
    geodata/handlers/kml/KmlHrefTagHandler.cpp
    geodata/handlers/kml/KmlHttpQueryTagHandler.cpp
    geodata/handlers/kml/KmlIconStyleTagHandler.cpp
    geodata/handlers/kml/KmlIconTagHandler.cpp
    geodata/handlers/kml/KmlInnerBoundaryIsTagHandler.cpp
    geodata/handlers/kml/KmlItemIconTagHandler.cpp
    geodata/handlers/kml/KmlKeyTagHandler.cpp
    geodata/handlers/kml/KmlLabelStyleTagHandler.cpp
    geodata/handlers/kml/KmlLatitudeTagHandler.cpp
    geodata/handlers/kml/KmlLatLonAltBoxTagHandler.cpp
    geodata/handlers/kml/KmlLatLonBoxTagHandler.cpp
    geodata/handlers/kml/KmlLatLonQuadTagHandler.cpp
    geodata/handlers/kml/KmlLinearRingTagHandler.cpp
    geodata/handlers/kml/KmlLineStringTagHandler.cpp
    geodata/handlers/kml/KmlLineStyleTagHandler.cpp
    geodata/handlers/kml/KmlLinkTagHandler.cpp
    geodata/handlers/kml/KmlListItemTypeTagHandler.cpp
    geodata/handlers/kml/KmlListStyleTagHandler.cpp
    geodata/handlers/kml/KmlLodTagHandler.cpp
    geodata/handlers/kml/KmlLongitudeTagHandler.cpp
    geodata/handlers/kml/KmlLookAtTagHandler.cpp
    geodata/handlers/kml/KmlMarblePlacemarkTagHandler.cpp
    geodata/handlers/kml/KmlMaxAltitudeTagHandler.cpp
    geodata/handlers/kml/KmlMaxFadeExtentTagHandler.cpp
    geodata/handlers/kml/KmlMaxLodPixelsTagHandler.cpp
    geodata/handlers/kml/KmlMinAltitudeTagHandler.cpp
    geodata/handlers/kml/KmlMinFadeExtentTagHandler.cpp
    geodata/handlers/kml/KmlMinLodPixelsTagHandler.cpp
    geodata/handlers/kml/KmlModelTagHandler.cpp
    geodata/handlers/kml/KmlMultiGeometryTagHandler.cpp
    geodata/handlers/kml/KmlMultiTrackTagHandler.cpp
    geodata/handlers/kml/KmlMxSizeTagHandler.cpp
    geodata/handlers/kml/KmlNameTagHandler.cpp
    geodata/handlers/kml/KmlNetworkLinkTagHandler.cpp
    geodata/handlers/kml/KmlNorthTagHandler.cpp
    geodata/handlers/kml/KmlObjectTagHandler.cpp
    geodata/handlers/kml/KmlOpenTagHandler.cpp
    geodata/handlers/kml/KmlOuterBoundaryIsTagHandler.cpp
    geodata/handlers/kml/KmlOutlineTagHandler.cpp
    geodata/handlers/kml/KmlOverlayXYTagHandler.cpp
    geodata/handlers/kml/KmlPairTagHandler.cpp
    geodata/handlers/kml/KmlPhotoOverlayTagHandler.cpp
    geodata/handlers/kml/KmlPlacemarkTagHandler.cpp
    geodata/handlers/kml/KmlPlaylistTagHandler.cpp
    geodata/handlers/kml/KmlPointTagHandler.cpp
    geodata/handlers/kml/KmlPolygonTagHandler.cpp
    geodata/handlers/kml/KmlPolyStyleTagHandler.cpp
    geodata/handlers/kml/KmlPopTagHandler.cpp
    geodata/handlers/kml/KmlRangeTagHandler.cpp
    geodata/handlers/kml/KmlRefreshIntervalTagHandler.cpp
    geodata/handlers/kml/KmlRefreshModeTagHandler.cpp
    geodata/handlers/kml/KmlRefreshVisibilityTagHandler.cpp
    geodata/handlers/kml/KmlRegionTagHandler.cpp
    geodata/handlers/kml/KmlRoleTagHandler.cpp
    geodata/handlers/kml/KmlRollTagHandler.cpp
    geodata/handlers/kml/KmlRotationTagHandler.cpp
    geodata/handlers/kml/KmlRotationXYTagHandler.cpp
    geodata/handlers/kml/Kml_scaleTagHandler.cpp
    geodata/handlers/kml/KmlSchemaDataTagHandler.cpp
    geodata/handlers/kml/KmlSchemaTagHandler.cpp
    geodata/handlers/kml/KmlScreenOverlayTagHandler.cpp
    geodata/handlers/kml/KmlScreenXYTagHandler.cpp
    geodata/handlers/kml/KmlSimpleArrayDataTagHandler.cpp
    geodata/handlers/kml/KmlSimpleDataTagHandler.cpp
    geodata/handlers/kml/KmlSimpleFieldTagHandler.cpp
    geodata/handlers/kml/KmlSizeTagHandler.cpp
    geodata/handlers/kml/KmlSouthTagHandler.cpp
    geodata/handlers/kml/KmlStateTagHandler.cpp
    geodata/handlers/kml/KmlStyleMapTagHandler.cpp
    geodata/handlers/kml/KmlStyleTagHandler.cpp
    geodata/handlers/kml/KmlStyleUrlTagHandler.cpp
    geodata/handlers/kml/KmlTessellateTagHandler.cpp
    geodata/handlers/kml/KmlTextColorTagHandler.cpp
    geodata/handlers/kml/KmlTextTagHandler.cpp
    geodata/handlers/kml/KmlTiltTagHandler.cpp
    geodata/handlers/kml/KmlTimeSpanTagHandler.cpp
    geodata/handlers/kml/KmlTimeStampTagHandler.cpp
    geodata/handlers/kml/KmlTourTagHandler.cpp
    geodata/handlers/kml/KmlTourControlTagHandler.cpp
    geodata/handlers/kml/KmlTrackTagHandler.cpp
    geodata/handlers/kml/KmlValueTagHandler.cpp
    geodata/handlers/kml/KmlViewBoundScaleTagHandler.cpp
    geodata/handlers/kml/KmlVisibilityTagHandler.cpp
    geodata/handlers/kml/KmlWaitTagHandler.cpp
    geodata/handlers/kml/KmlWestTagHandler.cpp
    geodata/handlers/kml/KmlWhenTagHandler.cpp
    geodata/handlers/kml/KmlWidthTagHandler.cpp
    geodata/handlers/kml/KmlViewFormatTagHandler.cpp
    geodata/handlers/kml/KmlViewRefreshModeTagHandler.cpp
    geodata/handlers/kml/KmlViewRefreshTimeTagHandler.cpp
    geodata/handlers/kml/KmlViewVolumeTagHandler.cpp
    geodata/handlers/kml/KmlLeftFovTagHandler.cpp
    geodata/handlers/kml/KmlRightFovTagHandler.cpp
    geodata/handlers/kml/KmlBottomFovTagHandler.cpp
    geodata/handlers/kml/KmlTopFovTagHandler.cpp
    geodata/handlers/kml/KmlNearTagHandler.cpp
    geodata/handlers/kml/KmlImagePyramidTagHandler.cpp
    geodata/handlers/kml/KmlTileSizeTagHandler.cpp
    geodata/handlers/kml/KmlMaxHeightTagHandler.cpp
    geodata/handlers/kml/KmlMaxWidthTagHandler.cpp
    geodata/handlers/kml/KmlGridOriginTagHandler.cpp
    geodata/handlers/kml/KmlShapeTagHandler.cpp
    geodata/handlers/kml/KmlMinRefreshPeriodTagHandler.cpp
    geodata/handlers/kml/KmlMaxSessionLengthTagHandler.cpp
    geodata/handlers/kml/KmlCookieTagHandler.cpp
    geodata/handlers/kml/KmlMessageTagHandler.cpp
    geodata/handlers/kml/KmlLinkNameTagHandler.cpp
    geodata/handlers/kml/KmlLinkDescriptionTagHandler.cpp
    geodata/handlers/kml/KmlLinkSnippetTagHandler.cpp
    geodata/handlers/kml/KmlSnippetTagHandler.cpp
    geodata/handlers/kml/KmlExpiresTagHandler.cpp
    geodata/handlers/kml/KmlUpdateTagHandler.cpp
    geodata/handlers/kml/KmlNetworkLinkControlTagHandler.cpp
    geodata/handlers/kml/KmlplayModeTagHandler.cpp
    geodata/handlers/kml/KmlOrientationTagHandler.cpp
    geodata/handlers/kml/KmlScaleTagHandler.cpp
    geodata/handlers/kml/KmlXTagHandler.cpp
    geodata/handlers/kml/KmlYTagHandler.cpp
    geodata/handlers/kml/KmlZTagHandler.cpp
    geodata/handlers/kml/KmlLocationTagHandler.cpp
    geodata/handlers/kml/KmlResourceMapTagHandler.cpp
    geodata/handlers/kml/KmlAliasTagHandler.cpp
    geodata/handlers/kml/KmlSourceHrefTagHandler.cpp
    geodata/handlers/kml/KmlTargetHrefTagHandler.cpp
    geodata/handlers/kml/KmlSoundCueTagHandler.cpp
    geodata/handlers/kml/KmldelayedStartTagHandler.cpp
    geodata/handlers/kml/KmlBalloonVisibilityTagHandler.cpp
    geodata/handlers/kml/KmlCreateTagHandler.cpp
    geodata/handlers/kml/KmlDeleteTagHandler.cpp
    geodata/handlers/kml/KmlOsmPlacemarkDataTagHandler.cpp
    geodata/handlers/kml/KmlTagTagHandler.cpp
    geodata/handlers/kml/KmlMemberTagHandler.cpp
    geodata/handlers/kml/KmlNdTagHandler.cpp
    geodata/writers/kml/KmlAnimatedUpdateTagWriter.cpp
    geodata/writers/kml/KmlBalloonStyleTagWriter.cpp
    geodata/writers/kml/KmlCameraTagWriter.cpp
    geodata/writers/kml/KmlColorStyleTagWriter.cpp
    geodata/writers/kml/KmlDataTagWriter.cpp
    geodata/writers/kml/KmlDocumentTagWriter.cpp
    geodata/writers/kml/KmlExtendedDataTagWriter.cpp
    geodata/writers/kml/KmlFeatureTagWriter.cpp
    geodata/writers/kml/KmlFolderTagWriter.cpp
    geodata/writers/kml/KmlFlyToTagWriter.cpp
    geodata/writers/kml/KmlGroundOverlayWriter.cpp
    geodata/writers/kml/KmlIconStyleTagWriter.cpp
    geodata/writers/kml/KmlLatLonAltBoxWriter.cpp
    geodata/writers/kml/KmlLatLonBoxWriter.cpp
    geodata/writers/kml/KmlLatLonQuadWriter.cpp
    geodata/writers/kml/KmlLabelStyleTagWriter.cpp
    geodata/writers/kml/KmlLinearRingTagWriter.cpp
    geodata/writers/kml/KmlLineStringTagWriter.cpp
    geodata/writers/kml/KmlLineStyleTagWriter.cpp
    geodata/writers/kml/KmlLinkTagWriter.cpp
    geodata/writers/kml/KmlListStyleTagWriter.cpp
    geodata/writers/kml/KmlLodTagWriter.cpp
    geodata/writers/kml/KmlLookAtTagWriter.cpp
    geodata/writers/kml/KmlModelTagWriter.cpp
    geodata/writers/kml/KmlMultiGeometryTagWriter.cpp
    geodata/writers/kml/KmlMultiTrackTagWriter.cpp
    geodata/writers/kml/KmlNetworkLinkTagWriter.cpp
    geodata/writers/kml/KmlNetworkLinkControlTagWriter.cpp
    geodata/writers/kml/KmlObjectTagWriter.cpp
    geodata/writers/kml/KmlOverlayTagWriter.cpp
    geodata/writers/kml/KmlPhotoOverlayWriter.cpp
    geodata/writers/kml/KmlPlacemarkTagWriter.cpp
    geodata/writers/kml/KmlPlaylistTagWriter.cpp
    geodata/writers/kml/KmlPointTagWriter.cpp
    geodata/writers/kml/KmlPolygonTagWriter.cpp
    geodata/writers/kml/KmlPolyStyleTagWriter.cpp
    geodata/writers/kml/KmlRegionTagWriter.cpp
    geodata/writers/kml/KmlSchemaTagWriter.cpp
    geodata/writers/kml/KmlSchemaDataTagWriter.cpp
    geodata/writers/kml/KmlSimpleDataTagWriter.cpp
    geodata/writers/kml/KmlSimpleFieldTagWriter.cpp
    geodata/writers/kml/KmlScreenOverlayWriter.cpp
    geodata/writers/kml/KmlStyleMapTagWriter.cpp
    geodata/writers/kml/KmlStyleTagWriter.cpp
    geodata/writers/kml/KmlTagWriter.cpp
    geodata/writers/kml/KmlTimeSpanWriter.cpp
    geodata/writers/kml/KmlTimeStampTagWriter.cpp
    geodata/writers/kml/KmlTourTagWriter.cpp
    geodata/writers/kml/KmlTrackWriter.cpp
    geodata/writers/kml/KmlUpdateTagWriter.cpp
    geodata/writers/kml/KmlOsmPlacemarkDataTagWriter.cpp
    geodata/parser/GeoDataParser.cpp
    geodata/parser/GeoDataTypes.cpp
    geodata/parser/GeoDocument.cpp
    geodata/parser/GeoParser.cpp
    geodata/parser/GeoSceneParser.cpp
    geodata/parser/GeoSceneTypes.cpp
    geodata/parser/GeoTagHandler.cpp
    geodata/writer/GeoTagWriter.cpp
    geodata/writer/GeoWriter.cpp
    geodata/writer/GeoWriterBackend.cpp
    geodata/writer/GeoDataDocumentWriter.cpp

    graphicsview/AbstractMarbleGraphicsLayout.cpp
    graphicsview/BillboardGraphicsItem.cpp
    graphicsview/ClipPainter.cpp
    graphicsview/FrameGraphicsItem.cpp
    graphicsview/GeoGraphicsScene.cpp
    graphicsview/GeoGraphicsItem.cpp
    graphicsview/GeoPainter.cpp
    graphicsview/LabelGraphicsItem.cpp
    graphicsview/MarbleGraphicsGridLayout.cpp
    graphicsview/MarbleGraphicsItem.cpp
    graphicsview/ScreenGraphicsItem.cpp
    graphicsview/WidgetGraphicsItem.cpp

    layers/FloatItemsLayer.cpp
    layers/FogLayer.cpp
    layers/FpsLayer.cpp
    layers/GeometryLayer.cpp
    layers/GroundLayer.cpp
    layers/LayerInterface.cpp
    layers/LayerManager.cpp
    layers/MarbleSplashLayer.cpp
    layers/MergedLayerDecorator.cpp
    layers/PlacemarkLayer.cpp
    layers/PlacemarkLayout.cpp
    layers/PopupLayer.cpp
    layers/TileLayer.cpp
    layers/TextureLayer.cpp
    layers/VectorTileLayer.cpp
    layers/VisiblePlacemark.cpp

    models/ElevationModel.cpp
    models/GeoDataTreeModel.cpp
    models/kdescendantsproxymodel.cpp
    models/kineticmodel.cpp
    models/MapThemeManager.cpp
    models/MarbleModel.cpp
    models/MarblePlacemarkModel.cpp

    osm/MarbleZip.cpp
    osm/OsmcSymbol.cpp
    osm/OsmPlacemarkData.cpp
    osm/OsmObjectManager.cpp
    osm/OsmTagEditorWidget.cpp
    osm/OsmTagEditorWidget_p.cpp
    osm/OsmRelationEditorDialog.cpp
    osm/OsmRelationManagerWidget.cpp
    osm/OsmRelationManagerWidget_p.cpp

    plugins/AbstractDataPlugin.cpp
    plugins/AbstractDataPluginItem.cpp
    plugins/AbstractDataPluginModel.cpp
    plugins/ParseRunnerPlugin.cpp
    plugins/PluginInterface.cpp
    plugins/PluginItemDelegate.cpp
    plugins/PluginManager.cpp
    plugins/RenderPlugin.cpp
    plugins/RenderPluginInterface.cpp
    plugins/RenderPluginModel.cpp
    plugins/ReverseGeocodingRunnerPlugin.cpp
    plugins/SearchRunnerPlugin.cpp

    projections/AbstractProjection.cpp
    projections/CylindricalProjection.cpp
    projections/AzimuthalProjection.cpp
    projections/SphericalProjection.cpp
    projections/EquirectProjection.cpp
    projections/MercatorProjection.cpp
    projections/GnomonicProjection.cpp
    projections/StereographicProjection.cpp
    projections/LambertAzimuthalProjection.cpp
    projections/AzimuthalEquidistantProjection.cpp
    projections/VerticalPerspectiveProjection.cpp

    runners/ParsingRunner.cpp
    runners/ParsingRunnerManager.cpp
    runners/ReverseGeocodingRunner.cpp
    runners/ReverseGeocodingRunnerManager.cpp
    runners/SearchRunner.cpp
    runners/SearchRunnerManager.cpp

    settings/MarbleConfigView.cpp
    settings/MarblePluginSettingsWidget.cpp

    storage/CacheStoragePolicy.cpp
    storage/DiscCache.cpp
    storage/DownloadPolicy.cpp
    storage/DownloadQueueSet.cpp
    storage/DownloadRegion.cpp
    storage/DownloadRegionDialog.cpp
    storage/FileLoader.cpp
    storage/FileManager.cpp
    storage/FileStoragePolicy.cpp
    storage/FileStorageWatcher.cpp
    storage/HttpDownloadManager.cpp
    storage/HttpJob.cpp
    storage/LatLonBoxWidget.cpp
    storage/RemoteIconLoader.cpp
    storage/StoragePolicy.cpp

    tile/StackedTile.cpp
    tile/StackedTileLoader.cpp
    tile/TextureTile.cpp
    tile/Tile.cpp
    tile/TileCoordsPyramid.cpp
    tile/TileCreator.cpp
    tile/TileCreatorDialog.cpp
    tile/TileId.cpp
    tile/TileLevelRangeWidget.cpp
    tile/TileLoader.cpp
    tile/TileLoaderHelper.cpp
    tile/TileScalingTextureMapper.cpp
    tile/VectorTileModel.cpp
)

set (marblewidget_UI

    osm/OsmTagEditorWidget.ui
    osm/OsmRelationManagerWidget.ui

    storage/LatLonBoxWidget.ui

    tile/TileCreatorDialog.ui
    tile/TileLevelRangeWidget.ui
)

qt_add_resources(marblewidget_SRCS data/libmarble.qrc)

ki18n_wrap_ui(marblewidget_SRCS ${marblewidget_UI})

# Used by digikamcore
add_library(core_marble_obj OBJECT ${marblewidget_SRCS})

target_compile_definitions(core_marble_obj
                           PRIVATE
                           digikamcore_EXPORTS
)


add_subdirectory(data)
add_subdirectory(plugins)
