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 )