OpenLayersのカスタムビルド

OpenLayersのカスタムビルドをしているのは前述の通り。やはり速度が違う。

これで若干つまずいたのでここにメモを残す。

README読め

(root)/build/README.txt に書いてある通りにする。コンプレッサにはclosure-compilerを選択。で、zipを落として compiler.jar を抽出。(root)/tools に入れる。

そうすると失敗する。

compiler.jar を closure-compiler.jar にしないといけない。これ README.txt に書いてありました。ちゃんと読めよ…。

あとは、liteとかmobileとかサンプルがあるので、それをもとに作成。

ファイル名は (prefix).cfg として(サフィックス cfg は必須)、

python build.py -c closure (prefix) (出力ファイル)

としますが、".cfg"サフィックスは引数には入れません。

あと余談ですが、出力ファイルは OpenLayers.(prefix).js とするのが流儀っぽいので、そうしました。

Pythonバージョンに注意

OpenLayers-2.12 の話です。

エラーが出たのです、しかも Syntax Error が。これは文法自体がおかしい場合なので、根本的に間違っているのではないか、と思ったのです。

ただ Print "..." でエラーが出ました。となると、処理系のほうで、文法に手が入れられたのではないか、と。これを補強するように、Windows用のPythonを落とそうとした際に 3.x系と 2.x系とがありました。3.x系でなんらかの仕様変更があって、2.x系のスクリプトが多いので完全に移行仕切れてないのではないか、と。で、ちょっとgoogleさんに聞いてみたら、案の定、文法が変わった(というか許容される文法を絞った)模様。たとえば print "..." がアウトで print("...")と書く、except Exception, E: がアウトで except Exception as E: と書く、とか。

使っていたPythonは3.x系。うむこれはスクリプトを3.x系にしてやろうじゃないか、と思っていじってみましたが、build.pyは改めたったんですが、(root)/tools/*.py が控えてて、あきらめました。Python 2.x系を入れれば、即効解決です。あと、改めたbuild.pyはPython 2.x系でも通りました。