Commit Graph

72 Commits

Author SHA1 Message Date
Andreas Hocevar
e69f065a23 Merge pull request #2479 from ahocevar/generate-externs
Node task to generate externs for OpenLayers 3
2014-08-11 18:29:04 +02:00
Andreas Hocevar
9780e9f0c0 Dereference typedef 2014-08-09 08:53:24 +02:00
Andreas Hocevar
a35f361683 Build types only for olx.* symbols from externs 2014-08-09 08:53:24 +02:00
Andreas Hocevar
9e814f119f Do not process file type doclets 2014-08-09 08:53:24 +02:00
Andreas Hocevar
e8eebd8846 Allow to provide externs for inclusion in info.json 2014-08-09 08:53:24 +02:00
Frederic Junod
190db934ee Always use goog.json.parse and set goog.json.USE_NATIVE_JSON=true 2014-08-07 17:14:50 +02:00
Frederic Junod
cf85079d22 Mark 'es5Strict' checks as errors 2014-08-07 17:14:49 +02:00
Andreas Hocevar
f0242a76c4 Include typedefs and types from olx.js 2014-08-04 20:37:46 +02:00
Andreas Hocevar
b2059b85d2 Add data for typedefs to info.json 2014-08-04 20:37:45 +02:00
Andreas Hocevar
26dae36a0b Extract types in a separate function 2014-08-04 20:37:45 +02:00
Andreas Hocevar
9517c0d433 Use 'Function' type instead of 'function' 2014-08-04 20:37:44 +02:00
Andreas Hocevar
1e79acac20 Build externs file from info.json
This change adds all information that is needed to generate the externs
file to build/info.json, so tasks/generate-externs.js no longer needs
to spawn JSDoc.
2014-08-04 20:37:44 +02:00
Andreas Hocevar
0b622ba5e7 Add JSDoc configuration to generate ol3 externs 2014-08-04 20:37:43 +02:00
Andreas Hocevar
8e6711835c Move plugins one level up so they can be used by other configurations 2014-08-04 20:37:43 +02:00
tsauerwein
9102647751 Write version in builds 2014-07-25 16:10:08 +02:00
Peter Robins
ddfe11042b Update buildcfg/readme 2014-07-22 10:00:56 +01:00
Tim Schaub
e9c6e58663 Removing the build-all target
The ol-all.json and ol.json build configurations differ only in their use of the manage_closure_dependencies Compiler option.  I don't think there is value in running both (there are plenty of other compiler options that we don't exercise in this same way).
2014-07-17 21:48:53 -06:00
Tim Schaub
4dc601f30d Generate a ol-debug.js script useful for debugging
Instead of running everything through the Compiler just to remove whitespace, we provide a build that is a simple concatenation of all scripts in dependency order.  This build (ol-debug.js) should never be used in production (the same applies to the old ol-whitespace.js build).  Instead, the intention is that it be used to aid in debugging during development.
2014-07-17 21:33:02 -06:00
Tim Schaub
28a23a11b5 Remove ol-simple.js build
We've proven that we can, but that doesn't mean we should be building with `SIMPLE_OPTIMIZATIONS`.
2014-07-17 21:31:58 -06:00
Tim Schaub
aecaa52cb1 Make our build configs more portable by using the default src config
If a `src` config is not provided, by default, all of the library sources are included.  There is some special handling in the build task to make sure all library sources are included regardless of the path to the build config.  When someone includes a `src` config, path patterns are assumed to be relative to the current working directory (unless overriden with the `cwd` config).  So, when you use the `src` config, your config is no longer portable.
2014-07-14 17:52:10 -06:00
Tim Schaub
c93e80a14a Always regenerate info using all sources if any have changed
Because we don't know if a new or modified file includes changes to the class hierarchy, we regenerate info for all sources any time any one has changed.  An alternative would be to generate info first for the new or modified file and then (potentially) regenerate info for more source files in the class hierarchy, but this makes the generate-info.js task far more complicated.
2014-07-12 14:39:18 -06:00
Tim Schaub
d99a61545c Use @observable annotation instead of @todo observable 2014-07-05 16:16:44 -04:00
Tim Schaub
4cf5ab4620 Use @api annotation instead of @todo api 2014-07-05 15:41:14 -04:00
Éric Lemoine
c6138edbcb Remove the test.json Plovr config file 2014-07-04 10:51:18 +02:00
Éric Lemoine
52294519bc Remove the base.json Plovr config file 2014-07-04 10:51:18 +02:00
Éric Lemoine
07b02c2a55 Add a buildcfg/readme.md 2014-07-04 10:51:18 +02:00
Frederic Junod
2064d08602 Refresh the compiler error list
Based on https://github.com/openlayers/closure-util/blob/master/compiler-options.txt
2014-07-04 10:51:17 +02:00
Éric Lemoine
f54398eda3 compilation_level is now just ADVANCED and SIMPLE 2014-07-04 10:51:17 +02:00
Éric Lemoine
8c4a55cc65 Use build.js for compiling the examples all at once 2014-07-04 09:15:23 +02:00
Éric Lemoine
f89abb53a9 Use build.js for ol-all.js 2014-07-04 09:15:23 +02:00
Éric Lemoine
4e8c9c5470 Use build.js for ol-whitespace.js 2014-07-04 09:15:23 +02:00
Éric Lemoine
3ea304f5bf Use build.js for ol-simple.js 2014-07-04 09:15:23 +02:00
Éric Lemoine
04e60a9d37 Use build.js for ol.js 2014-07-04 09:15:22 +02:00
Tim Schaub
2f5a92c2c9 Treat classdesc as description 2014-06-28 10:46:36 -04:00
Tim Schaub
d5de99bcf7 Add symbol kind to info 2014-06-25 11:11:22 -04:00
Tim Schaub
070f81aa7d Add description to symbols and defines 2014-05-05 07:41:53 -07:00
Tim Schaub
f9157a6123 Rename generate-symbols.js to generate-info.js
This task generates build related metadata for the library based on doc annotations.  Since it is about more than writing out exportable symbols, it makes sense to have a more general name.
2014-05-05 07:41:47 -07:00
Tim Schaub
48828a238a Generate metadata for boolean defines in addition to exportable symbols 2014-05-05 07:14:23 -07:00
Tim Schaub
a083c6149a No more generated internal source
With this change, the only two remaining generated scripts are build/exports.js and build/test/requireall.js.  Both are only required by Plovr.  With the Node based build task, a temporary exports.js file is created.  The Node based server can be used to run the tests without build/test/requireall.js.
2014-04-29 09:57:25 -06:00
Tim Schaub
9b4f61be3e No need for requireall.js when including exports.js 2014-04-29 09:57:25 -06:00
Tim Schaub
d087fdbefd Add list of provides to symbol metadata 2014-04-29 09:57:25 -06:00
Andreas Hocevar
fbdbbfb7a7 Get rid of stability annotations and document stability with api
This change adds a stability value to the api annotation, with
'experimental' as default value.

