qtshadertools(0.2.5): fix TOML parse - use shell heredocs for cmake pkg gen
Python f-string triple-quotes conflicted with TOML script delimiter. Rewrote cmake package generation using shell heredocs instead.
This commit is contained in:
@@ -24,7 +24,6 @@ source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
|
||||
redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules
|
||||
|
||||
# Ensure the strtold compat library is available for linking
|
||||
if [ -f "${COOKBOOK_SYSROOT}/lib/libredbear-qt-strtold-compat.so" ]; then
|
||||
mkdir -p "${COOKBOOK_SYSROOT}/usr/lib"
|
||||
cp -f "${COOKBOOK_SYSROOT}/lib/libredbear-qt-strtold-compat.so" "${COOKBOOK_SYSROOT}/usr/lib/" 2>/dev/null || true
|
||||
@@ -32,9 +31,8 @@ fi
|
||||
|
||||
# ============================================================
|
||||
# Step 1: Build qtshadertools host tools (qsb) on the host
|
||||
# Qt6 cross-compile needs the host qsb tool for shader processing.
|
||||
# ============================================================
|
||||
if [ ! -f "${HOST_BUILD}/libexec/qsb" ] || [ ! -f "${HOST_QST_STAMP}" ]; then
|
||||
if [ ! -f "${HOST_BUILD}/bin/qsb" ] || [ ! -f "${HOST_QST_STAMP}" ]; then
|
||||
echo "=== Building qtshadertools host tools (qsb) ==="
|
||||
rm -rf "${HOST_QST_BUILD}"
|
||||
env -i \
|
||||
@@ -57,300 +55,187 @@ if [ ! -f "${HOST_BUILD}/libexec/qsb" ] || [ ! -f "${HOST_QST_STAMP}" ]; then
|
||||
-Wno-dev
|
||||
(
|
||||
cd "${HOST_QST_BUILD}"
|
||||
env -i \
|
||||
HOME="${HOME}" \
|
||||
PATH="${HOST_PATH}" \
|
||||
cmake --build . -j"${COOKBOOK_MAKE_JOBS}"
|
||||
env -i HOME="${HOME}" PATH="${HOST_PATH}" cmake --build . -j"${COOKBOOK_MAKE_JOBS}"
|
||||
)
|
||||
(
|
||||
cd "${HOST_QST_BUILD}"
|
||||
env -i \
|
||||
HOME="${HOME}" \
|
||||
PATH="${HOST_PATH}" \
|
||||
cmake --install . --prefix "${HOST_BUILD}"
|
||||
env -i HOME="${HOME}" PATH="${HOST_PATH}" cmake --install . --prefix "${HOST_BUILD}"
|
||||
)
|
||||
printf '%s\n' "6.11.1" > "${HOST_QST_STAMP}"
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# Step 1b: Generate Qt6ShaderToolsTools cmake package
|
||||
# The host build installs qsb but doesn't generate the cross-compile
|
||||
# tools wrapper package. Qt's cmake framework expects
|
||||
# find_package(Qt6ShaderToolsTools) to provide Qt6::qsb.
|
||||
# We generate the minimal cmake files following the same pattern
|
||||
# as Qt6WaylandScannerTools (from qtbase host build).
|
||||
# Qt6's standalone module build does not generate this tools wrapper.
|
||||
# Cross-compile needs find_package(Qt6ShaderToolsTools) -> Qt6::qsb.
|
||||
# Pattern follows Qt6WaylandScannerTools from qtbase host build.
|
||||
# ============================================================
|
||||
QSB_TOOLS_DIR="${HOST_BUILD}/lib/cmake/Qt6ShaderToolsTools"
|
||||
if [ ! -f "${QSB_TOOLS_DIR}/Qt6ShaderToolsToolsConfig.cmake" ]; then
|
||||
mkdir -p "${QSB_TOOLS_DIR}"
|
||||
python3 - <<'PYGEN'
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
host = Path(os.environ["HOST_BUILD"])
|
||||
qsb_path = host / "bin" / "qsb"
|
||||
tools_dir = host / "lib" / "cmake" / "Qt6ShaderToolsTools"
|
||||
tools_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
pkg_name = "ShaderToolsTools"
|
||||
ns = "Qt6"
|
||||
target = "qsb"
|
||||
|
||||
# Config.cmake
|
||||
(tools_dir / f"{ns}{pkg_name}Config.cmake").write_text(f"""\
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
get_filename_component(PACKAGE_PREFIX_DIR "${{CMAKE_CURRENT_LIST_DIR}}/../../../" ABSOLUTE)
|
||||
QST_CMAKE_DIR="${HOST_BUILD}/lib/cmake/Qt6ShaderToolsTools"
|
||||
if [ ! -f "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfig.cmake" ]; then
|
||||
mkdir -p "${QST_CMAKE_DIR}"
|
||||
QSB_PATH="${HOST_BUILD}/bin/qsb"
|
||||
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfig.cmake" << 'EOF_CFG'
|
||||
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
|
||||
macro(set_and_check _var _file)
|
||||
set(${{_var}} "${{_file}}")
|
||||
if(NOT EXISTS "${{_file}}")
|
||||
message(FATAL_ERROR "File or directory ${{_file}} referenced by variable ${{_var}} does not exist !")
|
||||
set(${_var} "${_file}")
|
||||
if(NOT EXISTS "${_file}")
|
||||
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(check_required_components _NAME)
|
||||
foreach(comp ${{{_NAME}_FIND_COMPONENTS}})
|
||||
if(NOT ${{_NAME}}_${{comp}}_FOUND)
|
||||
if(${{_NAME}}_FIND_REQUIRED_${{comp}})
|
||||
set(${{_NAME}}_FOUND FALSE)
|
||||
foreach(comp ${${_NAME}_FIND_COMPONENTS})
|
||||
if(NOT ${_NAME}_${comp}_FOUND)
|
||||
if(${_NAME}_FIND_REQUIRED_${comp})
|
||||
set(${_NAME}_FOUND FALSE)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
cmake_minimum_required(VERSION 3.16...3.21)
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if(EXISTS "${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}Dependencies.cmake")
|
||||
include("${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}Dependencies.cmake")
|
||||
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsDependencies.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsDependencies.cmake")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED "{ns}{pkg_name}_FOUND")
|
||||
set("{ns}{pkg_name}_FOUND" TRUE)
|
||||
if(NOT DEFINED "Qt6ShaderToolsTools_FOUND")
|
||||
set("Qt6ShaderToolsTools_FOUND" TRUE)
|
||||
endif()
|
||||
|
||||
set(__qt_{pkg_name}_should_include_targets_code "TRUE")
|
||||
|
||||
if(__qt_{pkg_name}_should_include_targets_code)
|
||||
include("${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}TargetsPrecheck.cmake")
|
||||
set(__qt_ShaderToolsTools_should_include_targets_code "TRUE")
|
||||
if(__qt_ShaderToolsTools_should_include_targets_code)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsTargetsPrecheck.cmake")
|
||||
endif()
|
||||
|
||||
if(NOT __qt_{pkg_name}_skip_include_targets_file
|
||||
AND {ns}{pkg_name}_FOUND
|
||||
AND __qt_{pkg_name}_should_include_targets_code
|
||||
)
|
||||
include("${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}Targets.cmake")
|
||||
include("${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}AdditionalTargetInfo.cmake")
|
||||
if(NOT __qt_ShaderToolsTools_skip_include_targets_file
|
||||
AND Qt6ShaderToolsTools_FOUND
|
||||
AND __qt_ShaderToolsTools_should_include_targets_code)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsTargets.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsAdditionalTargetInfo.cmake")
|
||||
if(NOT QT_NO_CREATE_VERSIONLESS_TARGETS)
|
||||
include("${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}VersionlessTargets.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsVersionlessTargets.cmake")
|
||||
endif()
|
||||
set(__qt_{pkg_name}_targets_file_included ON)
|
||||
set(__qt_ShaderToolsTools_targets_file_included ON)
|
||||
endif()
|
||||
if(__qt_ShaderToolsTools_targets_file_included AND Qt6ShaderToolsTools_FOUND)
|
||||
__qt_internal_promote_target_to_global(Qt6::qsb)
|
||||
endif()
|
||||
set(Qt6ShaderToolsTools_TARGETS "Qt6::qsb")
|
||||
EOF_CFG
|
||||
|
||||
if(__qt_{pkg_name}_targets_file_included AND {ns}{pkg_name}_FOUND)
|
||||
__qt_internal_promote_target_to_global({ns}::{target})
|
||||
endif()
|
||||
set({ns}{pkg_name}_TARGETS "{ns}::{target}")
|
||||
""")
|
||||
|
||||
# Targets.cmake
|
||||
(tools_dir / f"{ns}{pkg_name}Targets.cmake").write_text(f"""\
|
||||
# Generated by Red Bear OS qtshadertools recipe
|
||||
|
||||
if("${{CMAKE_MAJOR_VERSION}}.${{CMAKE_MINOR_VERSION}}" LESS 2.8)
|
||||
message(FATAL_ERROR "CMake >= 2.8.3 required")
|
||||
endif()
|
||||
if(CMAKE_VERSION VERSION_LESS "2.8.3")
|
||||
message(FATAL_ERROR "CMake >= 2.8.3 required")
|
||||
endif()
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsTargets.cmake" << 'EOF_TGT'
|
||||
cmake_policy(PUSH)
|
||||
cmake_policy(VERSION 2.8.3...4.1)
|
||||
|
||||
set(CMAKE_IMPORT_FILE_VERSION 1)
|
||||
|
||||
set(_cmake_targets_defined "")
|
||||
set(_cmake_targets_not_defined "")
|
||||
set(_cmake_expected_targets "")
|
||||
foreach(_cmake_expected_target IN ITEMS {ns}::{target})
|
||||
list(APPEND _cmake_expected_targets "${{_cmake_expected_target}}")
|
||||
if(TARGET "${{_cmake_expected_target}}")
|
||||
list(APPEND _cmake_targets_defined "${{_cmake_expected_target}}")
|
||||
set(_targets_defined "")
|
||||
set(_targets_not_defined "")
|
||||
set(_expected_targets "")
|
||||
foreach(_expected IN ITEMS Qt6::qsb)
|
||||
list(APPEND _expected_targets "${_expected}")
|
||||
if(TARGET "${_expected}")
|
||||
list(APPEND _targets_defined "${_expected}")
|
||||
else()
|
||||
list(APPEND _cmake_targets_not_defined "${{_cmake_expected_target}}")
|
||||
list(APPEND _targets_not_defined "${_expected}")
|
||||
endif()
|
||||
endforeach()
|
||||
unset(_cmake_expected_target)
|
||||
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
|
||||
unset(_cmake_targets_defined)
|
||||
unset(_cmake_targets_not_defined)
|
||||
unset(_cmake_expected_targets)
|
||||
unset(CMAKE_IMPORT_FILE_VERSION)
|
||||
unset(_expected)
|
||||
if(_targets_defined STREQUAL _expected_targets)
|
||||
cmake_policy(POP)
|
||||
return()
|
||||
endif()
|
||||
if(NOT _cmake_targets_defined STREQUAL "")
|
||||
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.")
|
||||
endif()
|
||||
unset(_cmake_targets_defined)
|
||||
unset(_cmake_targets_not_defined)
|
||||
unset(_cmake_expected_targets)
|
||||
|
||||
get_filename_component(_IMPORT_PREFIX "${{CMAKE_CURRENT_LIST_FILE}}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${{_IMPORT_PREFIX}}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${{_IMPORT_PREFIX}}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${{_IMPORT_PREFIX}}" PATH)
|
||||
unset(_targets_defined)
|
||||
unset(_targets_not_defined)
|
||||
unset(_expected_targets)
|
||||
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||
if(_IMPORT_PREFIX STREQUAL "/")
|
||||
set(_IMPORT_PREFIX "")
|
||||
endif()
|
||||
|
||||
# Create imported target {ns}::{target}
|
||||
add_executable({ns}::{target} IMPORTED)
|
||||
|
||||
set_target_properties({ns}::{target} PROPERTIES
|
||||
add_executable(Qt6::qsb IMPORTED)
|
||||
set_target_properties(Qt6::qsb PROPERTIES
|
||||
COMPATIBLE_INTERFACE_STRING "QT_MAJOR_VERSION"
|
||||
INTERFACE_QT_MAJOR_VERSION "6"
|
||||
)
|
||||
|
||||
# Load information for each installed configuration.
|
||||
file(GLOB _cmake_config_files "${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}Targets-*.cmake")
|
||||
foreach(_cmake_config_file IN LISTS _cmake_config_files)
|
||||
include("${{_cmake_config_file}}")
|
||||
file(GLOB _cfg_files "${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsTargets-*.cmake")
|
||||
foreach(_cfg IN LISTS _cfg_files)
|
||||
include("${_cfg}")
|
||||
endforeach()
|
||||
unset(_cmake_config_file)
|
||||
unset(_cmake_config_files)
|
||||
|
||||
set(_IMPORT_PREFIX)
|
||||
set(CMAKE_IMPORT_FILE_VERSION)
|
||||
unset(_cfg)
|
||||
unset(_cfg_files)
|
||||
unset(_IMPORT_PREFIX)
|
||||
unset(CMAKE_IMPORT_FILE_VERSION)
|
||||
cmake_policy(POP)
|
||||
""")
|
||||
EOF_TGT
|
||||
|
||||
# Targets-release.cmake
|
||||
rel = tools_dir / f"{ns}{pkg_name}Targets-release.cmake"
|
||||
rel.write_text(f"""\
|
||||
# Generated by Red Bear OS qtshadertools recipe
|
||||
|
||||
# Import target "{ns}::{target}" for configuration "Release"
|
||||
set_property(TARGET {ns}::{target} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties({ns}::{target} PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "{qsb_path}"
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsTargets-release.cmake" << EOF_REL
|
||||
set_property(TARGET Qt6::qsb APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(Qt6::qsb PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${QSB_PATH}"
|
||||
)
|
||||
set(_cmake_import_check_targets "Qt6::qsb")
|
||||
set(_cmake_import_check_files_for_Qt6::qsb "${QSB_PATH}")
|
||||
EOF_REL
|
||||
|
||||
set(_cmake_import_check_targets "{ns}::{target}")
|
||||
set(_cmake_import_check_files_for_{ns}::{target} "{qsb_path}")
|
||||
""")
|
||||
|
||||
# Precheck
|
||||
(tools_dir / f"{ns}{pkg_name}TargetsPrecheck.cmake").write_text(f"""\
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsTargetsPrecheck.cmake" << 'EOF_PRE'
|
||||
_qt_internal_should_include_targets(
|
||||
TARGETS {target}
|
||||
NAMESPACE {ns}::
|
||||
OUT_VAR_SHOULD_SKIP __qt_{pkg_name}_skip_include_targets_file
|
||||
TARGETS qsb
|
||||
NAMESPACE Qt6::
|
||||
OUT_VAR_SHOULD_SKIP __qt_ShaderToolsTools_skip_include_targets_file
|
||||
)
|
||||
""")
|
||||
EOF_PRE
|
||||
|
||||
# AdditionalTargetInfo
|
||||
(tools_dir / f"{ns}{pkg_name}AdditionalTargetInfo.cmake").write_text(f"""\
|
||||
# Additional target information for {ns}{pkg_name}
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsAdditionalTargetInfo.cmake" << 'EOF_ADD'
|
||||
if(NOT DEFINED QT_DEFAULT_IMPORT_CONFIGURATION)
|
||||
set(QT_DEFAULT_IMPORT_CONFIGURATION RELEASE)
|
||||
endif()
|
||||
get_target_property(_qt_imported_location {ns}::{target} IMPORTED_LOCATION_RELEASE)
|
||||
get_target_property(_qt_imported_location_default {ns}::{target} IMPORTED_LOCATION_${{QT_DEFAULT_IMPORT_CONFIGURATION}})
|
||||
|
||||
set_property(TARGET {ns}::{target} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO)
|
||||
if(_qt_imported_location)
|
||||
set_property(TARGET {ns}::{target} PROPERTY IMPORTED_LOCATION_RELWITHDEBINFO "${{_qt_imported_location}}")
|
||||
get_target_property(_qt_loc Qt6::qsb IMPORTED_LOCATION_RELEASE)
|
||||
get_target_property(_qt_loc_def Qt6::qsb IMPORTED_LOCATION_${QT_DEFAULT_IMPORT_CONFIGURATION})
|
||||
set_property(TARGET Qt6::qsb APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO)
|
||||
if(_qt_loc)
|
||||
set_property(TARGET Qt6::qsb PROPERTY IMPORTED_LOCATION_RELWITHDEBINFO "${_qt_loc}")
|
||||
endif()
|
||||
|
||||
set_property(TARGET {ns}::{target} APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL)
|
||||
if(_qt_imported_location)
|
||||
set_property(TARGET {ns}::{target} PROPERTY IMPORTED_LOCATION_MINSIZEREL "${{_qt_imported_location}}")
|
||||
set_property(TARGET Qt6::qsb APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL)
|
||||
if(_qt_loc)
|
||||
set_property(TARGET Qt6::qsb PROPERTY IMPORTED_LOCATION_MINSIZEREL "${_qt_loc}")
|
||||
endif()
|
||||
|
||||
if(_qt_imported_location_default)
|
||||
set_property(TARGET {ns}::{target} PROPERTY IMPORTED_LOCATION "${{_qt_imported_location_default}}")
|
||||
if(_qt_loc_def)
|
||||
set_property(TARGET Qt6::qsb PROPERTY IMPORTED_LOCATION "${_qt_loc_def}")
|
||||
endif()
|
||||
EOF_ADD
|
||||
|
||||
unset(_qt_imported_location)
|
||||
unset(_qt_imported_location_default)
|
||||
""")
|
||||
|
||||
# VersionlessTargets
|
||||
(tools_dir / f"{ns}{pkg_name}VersionlessTargets.cmake").write_text(f"""\
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
foreach(__qt_tool {target})
|
||||
if(NOT TARGET Qt::${{__qt_tool}} AND TARGET {ns}::${{__qt_tool}})
|
||||
add_executable(Qt::${{__qt_tool}} IMPORTED GLOBAL)
|
||||
foreach(__qt_imported_location_config
|
||||
IMPORTED_LOCATION
|
||||
IMPORTED_LOCATION_RELEASE
|
||||
IMPORTED_LOCATION_RELWITHDEBINFO
|
||||
IMPORTED_LOCATION_MINSIZEREL
|
||||
IMPORTED_LOCATION_DEBUG)
|
||||
get_target_property(__qt_imported_location
|
||||
{ns}::${{__qt_tool}} ${{__qt_imported_location_config}})
|
||||
if(__qt_imported_location AND EXISTS "${{__qt_imported_location}}")
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsVersionlessTargets.cmake" << 'EOF_VER'
|
||||
foreach(__qt_tool qsb)
|
||||
if(NOT TARGET Qt::${__qt_tool} AND TARGET Qt6::${__qt_tool})
|
||||
add_executable(Qt::${__qt_tool} IMPORTED GLOBAL)
|
||||
foreach(__qt_cfg IMPORTED_LOCATION IMPORTED_LOCATION_RELEASE IMPORTED_LOCATION_RELWITHDEBINFO IMPORTED_LOCATION_MINSIZEREL IMPORTED_LOCATION_DEBUG)
|
||||
get_target_property(__qt_loc Qt6::${__qt_tool} ${__qt_cfg})
|
||||
if(__qt_loc AND EXISTS "${__qt_loc}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
set_target_properties(Qt::${{__qt_tool}}
|
||||
PROPERTIES IMPORTED_LOCATION "${{__qt_imported_location}}")
|
||||
set_target_properties(Qt::${__qt_tool} PROPERTIES IMPORTED_LOCATION "${__qt_loc}")
|
||||
endif()
|
||||
endforeach()
|
||||
""")
|
||||
EOF_VER
|
||||
|
||||
# Dependencies
|
||||
(tools_dir / f"{ns}{pkg_name}Dependencies.cmake").write_text(f"""\
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
set({ns}{pkg_name}_FOUND TRUE)
|
||||
""")
|
||||
|
||||
# ConfigVersionImpl
|
||||
(tools_dir / f"{ns}{pkg_name}ConfigVersionImpl.cmake").write_text(f"""\
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
printf 'set(Qt6ShaderToolsTools_FOUND TRUE)\n' \
|
||||
> "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsDependencies.cmake"
|
||||
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfigVersionImpl.cmake" << 'EOF_VIMPL'
|
||||
set(PACKAGE_VERSION "6.11.1")
|
||||
|
||||
if(PACKAGE_FIND_VERSION_EXACT)
|
||||
if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
endif()
|
||||
if(PACKAGE_FIND_VERSION VERSION_LESS_EQUAL PACKAGE_VERSION)
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
else()
|
||||
if(PACKAGE_FIND_VERSION VERSION_LESS_EQUAL PACKAGE_VERSION)
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
endif()
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
endif()
|
||||
|
||||
if(NOT PACKAGE_VERSION_COMPATIBLE)
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
||||
""")
|
||||
EOF_VIMPL
|
||||
|
||||
# ConfigVersion
|
||||
(tools_dir / f"{ns}{pkg_name}ConfigVersion.cmake").write_text(f"""\
|
||||
# Copyright (C) 2024 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
include("${{CMAKE_CURRENT_LIST_DIR}}/{ns}{pkg_name}ConfigVersionImpl.cmake")
|
||||
set(__qt_disable_package_version_check FALSE)
|
||||
if(__qt_disable_package_version_check)
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
unset(PACKAGE_VERSION_UNSUITABLE)
|
||||
endif()
|
||||
unset(__qt_disable_package_version_check)
|
||||
""")
|
||||
cat > "${QST_CMAKE_DIR}/Qt6ShaderToolsToolsConfigVersion.cmake" << 'EOF_VER2'
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/Qt6ShaderToolsToolsConfigVersionImpl.cmake")
|
||||
EOF_VER2
|
||||
|
||||
print(f"Generated Qt6ShaderToolsTools cmake package at {tools_dir}")
|
||||
PYGEN
|
||||
echo "Generated Qt6ShaderToolsTools cmake package"
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
@@ -391,7 +276,6 @@ PY
|
||||
|
||||
cmake --install . --prefix "${COOKBOOK_STAGE}/usr"
|
||||
|
||||
# Supplemental: copy libraries and plugins to ensure symlinks present
|
||||
for lib in lib/libQt6*.so*; do
|
||||
[ -f "${lib}" ] && cp -an "${lib}" "${COOKBOOK_STAGE}/usr/lib/"
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user