GNUstep CoreGraphics (1)
今回は、ブログタイトルから離れて、GNUstep について書いています。
最近 GNUstep や Objective-C についての記事が、2、3報告されています。
今更のObjective-C | 貯え 小道具 興味ない?
M1 Mac-Ubuntu20.04でGNUstep | 貯え 小道具 興味ない?
GNUstepをWindowsで試すならWSLを使う-Ubuntu 20.04 LTS+WSL2へのインストール - Technically Impossible
当方 2007年に「GNUstep 入門」(ふくろう出版、友野印刷)を出版しています。
Objective-C プログラミングや ProjectCenter、Gorm の使用方法について記してい
ます。
GNUstep は、それ以降もライブラリの追加やアップデートが行われています。
今回は、CoreGraphics(libs-opal) について調べてみました。
CoreGraphics による描画
ProjectCenter を使ってプログラムの編集、ビルド、実行を行っています。
OSは Lubuntu22.04 Linux を使用しています。GNUstep のベースシステムは
Lubuntu の repo からインストールします。
プログラミングを行うので、
・make, gnustep-make, gcc, gobjc などの build tools
・ProjectCenter, Gorm のプログラミングツール
もインストールしておきます。
*日本語の表示
スタートアップメニューの設定から System Preferences を起動し、Preferences
ウインドウから「Font」を選択する。
最初は、gnustep default の DejaVuSansMono を選択し、その後
NotoSans CJK jp Regular等(Lubuntu の日本語フォント)に変更する。
*CoreGraphics(libs-opal)、CoreFoundation(libs-corebase, 依存ライブラリ) の
ビルドとインストール
libs-corebase とlibs-opalはバイナリーが無いので、ソースからビルドし
インストールします。ソースはGNUstep の Github からダウンロードします。
・libs-corebase
1依存ライブラリ libicu-dev をインストール(lubuntu repo から)
2./configure
3make
4sudo make install
・libs-opal
1依存ライブラリ libfontconfig-dev、libcairo2-dev、liblcms2-dev、
libjpeg-turbo8-dev、libtiff-devをインストール(lubuntu repo から)
2make
3sudo make install
libファイルlibopal.so.o は /usr/local/lib にインストールされるので、
フォルダを設定します。
export LD_LIBRARY_PATH=/usr/local/lib
・libs-QuartzCore
libs-opal では、XWindow に表示するようになっています。これをNSWindow に
表示するため、libs-QuartzCore を利用します。NSOpenGLView に表示
します。
1依存ライブラリ libgl-dev、libglu1-mesa-devをインストール
(lubuntu repo から)
2Tests の make で、cairo reference error が出るので、
Tests/GNUmakefile の ADDITIONAL_TOOL_LIBS に -lcairo を追加
3make
4sudo make install
*ProjectCenter のビルドとインストール
CoreGraphics では gnustep 以外に OpenGL、opal、cairo等のライブラリも使用します。これらが利用出来るように、プログラムのビルド時にGNUmakefile.preamble
に設定します。
ADDITIONAL_GUI_LIBS += -lm -lGL -lGLU -lopal -lcairo
しかし、1つ問題があります。ProjectCenter では、プロジェクトの保存や
再オープン時に GNUmakefile.preamble に設定した内容が、リセット されます。
これを避けるため、ProjectCenter のソースファイルを修正しインストールします。
ソース(apps-projectcenter)はGNUstep の Github からダウンロードします。(バージョンは 0.7)
・修正箇所
Modules/Projects にある各Projectの PC(Project名).m を修正する。
writeMakefile メソッド内の [mf createPreambleForProject:self] を
createProjectAt メソッド内に移動し、
[[PCMakefileFactory sharedFactory] createPreambleForProject:self];
とする。
その後、
make
sudo make install
を行う。
実際のプログラム作成は、次回に報告。