Windows 10 上で Qualcomm Snapdragon 8155P ボード向け Qt をビルドする
作業を進めるには、Green Hills INTEGRITY および Qualcomm の開発環境がセットアップされている必要があります。「プラットフォーム依存関係のインストール」を参照してください。
Windows 10 用のバッチスクリプトの作成
Qt for INTEGRITY の開発環境を設定するには、Qualcomm Snapdragon 8155P ボード用のソースから Qt をビルドします。Qt for INTEGRITY をビルドする前に、ビルド環境を設定してください。ここでは、各ビルドの前に実行する必要があるため、その作業を自動化するバッチスクリプトを紹介します。
Windows 10 では、新しいバッチスクリプト「setEnvironment.bat」を作成し、ホームフォルダに保存してください。スクリプトに以下のエクスポート変数を追加してください:
@echo off
set PATH=%PATH%;C:\ghs\comp_202014
set INTEGRITY_DIR=C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\integrity
set INTEGRITY_BSP=platform-sa8155
set INTEGRITY_BUILD_TARGET=chk
set QC_MULTIMEDIA_INC_DIR=C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\include\amss\multimedia
set GL_INC_DIR=C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\AMSS\multimedia\graphics\include\public
set GL_LIB_DIR=C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\out\rel\libs\base;C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\out\rel\libs\multimedia\display;C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\out\rel\libs\multimedia\graphics;C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\out\rel\libs\platform\;C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot\apps\ghs_apps_proc\qc_bsp\AMSS\multimedia\graphics\opengl\esx\build\integrity\prebuilt\
set TARGET_ROOT_PATH="C:\Users\user\ghs_pack\es7_dev_env\hlos_dev_boot"これらのエクスポートパスは、MULTI IDE および INTEGRITY のインストール時に、C:\ghs\comp_202014 and C:\Users\user\ghs_pack\* のインストールディレクトリを使用していることを前提としています(「プラットフォーム依存関係のインストール」を参照)。デフォルトのディレクトリを使用していない場合は、エクスポートパスを適宜調整してください。
ビルド環境を初期化するには、WindowsのCMDターミナルで次のコマンドを実行してください:
setEnvironment.bat注: Qtをビルドするたびに、またはqmake やCMake のビルドシステムを使用するたびに、WindowsのCMDターミナルでこのコマンドを実行してください 。
Qtのソースコードの入手
Qt ソースコードは、Qt アカウントからダウンロードできます。
また、GitリポジトリからQtのソースコードを取得することもできます。「ソースコードの入手」を参照してください。
注:Qtの ソースコードのバージョンは6.2以降である必要があります。
注:Qt for INTEGRITY でサポートされているQt モジュールについては、「サポートされている Qt モジュール」に記載されています。
クロスコンパイルツールの使用に向けた Qt Desktop のビルド
Qtのクロスコンパイルを行うには、ホスト環境でのQtのビルド環境が用意されている必要があります。ビルド中は、moc、rcc、qmlcachegen、qsbなどのツールがそこから呼び出されます。詳細については、「Qtのクロスコンパイル」をご覧ください。
Windows 10 でのホストビルドを行うには、以下のコマンドを実行してください:
mkdir hostbuild
cd hostbuild/
C:/Users/user/qt5/configure -nomake tests -nomake examples -release -prefix C:/Users/user/hostbuild
cmake --build . --parallel 6
cmake --install .INTEGRITY用のツールチェーンファイルの作成
CMake を使用してプロジェクトをクロスコンパイルするには、ツールチェーンファイルを指定する必要があります。この CMake 言語のファイルは、プラットフォーム名、使用するコンパイラ/リンカ、およびその他多数のツールチェーン固有の設定について、適切な値を設定します。Windows 10 上の Integrity ビルド用に、以下の内容を含む toolchain.cmake ファイルを作成してください:
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#generic
set(CMAKE_SYSTEM_NAME Integrity)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_CROSSCOMPILING True)
#path to installed GHS compiler for WIN10
set(TARGET_ROOT_PATH "C:/Users/user/ghs_pack/es7_dev_env/hlos_dev_boot")
set(CMAKE_BUILD_TYPE "Release")
set(GHS_COMPILER C:/ghs/comp_202014/cxintarm64.exe)
set(CMAKE_C_COMPILER ${GHS_COMPILER})
set(CMAKE_CXX_COMPILER ${GHS_COMPILER})
set(CMAKE_ASM_COMPILER ${GHS_COMPILER})
set(EGL_FOUND True)
set(UNIX True)
set (CMAKE_C_COMPILE_FEATURES c_std_99)
set (CMAKE_CXX_COMPILE_FEATURES
cxx_alias_templates
cxx_alignas
cxx_alignof
cxx_attributes
cxx_auto_type
cxx_constexp
cxx_decltype
cxx_delegating_constructors
cxx_explicit_conversions
cxx_extern_templates
cxx_inheriting_constructors
cxx_lambdas
cxx_noexcept
cxx_nonstatic_member_init
cxx_nullptr
cxx_override
cxx_range_for
cxx_raw_string_literals
cxx_reference_qualified_functions
cxx_rvalue_references
cxx_static_assert
cxx_std_17
cxx_thread_local
cxx_unicode_literals
cxx_uniform_initialization
cxx_unrestricted_unions
cxx_variadic_macros
cxx_variadic_templates)
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
endif()
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
endif()
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
endif()
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endif()
set(CMAKE_FIND_ROOT_PATH ${TARGET_ROOT_PATH})
#base
set(CMAKE_C_FLAGS "-bsp $ENV{INTEGRITY_BSP} -os_dir $ENV{INTEGRITY_DIR} -non_shared -startfile_dir=$ENV{INTEGRITY_DIR}/libs/$ENV{INTEGRITY_BSP}/$ENV{INTEGRITY_BUILD_TARGET} --rtos_library_directory=libs/$ENV{INTEGRITY_BSP}/$ENV{INTEGRITY_BUILD_TARGET} --rtos_library_directory=libs/arm64/$ENV{INTEGRITY_BUILD_TARGET} -bigswitch -DINTEGRITY -llibposix.a")
set(CMAKE_C_FLAGS_DEBUG "-g -Omaxdebug")
set(CMAKE_C_FLAGS_RELEASE "-Ospeed -Olink -Omax -no_uvfd")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --signed_fields --diag_suppress=1,82,228,236,381,611,961,997,1795,1931,1974,3148 --c++17 --thread_local_storage --exceptions --defer_parse_function_templates")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -frigor=accurate --signed_fields --no_implicit_include --link_once_templates -non_shared --new_outside_of_constructor --commons -I $ENV{QC_MULTIMEDIA_INC_DIR}")
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
set(BUILD_SHARED_LIBS OFF)
set(QT_CFLAGS_OPTIMIZE_FULL "-Ospeed -Olink -Omax -no_uvfd")
set(EGL_INCLUDE_DIR $ENV{GL_INC_DIR})
set(PKG_EGL_LIBRARY_DIRS ${TARGET_ROOT_PATH})
set(GLESv2_INCLUDE_DIR $ENV{GL_INC_DIR})
set(OPENGL_INCLUDE_DIR $ENV{GL_INC_DIR})
set(EGL_LIBRARY "${EGL_LIBRARY_GRAPHIC_PATH}/libESXEGL_Adreno.a")
set(GLESv2_INCLUDE_DIR $ENV{GL_INC_DIR})
set(GLESv2_LIBRARY "${EGL_LIBRARY_GRAPHIC_PATH}/libESXGLESv2_Adreno.a")
set(IntegrityPlatformGraphics_INCLUDE_DIR ${GL_INC_DIR})
set(IntegrityPlatformGraphics_LIBRARY "${EGL_LIBRARY_GRAPHIC_PATH}/libadreno_utils.a")
set(IntegrityPlatformGraphics_LIBRARIES_PACK
"${EGL_LIBRARY_BASE_PATH}/libplanedef.a"
"${EGL_LIBRARY_BASE_PATH}/libmmosalfile.a"
"${EGL_LIBRARY_BASE_PATH}/libOSAbstraction.a"
"${EGL_LIBRARY_OPENWFD_PATH}/libopenwfd.a"
"${EGL_LIBRARY_GRAPHIC_PATH}/libOSUser.a"
"${EGL_LIBRARY_GRAPHIC_PATH}/libpanel.a"
"${EGL_LIBRARY_GRAPHIC_PATH}/libGSLUser.a"
"${EGL_LIBRARY_PREBUILD_PATH}/libglnext-llvm.a"
"${EGL_LIBRARY_PLATFORM_PATH}/libpmem.a"
"${EGL_LIBRARY_CHK_PATH}/libposix.a"
"${EGL_LIBRARY_CHK_PATH}/libivfs.a"
)
list(APPEND _qt_igy_gui_libs
"${GLESv2_LIBRARY}"
"${IntegrityPlatformGraphics_LIBRARY}"
"${IntegrityPlatformGraphics_LIBRARIES_PACK}")
set(OPENGL_opengl_LIBRARY ${EGL_LIBRARY})
# Command is required to fix CMake WIN bug https://gitlab.kitware.com/cmake/cmake/-/issues/22933
set(CMAKE_CXX_COMPILER_PREDEFINES_COMMAND ${CMAKE_CXX_COMPILER})
list(APPEND CMAKE_CXX_COMPILER_PREDEFINES_COMMAND -bsp $ENV{INTEGRITY_BSP} -os_dir $ENV{INTEGRITY_DIR} -E -dM "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
# Set format for creating static library
set(CMAKE_CXX_CREATE_STATIC_LIBRARY "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} <LINK_FLAGS> -archive -o <TARGET> <OBJECTS> -keep_objs")
set(CMAKE_C_CREATE_STATIC_LIBRARY "${CMAKE_CXX_COMPILER} ${CMAKE_C_FLAGS} <LINK_FLAGS> -archive -o <TARGET> <OBJECTS> -keep_objs")
# Set format to create executables
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_CXX_COMPILER} ${CMAKE_C_FLAGS} <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")INTEGRITY 向けの Qt の設定
以下のコマンドを使用して、Qualcomm Snapdragon 8155P ボード向けに Qt を設定します。Windows 10 HOST には、次の configure コマンドが必要です:
mkdir targetbuild
cd targetbuild/
cmake C:/Users/user/qt5/ -DQT_HOST_PATH=/c/Users/user/hostbuild/qtbase
-DCMAKE_TOOLCHAIN_FILE=/c/Users/user/ghs_pack/es7_dev_env/hlos_dev_boot/toolchain_integrity.cmake
-DQT_QMAKE_TARGET_MKSPEC=devices/integrity-armv8-SA8155P
-DBUILD_qtdoc=OFF -DBUILD_qttranslations=OFF -DFEATURE_printdialog=OFF --debug-trycompile -DFEATURE_dbus=OFF
-DFEATURE_dnslookup=OFF -DFEATURE_glib=OFF -DFEATURE_system_pcre2=OFF -DFEATURE_sql_mysql=OFF
-DQT_FEATURE_harfbuzz=OFF -DFEATURE_pkg_config=OFF -DUNIX=ON -DCMAKE_HOST_WIN32=ON -GNinja -DCMAKE_INSTALL_PREFIX=/c/Users/user/targetbuild/注:INTEGRITYは 静的Qtビルドのみをサポートしています。
注: QT_HOST_PATH 変数はQt 6で導入されました。クロスコンパイルを行う際は、これをホストプラットフォーム用のQtのインストール先に設定する必要があります。これは、ホスト上で実行されるツール(moc、rcc、androiddeployqtなど)の場所を特定するために使用されます。
INTEGRITY 用の Qt のビルド
ターミナルで `cmake ` を実行して Qt をビルドします。ホストマシン上の任意の数のコアを使用して `cmake ` を実行できます。この例では 6 つのコアを使用します:
cmake --build . --parallel 6Qtのインストール
「Qt の設定」で `-prefix $PWD/qtbase ` オプションを使用していない場合は、ターミナルで以下のコマンドを実行してください:
cd <Qt installation directory>
cmake --install .もし「-prefix $PWD/qtbase 」という configure オプションを使用していた場合は、cmake install コマンドを実行しなくても、ビルドディレクトリから Qt を使用できます。
これで、sa8155ボード向けにQtの設定とビルドが完了しました。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.