「インストール - Qt6 Raspberry Pi」の版間の差分

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>