Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / buildSite.xml
1 <project name="swingjs" default="createSite" basedir=".">
2                         
3 <!-- buildSite.xml for building site/ -->
4         
5         
6   <target name="createSite" id="createSite">
7
8         <property name="project.path" value="." />
9
10         <!-- create a NON svn local directory only containing JS files  -->
11         
12     <echo>...adding JavaScript files from bin</echo>
13         <copy todir="site/j2s"  overwrite="true" >
14       <fileset dir="bin">
15         <include name="**/*.js" />
16         <exclude name="javajs/**/*.js" />
17       </fileset>
18     </copy>
19                 
20
21         <echo>...adding to /j2s all src property and css files -- adjust as necessary</echo>
22         <copy todir="site/j2s"  overwrite="true" >
23       <fileset dir="src">
24         <include name="**/*.properties" />
25         <include name="**/*.css" />
26         <include name="**/*.png" />
27       </fileset>
28     </copy>
29         
30         <echo>...adding resource directory</echo>
31         <copy todir="site/j2s/jalview/resources"  overwrite="true" >
32       <fileset dir="resources">
33         <include name="**/*" />
34       </fileset>
35     </copy>
36         
37         <!-- modify class names -->             
38
39     <echo>removing j2s globals Class and JavaObject</echo>
40     <echo>...replacing Class.forName with Clazz._4Name</echo>
41         <replace dir="site/j2s" includes="**/*.js" token="Class.forName" value="Clazz._4Name"/>
42     <echo>...replacing JavaObject with Clazz._O</echo>
43         <replace dir="site/j2s" includes="**/*.js" token=" JavaObject" value=" Clazz._O"/>
44     <echo>...removing all $fz references for sub/superclass common private function names</echo>
45         <replace dir="site/j2s" includes="**/*.js" token="($fz =" value=""/>
46         <replace dir="site/j2s" includes="**/*.js" token=", $fz.isPrivate = true, $fz)" value=""/>
47         <echo>...changing Clazz.pu$h() to Clazz.pu$h(self.c$) (only a partial fix)</echo>
48         <replace dir="site/j2s" includes="**/*.js" token="Clazz.pu$h()" value="Clazz.pu$h(self.c$)"/>
49         <replace dir="site/j2s" includes="**/*.js" token="Clazz.pu$h ()" value="Clazz.pu$h(self.c$)"/>
50                 
51
52     <echo>...abbreviating class name "javajs.util", and "com.jcraft.jzlib" to "JU"</echo>
53         <replace dir="site/j2s" includes="**/*.js" token="javajs.util" value="JU"/>
54         <replace dir="site/j2s" includes="**/*.js" token="com.jcraft.jzlib" value="JU"/>
55                                 
56         
57         <!-- make core files -->
58  
59         <echo>creating and compressing core files - warnings are OK; "does not exist" is trouble</echo>
60
61         <!-- note: any changes in these next sections must be reflected also
62                      in package.js -->
63 <!--    
64     <property name="javaCoreFiles" value="
65         java/lang/AbstractStringBuilder.js
66         java/lang/Enum.js
67         ...
68         " />
69         
70         
71         
72 -->    
73
74         <!-- 
75
76         <echo>creating minimal core.z.js</echo>
77         
78     <antcall target="call-core">
79         <param name="call-core.name" value="swingjs" />
80         <param name="call-core.list" value="
81                 ../js/JSmolJavaExt.js
82             java/awt/BasicStroke.js
83             java/awt/Stroke.js
84             java/util/Locale.js
85             java/util/ResourceBundle.js
86             JU/Rdr.js
87             javajs/api/GenericLineReader.js
88             java/io/BufferedInputStream.js
89             java/io/FilterInputStream.js
90             java/io/InputStream.js
91             java/io/BufferedReader.js
92             java/io/ByteArrayInputStream.js
93             java/io/Reader.js                   
94             java/io/StringReader.js
95             JU/Base64.js
96             JU/Encoding.js
97             java/util/MissingResourceException.js
98                 
99
100             jssun/misc/MessageUtils.js
101             java/awt/Dimension.js
102             java/awt/geom/Dimension2D.js
103             java/awt/Panel.js
104             java/util/ArrayList.js
105             java/util/AbstractList.js
106             java/util/AbstractCollection.js
107             java/awt/ComponentOrientation.js
108             java/security/AccessController.js
109             java/security/AccessControlContext.js
110             java/util/HashMap.js
111             java/util/MapEntry.js
112             java/util/AbstractSet.js
113             java/util/AbstractMap.js
114             java/awt/image/ImageObserver.js
115             java/lang/Enum.js
116             java/applet/AppletStub.js
117             java/applet/AppletContext.js
118             javajs/api/JSInterface.js
119             java/lang/StringBuilder.js
120             java/lang/AbstractStringBuilder.js
121             java/util/Arrays.js
122             java/util/Locale.js
123             java/awt/event/ActionListener.js
124             java/awt/event/AdjustmentListener.js
125             java/awt/event/ComponentListener.js
126             java/awt/event/ContainerListener.js
127             java/awt/event/FocusListener.js
128             java/awt/event/HierarchyBoundsListener.js
129             java/awt/event/HierarchyListener.js
130             java/awt/event/InputMethodListener.js
131             java/awt/event/ItemListener.js
132             java/awt/event/KeyListener.js
133             java/awt/event/MouseListener.js
134             java/awt/event/MouseMotionListener.js
135             java/awt/event/MouseWheelListener.js
136             java/awt/event/TextListener.js
137             java/awt/event/WindowFocusListener.js
138             java/awt/event/WindowListener.js
139             java/awt/event/WindowStateListener.js
140             java/awt/Cursor.js
141             java/awt/AWTError.js
142             java/awt/Insets.js
143             java/awt/RenderingHints.js
144             java/util/Collections.js
145                 java/util/SortedMap.js
146             java/util/SortedSet.js
147             java/util/Random.js
148             java/awt/event/AWTEventListenerProxy.js
149             java/beans/PropertyChangeSupport.js
150             java/beans/ChangeListenerMap.js
151             java/beans/IndexedPropertyChangeEvent.js
152             java/beans/PropertyChangeEvent.js
153             java/beans/PropertyChangeListenerProxy.js
154             java/beans/PropertyChangeListener.js
155             java/security/PrivilegedAction.js
156             java/awt/Point.js
157             jssun/awt/AppContext.js
158             java/lang/StringBuffer.js
159             java/util/IdentityHashMap.js
160             java/util/HashSet.js
161             jssun/awt/ComponentFactory.js
162             jssun/awt/WindowClosingListener.js
163             jssun/awt/WindowClosingSupport.js
164             java/awt/Window.js
165             java/util/Vector.js
166             java/awt/Color.js
167             java/awt/Paint.js
168             java/awt/Transparency.js
169             java/awt/ColorPaintContext.js
170             java/awt/PaintContext.js
171             java/awt/image/ColorModel.js
172             java/awt/color/ColorSpace.js
173             java/util/ResourceBundle.js
174             java/applet/Applet.js
175             java/net/URL.js
176             java/util/Hashtable.js
177             java/util/Dictionary.js
178             java/net/MalformedURLException.js
179             java/awt/GraphicsEnvironment.js
180             java/awt/event/WindowEvent.js
181             javax/swing/JComponent.js
182             javax/swing/Action.js
183             javax/swing/SwingUtilities.js
184             java/awt/Frame.js
185             java/awt/IllegalComponentStateException.js
186             javax/swing/SwingConstants.js
187             java/awt/Rectangle.js
188             java/awt/Shape.js
189             java/awt/geom/Rectangle2D.js
190             java/awt/geom/RectangularShape.js
191             java/awt/geom/FlatteningPathIterator.js
192             java/awt/geom/PathIterator.js
193             java/awt/geom/CubicCurve2D.js
194             java/awt/geom/CubicIterator.js
195             java/awt/geom/Line2D.js
196             java/awt/geom/LineIterator.js
197             java/awt/geom/QuadCurve2D.js
198             java/awt/geom/QuadIterator.js
199             jssun/awt/geom/Curve.js
200             java/awt/geom/IllegalPathStateException.js
201             java/awt/geom/RectIterator.js
202             java/awt/event/ActionEvent.js
203             java/awt/event/KeyEvent.js
204             java/awt/event/MouseWheelEvent.js
205             javax/swing/AbstractAction.js
206             javax/swing/AbstractButton.js
207             javax/swing/ArrayTable.js
208             javax/swing/event/SwingPropertyChangeSupport.js
209             javax/swing/JLayeredPane.js
210             javax/swing/JPanel.js
211             javax/swing/MultiUIDefaults.js
212
213             java/awt/Font.js
214             java/awt/font/TextAttribute.js
215             java/text/AttributedCharacterIterator.js
216             java/text/CharacterIterator.js
217                 java/awt/geom/Point2D.js
218             java/awt/geom/AffineTransform.js
219             java/awt/geom/NoninvertibleTransformException.js
220             java/awt/geom/Path2D.js
221             javax/swing/Icon.js
222             javax/swing/JPasswordField.js
223             javax/swing/JTextField.js
224             javax/swing/ActionPropertyChangeListener.js
225             javax/swing/event/ChangeListener.js
226             javax/swing/ActionMap.js
227             javax/swing/InputMap.js
228             javax/swing/Scrollable.js
229             javax/swing/event/CaretEvent.js
230             javax/swing/event/DocumentListener.js
231             javax/swing/event/EventListenerList.js
232             javax/swing/event/ChangeEvent.js
233             jssun/swing/StringUIClientPropertyKey.js
234             jssun/swing/UIClientPropertyKey.js
235             java/awt/Graphics2D.js
236             java/awt/Graphics.js
237             jssun/font/FontDesignMetrics.js
238             java/awt/FontMetrics.js
239             
240             JU/PT.js
241             javajs/api/JSONEncodable.js
242             JU/AU.js
243             JU/Lst.js
244             JU/DF.js
245             JU/SB.js
246             JU/M34.js
247             JU/M4.js
248             JU/T3.js
249             javax/swing/JRootPane.js
250         
251             javax/swing/JToggleButton.js
252             javax/swing/ButtonModel.js
253             javax/swing/JRadioButton.js
254
255             javax/swing/JApplet.js
256
257             java/awt/EventQueue.js
258             java/awt/AWTEventMulticaster.js
259             java/awt/AWTEvent.js
260             java/awt/event/AWTEventListener.js
261             java/awt/ActiveEvent.js
262             java/awt/event/InvocationEvent.js
263             java/awt/event/ComponentEvent.js
264             java/awt/event/MouseEvent.js
265             java/awt/event/InputEvent.js
266             java/awt/Toolkit.js
267             java/lang/Thread.js
268             java/lang/ThreadGroup.js
269             java/awt/FlowLayout.js
270             java/awt/BorderLayout.js
271             java/awt/LayoutManager2.js
272             java/awt/LayoutManager.js
273             java/awt/GraphicsCallback.js
274             java/awt/Container.js
275             java/awt/Component.js
276             jssun/awt/SunGraphicsCallback.js
277
278             javax/swing/RepaintManager.js
279             jssun/awt/SunToolkit.js
280
281                 java/awt/Conditional.js
282             java/awt/event/PaintEvent.js
283             java/awt/EventDispatchThread.js
284             java/awt/EventFilter.js
285             java/awt/ModalEventFilter.js
286             java/awt/peer/CanvasPeer.js
287             java/awt/peer/ComponentPeer.js
288             java/awt/peer/ContainerPeer.js
289             java/awt/peer/LightweightPeer.js
290             java/awt/peer/PanelPeer.js
291             java/awt/SentEvent.js
292             java/awt/SequencedEvent.js
293             java/util/AbstractSequentialList.js
294             java/util/LinkedList.js
295             JU/V3.js
296             javax/swing/ButtonGroup.js
297             javax/swing/SwingPaintEventDispatcher.js
298             jssun/awt/AWTAutoShutdown.js
299             jssun/awt/EventQueueItem.js
300             jssun/awt/ModalExclude.js
301             jssun/awt/NullComponentPeer.js
302             jssun/awt/PaintEventDispatcher.js
303             jssun/awt/PostEventQueue.js
304             jssun/java2d/SunGraphics2D.js
305
306                 javax/swing/UIManager.js
307             javax/swing/UIDefaults.js
308             javax/swing/LookAndFeel.js
309             javax/swing/DropMode.js
310             java/awt/font/FontRenderContext.js
311             java/awt/event/InputMethodEvent.js
312             javax/swing/JViewport.js
313             java/awt/event/ComponentAdapter.js
314             javax/swing/CellRendererPane.js
315             jssun/awt/AWTAccessor.js
316             javax/swing/ViewportLayout.js
317             javax/swing/event/CaretListener.js
318             javax/swing/DefaultBoundedRangeModel.js
319             javax/swing/BoundedRangeModel.js
320             javax/swing/KeyStroke.js
321             java/awt/AWTKeyStroke.js
322             java/util/StringTokenizer.js
323             javax/swing/ComponentInputMap.js
324             jssun/swing/DefaultLayoutStyle.js
325             javax/swing/LayoutStyle.js
326             javax/swing/JCheckBox.js
327             java/awt/ItemSelectable.js
328             java/awt/event/ItemEvent.js
329             javax/swing/DefaultButtonModel.js
330             javax/swing/OverlayLayout.js
331             javax/swing/SizeRequirements.js
332             javax/swing/JLabel.js
333             javax/swing/border/Border.js
334             javax/swing/RootPaneContainer.js
335             javax/swing/event/MenuDragMouseEvent.js
336             jssun/swing/UIAction.js
337             jssun/awt/RequestFocusController.js
338             javax/swing/AncestorNotifier.js
339             javax/swing/event/AncestorEvent.js
340             javax/swing/event/AncestorListener.js
341             javax/swing/ClientPropertyKey.js
342             javax/swing/JDialog.js
343             java/awt/Dialog.js
344             javax/swing/WindowConstants.js
345             javax/swing/JFrame.js
346             javax/swing/JWindow.js
347             javax/swing/KeyboardManager.js
348             javax/swing/JMenuBar.js
349             javax/swing/MenuElement.js
350             javax/swing/DefaultSingleSelectionModel.js
351             javax/swing/SingleSelectionModel.js
352             javax/swing/JMenu.js
353             java/awt/event/WindowAdapter.js
354             javax/swing/JMenuItem.js
355             javax/swing/event/MenuDragMouseListener.js
356             javax/swing/event/MenuKeyEvent.js
357             javax/swing/event/MenuKeyListener.js
358             javax/swing/JPopupMenu.js
359             javax/swing/JSeparator.js
360             javax/swing/MenuSelectionManager.js
361             javax/swing/PopupFactory.js
362             javax/swing/Popup.js
363             javax/swing/SwingHeavyWeight.js
364             javax/swing/JToolTip.js
365             javax/swing/event/PopupMenuEvent.js
366             javax/swing/event/PopupMenuListener.js
367             javax/swing/event/MenuEvent.js
368             javax/swing/event/MenuListener.js
369             javax/swing/border/AbstractBorder.js
370             jssun/awt/PeerEvent.js
371             jssun/awt/image/URLImageSource.js
372             jssun/awt/image/InputStreamImageSource.js
373             java/awt/image/ImageProducer.js
374             jssun/awt/image/ImageFetchable.js
375             jssun/awt/image/ImageConsumerQueue.js
376             jssun/awt/image/ImageFetcher.js
377             java/awt/event/FocusEvent.js
378             java/awt/event/HierarchyEvent.js
379             jssun/awt/ConstrainableGraphics.js
380             jssun/awt/Graphics2Delegate.js
381             java/awt/event/ContainerEvent.js
382             jssun/applet/AppletEvent.js
383             jssun/applet/AppletEventMulticaster.js
384             jssun/applet/AppletListener.js
385             jssun/misc/Queue.js
386
387             javax/swing/plaf/UIResource.js
388             javax/swing/plaf/InputMapUIResource.js
389             javax/swing/plaf/ActionMapUIResource.js
390             javax/swing/plaf/ComponentUI.js
391             javax/swing/plaf/FontUIResource.js
392             javax/swing/plaf/ColorUIResource.js
393             javax/swing/plaf/ComponentInputMapUIResource.js
394
395                 swingjs/api/JSFunction.js
396             swingjs/api/JSInterface.js
397             swingjs/api/Interface.js
398             swingjs/api/DOMNode.js
399
400                 swingjs/JSUtil.js
401             swingjs/JSToolkit.js
402                 swingjs/JSEvent.js
403                 swingjs/JSThread.js
404             swingjs/JSThreadGroup.js
405             swingjs/JSAppletPanel.js
406             swingjs/JSGraphics2D.js
407             swingjs/JSAppletThread.js
408             swingjs/JSMouse.js
409             swingjs/JSComponentPeer.js
410
411                         swingjs/plaf/HTML5LookAndFeel.js
412             swingjs/plaf/JSComponentUI.js
413             swingjs/plaf/JSPanelUI.js
414             swingjs/plaf/JSRadioButtonUI.js
415             swingjs/plaf/JSRootPaneUI.js
416             swingjs/plaf/JSButtonListener.js
417             swingjs/plaf/JSButtonUI.js
418             swingjs/plaf/JSToggleButtonUI.js
419             swingjs/plaf/LazyActionMap.js
420     
421
422                 "/>
423     </antcall>
424         -->
425 <!--    
426
427         put classes in here temporarily to exclude them from the 
428         core load and make them easier to debug
429         
430                 
431         minimize additional JSmol JavaScript -->
432
433   </target>
434
435
436   <target name="call-core" id="call-core">
437         <echo>......Creating core${call-core.name}.js</echo>    
438         <concat destfile="site/swingjs/js/core${call-core.name}.js">
439                 <filelist dir="site/swingjs/j2s" files="${call-core.list}" />
440         </concat> 
441         <copy file="site/swingjs/js/core${call-core.name}.js" tofile="site/swingjs/js/core2.js" />
442         <!--
443                 <echo>...removing unnecessary Clazz.defineStatics blocks</echo>
444           This next replacement does not work, because the j2s compiler does not 
445           distinguish between final and non-final static variable.
446           We will have to do this on a case-by-case basis. 
447            
448         <replaceregexp file="site/swingjs/js/core2.js" match="(Clazz.defineStatics ?\(((?![\[\(]).)*?\);)" flags="gs" replace="/*\1*/" /> 
449         <copy file="site/swingjs/js/core2.js" tofile="site/swingjs/js/core${call-core.name}3.js" />
450         
451         
452                 java/io/InputStreamReader.js
453             javax/swing/text/JTextComponent.js
454             javax/swing/text/DefaultCaret.js
455             javax/swing/text/Caret.js
456             javax/swing/text/NavigationFilter.js
457             javax/swing/text/AbstractDocument.js
458             javax/swing/event/DocumentEvent.js
459             javax/swing/text/Document.js
460             javax/swing/text/DocumentFilter.js
461             javax/swing/text/Element.js
462             javax/swing/text/MutableAttributeSet.js
463             javax/swing/text/AttributeSet.js
464             javax/swing/tree/TreeNode.js
465             javax/swing/undo/AbstractUndoableEdit.js
466             javax/swing/undo/UndoableEdit.js
467             javax/swing/undo/CannotRedoException.js
468             javax/swing/undo/CannotUndoException.js
469             javax/swing/undo/CompoundEdit.js
470             javax/swing/event/UndoableEditEvent.js
471             javax/swing/event/UndoableEditListener.js
472             javax/swing/text/BadLocationException.js
473             javax/swing/text/SegmentCache.js
474             javax/swing/text/Segment.js
475             javax/swing/text/SimpleAttributeSet.js
476             javax/swing/text/StyleConstants.js
477             javax/swing/text/StateInvariantError.js
478             javax/swing/text/StyleContext.js
479             javax/swing/text/Style.js
480             javax/swing/text/Utilities.js
481             javax/swing/text/CompositeView.js
482             javax/swing/text/View.js
483             javax/swing/text/Position.js
484             javax/swing/text/StyledDocument.js
485                 javax/swing/text/DefaultEditorKit.js
486                 javax/swing/text/EditorKit.js
487             javax/swing/text/TextAction.js
488             javax/swing/text/PlainDocument.js
489             javax/swing/text/DefaultHighlighter.js
490             javax/swing/text/Highlighter.js
491             javax/swing/text/LayeredHighlighter.js
492             javax/swing/text/Keymap.js
493         
494          -->
495
496         <replace dir="site/swingjs/js" includes="core2.js" token="Clazz." value="Clazz_"/>
497         <replace dir="site/swingjs/js" includes="core2.js" token="Clazz__" value="Clazz._"/>
498         <replace dir="site/swingjs/js" includes="core2.js" token="($fz = " value=""/>
499         <replace dir="site/swingjs/js" includes="core2.js" token=", $fz.isPrivate = true, $fz)" value=""/>      
500         <replace dir="site/swingjs/js" includes="core2.js" token="Clazz_CheckPrivate" value="Clazz.CheckPrivate"/>      
501         <concat destfile="site/swingjs/js/core${call-core.name}.js"><filelist dir="site/swingjs/js" files="
502                 core/coretop2.js
503                 core2.js
504                 core/corebottom2.js
505                 " />
506         </concat>
507         <echo>......Generating core${call-core.name}.z.js</echo>        
508         <java jar="jars/closure_compiler.jar" fork="true" dir="site/swingjs/js" failonerror="false">
509                 <arg line="--js core${call-core.name}.js --js_output_file ../j2s/core/core${call-core.name}.z.js" />
510     </java>
511   </target>
512
513   <target name="call-min" id="call-min">
514         <echo>......Creating JSmol.${call-min.minname}.js</echo>        
515         <concat destfile="site/swingjs/js/SwingJS.${call-min.fullname}.js">
516                 <filelist dir="jsmoljs" files="${call-min.list}" />
517         </concat>   
518         <java jar="jars/closure_compiler.jar" fork="true" dir="" failonerror="false">
519                 <arg line="--js site/swingjs/js/SwingJS.${call-min.fullname}.js --js_output_file site/swingjs/SwingJS.${call-min.minname}.js" />
520     </java>
521   </target>
522         
523 </project>