Warning, /education/marble/src/lib/marble/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 PROJECT(marblewidget VERSION ${RELEASE_SERVICE_VERSION})
0002 set(MARBLE_CMAKECONFIGNAME Marble)
0003
0004 macro_optional_find_package(Phonon4Qt5 QUIET)
0005 marble_set_package_properties( Phonon4Qt5 PROPERTIES
0006 DESCRIPTION "Qt-based audio library"
0007 URL "https://phonon.kde.org/"
0008 PURPOSE "Support for playback of soundcue elements"
0009 TYPE OPTIONAL
0010 )
0011 if(Phonon4Qt5_FOUND)
0012 set(HAVE_PHONON TRUE)
0013 endif()
0014 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config-phonon.h.cmake
0015 ${CMAKE_CURRENT_BINARY_DIR}/config-phonon.h)
0016
0017 if(MARBLE_NO_WEBKITWIDGETS)
0018 add_definitions(-DMARBLE_NO_WEBKITWIDGETS)
0019 endif()
0020
0021 INCLUDE_DIRECTORIES(
0022 ${CMAKE_CURRENT_SOURCE_DIR}
0023 ${CMAKE_CURRENT_BINARY_DIR}
0024 ${CMAKE_CURRENT_SOURCE_DIR}/projections
0025 ${CMAKE_CURRENT_SOURCE_DIR}/routing
0026 ${CMAKE_CURRENT_SOURCE_DIR}/geodata
0027 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/data
0028 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/graphicsitem
0029 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/scene
0030 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/handlers
0031 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/handlers/kml
0032 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/handlers/dgml
0033 ${CMAKE_CURRENT_SOURCE_DIR}/geodata/parser
0034 ${CMAKE_CURRENT_SOURCE_DIR}/graphicsview
0035 ${CMAKE_CURRENT_SOURCE_DIR}/layers
0036 ${CMAKE_CURRENT_SOURCE_DIR}/osm
0037 ${CMAKE_CURRENT_SOURCE_DIR}/cloudsync
0038 ${CMAKE_SOURCE_DIR}/src/lib/astro
0039 ${ZLIB_INCLUDE_DIRS}
0040 )
0041
0042 INCLUDE(geodata/CMakeLists.txt)
0043 INCLUDE(graphicsview/CMakeLists.txt)
0044 INCLUDE(layers/CMakeLists.txt)
0045 INCLUDE(osm/CMakeLists.txt)
0046
0047 set(MARBLE_LIB_VERSION ${PROJECT_VERSION})
0048 set(MARBLE_LIB_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
0049 set(MARBLE_LIB_VERSION_MINOR ${PROJECT_VERSION_MINOR})
0050 set(MARBLE_LIB_VERSION_PATCH ${PROJECT_VERSION_PATCH})
0051 set(MARBLE_LIB_SOVERSION 28)
0052 set(HEADER_PREFIX MARBLE_LIB)
0053 configure_file("${marble_SOURCE_DIR}/cmake/templates/versionheader.h.in" "${CMAKE_CURRENT_BINARY_DIR}/marble_version.h")
0054 include(CMakePackageConfigHelpers)
0055 write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${MARBLE_CMAKECONFIGNAME}ConfigVersion.cmake" VERSION "${PROJECT_VERSION}" COMPATIBILITY AnyNewerVersion)
0056
0057
0058 ########### next target ###############
0059
0060 set(marblewidget_SRCS
0061 ${geodata_SRCS}
0062 ${graphicsview_SRCS}
0063 ${layers_SRCS}
0064 ${osm_SRCS}
0065 blendings/Blending.cpp
0066 blendings/BlendingAlgorithms.cpp
0067 blendings/BlendingFactory.cpp
0068 blendings/SunLightBlending.cpp
0069 DownloadRegion.cpp
0070 DownloadRegionDialog.cpp
0071 LatLonBoxWidget.cpp
0072 MarbleWidget.cpp
0073 MarbleAbstractPresenter.cpp
0074 MarbleModel.cpp
0075 MarbleMap.cpp
0076 MarbleColors.cpp
0077 MapViewWidget.cpp
0078 CelestialSortFilterProxyModel.cpp
0079 FileViewWidget.cpp
0080 TourWidget.cpp
0081 FlyToEditWidget.cpp
0082 TourControlEditWidget.cpp
0083 WaitEditWidget.cpp
0084 SoundCueEditWidget.cpp
0085 RemoveItemEditWidget.cpp
0086 TourItemDelegate.cpp
0087 MapViewItemDelegate.cpp
0088 TourPlayback.cpp
0089 LegendWidget.cpp
0090 PlaybackItem.cpp
0091 PlaybackAnimatedUpdateItem.cpp
0092 PlaybackFlyToItem.cpp
0093 PlaybackSoundCueItem.cpp
0094 PlaybackTourControlItem.cpp
0095 PlaybackWaitItem.cpp
0096 SerialTrack.cpp
0097 SoundTrack.cpp
0098 AnimatedUpdateTrack.cpp
0099 CurrentLocationWidget.cpp
0100 MarbleNavigator.cpp
0101 MarbleLegendBrowser.cpp
0102 MarbleAboutDialog.cpp
0103 MarbleInputHandler.cpp
0104 MarbleWidgetInputHandler.cpp
0105 MarbleWidgetPopupMenu.cpp
0106 MarblePlacemarkModel.cpp
0107 GeoDataTreeModel.cpp
0108 GeoUriParser.cpp
0109 kdescendantsproxymodel.cpp
0110 BranchFilterProxyModel.cpp
0111 TreeViewDecoratorModel.cpp
0112 MarbleDebug.cpp
0113 Tile.cpp
0114 TextureTile.cpp
0115 TileCoordsPyramid.cpp
0116 TileLevelRangeWidget.cpp
0117 TileLoader.cpp
0118 QtMarbleConfigDialog.cpp
0119 ClipPainter.cpp
0120 DownloadPolicy.cpp
0121 DownloadQueueSet.cpp
0122 GeoPainter.cpp
0123 HttpDownloadManager.cpp
0124 HttpJob.cpp
0125 RemoteIconLoader.cpp
0126 LayerManager.cpp
0127 PluginManager.cpp
0128 TimeControlWidget.cpp
0129 AbstractFloatItem.cpp
0130 PopupItem.cpp
0131 MarbleGlobal.cpp
0132 MarbleDirs.cpp
0133 MarbleLocale.cpp
0134 MarblePhysics.cpp
0135 TileCreatorDialog.cpp
0136 MapThemeManager.cpp
0137 ViewportParams.cpp
0138 ViewParams.cpp
0139 projections/AbstractProjection.cpp
0140 projections/CylindricalProjection.cpp
0141 projections/AzimuthalProjection.cpp
0142 projections/SphericalProjection.cpp
0143 projections/EquirectProjection.cpp
0144 projections/MercatorProjection.cpp
0145 projections/GnomonicProjection.cpp
0146 projections/StereographicProjection.cpp
0147 projections/LambertAzimuthalProjection.cpp
0148 projections/AzimuthalEquidistantProjection.cpp
0149 projections/VerticalPerspectiveProjection.cpp
0150 VisiblePlacemark.cpp
0151 PlacemarkLayout.cpp
0152 Planet.cpp
0153 PlanetFactory.cpp
0154 Quaternion.cpp
0155 TextureColorizer.cpp
0156 TextureMapperInterface.cpp
0157 ScanlineTextureMapperContext.cpp
0158 SphericalScanlineTextureMapper.cpp
0159 EquirectScanlineTextureMapper.cpp
0160 MercatorScanlineTextureMapper.cpp
0161 TileScalingTextureMapper.cpp
0162 GenericScanlineTextureMapper.cpp
0163 VectorTileModel.cpp
0164 DiscCache.cpp
0165 ServerLayout.cpp
0166 StoragePolicy.cpp
0167 CacheStoragePolicy.cpp
0168 FileStoragePolicy.cpp
0169 FileStorageWatcher.cpp
0170 StackedTile.cpp
0171 TileId.cpp
0172 StackedTileLoader.cpp
0173 TileLoaderHelper.cpp
0174 TileCreator.cpp
0175 #jsonparser.cpp
0176 FileLoader.cpp
0177 FileManager.cpp
0178 PositionTracking.cpp
0179 DataMigration.cpp
0180 ImageF.cpp
0181 MovieCapture.cpp
0182 MovieCaptureDialog.cpp
0183 TourCaptureDialog.cpp
0184 EditPlacemarkDialog.cpp
0185 AddLinkDialog.cpp
0186 FormattedTextWidget.cpp
0187
0188 AbstractDataPlugin.cpp
0189 AbstractDataPluginModel.cpp
0190 AbstractDataPluginItem.cpp
0191 AbstractWorkerThread.cpp
0192
0193 PluginInterface.cpp
0194 DialogConfigurationInterface.cpp
0195 LayerInterface.cpp
0196 RenderState.cpp
0197 RenderPlugin.cpp
0198 RenderPluginInterface.cpp
0199 PositionProviderPlugin.cpp
0200 PositionProviderPluginInterface.cpp
0201 PlacemarkPositionProviderPlugin.cpp
0202 RouteSimulationPositionProviderPlugin.cpp
0203 MarblePluginSettingsWidget.cpp
0204 RenderPluginModel.cpp
0205 PluginAboutDialog.cpp
0206 PluginItemDelegate.cpp
0207
0208 SunLocator.cpp
0209 MarbleClock.cpp
0210 SunControlWidget.cpp
0211 MergedLayerDecorator.cpp
0212
0213 MathHelper.cpp
0214
0215 LatLonEdit.cpp
0216 PlacemarkEditHeader.cpp
0217
0218 MapThemeSortFilterProxyModel.cpp
0219
0220 TemplateDocument.cpp
0221
0222 routing/AlternativeRoutesModel.cpp
0223 routing/Maneuver.cpp
0224 routing/Route.cpp
0225 routing/RouteRequest.cpp
0226 routing/RouteSegment.cpp
0227 routing/RoutingModel.cpp
0228 routing/RoutingProfile.cpp
0229 routing/RoutingManager.cpp
0230 routing/RoutingLayer.cpp
0231 routing/RoutingInputWidget.cpp
0232 routing/RoutingWidget.cpp
0233 routing/RoutingProfilesWidget.cpp
0234 routing/RoutingProfilesModel.cpp
0235 routing/RoutingProfileSettingsDialog.cpp
0236 routing/SpeakersModel.cpp
0237 routing/VoiceNavigationModel.cpp
0238 routing/instructions/InstructionTransformation.cpp
0239 routing/instructions/RoutingInstruction.cpp
0240 routing/instructions/RoutingPoint.cpp
0241 routing/instructions/RoutingWaypoint.cpp
0242 routing/instructions/WaypointParser.cpp
0243
0244 ParsingRunnerManager.cpp
0245 ReverseGeocodingRunnerManager.cpp
0246 RoutingRunnerManager.cpp
0247 SearchRunnerManager.cpp
0248
0249 AutoNavigation.cpp
0250
0251 SearchRunnerPlugin.cpp
0252 ReverseGeocodingRunnerPlugin.cpp
0253 RoutingRunnerPlugin.cpp
0254 ParseRunnerPlugin.cpp
0255 SearchRunner.cpp
0256 ReverseGeocodingRunner.cpp
0257 RoutingRunner.cpp
0258 ParsingRunner.cpp
0259 RunnerTask.cpp
0260
0261 BookmarkManager.cpp
0262 EditBookmarkDialog.cpp
0263 BookmarkManagerDialog.cpp
0264 NewBookmarkFolderDialog.cpp
0265
0266 PrintOptionsWidget.cpp
0267 ExternalEditorDialog.cpp
0268 GoToDialog.cpp
0269
0270 MapWizard.cpp
0271 OwsServiceManager.cpp
0272 MapThemeDownloadDialog.cpp
0273 GeoGraphicsScene.cpp
0274 ElevationModel.cpp
0275 MarbleLineEdit.cpp
0276 SearchInputWidget.cpp
0277 SearchWidget.cpp
0278 kineticmodel.cpp
0279 NewstuffModel.cpp
0280 MarbleZip.cpp
0281
0282 OsmcSymbol.cpp
0283
0284 StyleBuilder.cpp
0285
0286 cloudsync/CloudSyncManager.cpp
0287 cloudsync/RouteSyncManager.cpp
0288 cloudsync/OwncloudSyncBackend.cpp
0289 cloudsync/CloudRouteModel.cpp
0290 cloudsync/CloudRoutesDialog.cpp
0291 cloudsync/RouteItem.cpp
0292 cloudsync/RouteItemDelegate.cpp
0293 cloudsync/BookmarkSyncManager.cpp
0294 cloudsync/MergeItem.cpp
0295 cloudsync/ConflictDialog.cpp
0296 )
0297
0298
0299 if (MARBLE_NO_WEBKITWIDGETS)
0300 LIST(APPEND marblewidget_SRCS
0301 NullMarbleWebView.cpp
0302 NullTinyWebBrowser.cpp
0303 )
0304 else()
0305 LIST(APPEND marblewidget_SRCS
0306 MarbleWebView.cpp
0307 TinyWebBrowser.cpp
0308 )
0309 endif()
0310
0311 if (NOT MARBLE_NO_DBUS)
0312 LIST(APPEND marblewidget_SRCS
0313 MarbleDBusInterface.cpp
0314 )
0315 endif()
0316
0317 set (marblewidget_UI
0318 ${osm_UIS}
0319 LatLonBoxWidget.ui
0320 MapViewWidget.ui
0321 CurrentLocationWidget.ui
0322 FileViewWidget.ui
0323 TourWidget.ui
0324 MarbleNavigator.ui
0325 MarbleCacheSettingsWidget.ui
0326 MarbleViewSettingsWidget.ui
0327 MarbleNavigationSettingsWidget.ui
0328 TimeControlWidget.ui
0329 MarbleTimeSettingsWidget.ui
0330 MarblePluginSettingsWidget.ui
0331 TileCreatorDialog.ui
0332 TileLevelRangeWidget.ui
0333 MarbleAboutDialog.ui
0334 SunControlWidget.ui
0335 LatLonEdit.ui
0336 PlacemarkEditHeader.ui
0337 routing/RoutingWidget.ui
0338 DataMigrationWidget.ui
0339 EditBookmarkDialog.ui
0340 BookmarkManagerDialog.ui
0341 NewBookmarkFolderDialog.ui
0342 PrintOptions.ui
0343 ExternalEditor.ui
0344 GoToDialog.ui
0345 routing/RoutingSettingsWidget.ui
0346 routing/RoutingProfileSettingsDialog.ui
0347 MapWizard.ui
0348 MapThemeDownloadDialog.ui
0349 cloudsync/CloudRoutesDialog.ui
0350 MarbleCloudSyncSettingsWidget.ui
0351 MovieCaptureDialog.ui
0352 TourCaptureDialog.ui
0353 EditPlacemarkDialog.ui
0354 AddLinkDialog.ui
0355 FormattedTextWidget.ui
0356 ElevationWidget.ui
0357 )
0358 if (MARBLE_NO_WEBKITWIDGETS)
0359 LIST(APPEND marblewidget_UI
0360 NullLegendWidget.ui
0361 NullWebPopupWidget.ui
0362 )
0363 else()
0364 LIST(APPEND marblewidget_UI
0365 LegendWidget.ui
0366 WebPopupWidget.ui
0367 )
0368 endif()
0369
0370 # FIXME: cleaner approach of src/lib/marblwidget/MarbleControlBox.* vs. marble.qrc
0371 qt_add_resources(marblewidget_SRCS libmarble.qrc ../../apps/marble-ui/marble.qrc)
0372
0373 qt_wrap_ui(marblewidget_SRCS ${marblewidget_UI})
0374
0375 add_library(marblewidget ${marblewidget_SRCS} ${SOURCES_UI_HDRS})
0376
0377 generate_export_header(marblewidget BASE_NAME marble)
0378
0379 if(ECM_FOUND)
0380 # Logging for the Marble library
0381 ecm_qt_export_logging_category(
0382 IDENTIFIER "MARBLE_LIB"
0383 CATEGORY_NAME "marble_lib"
0384 EXPORT marble
0385 DESCRIPTION "Marble (library)")
0386 endif()
0387 add_definitions("-DLOGGING_IDENTIFIER=MARBLE_LIB")
0388
0389 # link with libastro
0390 target_link_libraries(marblewidget PRIVATE astro)
0391
0392 # link against zlib
0393 target_link_libraries(marblewidget PRIVATE ${ZLIB_LIBRARIES})
0394
0395 # link with release version of Qt libs
0396 target_link_libraries(marblewidget
0397 PUBLIC
0398 Qt5::Xml
0399 Qt5::Gui
0400 Qt5::Widgets
0401 Qt5::Network
0402 PRIVATE
0403 Qt5::Core
0404 Qt5::Svg
0405 Qt5::PrintSupport
0406 Qt5::Concurrent
0407 )
0408 if (NOT MARBLE_NO_WEBKITWIDGETS)
0409 target_link_libraries(marblewidget
0410 PUBLIC
0411 Qt5::WebChannel
0412 Qt5::WebEngineWidgets
0413 Qt5::WebEngine
0414 )
0415 endif ()
0416 if (NOT MARBLE_NO_DBUS)
0417 target_link_libraries(marblewidget
0418 PRIVATE
0419 Qt5::DBus
0420 )
0421 endif ()
0422 if (Phonon4Qt5_FOUND)
0423 target_link_libraries(marblewidget
0424 PRIVATE
0425 Phonon::phonon4qt5
0426 )
0427 endif()
0428
0429 if (APPLE)
0430 # TODO: PUBLIC or can be PRIVATE?
0431 #defined in top level makefile
0432 target_link_libraries(marblewidget PUBLIC ${MAC_EXTRA_LIBS} )
0433 endif (APPLE)
0434
0435 # TODO: still supported?
0436 if (CMAKE_SYSTEM_NAME MATCHES "SunOS")
0437 target_link_libraries(marblewidget PUBLIC m)
0438 endif (CMAKE_SYSTEM_NAME MATCHES "SunOS")
0439
0440 if(WIN32)
0441 # TODO: PUBLIC or can be PRIVATE?
0442 target_link_libraries(marblewidget PUBLIC ws2_32 imm32 winmm)
0443 endif(WIN32)
0444
0445 set_target_properties(marblewidget PROPERTIES
0446 EXPORT_NAME "Marble"
0447 OUTPUT_NAME marblewidget-qt5
0448 COMPILE_FLAGS "-DKML_LAZY_IMP"
0449 )
0450
0451 if (NOT ANDROID)
0452 set_target_properties(marblewidget PROPERTIES
0453 VERSION ${MARBLE_LIB_VERSION}
0454 SOVERSION ${MARBLE_LIB_SOVERSION}
0455 )
0456 endif()
0457
0458 target_include_directories(marblewidget
0459 INTERFACE "$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>"
0460 )
0461
0462 # choose the correct target install library path
0463 if(WIN32)
0464 install(TARGETS marblewidget EXPORT MarbleTargets RUNTIME DESTINATION . ARCHIVE DESTINATION lib)
0465 elseif(APPLE)
0466 install(TARGETS marblewidget LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/Marble.app/Contents/MacOS/lib)
0467 else()
0468 install(TARGETS marblewidget
0469 EXPORT MarbleTargets
0470 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
0471 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
0472 endif()
0473
0474
0475 ########### install headers & cmake config files ###############
0476
0477 if (APPLE)
0478 # TODO: find how to install & deploy library, headers and config files as bundle for development
0479 return()
0480 endif()
0481
0482 if (MARBLE_NO_WEBKITWIDGETS)
0483 set(marble_WebKit
0484 NullMarbleWebView.h
0485 NullTinyWebBrowser.h
0486 )
0487 else()
0488 set(marble_WebKit
0489 MarbleWebView.h
0490 TinyWebBrowser.h
0491 )
0492 endif()
0493
0494 install( FILES
0495 ${CMAKE_CURRENT_BINARY_DIR}/marble_version.h
0496 ${CMAKE_CURRENT_BINARY_DIR}/marble_export.h
0497 ${CMAKE_CURRENT_BINARY_DIR}/declarative/marble_declarative_export.h
0498 ${graphicsview_HDRS}
0499 ${marble_WebKit}
0500 AutoNavigation.h
0501 BookmarkManager.h
0502 DownloadRegion.h
0503 DownloadRegionDialog.h
0504 FileManager.h
0505 LatLonBoxWidget.h
0506 MarbleWidget.h
0507 MarbleMap.h
0508 MarbleModel.h
0509 MapViewWidget.h
0510 CelestialSortFilterProxyModel.h
0511 LegendWidget.h
0512 FileViewWidget.h
0513 TourWidget.h
0514 FlyToEditWidget.h
0515 TourControlEditWidget.h
0516 WaitEditWidget.h
0517 SoundCueEditWidget.h
0518 RemoveItemEditWidget.h
0519 TourItemDelegate.h
0520 MapViewItemDelegate.h
0521 TourPlayback.h
0522 CurrentLocationWidget.h
0523 MarbleNavigator.h
0524 AbstractFloatItem.h
0525 MapThemeManager.h
0526 MarbleAboutDialog.h
0527 MarbleInputHandler.h
0528 MarbleWidgetInputHandler.h
0529 MarbleWidgetPopupMenu.h
0530 TileId.h
0531 TileCoordsPyramid.h
0532 TileLevelRangeWidget.h
0533 QtMarbleConfigDialog.h
0534 MarbleMath.h
0535 MarbleColors.h
0536 MarbleGlobal.h
0537 MarbleLocale.h
0538 MarbleDebug.h
0539 MarbleDirs.h
0540 GeoPainter.h
0541 HttpDownloadManager.h
0542 TileCreatorDialog.h
0543 ViewportParams.h
0544 projections/AbstractProjection.h
0545 PositionTracking.h
0546 Quaternion.h
0547 SunLocator.h
0548 ClipPainter.h
0549 GeoGraphicsScene.h
0550 GeoDataTreeModel.h
0551 geodata/data/GeoDataAbstractView.h
0552 geodata/data/GeoDataAccuracy.h
0553 geodata/data/GeoDataBalloonStyle.h
0554 geodata/data/GeoDataColorStyle.h
0555 geodata/data/GeoDataContainer.h
0556 geodata/data/GeoDataCoordinates.h
0557 geodata/data/GeoDataDocument.h
0558 geodata/data/GeoDataFeature.h
0559 geodata/data/GeoDataFolder.h
0560 geodata/data/GeoDataGeometry.h
0561 geodata/data/GeoDataGroundOverlay.h
0562 geodata/data/GeoDataHotSpot.h
0563 geodata/data/GeoDataIconStyle.h
0564 geodata/data/GeoDataItemIcon.h
0565 geodata/data/GeoDataLabelStyle.h
0566 geodata/data/GeoDataLatLonAltBox.h
0567 geodata/data/GeoDataLatLonBox.h
0568 geodata/data/GeoDataLatLonQuad.h
0569 geodata/data/GeoDataLinearRing.h
0570 geodata/data/GeoDataLineString.h
0571 geodata/data/GeoDataLineStyle.h
0572 geodata/data/GeoDataListStyle.h
0573 geodata/data/GeoDataLod.h
0574 geodata/data/GeoDataLookAt.h
0575 geodata/data/GeoDataOverlay.h
0576 geodata/data/GeoDataMultiGeometry.h
0577 geodata/data/GeoDataObject.h
0578 geodata/data/GeoDataPlacemark.h
0579 geodata/data/GeoDataPoint.h
0580 geodata/data/GeoDataPolygon.h
0581 geodata/data/GeoDataPolyStyle.h
0582 geodata/data/GeoDataRegion.h
0583 geodata/data/GeoDataRelation.h
0584 geodata/data/GeoDataSnippet.h
0585 geodata/data/GeoDataStyle.h
0586 geodata/data/GeoDataStyleMap.h
0587 geodata/data/GeoDataStyleSelector.h
0588 geodata/data/GeoDataTrack.h
0589 geodata/data/GeoDataTimeSpan.h
0590 geodata/data/GeoDataTimeStamp.h
0591 geodata/data/GeoDataTimePrimitive.h
0592 geodata/data/Serializable.h
0593 geodata/geodata_export.h
0594 geodata/parser/GeoDocument.h
0595 geodata/parser/GeoDataTypes.h
0596 geodata/writer/GeoWriter.h
0597 routing/RoutingWidget.h
0598 routing/RoutingManager.h
0599 TileCreator.h
0600 PluginManager.h
0601 PluginInterface.h
0602 DialogConfigurationInterface.h
0603 PositionProviderPlugin.h
0604 PositionProviderPluginInterface.h
0605 RenderPlugin.h
0606 RenderPluginInterface.h
0607 ParsingRunnerManager.h
0608 ReverseGeocodingRunnerManager.h
0609 RoutingRunnerManager.h
0610 SearchRunnerManager.h
0611 ParsingRunner.h
0612 SearchRunner.h
0613 ReverseGeocodingRunner.h
0614 RoutingRunner.h
0615 SearchRunnerPlugin.h
0616 ReverseGeocodingRunnerPlugin.h
0617 RoutingRunnerPlugin.h
0618 ParseRunnerPlugin.h
0619 LayerInterface.h
0620 RenderState.h
0621 PluginAboutDialog.h
0622 Planet.h
0623 PlanetFactory.h
0624 EditPlacemarkDialog.h
0625 AddLinkDialog.h
0626 FormattedTextWidget.h
0627
0628 AbstractDataPlugin.h
0629 AbstractDataPluginModel.h
0630 AbstractDataPluginItem.h
0631 AbstractWorkerThread.h
0632
0633 LatLonEdit.h
0634 PlacemarkEditHeader.h
0635 MapWizard.h
0636 MapThemeDownloadDialog.h
0637 ElevationModel.h
0638
0639 routing/AlternativeRoutesModel.h
0640 routing/Route.h
0641 routing/Maneuver.h
0642 routing/RouteRequest.h
0643 routing/RouteSegment.h
0644 routing/RoutingManager.h
0645 routing/RoutingModel.h
0646 routing/RoutingProfile.h
0647
0648 OsmcSymbol.h
0649
0650
0651 declarative/MarbleDeclarativePlugin.h
0652
0653 DESTINATION ${INCLUDE_INSTALL_DIR}/marble
0654 )
0655
0656
0657 ########### CMake Config files ###############
0658
0659 include(CMakePackageConfigHelpers)
0660
0661 set(MARBLE_INSTALL_CMAKECONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${MARBLE_CMAKECONFIGNAME})
0662
0663 configure_package_config_file(MarbleConfig.cmake.in
0664 ${CMAKE_CURRENT_BINARY_DIR}/${MARBLE_CMAKECONFIGNAME}Config.cmake
0665 INSTALL_DESTINATION ${MARBLE_INSTALL_CMAKECONFIGDIR}
0666 )
0667
0668 install(FILES
0669 ${CMAKE_CURRENT_BINARY_DIR}/${MARBLE_CMAKECONFIGNAME}Config.cmake
0670 ${CMAKE_CURRENT_BINARY_DIR}/${MARBLE_CMAKECONFIGNAME}ConfigVersion.cmake
0671
0672 DESTINATION ${MARBLE_INSTALL_CMAKECONFIGDIR}
0673 )
0674
0675 install(
0676 EXPORT MarbleTargets
0677 FILE ${MARBLE_CMAKECONFIGNAME}Targets.cmake
0678 DESTINATION ${MARBLE_INSTALL_CMAKECONFIGDIR}
0679 )
0680
0681 ########### Qt Pri file ###############
0682
0683 # Where the pri file is installed is defined by the following rules, with decreasing priority:
0684 # * MARBLE_PRI_INSTALL_USE_QT_SYS_PATHS=TRUE:
0685 # pri file will be installed with the dirs of the Qt installation used
0686 # * MARBLE_PRI_INSTALL_DIR=some-relative-or-absolute-path
0687 # if set will be used as given
0688 # * installation prefix = Qt installation prefix:
0689 # pri file will be installed with the dirs of the Qt installation used
0690 # * otherwise:
0691 # pri file will be installed in mkspecs/modules in the installation prefix
0692
0693 get_target_property(PRI_LIB_NAME marblewidget OUTPUT_NAME)
0694
0695 set(PRI_ABS_INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_DIR}")
0696 if(NOT IS_ABSOLUTE "${PRI_ABS_INCLUDE_INSTALL_DIR}")
0697 set(PRI_ABS_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${PRI_ABS_INCLUDE_INSTALL_DIR}")
0698 endif()
0699
0700 set(PRI_ABS_LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
0701 if(NOT IS_ABSOLUTE "${PRI_ABS_LIB_INSTALL_DIR}")
0702 set(PRI_ABS_LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${PRI_ABS_LIB_INSTALL_DIR}")
0703 endif()
0704
0705 set(PRI_DEPS "xml gui widgets network")
0706 if (NOT MARBLE_NO_WEBKITWIDGETS)
0707 set(PRI_DEPS "${PRI_DEPS} webenginewidgets")
0708 endif()
0709
0710 file(GENERATE
0711 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qt_Marble.pri
0712 CONTENT
0713 "QT.Marble.VERSION = ${MARBLE_LIB_VERSION}
0714 QT.Marble.MAJOR_VERSION = ${MARBLE_LIB_VERSION_MAJOR}
0715 QT.Marble.MINOR_VERSION = ${MARBLE_LIB_VERSION_MINOR}
0716 QT.Marble.PATCH_VERSION = ${MARBLE_LIB_VERSION_PATCH}
0717 QT.Marble.name = ${PRI_LIB_NAME}
0718 QT.Marble.defines =
0719 QT.Marble.includes = ${PRI_ABS_INCLUDE_INSTALL_DIR}
0720 QT.Marble.private_includes =
0721 QT.Marble.libs = ${PRI_ABS_LIB_INSTALL_DIR}
0722 QT.Marble.depends = ${PRI_DEPS}
0723 "
0724 )
0725
0726 # detect which folder the pri file should be installed into
0727 get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
0728
0729 function(query_qmake result_variable qt_variable)
0730 execute_process(
0731 COMMAND ${QMAKE_EXECUTABLE} -query "${qt_variable}"
0732 RESULT_VARIABLE return_code
0733 OUTPUT_VARIABLE output
0734 )
0735 if(return_code EQUAL 0)
0736 string(STRIP "${output}" output)
0737 file(TO_CMAKE_PATH "${output}" output_path)
0738 set(${result_variable} "${output_path}" PARENT_SCOPE)
0739 else()
0740 message(WARNING "Failed call: ${QMAKE_EXECUTABLE} -query \"${qt_variable}\"")
0741 message(FATAL_ERROR "QMake call failed: ${return_code}")
0742 endif()
0743 endfunction()
0744
0745 # if going to be installed into same prefix as Qt, then also use same folder
0746 set(IS_SHARED_INSTALL_PREFIX FALSE)
0747 if(NOT DEFINED MARBLE_PRI_INSTALL_USE_QT_SYS_PATHS)
0748 query_qmake(qt_install_prefix_dir QT_INSTALL_PREFIX)
0749 if(qt_install_prefix_dir STREQUAL "${CMAKE_INSTALL_PREFIX}")
0750 set(IS_SHARED_INSTALL_PREFIX TRUE)
0751 endif()
0752 endif()
0753
0754 if(MARBLE_PRI_INSTALL_USE_QT_SYS_PATHS OR IS_SHARED_INSTALL_PREFIX)
0755 query_qmake(qt_host_data_dir QT_HOST_DATA)
0756 set(PRI_INSTALL_DIR ${qt_host_data_dir}/mkspecs/modules)
0757 else()
0758 set(PRI_INSTALL_DIR mkspecs/modules)
0759 endif()
0760 set(MARBLE_PRI_INSTALL_DIR "${PRI_INSTALL_DIR}" CACHE PATH "The directory where the Marble pri file will be installed to.")
0761
0762 install(FILES
0763 ${CMAKE_CURRENT_BINARY_DIR}/qt_Marble.pri
0764 DESTINATION ${MARBLE_PRI_INSTALL_DIR}
0765 )