fix: make Qt Redox CMake imports relocatable

This commit is contained in:
2026-05-07 09:11:15 +01:00
parent 10cf8b4e73
commit e742c1bd00
2 changed files with 24 additions and 4 deletions
+8 -4
View File
@@ -42,9 +42,9 @@ set(CMAKE_SYSTEM_VERSION 1)
# Redox userspace currently must not emit CET/IBT entry instructions (endbr64),
# because they trap as invalid opcode in the current runtime stack.
set(CMAKE_C_FLAGS "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS "-fcf-protection=none -march=x86-64 -include strings.h" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -include strings.h" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h" CACHE STRING "" FORCE)
# Flag for redox.patch: enables REDOX-specific CMake code paths (mkspec, QPA plugin).
@@ -65,10 +65,14 @@ set(CMAKE_CROSSCOMPILING TRUE)
# COOKBOOK_HOST_SYSROOT is set to $(ROOT)/$(PREFIX_INSTALL) = prefix/x86_64-unknown-redox/sysroot
# by mk/repo.mk and mk/prefix.mk. Fallback to hardcoded path if unset.
if(NOT DEFINED COOKBOOK_HOST_SYSROOT OR COOKBOOK_HOST_SYSROOT STREQUAL "")
if(EXISTS "$ENV{HOME}/.redoxer/x86_64-unknown-redox/toolchain/bin/x86_64-unknown-redox-gcc")
get_filename_component(_redbear_repo_root "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
set(_redbear_prefix_sysroot "${_redbear_repo_root}/prefix/x86_64-unknown-redox/sysroot")
if(EXISTS "${_redbear_prefix_sysroot}/bin/x86_64-unknown-redox-gcc")
set(COOKBOOK_HOST_SYSROOT "${_redbear_prefix_sysroot}")
elseif(EXISTS "$ENV{HOME}/.redoxer/x86_64-unknown-redox/toolchain/bin/x86_64-unknown-redox-gcc")
set(COOKBOOK_HOST_SYSROOT "$ENV{HOME}/.redoxer/x86_64-unknown-redox/toolchain")
else()
set(COOKBOOK_HOST_SYSROOT "/mnt/data/homes/kellito/Builds/rbos/prefix/x86_64-unknown-redox/sysroot")
set(COOKBOOK_HOST_SYSROOT "${_redbear_prefix_sysroot}")
endif()
endif()