Difference between revisions of "Carbon Interface/ja"

From Free Pascal wiki
Jump to navigationJump to search
m (substituted with a new translation of en:)
m (Bypass page link redirect)
 
(16 intermediate revisions by 6 users not shown)
Line 3: Line 3:
 
{{Japanese Menu}}
 
{{Japanese Menu}}
  
{{CarbonInterface}}
 
  
 
==概要==
 
==概要==
Carbon は Mac OS のネイティブAPIの一つです(訳注: 歴史的な事情で、マックのウィンドウシステムは複数のフレームワーク — ライブラリの集合体 — を持っています。現在では Carbon の他に Cocoa フレームワークが用いられています)。
+
Carbon は macOS のネイティブAPIの一つです(訳注: 歴史的な事情で、マックのウィンドウシステムは複数のフレームワーク — ライブラリの集合体 — を持っています。現在では Carbon の他に Cocoa フレームワークが用いられています)。
  
 
{{Other Interfaces}}
 
{{Other Interfaces}}
Line 12: Line 11:
 
== 参考 ==
 
== 参考 ==
  
* [[OS X Programming Tips/ja]]
+
* [[macOS Programming Tips/ja]] - macOS
* [[Carbon interface FAQ]] - A list of frequently asked questions about Carbon interface
+
* [[Carbon interface FAQ/ja]] - Carbon インターフェースについてよくある質問
 
* [[Carbon interface internals]] - If you want to help improving the Carbon interface
 
* [[Carbon interface internals]] - If you want to help improving the Carbon interface
  
 
== 必要なもの ==
 
== 必要なもの ==
  
Carbon ウィジェットセットは、現在のところ、Mac OS Xでのデフォルトのウィジェットセットです。インストールの方法については、[[Installing Lazarus on MacOS X|Installing Lazarus on Mac OS X]]をご覧下さい(訳注: 以下にあるように、Lazarus snapshot を入手すれば簡単です。Sourceforge等にある0.9.26以降の安定バージョンも、Mac OS X用は Carbon版です)。
+
Carbon ウィジェットセットは、現在のところ、macOS でのデフォルトのウィジェットセットです。インストールの方法については、[[Installing Lazarus on macOS]]をご覧下さい(訳注: 以下にあるように、Lazarus snapshot を入手すれば簡単です。Sourceforge等にある0.9.26以降の安定バージョンも、macOS 用は Carbon版です)。
  
 
== Carbon版Lazarusを入手する ==
 
== Carbon版Lazarusを入手する ==
  
[[Image:carbon_ide_0_9_25.png|thumb|Carbon IDE version 0.9.25 running on Mac OS X 10.4]]
+
[[Image:carbon_ide_0_9_25.png|thumb|Carbon IDE version 0.9.25 running on Tiger 10.4]]
 
注: Lazarus スナップショットのインストールを行う場合は、この節と次の節を飛ばしても構いません。スナップショットにはCarbon ウィジェットセットのソースとコンパイル済みのユニットが含まれています。
 
注: Lazarus スナップショットのインストールを行う場合は、この節と次の節を飛ばしても構いません。スナップショットにはCarbon ウィジェットセットのソースとコンパイル済みのユニットが含まれています。
  
