Skip to content

Commit 2ccf81c

Browse files
committed
CLJS-3316: Google Closure Library build script needs to generate deps.js
1 parent c0045c5 commit 2ccf81c

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

script/closure-library-release/closure-library-release.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ third_party_src_dir="$third_party_project_dir/src/main/resources"
112112

113113
mkdir -p "$src_dir" "$third_party_src_dir"
114114

115+
## Generate deps.js
116+
../closure_deps_graph.sh
117+
115118
## Copy Closure sources
116119

117120
cp -r \

script/closure_deps_graph.clj

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
(ns closure-deps-graph
2+
(:require [clojure.java.io :as io])
3+
(:import [java.io File]
4+
[com.google.javascript.jscomp SourceFile BasicErrorManager]
5+
[com.google.javascript.jscomp.deps
6+
BrowserModuleResolver
7+
DepsGenerator DepsGenerator$InclusionStrategy ModuleLoader
8+
ModuleLoader$PathResolver]))
9+
10+
(defn js-files-in
11+
"Return a sequence of all .js files in the given directory."
12+
[dir]
13+
(filter
14+
#(let [name (.getName ^File %)]
15+
(and (.endsWith name ".js")
16+
(not= \. (first name))))
17+
(file-seq dir)))
18+
19+
(spit (io/file "closure-library/closure/goog/deps.js")
20+
(.computeDependencyCalls
21+
(DepsGenerator.
22+
[]
23+
(map #(SourceFile/fromFile (.getAbsolutePath %))
24+
(mapcat (comp js-files-in io/file)
25+
["closure-library/closure/goog"]))
26+
DepsGenerator$InclusionStrategy/ALWAYS
27+
(.getAbsolutePath (io/file "closure-library/closure/goog"))
28+
(proxy [BasicErrorManager] []
29+
(report [level error]
30+
(println error))
31+
(println [level error]
32+
(println error)))
33+
(-> (ModuleLoader/builder)
34+
(.setErrorHandler nil)
35+
(.setModuleRoots [])
36+
(.setInputs [])
37+
(.setFactory BrowserModuleResolver/FACTORY)
38+
(.setPathResolver ModuleLoader$PathResolver/ABSOLUTE)
39+
(.build)))))

script/closure_deps_graph.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
if [[ -z "$CLJS_SCRIPT_QUIET" ]]; then
6+
set -x
7+
fi
8+
9+
FILE_SEP='/'
10+
PATH_SEP=':'
11+
OS_ID=`uname | tr [:upper:] [:lower:]`
12+
CLJS_SCRIPT_MVN_OPTS=${CLJS_SCRIPT_MVN_OPTS:-""}
13+
14+
if [[ $OS_ID == *mingw* ]]
15+
then
16+
echo "MINGW detected"
17+
# Refer to http://www.mingw.org/wiki/Posix_path_conversion
18+
FILE_SEP='//'
19+
PATH_SEP=';'
20+
fi
21+
22+
CP_FILE=`mktemp /tmp/cljs_cp.txt.XXXXXXXXXXX`
23+
24+
mvn -f ../../pom.template.xml dependency:build-classpath -Dmdep.outputFile=$CP_FILE -Dmdep.fileSeparator=$FILE_SEP -Dmdep.pathSeparator=$PATH_SEP $CLJS_SCRIPT_MVN_OPTS
25+
26+
CLJS_CP=`cat $CP_FILE`
27+
28+
# For Hudson server
29+
if [ "$HUDSON" = "true" ]; then
30+
$JAVA_HOME/bin/java -server -cp "$CLJS_CP""$PATH_SEP""src/main/clojure" clojure.main ../closure_deps_graph.clj
31+
else
32+
java -server -cp "$CLJS_CP""$PATH_SEP""src/main/clojure" clojure.main ../closure_deps_graph.clj
33+
fi

0 commit comments

Comments
 (0)