enum, typedef and event annotations are never exportable, but
api annotations are needed there to make them appear in the
docs.

Nested typedefs are no longer inlined recursively, because the
resulting tables get too wide with the current template.
2014-04-29 09:53:07 -06:00
Tim Schaub
88d67b7370 Regenerate symbols if parents have changed
The generate-symbols.js task runs JSDoc on source files.  Because this takes a long time (13s) to run on the whole library, the resulting symbols file includes additional metadata to make it possible to do incremental symbol generation on subsequent runs.  The 'path' and 'extends' metadata for a symbol are used to determine what needs to be regenerated.
2014-04-29 09:53:06 -06:00
Tim Schaub
1273c26f7a Use new generate-exports.js task 2014-04-29 09:53:05 -06:00
Tim Schaub
e53fde402b Write out sorted symbols, excluding inherited ones on private classes
There are cases where a private class may inherit an exportable member (e.g. ol.DebugTile_#getTileCoord comes from ol.Tile#getTileCoord).  We want to avoid making these exportable.
2014-04-29 09:53:05 -06:00
Tim Schaub
9800b38250 Adding a JSDoc configuration for generating metadata on exported symbols
This generates info for all symbols annotated with "@todo api" (when Plovr is replaced, this will become "@api").  Generated metadata is written to stdout.  A separate process will handle the output.
2014-04-29 09:53:05 -06:00
Tim Schaub
acb0fd8f06 Use externs/olx.js instead of objectliterals.jsdoc
The single externs/olx.js file describes all of the "options" objects we accept in our constructors.  The @typedef annotations are used by the compiler for type checking.  The @type annotations include documentation for individual options and serve as externs when compiling a profile of the library.  When compiling an application together with the library, the externs/olx.js file is included as one of the sources to provide the @typedef's without generating externs.

If we want to maintain multiple src/*.externs.js files instead of one large externs/olx.js file, we can.  But while we are still using Plovr, it makes for easier build configurations to have one file.

This removes the build tasks that generated the build/src/external/src/externs/types.js and build/src/internal/src/types.js files as those are both replaced by the single externs/olx.js file.
2014-04-08 11:41:24 -06:00
Frederic Junod
f60854e63f Remove unneeded json.js extern 2014-03-27 11:21:20 +01:00
Tom Payne
c5f7d08694 Remove stray comma 2014-02-26 17:56:22 +01:00
Tom Payne
21a5052da6 Include VBArray externs in build 2014-02-17 17:37:25 +01:00