概要
本ガイドでは、OpenHarmonyプラットフォームにCMakeで構成されたサードパーティライブラリを移植する手順を説明します。Hi3516DV300およびHi3518EV300プラットフォームを対象とし、ツールチェーン設定とOpenHarmonyビルドシステムへの統合方法を詳細に解説します。
CMakeライブラリの移植手順
ソース取得
移植対象ライブラリ(例: libconv)のソース構造は以下の通りです:
- libconv/cmake/ : CMake構成テンプレート
- libconv/src/ : ソースコードディレクトリ
- libconv/CMakeLists.txt : ルート構成ファイル
- libconv/test/ : テストケース
クロスコンパイル設定
ツールチェーンの設定
ライブラリのルートCMakeLists.txtに以下の設定を追加します:
set(CMAKE_CROSSCOMPILING TRUE)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER clang)
set(CMAKE_C_FLAGS "--target=arm-liteos -march=armv7-a -mfloat-abi=softfp -mcpu=cortex-a7")
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_LINKER clang)
set(CMAKE_SYSROOT ${OHOS_SYSROOT_DIR})
ビルド実行
ソースディレクトリで以下のコマンドを実行します:
mkdir build && cd build
cmake .. -DBUILD_TESTING=ON -DOHOS_SYSROOT_DIR=/absolute/path/to/sysroot
make -j
ビルド後、liblibconv.aとテスト実行ファイルが生成されます。
テスト方法
テスト実行は以下の手順で行います:
- OpenHarmony開発ボードでNFSをマウント
- テスト実行ファイルをNFSディレクトリに配置
- テスト一覧表示:
./cctest --list - 特定テスト実行:
./cctest test-bignum
OpenHarmonyビルドシステムへの統合
ライブラリ配置
ライブラリを以下の構造でOpenHarmonyのthird_partyディレクトリに配置します:
third_party/libconv/ ├── BUILD.gn ├── build_thirdparty.py ├── config.gni └── libconv/
GN構成ファイル
BUILD.gnの内容は以下の通りです:
import("config.gni")
group("libconv") {
if (ohos_enable_libconv) {
deps = [":build"]
}
}
action("build") {
script = "//third_party/libconv/build_thirdparty.py"
outputs = ["$root_out_dir/libconv_build.log"]
command = "cd $BUILD_PATH && cmake .. $CMAKE_OPTIONS && make -j"
args = [
"--path=$BUILD_PATH",
"--command=${command}"
]
}
コンフィグレーション
config.gniでコンパイルオプションを設定します:
CMAKE_OPTIONS = "-DBUILD_TESTING=ON -DCMAKE_CXX_STANDARD=11"
if (ohos_build_compiler == "clang") {
CMAKE_OPTIONS += " -DOHOS_SYSROOT_DIR=${OHOS_SYSROOT_DIR}"
}
ビルド実行
特定ライブラリのビルドは以下のコマンドで行います:
hb build -T //third_party/libconv:libconv