nlib
Cafe用ライブラリに関する情報
前提となるソフトウェア
CafeSDK(2.10.00以降)及びC++コンパイラを必要とします。 更にサンプルのビルドには以下のソフトウェアを必要とします。
ディレクトリ構成
Cafe用パッケージ特有のディレクトリ構成は以下のようになっています。
├── system
│   ├── include                      # Header files.
│   └── lib
│       └── ghs
│            └── cafe
│                └── DEBUG           # Library files for Debug build
│                └── NDEBUG          # Library files for Release build
└── samples
     ├── cafe/Makefile                # Makefile for the samples.
     └── cmake/cmake_cafe_ninja.ps1   # A PowerShell script for creating build.ninja for the sample programs.
cmake_cafe_ninja.ps1は、Windowsのcmakeとninja(https://ninja-build.org/)でビルドするためのビルドスクリプトを作成します。
注意事項(ossの利用について)
ossライブラリ(libnx_oss_sqlite3.a, libnx_oss_bsdiff.a, libnx_oss_lz4.a) に収録されているbsdiff, LZ4を製品で利用する場合は、電子説明書に権利表記が必要です(SQLiteについては必要ありません)。 具体的な表記方法については、『Wii U電子説明書 テンプレート解説書』を参照してください。
その他プラットフォーム固有の情報
  • OSSetThreadCleanupCallback()を直接利用しないでください。nlib_tls_alloc()で指定できるデストラクタを利用してください。
  • OSGetThreadSpecific(), OSSetThreadSpecific()を直接利用しないでください。nlib_tls_alloc()を利用してください。
  • スレッドの利用に際してTLSを1つ使用します。
  • Cafe用のexiライブラリはnlib_tls_alloc()を通してTLSを1つ使用します。
  • nmallocはnlib_tls_alloc()を通してTLSを1つ使用します。
  • ソースツリー外でのビルドを可能にするため、独自のcommondefs等を利用しています。また、kanji=utf-8が指定されています。