[Diary/2011/February]

EmacsでProcessingのコードの編集続き2 / 2011-02-08 (火)

今日

午前中.やはりEmacsでのProcessing環境構築.
結局processing-emacsの中身を変えて使う事に.

午後,3年生の課題発表.

夜,環境構築続き.

Linuxに関しては通常の.emacsに書く設定のみで実行可能.
(ここではprocessing-1.2-1でjavaを含んでいるパッケージを利用)
上記のサイトから落とせるprocessing-mode.elのを読み込み,.emacsを以下のようにする.

(autoload 'processing-mode "processing-mode" "Processing mode" t)
(add-to-list 'auto-mode-alist '("\\.pde$" . processing-mode))
(setq processing-location "~/processing-1.2.1/")

ただし,配布している1.2.1のパッケージの実行ファイルでは,preferences.txtの場所指定は出来ないので,processingの中に入ってる/lib/preferences.txtを,libディレクトリごと,スケッチディレクトリの中に突っ込む必要がある.

OSXの場合,/Applications/以下にProcessing.appが配置されるので,processing-mode.elのパス指定部を以下のように編集する.

;(concat (file-name-as-directory processing-location)
;	  "java/bin/java -classpath \""
(concat "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java -classpath \""
	  (apply 'make-java-classpath
		 (mapcar (lambda (x) (expand-file-name (concat processing-location x)))
			 '(
			   ;"java/lib/rt.jar"
			   ;"java/lib/tools.jar"
			   ;"lib/antlr.jar" "lib/core.jar"
			   "Java/antlr.jar" "Java/core.jar"
			   ;"lib/ecj.jar" "lib/jna.jar"
			   "Java/ecj.jar" "Java/jna.jar" "Java/quaqua.jar" 
			   ;"lib/pde.jar")))
			   "Java/pde.jar")))
	  "\" processing.app.Commander"
	  " --sketch=\"" (expand-file-name sketch-dir)
	  "\" --output=\"" (expand-file-name output-dir)
	  ;; Remove this comment when Processing implements the --preferences=??? command-line option.
	  ;;"\" --preferences=\"" (expand-file-name "~/.processing/preferences.txt")
	  "\" --" cmd
	  (if (string= cmd "export-application")
	      (concat " --platform="
		      (if platform platform (processing-platform))))))

Linuxと同様に,lib/preferences.txtをlibディレクトリごとスケッチディレクトリの中に突っ込んでおく.
また.emacsは以下のように.

(autoload 'processing-mode "processing-mode" "Processing mode" t)
(add-to-list 'auto-mode-alist '("\\.pde$" . processing-mode))
(setq processing-location "/Applications/Processing.app/Contents/Resources/")

しかし残念ながら,CarbonEmacsではjavaが実行時にerror=13, Permission deniedを吐いてしまい,実行は不可能だった.
実行のキーバインドはC-c C-rで,この時にcompileメッセージが出てくるので,これをそのままターミナルに貼付けたら実行可能.OSXのjavaとCarbonEmacsの問題なんだろうな多分.
AppleScriptから無理矢理Processing IDEを呼び出す方法でも同じエラーだったし.

とりあえずLinuxでは普通に出来たし,OSXでもEmacsで編集,ターミナルでそのまま実行が可能になったので,ここで諦める.