*Mac OS X用SVNをインストールする:[http://www.codingmonkeys.de/mbo/ Martin Ott]がよいパッケージを公開してくれています。他にも、[http://www.finkproject.org/ fink]を使って SVNクライアントを入れることができます。[http://www.versiontracker.com/macosx/ Versiontracker]にはGUI版のSVNクライアントがあります。
+
*macOS用SVNをインストールする:[http://www.codingmonkeys.de/mbo/ Martin Ott]がよいパッケージを公開してくれています。他にも、[http://www.finkproject.org/ fink]を使って SVNクライアントを入れることができます。[http://www.versiontracker.com/macosx/ Versiontracker]にはGUI版のSVNクライアントがあります。
 
*[[Installing_Lazarus#Downloading_Lazarus_SVN]]に従って操作して下さい。
 
*[[Installing_Lazarus#Downloading_Lazarus_SVN]]に従って操作して下さい。
 
*Lazarusを走らせます。IDEが起動し、一つの空フォームからなる新しいプロジェクトができます。このプロジェクトを適当な名前で保存して下さい。以下の例では /Users/<yourUsername>/pascal/test/project1.lpi という名前だと仮定します。
 
*Lazarusを走らせます。IDEが起動し、一つの空フォームからなる新しいプロジェクトができます。このプロジェクトを適当な名前で保存して下さい。以下の例では /Users/<yourUsername>/pascal/test/project1.lpi という名前だと仮定します。
Line 31: Line 30:
 
=== Makeファイルを使って Carbon インターフェースをコンパイルする ===
 
=== Makeファイルを使って Carbon インターフェースをコンパイルする ===
  
0.9.25 から Carbon ウィジェットセットがデフォルトのMac OS X用ウィジェットセットになりました。そのため、この操作は最早必要ではありません(訳注: 0.9.24まではgtkウィジェットセットがデフォルトでした)。
+
0.9.25 から Carbon ウィジェットセットがデフォルトのmacOS用ウィジェットセットになりました。そのため、この操作は最早必要ではありません(訳注: 0.9.24まではgtkウィジェットセットがデフォルトでした)。
  
 
ターミナルでこうタイプします:
 
ターミナルでこうタイプします:
Line 46: Line 45:
  
  
Leopard (OS X 10.5.x) では、Apple's developer pages: http://developer.apple.com/qa/qa2007/qa1567.html
+
Leopard 10.5.x では、Apple's developer pages: http://developer.apple.com/qa/qa2007/qa1567.html
 
  に述べられているように、こうなります:
 
  に述べられているように、こうなります:
  
Line 62: Line 61:
  
 
*Lazarusを起動します。  
 
*Lazarusを起動します。  
*Environment>Environment Options>Files>Lazarus Directory を /Users/<yourUsername>/pascal/lazarus/ に変更します(訳注: 以前の版では/usr/local/share/lazarus/に導入されていました。現在、デフォルトでは /Developer/lazarus/に導入されます。アップデートの際忘れずにこの項目を変更して下さい。)
+
*Tools -> Options -> Files -> Lazarus Directory を /Users/<yourUsername>/pascal/lazarus/ に変更します(訳注: 以前の版では/usr/local/share/lazarus/に導入されていました。現在、デフォルトでは /Developer/lazarus/に導入されます。アップデートの際忘れずにこの項目を変更して下さい。)
*Tools>Configure "Build Lazarus"> [[Image:BuildLazarusOptionsCarbonIntf.png]]にセットして下さい。
+
*Tools>Configure "Build Lazarus"> を次のようにセットして下さい。[[Image:BuildLazarusOptionsCarbonIntf.png]]
**For 0.9.24 では、'-k-framework -kCarbon -k-framework -kOpenGL'
+
*0.9.24 では、
'Options' に追加して下さい。そうしないと、リンク中に「未解決のシンボル」エラーが発生します(_ActivateWindow のような Carbon のシンボルです)。
+
-k-framework -kCarbon -k-framework -kOpenGL
 +
を'Options' に追加して下さい。そうしないと、リンク中に「未解決のシンボル」エラーが発生します(_ActivateWindow のような Carbon のシンボルです)。
 
*Tools>Build Lazarus -- これで Carbon インターフェースがコンパイルされ、.ppuファイルが /Users/<yourUsername>/pascal/lazarus/lcl/units/powerpc-darwin と /Users/<yourUsername>/pascal/lazarus/lcl/units/powerpc-darwin/carbon に作られます。
 
*Tools>Build Lazarus -- これで Carbon インターフェースがコンパイルされ、.ppuファイルが /Users/<yourUsername>/pascal/lazarus/lcl/units/powerpc-darwin と /Users/<yourUsername>/pascal/lazarus/lcl/units/powerpc-darwin/carbon に作られます。
  
Line 75: Line 75:
 
にセットします。
 
にセットします。
  
これで、エラーなしにプロジェクトをコンパイルできるようになったはずです。実際に、''project1'' という実行ファイルができ上がりますが、これは起動することができません。というのも、Mac OS Xがいくつかの隠しリソースファイルを必要とするからです。
+
これで、エラーなしにプロジェクトをコンパイルできるようになったはずです。実際に、''project1'' という実行ファイルができ上がりますが、これは起動してもフォーカスを当てることができません。というのも、macOSがいくつかの隠しリソースファイルを必要とするからです。
  
'''OS X 10.5での注意:''' フォーラム[http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=5174&start=0&postdays=0&postorder=asc&highlight= this] で論議されたように、Leopard では次のリンカパラメタをプロジェクトに追加する必要があります:
+
'''Leopard 10.5での注意:''' フォーラム[http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=5174&start=0&postdays=0&postorder=asc&highlight= this] で論議されたように、Leopard では次のリンカパラメタをプロジェクトに追加する必要があります:
  
 
  -dylib_file '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'
 
  -dylib_file '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'
Line 85: Line 85:
 
== アップルリソースファイルを作る ==
 
== アップルリソースファイルを作る ==
  
'''注:''' 0.9.25 Lazarus から、以下のツールを自分でコンパイルしなくても、アプリケーションバンドルを作ることができるようになりました。それに対応するボタンは Project > Project Options... > Create Application Bundle です。
+
'''注:''' 0.9.25 Lazarus から、以下のツールを自分でコンパイルしなくても、[[Application Bundle/ja|アプリケーションバンドル]]を作ることができるようになりました。それに対応するボタンは Project > Project Options... > Create Application Bundle です。
  
 
コマンドラインツール:
 
コマンドラインツール:
Line 97: Line 97:
 
ln -s ../../../project1 project1.app/Contents/MacOS/project1
 
ln -s ../../../project1 project1.app/Contents/MacOS/project1
 
</pre>
 
</pre>
これでプログラムを起動することができるようになります(オプションの[[IDE_Window: Project Options#Use Application Bundle for running and debugging (darwin only)|Use Application Bundle for running and debugging (darwin only)]]をチェックします)。IDEからでも、ファインダでアイコンをクリックしても、Mac OS X標準のTerminal.appで "open project1.app" としてもかまいません。
+
これでプログラムを起動することができるようになります(オプションの[[IDE_Window: Project Options/ja#Use Application Bundle for running and debugging (darwin only)|Use Application Bundle for running and debugging (darwin only)]]をチェックします)。IDEからでも、ファインダでアイコンをクリックしても、macOS 標準のTerminal.appで "open project1.app" としてもかまいません。
  
Tip: GTK実行ファイルからアプリケーションバンドルを生成するスクリプトが [[OS_X_Programming_Tips/ja|OS X Programming Tips]]にあります。これに手を入れれば、Carbon実行ファイルに使えるようになります (X11で実行ファイルを起動する為の4命令を取る)。[http://web.fastermac.net/~MacPgmr/Lazarus/ here]にはCarbonアプリケーション用に若干の改善を施したものがあります。
+
Tip: GTK実行ファイルからアプリケーションバンドルを生成するスクリプトが [[macOS_Programming_Tips/ja|macOS Programming Tips]]にあります。これに手を入れれば、Carbon実行ファイルに使えるようになります (X11で実行ファイルを起動する為の4命令を取る)。[http://web.fastermac.net/~MacPgmr/Lazarus/ ここ]にはCarbonアプリケーション用に若干の改善を施したものがあります。
  
 
== ユニバーサルバイナリを作る ==
 
== ユニバーサルバイナリを作る ==
  
Lazarus が作るアプリケーションは一種類のCPU向けですが、OS Xでは、PowerPCとIntel CPUがあり得ます。ユーザのマックがどちらのCPUを用いていても同一のプログラムを実行できるように、ユニバーサルバイナリを作って配布したくなるかもしれません。このためには、配布したいアプリケーションを、PowerPCとIntelをターゲットにして、それぞれコンパイルしないければなりません。次に、コンパイルされたそれぞれのCPU向けバイナリを一緒にまとめる必要があります。そのためには OS Xのプログラムである lipo を用います(Lazarusが必要とする他のツールと一緒に、OS X Developer Tools に入っています)。例えば、アプリケーション 'myproj' の PowerPC版実行ファイルをフォルダ 'ppc' に、Intel版実行ファイルを 'intel' に置いてあるとします。この二つを一緒にするには、次のコマンドを走らせます:
+
Lazarus が作るアプリケーションは一種類のCPU向けですが、macOSでは、PowerPCとIntel CPUがあり得ます。ユーザのマックがどちらのCPUを用いていても同一のプログラムを実行できるように、ユニバーサルバイナリを作って配布したくなるかもしれません。このためには、配布したいアプリケーションを、PowerPCとIntelをターゲットにして、それぞれコンパイルしないければなりません。次に、コンパイルされたそれぞれのCPU向けバイナリを一緒にまとめる必要があります。そのためには macOSのプログラムである lipo を用います(Lazarusが必要とする他のツールと一緒に、Developer Tools に入っています)。例えば、アプリケーション 'myproj' の PowerPC版実行ファイルをフォルダ 'ppc' に、Intel版実行ファイルを 'intel' に置いてあるとします。この二つを一緒にするには、次のコマンドを走らせます:
  
 
   lipo -create ./ppc/myproj ./intel/myproj -output ./myproj
 
   lipo -create ./ppc/myproj ./intel/myproj -output ./myproj
  
 
これで myproj が新しくできますから、これを .app フォルダにコピーします。
 
これで myproj が新しくできますから、これを .app フォルダにコピーします。
 +
 +
[[Category:macOS/ja]]

Latest revision as of 08:57, 9 February 2020

Deutsch (de) English (en) 日本語 (ja)

macOSlogo.png

This article applies to macOS only.

See also: Multiplatform Programming Guide


日本語版メニュー
メインページ - Lazarus Documentation日本語版 - 翻訳ノート - 日本語障害情報


概要

Carbon は macOS のネイティブAPIの一つです(訳注: 歴史的な事情で、マックのウィンドウシステムは複数のフレームワーク — ライブラリの集合体 — を持っています。現在では Carbon の他に Cocoa フレームワークが用いられています)。

Other Interfaces

Platform specific Tips

Interface Development Articles

参考

必要なもの

Carbon ウィジェットセットは、現在のところ、macOS でのデフォルトのウィジェットセットです。インストールの方法については、Installing Lazarus on macOSをご覧下さい(訳注: 以下にあるように、Lazarus snapshot を入手すれば簡単です。Sourceforge等にある0.9.26以降の安定バージョンも、macOS 用は Carbon版です)。

Carbon版Lazarusを入手する

Carbon IDE version 0.9.25 running on Tiger 10.4

注: Lazarus スナップショットのインストールを行う場合は、この節と次の節を飛ばしても構いません。スナップショットにはCarbon ウィジェットセットのソースとコンパイル済みのユニットが含まれています。

  • macOS用SVNをインストールする:Martin Ottがよいパッケージを公開してくれています。他にも、finkを使って SVNクライアントを入れることができます。VersiontrackerにはGUI版のSVNクライアントがあります。
  • Installing_Lazarus#Downloading_Lazarus_SVNに従って操作して下さい。
  • Lazarusを走らせます。IDEが起動し、一つの空フォームからなる新しいプロジェクトができます。このプロジェクトを適当な名前で保存して下さい。以下の例では /Users/<yourUsername>/pascal/test/project1.lpi という名前だと仮定します。

Makeファイルを使って Carbon インターフェースをコンパイルする

0.9.25 から Carbon ウィジェットセットがデフォルトのmacOS用ウィジェットセットになりました。そのため、この操作は最早必要ではありません(訳注: 0.9.24まではgtkウィジェットセットがデフォルトでした)。

ターミナルでこうタイプします:

make lcl LCL_PLATFORM=carbon

Makeファイルを使って Carbon版Lazarus IDE をコンパイルする

Lazarus 0.9.25 以降が必要です。

ターミナルでこうタイプします:

make all LCL_PLATFORM=carbon OPT="-k-framework -kCarbon -k-framework -kOpenGL"


Leopard 10.5.x では、Apple's developer pages: http://developer.apple.com/qa/qa2007/qa1567.html

に述べられているように、こうなります:
make all LCL_PLATFORM=carbon OPT="-k-framework -kCarbon -k-framework -kOpenGL -k'-dylib_file' \
    -k'/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'"

Carbon IDEでの注意点

  • You must run Lazarus via lazarus.app を通して Lazarusを起動しなければいけません(訳注: ファインダで「UNIX実行ファイル」と表示される80MB程度のファイルではなく、Lazarusアイコンのついた「アプリケーション」と表示される方)。
  • エディタがモノスペースフォントを使っていることを確かめて下さい。Editor Options ダイアログで確認できます。"Monaco" フォントがおすすめです(訳注: Lazarusに限らず、エディタの日本語処理問題は舶来アプリケーションの鬼門です。Bug Tracking/jaをご覧下さい)。

Lazarusを使って Carbon インターフェースをコンパイルする

ここで、Lazarusが /Users/<yourUsername>/pascal/lazarus/ にインストールしてあるとします。

  • Lazarusを起動します。
  • Tools -> Options -> Files -> Lazarus Directory を /Users/<yourUsername>/pascal/lazarus/ に変更します(訳注: 以前の版では/usr/local/share/lazarus/に導入されていました。現在、デフォルトでは /Developer/lazarus/に導入されます。アップデートの際忘れずにこの項目を変更して下さい。)
  • Tools>Configure "Build Lazarus"> を次のようにセットして下さい。BuildLazarusOptionsCarbonIntf.png
  • 0.9.24 では、
-k-framework -kCarbon -k-framework -kOpenGL

を'Options' に追加して下さい。そうしないと、リンク中に「未解決のシンボル」エラーが発生します(_ActivateWindow のような Carbon のシンボルです)。

  • Tools>Build Lazarus -- これで Carbon インターフェースがコンパイルされ、.ppuファイルが /Users/<yourUsername>/pascal/lazarus/lcl/units/powerpc-darwin と /Users/<yourUsername>/pascal/lazarus/lcl/units/powerpc-darwin/carbon に作られます。

初めてのネイティブ Carbon アプリケーション

コンパイラオプション

Project > Compiler Options > Paths > LCL Widget Type を carbon にセットします。

これで、エラーなしにプロジェクトをコンパイルできるようになったはずです。実際に、project1 という実行ファイルができ上がりますが、これは起動してもフォーカスを当てることができません。というのも、macOSがいくつかの隠しリソースファイルを必要とするからです。

Leopard 10.5での注意: フォーラムthis で論議されたように、Leopard では次のリンカパラメタをプロジェクトに追加する必要があります:

-dylib_file '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib'

(Project > Compiler Options > Linker > Pass additional options to the linker にこれを追加する場所があります)

アップルリソースファイルを作る

注: 0.9.25 Lazarus から、以下のツールを自分でコンパイルしなくても、アプリケーションバンドルを作ることができるようになりました。それに対応するボタンは Project > Project Options... > Create Application Bundle です。

コマンドラインツール:

IDE で /Users/<yourUserName>/pascal/lazarus/components/macfiles/examples/createmacapplication.lpi を開き、コンパイルします。

適当なターミナルアプリケーションを起動して、タイプします:

cd /Users/<yourUserName>/pascal/project1/
/Users/<yourUserName>/pascal/lazarus/components/macfiles/examples/createmacapplication project1
ln -s ../../../project1 project1.app/Contents/MacOS/project1

これでプログラムを起動することができるようになります(オプションのUse Application Bundle for running and debugging (darwin only)をチェックします)。IDEからでも、ファインダでアイコンをクリックしても、macOS 標準のTerminal.appで "open project1.app" としてもかまいません。

Tip: GTK実行ファイルからアプリケーションバンドルを生成するスクリプトが macOS Programming Tipsにあります。これに手を入れれば、Carbon実行ファイルに使えるようになります (X11で実行ファイルを起動する為の4命令を取る)。ここにはCarbonアプリケーション用に若干の改善を施したものがあります。

ユニバーサルバイナリを作る

Lazarus が作るアプリケーションは一種類のCPU向けですが、macOSでは、PowerPCとIntel CPUがあり得ます。ユーザのマックがどちらのCPUを用いていても同一のプログラムを実行できるように、ユニバーサルバイナリを作って配布したくなるかもしれません。このためには、配布したいアプリケーションを、PowerPCとIntelをターゲットにして、それぞれコンパイルしないければなりません。次に、コンパイルされたそれぞれのCPU向けバイナリを一緒にまとめる必要があります。そのためには macOSのプログラムである lipo を用います(Lazarusが必要とする他のツールと一緒に、Developer Tools に入っています)。例えば、アプリケーション 'myproj' の PowerPC版実行ファイルをフォルダ 'ppc' に、Intel版実行ファイルを 'intel' に置いてあるとします。この二つを一緒にするには、次のコマンドを走らせます:

 lipo -create ./ppc/myproj ./intel/myproj -output ./myproj

これで myproj が新しくできますから、これを .app フォルダにコピーします。