Sign in Join
Wiki copytemporary

Carbon Interface/ja: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## 概要
22
33Carbon は macOS のネイティブAPIの一つです(訳注: 歴史的な事情で、マックのウィンドウシステムは複数のフレームワーク — ライブラリの集合体 — を持っています。現在では Carbon の他に Cocoa フレームワークが用いられています)。
44
55## 参考
66
77- [[macOS Programming Tips/ja]] - macOS
88- [[Carbon interface FAQ/ja]] - Carbon インターフェースについてよくある質問
99- [[Carbon interface internals]] - If you want to help improving the Carbon interface
1010
1111## 必要なもの
1212
1313Carbon ウィジェットセットは、現在のところ、macOS でのデフォルトのウィジェットセットです。インストールの方法については、[[Installing Lazarus on macOS|Installing Lazarus on macOSをご]]覧下さい(訳注: 以下にあるように、Lazarus snapshot を入手すれば簡単です。Sourceforge等にある0.9.26以降の安定バージョンも、macOS 用は Carbon版です)。
1414
1515## Carbon版Lazarusを入手する
1616
1717![Carbon IDE version 0.9.25 running on Tiger 10.4](/wiki-images/6/62/Carbon_ide_0_9_25.png) 注: Lazarus スナップショットのインストールを行う場合は、この節と次の節を飛ばしても構いません。スナップショットにはCarbon ウィジェットセットのソースとコンパイル済みのユニットが含まれています。
1818
1919- macOS用SVNをインストールする:[Martin Ott](http://www.codingmonkeys.de/mbo/)がよいパッケージを公開してくれています。他にも、[fink](http://www.finkproject.org/)を使って SVNクライアントを入れることができます。[Versiontracker](http://www.versiontracker.com/macosx/)にはGUI版のSVNクライアントがあります。
2020- [[Installing Lazarus|Installing_Lazarus#Downloading_Lazarus_SVNに]]従って操作して下さい。
2121- Lazarusを走らせます。IDEが起動し、一つの空フォームからなる新しいプロジェクトができます。このプロジェクトを適当な名前で保存して下さい。以下の例では /Users/\<yourUsername\>/pascal/test/project1.lpi という名前だと仮定します。
2222
2323### Makeファイルを使って Carbon インターフェースをコンパイルする
2424
25250.9.25 から Carbon ウィジェットセットがデフォルトのmacOS用ウィジェットセットになりました。そのため、この操作は最早必要ではありません(訳注: 0.9.24まではgtkウィジェットセットがデフォルトでした)。
2626
2727ターミナルでこうタイプします:
2828
29-`make lcl LCL_PLATFORM=carbon`
29+```
30+make lcl LCL_PLATFORM=carbon
31+```
3032
3133### Makeファイルを使って Carbon版Lazarus IDE をコンパイルする
3234
3335Lazarus 0.9.25 以降が必要です。
3436
3537ターミナルでこうタイプします:
3638
37-`make all LCL_PLATFORM=carbon OPT="-k-framework -kCarbon -k-framework -kOpenGL"`
39+```
40+make all LCL_PLATFORM=carbon OPT="-k-framework -kCarbon -k-framework -kOpenGL"
41+```
3842
3943Leopard 10.5.x では、Apple's developer pages: <http://developer.apple.com/qa/qa2007/qa1567.html>
4044
41-`に述べられているように、こうなります:`
45+```
46+に述べられているように、こうなります:
47+```
4248
43-`make all LCL_PLATFORM=carbon OPT="-k-framework -kCarbon -k-framework -kOpenGL -k'-dylib_file' \`\
44-`    -k'/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'"`
49+```
50+make all LCL_PLATFORM=carbon OPT="-k-framework -kCarbon -k-framework -kOpenGL -k'-dylib_file' \
51+ -k'/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'"
52+```
4553
4654**Carbon IDEでの注意点**
4755
4856- You must run Lazarus via lazarus.app を通して Lazarusを起動しなければいけません(訳注: ファインダで「UNIX実行ファイル」と表示される80MB程度のファイルではなく、Lazarusアイコンのついた「アプリケーション」と表示される方)。
4957- エディタがモノスペースフォントを使っていることを確かめて下さい。Editor Options ダイアログで確認できます。"Monaco" フォントがおすすめです(訳注: Lazarusに限らず、エディタの日本語処理問題は舶来アプリケーションの鬼門です。[[Bug Tracking/ja|Bug Tracking/jaをご]]覧下さい)。
5058
5159## Lazarusを使って Carbon インターフェースをコンパイルする
5260
5361ここで、Lazarusが /Users/\<yourUsername\>/pascal/lazarus/ にインストールしてあるとします。
5462
5563- Lazarusを起動します。
5664- Tools -\> Options -\> Files -\> Lazarus Directory を /Users/\<yourUsername\>/pascal/lazarus/ に変更します(訳注: 以前の版では/usr/local/share/lazarus/に導入されていました。現在、デフォルトでは /Developer/lazarus/に導入されます。アップデートの際忘れずにこの項目を変更して下さい。)
5765- Tools\>Configure "Build Lazarus"\> を次のようにセットして下さい。![](/wiki-images/7/7c/BuildLazarusOptionsCarbonIntf.png)
5866- 0.9.24 では、
5967
60-`-k-framework -kCarbon -k-framework -kOpenGL`
68+```
69+-k-framework -kCarbon -k-framework -kOpenGL
70+```
6171
6272を'Options' に追加して下さい。そうしないと、リンク中に「未解決のシンボル」エラーが発生します(_ActivateWindow のような Carbon のシンボルです)。
6373
6474- Tools\>Build Lazarus -- これで Carbon インターフェースがコンパイルされ、.ppuファイルが /Users/\<yourUsername\>/pascal/lazarus/lcl/units/powerpc-darwin と /Users/\<yourUsername\>/pascal/lazarus/lcl/units/powerpc-darwin/carbon に作られます。
6575
6676## 初めてのネイティブ Carbon アプリケーション
6777
6878### コンパイラオプション
6979
7080Project \> Compiler Options \> Paths \> LCL Widget Type を *carbon* にセットします。
7181
7282これで、エラーなしにプロジェクトをコンパイルできるようになったはずです。実際に、*project1* という実行ファイルができ上がりますが、これは起動してもフォーカスを当てることができません。というのも、macOSがいくつかの隠しリソースファイルを必要とするからです。
7383
7484**Leopard 10.5での注意:** フォーラム[this](http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=5174&start=0&postdays=0&postorder=asc&highlight=) で論議されたように、Leopard では次のリンカパラメタをプロジェクトに追加する必要があります:
7585
76-`-dylib_file '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'`
86+```
87+-dylib_file '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'
88+```
7789
7890(Project \> Compiler Options \> Linker \> Pass additional options to the linker にこれを追加する場所があります)
7991
8092## アップルリソースファイルを作る
8193
8294**注:** 0.9.25 Lazarus から、以下のツールを自分でコンパイルしなくても、[[Application Bundle/ja|アプリケーションバンドルを]]作ることができるようになりました。それに対応するボタンは Project \> Project Options... \> Create Application Bundle です。
8395
8496コマンドラインツール:
8597
8698IDE で /Users/\<yourUserName\>/pascal/lazarus/components/macfiles/examples/createmacapplication.lpi を開き、コンパイルします。
8799
88100適当なターミナルアプリケーションを起動して、タイプします:
89101
90102 cd /Users/<yourUserName>/pascal/project1/
91103 /Users/<yourUserName>/pascal/lazarus/components/macfiles/examples/createmacapplication project1
92104 ln -s ../../../project1 project1.app/Contents/MacOS/project1
93105
94106これでプログラムを起動することができるようになります(オプションの[[IDE Window: Project Options/ja|Use Application Bundle for running and debugging (darwin only)をチェックします]])。IDEからでも、ファインダでアイコンをクリックしても、macOS 標準のTerminal.appで "open project1.app" としてもかまいません。
95107
96108Tip: GTK実行ファイルからアプリケーションバンドルを生成するスクリプトが [[macOS Programming Tips/ja|macOS Programming Tipsにあります]]。これに手を入れれば、Carbon実行ファイルに使えるようになります (X11で実行ファイルを起動する為の4命令を取る)。[ここ](http://web.fastermac.net/~MacPgmr/Lazarus/)にはCarbonアプリケーション用に若干の改善を施したものがあります。
97109
98110## ユニバーサルバイナリを作る
99111
100112Lazarus が作るアプリケーションは一種類のCPU向けですが、macOSでは、PowerPCとIntel CPUがあり得ます。ユーザのマックがどちらのCPUを用いていても同一のプログラムを実行できるように、ユニバーサルバイナリを作って配布したくなるかもしれません。このためには、配布したいアプリケーションを、PowerPCとIntelをターゲットにして、それぞれコンパイルしないければなりません。次に、コンパイルされたそれぞれのCPU向けバイナリを一緒にまとめる必要があります。そのためには macOSのプログラムである lipo を用います(Lazarusが必要とする他のツールと一緒に、Developer Tools に入っています)。例えば、アプリケーション 'myproj' の PowerPC版実行ファイルをフォルダ 'ppc' に、Intel版実行ファイルを 'intel' に置いてあるとします。この二つを一緒にするには、次のコマンドを走らせます:
101113
102-` lipo -create ./ppc/myproj ./intel/myproj -output ./myproj`
114+```
115+ lipo -create ./ppc/myproj ./intel/myproj -output ./myproj
116+```
103117
104118これで myproj が新しくできますから、これを .app フォルダにコピーします。
105119
106120---
107121*From the Free Pascal wiki, page "Carbon Interface/ja", as it stood on 2020-02-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
108122Category: macOS/ja

Back to history