diff --git a/Makefile b/Makefile index 0eec3b01bd..8b5f3fe2ba 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ PHANTOMJS = phantomjs PLOVR_JAR = bin/plovr-b254c26318c5.jar SPEC = $(shell find test/spec -name \*.js) SRC = $(shell find externs src/ol -name \*.js) +EXPORTS = $(filter-out src/objectliterals.exports, $(shell find src -name \*.exports)) INTERNAL_SRC = \ build/src/internal/src/requireall.js \ build/src/internal/src/types.js @@ -40,25 +41,25 @@ build-all: build/ol-all.js build/ol-all.js: $(PLOVR_JAR) $(SRC) $(INTERNAL_SRC) base.json build/ol-all.json java -jar $(PLOVR_JAR) build build/ol-all.json >$@ || ( rm -f $@ ; false ) -build/src/external/externs/types.js: bin/generate-exports src/ol/exports.txt +build/src/external/externs/types.js: bin/generate-exports src/objectliterals.exports mkdir -p $(dir $@) - bin/generate-exports --externs src/ol/exports.txt >$@ || ( rm -f $@ ; false ) + bin/generate-exports --externs src/objectliterals.exports >$@ || ( rm -f $@ ; false ) -build/src/external/src/exports.js: bin/generate-exports src/ol/exports.txt +build/src/external/src/exports.js: bin/generate-exports src/objectliterals.exports $(EXPORTS) mkdir -p $(dir $@) - bin/generate-exports --exports src/ol/exports.txt >$@ || ( rm -f $@ ; false ) + bin/generate-exports --exports src/objectliterals.exports $(EXPORTS) >$@ || ( rm -f $@ ; false ) -build/src/external/src/types.js: bin/generate-exports src/ol/exports.txt +build/src/external/src/types.js: bin/generate-exports src/objectliterals.exports mkdir -p $(dir $@) - bin/generate-exports --typedef src/ol/exports.txt >$@ || ( rm -f $@ ; false ) + bin/generate-exports --typedef src/objectliterals.exports >$@ || ( rm -f $@ ; false ) build/src/internal/src/requireall.js: bin/generate-requireall $(SRC) mkdir -p $(dir $@) bin/generate-requireall --require=goog.dom src/ol >$@ || ( rm -f $@ ; false ) -build/src/internal/src/types.js: bin/generate-exports src/ol/exports.txt +build/src/internal/src/types.js: bin/generate-exports src/objectliterals.exports mkdir -p $(dir $@) - bin/generate-exports --typedef src/ol/exports.txt >$@ || ( rm -f $@ ; false ) + bin/generate-exports --typedef src/objectliterals.exports >$@ || ( rm -f $@ ; false ) .PHONY: build-examples build-examples: examples $(subst .html,.combined.js,$(EXAMPLES)) diff --git a/src/goog.exports b/src/goog.exports new file mode 100644 index 0000000000..b8ccadc37a --- /dev/null +++ b/src/goog.exports @@ -0,0 +1 @@ +@exportSymbol goog.require goog.nullFunction diff --git a/src/ol/exports.txt b/src/objectliterals.exports similarity index 59% rename from src/ol/exports.txt rename to src/objectliterals.exports index ecb405fba8..bd7499907b 100644 --- a/src/ol/exports.txt +++ b/src/objectliterals.exports @@ -1,23 +1,27 @@ -@exportSymbol goog.require goog.nullFunction +@exportObjectLiteral ol.control.AttributionOptions +@exportObjectLiteralProperty ol.control.AttributionOptions.map ol.Map|undefined +@exportObjectLiteralProperty ol.control.AttributionOptions.target Element|undefined -@exportProperty ol.MapBrowserEvent.prototype.getCoordinate +@exportObjectLiteral ol.control.MousePositionOptions +@exportObjectLiteralProperty ol.control.MousePositionOptions.coordinateFormat ol.CoordinateFormatType|undefined +@exportObjectLiteralProperty ol.control.MousePositionOptions.map ol.Map|undefined +@exportObjectLiteralProperty ol.control.MousePositionOptions.projection ol.Projection|undefined +@exportObjectLiteralProperty ol.control.MousePositionOptions.target Element|undefined +@exportObjectLiteralProperty ol.control.MousePositionOptions.undefinedHtml string|undefined -@exportSymbol ol.Collection -@exportProperty ol.Collection.prototype.clear -@exportProperty ol.Collection.prototype.forEach -@exportProperty ol.Collection.prototype.getArray -@exportProperty ol.Collection.prototype.getAt -@exportProperty ol.Collection.prototype.getLength -@exportProperty ol.Collection.prototype.insertAt -@exportProperty ol.Collection.prototype.pop -@exportProperty ol.Collection.prototype.push -@exportProperty ol.Collection.prototype.removeAt -@exportProperty ol.Collection.prototype.setAt +@exportObjectLiteral ol.control.ZoomOptions +@exportObjectLiteralProperty ol.control.ZoomOptions.delta number|undefined +@exportObjectLiteralProperty ol.control.ZoomOptions.map ol.Map|undefined +@exportObjectLiteralProperty ol.control.ZoomOptions.target Element|undefined -@exportSymbol ol.Coordinate -@exportProperty ol.Coordinate.toStringHDMS - -@exportSymbol ol.Extent +@exportObjectLiteral ol.layer.LayerOptions +@exportObjectLiteralProperty ol.layer.LayerOptions.brightness number|undefined +@exportObjectLiteralProperty ol.layer.LayerOptions.contrast number|undefined +@exportObjectLiteralProperty ol.layer.LayerOptions.hue number|undefined +@exportObjectLiteralProperty ol.layer.LayerOptions.opacity number|undefined +@exportObjectLiteralProperty ol.layer.LayerOptions.saturation number|undefined +@exportObjectLiteralProperty ol.layer.LayerOptions.source ol.source.Source +@exportObjectLiteralProperty ol.layer.LayerOptions.visible boolean|undefined @exportObjectLiteral ol.MapOptions @exportObjectLiteralProperty ol.MapOptions.center ol.Coordinate|undefined @@ -45,100 +49,13 @@ @exportObjectLiteralProperty ol.MapOptions.zoomDelta number|undefined @exportObjectLiteralProperty ol.MapOptions.zoomFactor number|undefined -@exportClass ol.Map ol.MapOptions -@exportProperty ol.Map.prototype.getControls -@exportProperty ol.Map.prototype.getInteractions - -@exportSymbol ol.Object -@exportProperty ol.Object.prototype.bindTo -@exportProperty ol.Object.prototype.changed -@exportProperty ol.Object.prototype.get -@exportProperty ol.Object.prototype.notify -@exportProperty ol.Object.prototype.set -@exportProperty ol.Object.prototype.setOptions -@exportProperty ol.Object.prototype.setValues -@exportProperty ol.Object.prototype.unbind -@exportProperty ol.Object.prototype.unbindAll - -@exportSymbol ol.Projection -@exportProperty ol.Projection.getFromCode -@exportProperty ol.Projection.getTransform -@exportProperty ol.Projection.getTransformFromCodes -@exportProperty ol.Projection.transform -@exportProperty ol.Projection.transformWithCodes -@exportProperty ol.Projection.prototype.getCode -@exportProperty ol.Projection.prototype.getExtent -@exportProperty ol.Projection.prototype.getUnits - -@exportSymbol ol.RendererHint -@exportProperty ol.RendererHint.DOM -@exportProperty ol.RendererHint.WEBGL - -@exportObjectLiteral ol.control.AttributionOptions -@exportObjectLiteralProperty ol.control.AttributionOptions.map ol.Map|undefined -@exportObjectLiteralProperty ol.control.AttributionOptions.target Element|undefined - -@exportClass ol.control.Attribution ol.control.AttributionOptions - -@exportObjectLiteral ol.control.MousePositionOptions -@exportObjectLiteralProperty ol.control.MousePositionOptions.coordinateFormat ol.CoordinateFormatType|undefined -@exportObjectLiteralProperty ol.control.MousePositionOptions.map ol.Map|undefined -@exportObjectLiteralProperty ol.control.MousePositionOptions.projection ol.Projection|undefined -@exportObjectLiteralProperty ol.control.MousePositionOptions.target Element|undefined -@exportObjectLiteralProperty ol.control.MousePositionOptions.undefinedHtml string|undefined - -@exportClass ol.control.MousePosition ol.control.MousePositionOptions - -@exportObjectLiteral ol.control.ZoomOptions -@exportObjectLiteralProperty ol.control.ZoomOptions.delta number|undefined -@exportObjectLiteralProperty ol.control.ZoomOptions.map ol.Map|undefined -@exportObjectLiteralProperty ol.control.ZoomOptions.target Element|undefined - -@exportClass ol.control.Zoom ol.control.ZoomOptions - -@exportObjectLiteral ol.layer.LayerOptions -@exportObjectLiteralProperty ol.layer.LayerOptions.brightness number|undefined -@exportObjectLiteralProperty ol.layer.LayerOptions.contrast number|undefined -@exportObjectLiteralProperty ol.layer.LayerOptions.hue number|undefined -@exportObjectLiteralProperty ol.layer.LayerOptions.opacity number|undefined -@exportObjectLiteralProperty ol.layer.LayerOptions.saturation number|undefined -@exportObjectLiteralProperty ol.layer.LayerOptions.source ol.source.Source -@exportObjectLiteralProperty ol.layer.LayerOptions.visible boolean|undefined - -@exportSymbol ol.interaction.Keyboard -@exportProperty ol.interaction.Keyboard.prototype.addCallback - -@exportClass ol.layer.TileLayer ol.layer.LayerOptions - @exportObjectLiteral ol.overlay.OverlayOptions @exportObjectLiteralProperty ol.overlay.OverlayOptions.coordinate ol.Coordinate|undefined @exportObjectLiteralProperty ol.overlay.OverlayOptions.element Element|undefined @exportObjectLiteralProperty ol.overlay.OverlayOptions.map ol.Map|undefined @exportObjectLiteralProperty ol.overlay.OverlayOptions.positioning Array.|undefined -@exportClass ol.overlay.Overlay ol.overlay.OverlayOptions -@exportProperty ol.overlay.Overlay.prototype.getElement -@exportProperty ol.overlay.Overlay.prototype.setCoordinate -@exportProperty ol.overlay.Overlay.prototype.setMap - -@exportSymbol ol.source.BingMaps -@exportSymbol ol.BingMapsStyle -@exportProperty ol.BingMapsStyle.AERIAL -@exportProperty ol.BingMapsStyle.AERIAL_WITH_LABELS -@exportProperty ol.BingMapsStyle.ROAD -@exportProperty ol.BingMapsStyle.ORDNANCE_SURVEY -@exportProperty ol.BingMapsStyle.COLLINS_BART @exportObjectLiteral ol.source.BingMapsOptions @exportObjectLiteralProperty ol.source.BingMapsOptions.culture string|undefined @exportObjectLiteralProperty ol.source.BingMapsOptions.key string @exportObjectLiteralProperty ol.source.BingMapsOptions.style ol.BingMapsStyle - -@exportSymbol ol.source.MapQuestOSM - -@exportSymbol ol.source.MapQuestOpenAerial - -@exportSymbol ol.source.OpenStreetMap - -@exportSymbol ol.source.Stamen - -@exportSymbol ol.source.TileJSON diff --git a/src/ol/collection.exports b/src/ol/collection.exports new file mode 100644 index 0000000000..b052cc13f2 --- /dev/null +++ b/src/ol/collection.exports @@ -0,0 +1,11 @@ +@exportSymbol ol.Collection +@exportProperty ol.Collection.prototype.clear +@exportProperty ol.Collection.prototype.forEach +@exportProperty ol.Collection.prototype.getArray +@exportProperty ol.Collection.prototype.getAt +@exportProperty ol.Collection.prototype.getLength +@exportProperty ol.Collection.prototype.insertAt +@exportProperty ol.Collection.prototype.pop +@exportProperty ol.Collection.prototype.push +@exportProperty ol.Collection.prototype.removeAt +@exportProperty ol.Collection.prototype.setAt diff --git a/src/ol/control/attribution.exports b/src/ol/control/attribution.exports new file mode 100644 index 0000000000..961219fc9d --- /dev/null +++ b/src/ol/control/attribution.exports @@ -0,0 +1,2 @@ +@exportClass ol.control.Attribution ol.control.AttributionOptions + diff --git a/src/ol/control/mouseposition.exports b/src/ol/control/mouseposition.exports new file mode 100644 index 0000000000..7a4856fcb5 --- /dev/null +++ b/src/ol/control/mouseposition.exports @@ -0,0 +1,2 @@ +@exportClass ol.control.MousePosition ol.control.MousePositionOptions + diff --git a/src/ol/control/zoom.exports b/src/ol/control/zoom.exports new file mode 100644 index 0000000000..1a1835cffb --- /dev/null +++ b/src/ol/control/zoom.exports @@ -0,0 +1,2 @@ +@exportClass ol.control.Zoom ol.control.ZoomOptions + diff --git a/src/ol/coordinate.exports b/src/ol/coordinate.exports new file mode 100644 index 0000000000..1dec787cd7 --- /dev/null +++ b/src/ol/coordinate.exports @@ -0,0 +1,2 @@ +@exportSymbol ol.Coordinate +@exportProperty ol.Coordinate.toStringHDMS diff --git a/src/ol/extent.exports b/src/ol/extent.exports new file mode 100644 index 0000000000..23e1785d4f --- /dev/null +++ b/src/ol/extent.exports @@ -0,0 +1,2 @@ +@exportSymbol ol.Extent + diff --git a/src/ol/interaction/keyboard.exports b/src/ol/interaction/keyboard.exports new file mode 100644 index 0000000000..45ab209343 --- /dev/null +++ b/src/ol/interaction/keyboard.exports @@ -0,0 +1,3 @@ +@exportSymbol ol.interaction.Keyboard +@exportProperty ol.interaction.Keyboard.prototype.addCallback + diff --git a/src/ol/layer/tilelayer.exports b/src/ol/layer/tilelayer.exports new file mode 100644 index 0000000000..a567e216ff --- /dev/null +++ b/src/ol/layer/tilelayer.exports @@ -0,0 +1 @@ +@exportClass ol.layer.TileLayer ol.layer.LayerOptions diff --git a/src/ol/map.exports b/src/ol/map.exports new file mode 100644 index 0000000000..b2f70f549b --- /dev/null +++ b/src/ol/map.exports @@ -0,0 +1,9 @@ +@exportClass ol.Map ol.MapOptions +@exportProperty ol.Map.prototype.getControls +@exportProperty ol.Map.prototype.getInteractions + +@exportSymbol ol.RendererHint +@exportProperty ol.RendererHint.DOM +@exportProperty ol.RendererHint.WEBGL + + diff --git a/src/ol/mapbrowserevent.exports b/src/ol/mapbrowserevent.exports new file mode 100644 index 0000000000..38eafbb2a1 --- /dev/null +++ b/src/ol/mapbrowserevent.exports @@ -0,0 +1,2 @@ +@exportProperty ol.MapBrowserEvent.prototype.getCoordinate + diff --git a/src/ol/object.exports b/src/ol/object.exports new file mode 100644 index 0000000000..98c8370bdb --- /dev/null +++ b/src/ol/object.exports @@ -0,0 +1,10 @@ +@exportSymbol ol.Object +@exportProperty ol.Object.prototype.bindTo +@exportProperty ol.Object.prototype.changed +@exportProperty ol.Object.prototype.get +@exportProperty ol.Object.prototype.notify +@exportProperty ol.Object.prototype.set +@exportProperty ol.Object.prototype.setOptions +@exportProperty ol.Object.prototype.setValues +@exportProperty ol.Object.prototype.unbind +@exportProperty ol.Object.prototype.unbindAll diff --git a/src/ol/overlay/overlay.exports b/src/ol/overlay/overlay.exports new file mode 100644 index 0000000000..b60b8a16a0 --- /dev/null +++ b/src/ol/overlay/overlay.exports @@ -0,0 +1,5 @@ +@exportClass ol.overlay.Overlay ol.overlay.OverlayOptions +@exportProperty ol.overlay.Overlay.prototype.getElement +@exportProperty ol.overlay.Overlay.prototype.setCoordinate +@exportProperty ol.overlay.Overlay.prototype.setMap + diff --git a/src/ol/projection.exports b/src/ol/projection.exports new file mode 100644 index 0000000000..9dcb5c1ada --- /dev/null +++ b/src/ol/projection.exports @@ -0,0 +1,10 @@ +@exportSymbol ol.Projection +@exportProperty ol.Projection.getFromCode +@exportProperty ol.Projection.getTransform +@exportProperty ol.Projection.getTransformFromCodes +@exportProperty ol.Projection.transform +@exportProperty ol.Projection.transformWithCodes +@exportProperty ol.Projection.prototype.getCode +@exportProperty ol.Projection.prototype.getExtent +@exportProperty ol.Projection.prototype.getUnits + diff --git a/src/ol/source/bingmaps.exports b/src/ol/source/bingmaps.exports new file mode 100644 index 0000000000..516bf8777c --- /dev/null +++ b/src/ol/source/bingmaps.exports @@ -0,0 +1,7 @@ +@exportSymbol ol.source.BingMaps +@exportSymbol ol.BingMapsStyle +@exportProperty ol.BingMapsStyle.AERIAL +@exportProperty ol.BingMapsStyle.AERIAL_WITH_LABELS +@exportProperty ol.BingMapsStyle.ROAD +@exportProperty ol.BingMapsStyle.ORDNANCE_SURVEY +@exportProperty ol.BingMapsStyle.COLLINS_BART diff --git a/src/ol/source/mapquest.exports b/src/ol/source/mapquest.exports new file mode 100644 index 0000000000..d26cb03f25 --- /dev/null +++ b/src/ol/source/mapquest.exports @@ -0,0 +1,2 @@ +@exportSymbol ol.source.MapQuestOSM +@exportSymbol ol.source.MapQuestOpenAerial diff --git a/src/ol/source/openstreetmap.exports b/src/ol/source/openstreetmap.exports new file mode 100644 index 0000000000..a2b205a252 --- /dev/null +++ b/src/ol/source/openstreetmap.exports @@ -0,0 +1,2 @@ +@exportSymbol ol.source.OpenStreetMap + diff --git a/src/ol/source/stamen.exports b/src/ol/source/stamen.exports new file mode 100644 index 0000000000..bc110646c5 --- /dev/null +++ b/src/ol/source/stamen.exports @@ -0,0 +1,2 @@ +@exportSymbol ol.source.Stamen + diff --git a/src/ol/source/tilejson.exports b/src/ol/source/tilejson.exports new file mode 100644 index 0000000000..56b3f56285 --- /dev/null +++ b/src/ol/source/tilejson.exports @@ -0,0 +1 @@ +@exportSymbol ol.source.TileJSON