12,985
回編集
494行目: | 494行目: | ||
== CMakeツールチェーンファイルの作成 == | == CMakeツールチェーンファイルの作成 == | ||
==== Raspberry Pi OS Bullseye 32ビットの場合 ==== | ==== Raspberry Pi OS Bullseye / Bookworm 32ビットの場合 ==== | ||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
# Raspberry Pi OS Bullseye 32ビットの場合 | # Raspberry Pi OS Bullseye / Bookworm 32ビットの場合 | ||
cmake_minimum_required(VERSION 3.18) | cmake_minimum_required(VERSION 3.18) | ||
504行目: | 504行目: | ||
set(CMAKE_SYSTEM_PROCESSOR arm) | set(CMAKE_SYSTEM_PROCESSOR arm) | ||
set(TARGET_SYSROOT "<Raspberry Pi Bullseye 32ビットのシステムルートディレクトリのパス>") | set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 32ビットのシステムルートディレクトリのパス>") | ||
set(CMAKE_SYSROOT ${TARGET_SYSROOT}) | set(CMAKE_SYSROOT ${TARGET_SYSROOT}) | ||
523行目: | 523行目: | ||
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8") | set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8") | ||
# Raspberry Pi 4B の場合 | # Raspberry Pi 4B の場合 | ||
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a72) | set(SOC_FLAG "-march=armv8-a -mtune=cortex-a72") | ||
# Raspberry Pi 5 の場合 | # Raspberry Pi 5 の場合 | ||
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76) | set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76") | ||
set(QT_COMPILER_FLAGS ${SOC_FLAG}) | set(QT_COMPILER_FLAGS ${SOC_FLAG}) | ||
563行目: | 563行目: | ||
set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR}) | set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR}) | ||
set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libxcb.so) | set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libxcb.so) | ||
</syntaxhighlight> | |||
<br> | |||
==== Raspberry Pi OS Bullseye / Bookworm 64ビットの場合 ==== | |||
<syntaxhighlight lang="cmake"> | |||
# Raspberry Pi OS Bullseye / Bookworm 64ビットの場合 | |||
cmake_minimum_required(VERSION 3.18) | |||
include_guard(GLOBAL) | |||
set(CMAKE_SYSTEM_NAME Linux) | |||
set(CMAKE_SYSTEM_PROCESSOR arm) | |||
set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 64ビットのシステムルートディレクトリのパス>") | |||
set(CMAKE_SYSROOT ${TARGET_SYSROOT}) | |||
set(ENV{PKG_CONFIG_PATH} $PKG_CONFIG_PATH:${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu/pkgconfig) | |||
set(ENV{PKG_CONFIG_LIBDIR} /usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig/:${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu/pkgconfig:${TARGET_SYSROOT}/usr/share/pkgconfig) | |||
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT}) | |||
set(CMAKE_C_COMPILER /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-gcc) | |||
set(CMAKE_CXX_COMPILER /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-g++) | |||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${TARGET_SYSROOT}/usr/include -I${TARGET_SYSROOT}/usr/include/aarch64-linux-gnu") | |||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}") | |||
set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu") | |||
set(CMAKE_MODULE_LINKER_FLAGS_INIT "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu") | |||
set(CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu") | |||
# Raspberry Pi 3B / 3B+ の場合 | |||
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8") | |||
# Raspberry Pi 4B の場合 | |||
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a72") | |||
# Raspberry Pi 5 の場合 | |||
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76") | |||
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe") | |||
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed") | |||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | |||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | |||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | |||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) | |||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | |||
set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT}) | |||
set(XCB_PATH_VARIABLE ${TARGET_SYSROOT}) | |||
set(GL_INC_DIR ${TARGET_SYSROOT}/usr/include) | |||
set(GL_LIB_DIR ${TARGET_SYSROOT}:${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu/:${TARGET_SYSROOT}/usr:${TARGET_SYSROOT}/usr/lib) | |||
set(EGL_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libEGL.so) | |||
set(OPENGL_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libOpenGL.so) | |||
set(GLESv2_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so) | |||
set(GLESv2_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so) | |||
set(gbm_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libgbm.so) | |||
set(Libdrm_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libdrm.so) | |||
set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR}) | |||
set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libxcb.so) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> |