FreeTypeをコンパイル 新しいページはコチラ
提供: yonewiki
(→FreeTypeと他のアプリの関係。入手すべきプロジェクト。ビルド方法) |
(→FreeTypeに必要なアプリlibpngとzlibのビルド方法) |
||
1行: | 1行: | ||
+ | [[フォント TrueType 構造解析]]に戻る。 | ||
+ | |||
+ | |||
== '''概要''' == | == '''概要''' == | ||
PDFで日本語フォントを埋め込みたい!というところに端を発して、フォントファイルの操作をするべくFreeTypeをコンパイルできるような環境を構築してみようという作業です。 | PDFで日本語フォントを埋め込みたい!というところに端を発して、フォントファイルの操作をするべくFreeTypeをコンパイルできるような環境を構築してみようという作業です。 | ||
6行: | 9行: | ||
=== '''FreeTypeに必要なアプリlibpngとzlibのビルド方法''' === | === '''FreeTypeに必要なアプリlibpngとzlibのビルド方法''' === | ||
− | [https://freetype.org/ FreeType]は現在 Version1.12.1 で カラー絵文字の操作を含めるなら [https://sourceforge.net/projects/libpng/files/ libpng] ライブラリが必要とのこと。さらには[ | + | [https://freetype.org/ FreeType]は現在 Version1.12.1 で カラー絵文字の操作を含めるなら [https://sourceforge.net/projects/libpng/files/ libpng] ライブラリが必要とのこと。さらには[https://github.com/madler/zlib/tree/v1.2.8 zlib]も必要なんだって。道のり長くなっていくなぁ。zlibの最新版を最初はダウンロードしたんだけど、カスタムビルドステップの |
136行: | 139行: | ||
lpng\Debug Library\zlib.lib | lpng\Debug Library\zlib.lib | ||
− | + | FreeTypeのプロジェクトの設定にライブラリの絶対パスを設定したり、優先度を低めにして、ヘッダファイルの絶対パスを通したりします。コピーして放り込んだり、いろいろな人のやり方があると思うので、ここは流儀が分かれます。デメリットは関係ないインクルードファイルまで参照できるようにしてしまうことです。でもこれはFreeType自体のプログラムを追加編集しないという今回のケースでは小さな問題であるはずです。 | |
− | + | 自分のやり方ですけど。 | |
+ | |||
+ | |||
+ | 1.プロジェクトのインクルード設定を変更します。 | ||
+ | |||
+ | |||
+ | インクルードパスはFreeTypeのプロジェクトの構成プロパティ画面のVC++ディレクトリに設定します。一つ一つ設定するのは大変なので、ダイアログ上部の構成選択リストで[全て]を選択し、プラットフォームも[全て]のを選択します。この状態で[VC++ディレクトリ]の項目の中の[外部インクルードディレクトリ]の編集を行います。項目を選択してテキストカーソルをあてるダイレクト編集は、間違いの元なので、項目の一番右あたりにカーソルをもっていったときに表示される[▼]ボタンを押して、表示される項目の[編集]を選択して表示される専用ダイアログから編集しましょう。 | ||
+ | |||
+ | |||
+ | $(WindowsSDK_IncludePath)の次の行に | ||
+ | |||
+ | |||
+ | C:\...\...\...\...\lpng | ||
+ | C:\...\...\...\...\zlib | ||
+ | |||
+ | |||
+ | のように絶対パスを追加します。それぞれのプロジェクトのルートの下にヘッダファイルがありますので、階層は深くないです。ルートフォルダの名前にはデフォルトではバージョン番号がついていましたが、自分は消したので上記の例のような名前になります。絶対パスではなく、相対パスでもいいのですが、FreeTypeのプロジェクトが更新されると階層構造にも変更が発生し、汎用性がないので、同じ作業ディレクトリを使うという信念に基づくなら絶対パスがいいかなと思って、絶対パスを使います。include文は外部ディレクトリの参照使用 #include "..\..\png.h" みたいなものも警告にする昨今です。何が正しいのかわからない。..\ とかダメなんだってさ。 | ||
+ | |||
+ | |||
+ | とにもかくにも、これですべてのヘッダファイルは見つかるようになったわけです。よきよき。 | ||
+ | |||
+ | |||
+ | 次にライブラリです。 | ||
+ | |||
+ | |||
+ | インクルード設定をしたプロジェクトのプロパティ構成画面と同じところで今度はは構成の選択を[Debug]にします。さっきは全てを選択していました。*.libファイルはDebug版とRelease版とで分かれているからです。x64とWin32<span>(</span>x86<span>)</span>とで同じlibを使うのでプラットフォームは全てのままでよいでしょう。libpngやzlibには32ビット版しかないので、これをダイナミックリンクで使うときには64bit版でも32bitプログラムとして動作しちゃうわけですね。libをくっつけてスタティックリンクで出力したら64bit版のFreeTypeができるのかな。 | ||
+ | |||
+ | |||
+ | この状態で項目の[リンカー]-[入力]の[追加の依存ファイル]の項目にさっきとおなじように編集して | ||
+ | |||
+ | 構成のDebugに対しては | ||
+ | |||
+ | C:\…\…\…\…\lpng\projects\vstudio\Debug Library\libpng16.lib | ||
+ | C:\…\…\…\…\lpng\projects\vstudio\Debug Library\zlib.lib | ||
+ | |||
+ | |||
+ | 構成のRelease対しては | ||
+ | |||
+ | C:\…\…\…\…\lpng\projects\vstudio\Release Library\libpng16.lib | ||
+ | C:\…\…\…\…\lpng\projects\vstudio\Relsese Library\zlib.lib | ||
+ | |||
+ | を絶対パスで追加しちゃいましょう。 | ||
+ | |||
+ | |||
+ | これで、FreeTypeのスタティックライブラリ libとダイナミックリンクライブラリ dll とが生成されました。ここからは実際にFreeTypeを使ったプログラミングで遊べます。 | ||
+ | |||
+ | |||
+ | |||
+ | [[フォント TrueType 構造解析]]に戻る。 | ||
+ |