project(qemu) ## QEMU # Version set(QEMU_VERSION "8.2.1") # Flatpak Support set(QEMU_FLATPAK_PATCH "") if(MCPI_IS_FLATPAK_BUILD) set(QEMU_FLATPAK_PATCH "sed" "-i" "s/libdrm/libdrm-dis/g" "/meson.build") endif() # Build include(ExternalProject) set(PKGCONFIG_ENV "") if(DEFINED ENV{PKG_CONFIG_LIBDIR}) set(PKGCONFIG_ENV "PKG_CONFIG_LIBDIR=$ENV{PKG_CONFIG_LIBDIR}") endif() ExternalProject_Add(qemu URL "${CMAKE_CURRENT_SOURCE_DIR}/../../archives/qemu-${QEMU_VERSION}.tar.xz" # Configure Build CONFIGURE_COMMAND "${CMAKE_COMMAND}" "-E" "env" ${PKGCONFIG_ENV} "CFLAGS=-s" "CXXFLAGS=-s" "/configure" "--prefix=${CMAKE_INSTALL_PREFIX}" "--cross-prefix=" "--cc=${CMAKE_C_COMPILER}" "--cxx=${CMAKE_CXX_COMPILER}" "--disable-debug-info" "--target-list=arm-linux-user" "--without-default-features" USES_TERMINAL_CONFIGURE TRUE # Build Command BUILD_COMMAND "ninja" "qemu-arm" BUILD_BYPRODUCTS "/qemu-arm" USES_TERMINAL_BUILD TRUE # Disable Install/Test Commands INSTALL_COMMAND "" TEST_COMMAND "" # Patch Command PATCH_COMMAND "patch" "-p1" "<" "${CMAKE_CURRENT_SOURCE_DIR}/trampoline.patch" COMMAND ${QEMU_FLATPAK_PATCH} ) # Install ExternalProject_Get_property(qemu BINARY_DIR) install(PROGRAMS "${BINARY_DIR}/qemu-arm" DESTINATION "${MCPI_BIN_DIR}") # License ExternalProject_Get_property(qemu SOURCE_DIR) install(FILES "${SOURCE_DIR}/COPYING" DESTINATION "${MCPI_LEGAL_DIR}/qemu")