source: trunk/source/cocoa-ide/compile-hemlock.lisp @ 11895

Last change on this file since 11895 was 8428, checked in by gz, 12 years ago

Merge of the 'event-ide' branch. Hemlock's thread model has been changed
so that Hemlock commands now run in the Cocoa event thread -- see the
Hemlock file view.lisp for an overview.

IDE compilation has also been reorganized. Hemlock is now more fully
integrated into the IDE and cannot be compiled separately, sorry.

The hemlock-ext package has been repurposed to contain all interfaces
to window-system specific functionality.

There are also many many assorted other changes, cleanups and fixes.

The Hemlock documentation (Hemlock Command Implementor's Manual) in
http://trac.clozure.com/openmcl/wiki now correctly reflects the
implementation, although it doesn't (yet) describe the integration
with Cocoa or the threading model.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1(in-package "CCL")
2
3(defparameter *hemlock-src-dir-pathname* "ccl:cocoa-ide;hemlock;src;")
4
5(defparameter *hemlock-binary-dir-pathname* "ccl:cocoa-ide;hemlock;bin;openmcl;")
6
7(defparameter *hemlock-binary-file-extension*
8  (pathname-type (compile-file-pathname "foo.lisp")))
9
10(defun hemlock-source-pathname (name)
11  (make-pathname :name name
12                 :type "lisp"
13                 :defaults *hemlock-src-dir-pathname*))
14
15(defun hemlock-binary-pathname (name)
16  (make-pathname :name name
17                 :type *hemlock-binary-file-extension*
18                 :defaults *hemlock-binary-dir-pathname*))
19
20(defun compile-and-load-hemlock-file (name &optional force)
21  (let* ((source-pathname (hemlock-source-pathname name))
22         (binary-pathname (hemlock-binary-pathname name)))
23    (when (or force
24              (not (probe-file binary-pathname))
25              (> (file-write-date source-pathname)
26                 (file-write-date binary-pathname)))
27      (compile-file source-pathname :output-file binary-pathname :verbose t))
28    (load binary-pathname :verbose t)))
29
30
31(defparameter *hemlock-files*
32  '("package"
33
34    "hemlock-ext"                     
35               
36    "decls"                             ;early declarations of functions and stuff
37               
38    "struct"
39    "charmacs"
40    "key-event" 
41    "keysym-defs"
42    "cocoa-hemlock"
43    "rompsite"
44
45    "macros"
46
47    "views"
48    "line"
49    "ring"
50    "vars"
51    "interp"
52    "syntax"
53    "htext1"
54    "buffer" 
55    "htext2"
56    "htext3"
57    "htext4"
58    "files"
59    "search1"
60    "search2"
61    "table"
62    "modeline"
63    "pop-up-stream"
64    "font"
65    "streams"
66    "main"
67    "echo"
68    "echocoms"
69    "command"
70    "indent"
71    ;; moved     "comments"
72    "morecoms"
73    "undo"
74    "killcoms"
75    "searchcoms"
76    "isearchcoms"
77    "filecoms"
78    "doccoms"
79    "fill"
80    "text"
81    "lispmode"
82    "listener"
83    "comments"
84    "icom"
85    "defsyn"
86    "edit-defs"
87    "register"
88    "completion"
89    "symbol-completion"
90    "bindings"
91    ))
92
93(defun compile-hemlock (&optional force)
94  (with-compilation-unit ()
95    (dolist (name *hemlock-files*)
96      (compile-and-load-hemlock-file name force)))
97  (fasl-concatenate "ccl:cocoa-ide;hemlock"
98                    (mapcar #'hemlock-binary-pathname *hemlock-files*)
99                    :if-exists :supersede)
100  (provide "HEMLOCK")
101  )
102
103
104(provide "COMPILE-HEMLOCK")
Note: See TracBrowser for help on using the repository browser.