Version: unspecified (using KDE 4.7.0) OS: Linux 1. FindMarble.cmake defines MARBLE_INCLUDE_DIR with "marble" suffix because it uses PATH_SUFFIXES in: FIND_PATH( MARBLE_INCLUDE_DIR NAMES MarbleMap.h PATH_SUFFIXES marble) This means users of the marble lib cannot use e.g. #include <marble/MarbleWidget.h> since this won'twork with custom location of marble includes - now the system one is used. Used are forced by MARBLE_INCLUDE_DIR to use #include <MarbleWidget.h>. This can also lead to nonunique filenames e.g. when other <global.h> is somewhere on the path. If MARBLE_INCLUDE_DIR has no marble/ suffix, e.g. by default it is : /usr/include instead of /usr/include/marble, the issue would be fixed. So it's enough to remove SUFFIX from FIND_PATH in the FindMarble.cmake file. _Alternatively_ you can keep MARBLE_INCLUDE_DIR as is the do what Qt does: name al lthe headers with as-much-as-posible-unique-headers e.g. rename global.h to MarbleGlobal.h, AbstractDataPlugin.h to MarbleAbstractDataPlugin.h, etc. 2. At least one public file is not installed: GeoSceneDocument.h in marble lib 1.2. There may be more. This makes Marble::MapThemeManager API not available while it is documented as public. Even if you remove its documentation, you would have to remove its uses from the public API, e.g. from QList<GeoSceneDocument const*> Marble::MapThemeManager::mapThemes() const. Reproducible: Always Steps to Reproduce: A. Build and install marble in custom PREFIX. Define includes in CMakeLists.txt with ${MARBLE_INCLUDE_DIR} and use #include <marble/MarbleWidget.h> in user code. or B. Try to use #include <marble/GeoSceneDocument.h> Actual Results: A. MarbleWidget.h will not be found. or B. <marble/GeoSceneDocument.h> will not be found. Expected Results: Both headers should be found.
Thanks for the bug report. I made a review request for 1. at https://git.reviewboard.kde.org/r/103656/
Git commit f4702b2076e84d89bba80731bd2a0b4977271bd5 by Dennis Nienhüser. Committed on 08/01/2012 at 11:54. Pushed by nienhueser into branch 'master'. Improve headers for external inclusion. Search locally for own headers, copy publically referenced ones to include/, rename AdjustNavigation to AutoNavigation. This commit does not yet catch forward includes (e.g. GeoSceneDocument) and RunnerPlugin.h still fails inclusion. R +21 -21 src/lib/AutoNavigation.cpp [from: src/lib/routing/AdjustNavigation.cpp - 088% similarity] R +5 -5 src/lib/AutoNavigation.h [from: src/lib/routing/AdjustNavigation.h - 088% similarity] M +3 -1 src/lib/CMakeLists.txt M +14 -14 src/lib/CurrentLocationWidget.cpp M +3 -4 src/lib/CurrentLocationWidget.h M +1 -1 src/lib/MarbleControlBox.h M +2 -2 src/lib/PositionProviderPluginInterface.h M +4 -0 src/lib/QtMarbleConfigDialog.cpp M +2 -6 src/lib/QtMarbleConfigDialog.h M +1 -1 src/lib/geodata/data/GeoDataAccuracy.h M +5 -5 src/lib/routing/RoutingManager.cpp M +6 -6 src/lib/routing/RoutingManager.h M +5 -5 src/plugins/declarative/Tracking.cpp M +2 -2 src/plugins/declarative/Tracking.h http://commits.kde.org/marble/f4702b2076e84d89bba80731bd2a0b4977271bd5
Git commit 87cce17ba8156d7aee03a799b7fda8e78702f290 by Dennis Nienhüser. Committed on 14/05/2012 at 21:20. Pushed by nienhueser into branch 'master'. Endorse marble/class.h #includes (instead of simple class.h) REVIEW: 103656 M +5 -12 FindMarble.cmake http://commits.kde.org/marble/87cce17ba8156d7aee03a799b7fda8e78702f290
Git commit bd40a2bc5722ceded5bea08b011518a368c7dc68 by Dennis Nienhüser. Committed on 14/05/2012 at 21:40. Pushed by nienhueser into branch 'master'. Rename global.h to MarbleGlobal.h The new name is consistent with the class declared by it and avoids name conflicts with other libraries (once the placeholder global.h will be removed). The old style inclusion using global.h is still possible for backward compatibility and issues a friendly reminder to switch to the renamed file. M +1 -1 examples/cpp/map-properties/main.cpp M +1 -1 src/MarbleTest.cpp M +2 -2 src/bindings/python/sip/global.sip M +1 -1 src/lib/AutoNavigation.cpp M +1 -1 src/lib/BookmarkManager.h M +2 -1 src/lib/CMakeLists.txt M +1 -1 src/lib/ClipPainter.h M +1 -1 src/lib/DownloadPolicy.h M +1 -1 src/lib/EquirectScanlineTextureMapper.h M +1 -1 src/lib/FileStoragePolicy.cpp M +1 -1 src/lib/FileStorageWatcher.cpp M +1 -1 src/lib/GeoGraphicsScene.h M +1 -1 src/lib/GeoPainter.cpp M +1 -1 src/lib/GeoPainter.h M +1 -1 src/lib/GeoPainter_p.h M +1 -1 src/lib/HttpDownloadManager.h M +1 -1 src/lib/HttpJob.h M +1 -1 src/lib/LatLonEdit.cpp M +1 -1 src/lib/LatLonEdit.h M +1 -1 src/lib/MapViewWidget.h M +1 -1 src/lib/MapWizard.cpp M +1 -1 src/lib/MarbleAboutDialog.cpp M +1 -1 src/lib/MarbleControlBox.cpp M +1 -1 src/lib/MarbleControlBox.h R +2 -2 src/lib/MarbleGlobal.cpp [from: src/lib/global.cpp - 096% similarity] C +1 -1 src/lib/MarbleGlobal.h [from: src/lib/global.h - 099% similarity] R +1 -1 src/lib/MarbleGlobal_p.h [from: src/lib/global_p.h - 096% similarity] M +1 -1 src/lib/MarbleLineEdit.cpp M +1 -1 src/lib/MarbleModel.cpp M +1 -1 src/lib/MarbleModel.h M +1 -1 src/lib/MarbleThemeSelectView.cpp M +1 -1 src/lib/MarbleWidget.h M +1 -1 src/lib/MarbleWidgetInputHandler.cpp M +1 -1 src/lib/MercatorScanlineTextureMapper.h M +1 -1 src/lib/MergedLayerDecorator.cpp M +1 -1 src/lib/Planet.cpp M +1 -1 src/lib/Projections/SphericalProjection.cpp M +1 -1 src/lib/QtMarbleConfigDialog.cpp M +1 -1 src/lib/QtMarbleConfigDialog.h M +1 -1 src/lib/ServerLayout.cpp M +1 -1 src/lib/SphericalScanlineTextureMapper.cpp M +1 -1 src/lib/SphericalScanlineTextureMapper.h M +1 -1 src/lib/StackedTile.h M +1 -1 src/lib/StackedTileLoader.cpp M +1 -1 src/lib/StackedTileLoader.h M +1 -1 src/lib/SunLocator.cpp M +1 -1 src/lib/TextureColorizer.cpp M +1 -1 src/lib/TextureColorizer.h M +1 -1 src/lib/TileCreator.cpp M +1 -1 src/lib/TileLoader.h M +1 -1 src/lib/TileLoaderHelper.cpp M +1 -1 src/lib/TinyWebBrowser.cpp M +1 -1 src/lib/VectorComposer.cpp M +1 -1 src/lib/VectorMap.cpp M +1 -1 src/lib/VectorMap.h M +1 -1 src/lib/ViewParams.h M +1 -1 src/lib/ViewportParams.h M +1 -1 src/lib/blendings/SunLightBlending.cpp M +1 -1 src/lib/geodata/data/GeoDataCoordinates.cpp M +1 -1 src/lib/geodata/data/GeoDataCoordinates.h M +1 -1 src/lib/geodata/data/GeoDataGeometry.h M +1 -1 src/lib/geodata/data/GeoDataGroundOverlay.h M +1 -1 src/lib/geodata/data/GeoDataLatLonAltBox.h M +1 -1 src/lib/geodata/data/GeoDataLatLonBox.h M +1 -1 src/lib/geodata/data/GeoDataLineString.h M +1 -1 src/lib/geodata/data/GeoDataPhotoOverlay.h M +1 -1 src/lib/geodata/data/GeoDataPoint.cpp M +1 -1 src/lib/geodata/data/GeoDataPolygon.h M +1 -1 src/lib/geodata/handlers/dgml/DgmlDownloadPolicyTagHandler.cpp M +1 -1 src/lib/geodata/handlers/kml/KmlAltitudeTagHandler.cpp M +1 -1 src/lib/geodata/handlers/kml/KmlCoordinatesTagHandler.cpp M +1 -1 src/lib/geodata/handlers/kml/KmlLatitudeTagHandler.cpp M +1 -1 src/lib/geodata/handlers/kml/KmlLongitudeTagHandler.cpp M +1 -1 src/lib/geodata/handlers/kml/KmlRangeTagHandler.cpp M +1 -1 src/lib/geodata/scene/GeoSceneTexture.h M +1 -1 src/lib/geodata/scene/GeoSceneXmlDataSource.cpp M +2 -298 src/lib/global.h M +1 -1 src/lib/layers/PlacemarkLayout.cpp M +1 -1 src/lib/layers/TextureLayer.h M +1 -1 src/lib/routing/RoutingModel.cpp M +1 -1 src/lib/routing/RoutingProfileSettingsDialog.cpp M +1 -1 src/marble.kcfg M +1 -1 src/marble_part.h M +1 -1 src/plasmoid/worldclock.cpp M +1 -1 src/plugins/declarative/MarbleDeclarativeObject.cpp M +1 -1 src/plugins/render/aprs/AprsPlugin.cpp M +1 -1 src/plugins/render/earthquake/EarthquakeModel.cpp M +1 -1 src/plugins/render/mapscale/MapScaleFloatItem.cpp M +1 -1 src/plugins/render/navigation/NavigationFloatItem.h M +1 -1 src/plugins/render/opencaching/OpenCachingModel.cpp M +1 -1 src/plugins/render/opendesktop/OpenDesktopModel.cpp M +1 -1 src/plugins/render/postalcode/PostalCodeModel.cpp M +1 -1 src/plugins/render/satellites/SatellitesItem.cpp M +1 -1 src/plugins/render/speedometer/Speedometer.cpp M +1 -1 src/plugins/render/weather/BBCParser.cpp M +1 -1 src/plugins/render/weather/BBCWeatherService.cpp M +1 -1 src/plugins/render/weather/StationListParser.cpp M +1 -1 src/plugins/render/weather/WeatherData.cpp M +1 -1 src/plugins/render/weather/WeatherPlugin.cpp M +1 -1 src/plugins/render/wikipedia/GeonamesParser.cpp M +1 -1 src/plugins/render/wikipedia/WikipediaModel.cpp M +1 -1 src/plugins/runner/gpx/handlers/GPXgpxTagHandler.cpp M +1 -1 src/plugins/runner/osm/handlers/OsmGlobals.cpp M +1 -1 src/plugins/runner/osm/handlers/OsmOsmTagHandler.cpp M +1 -1 src/qt-components/marble-touch/main.cpp M +1 -1 tests/QuaternionTest.cpp M +1 -1 tests/TestGeoDataCoordinates.cpp M +1 -1 tests/TestGeoDataLatLonAltBox.cpp M +1 -1 tests/TestGeoPainter.cpp http://commits.kde.org/marble/bd40a2bc5722ceded5bea08b011518a368c7dc68