mirror of
				https://git.jami.net/savoirfairelinux/jami-client-qt.git
				synced 2025-11-04 08:10:18 +08:00 
			
		
		
		
	This commit makes the necessary changes to migrate from Qt 6.5.3 to Qt 6.6.1 and fixes the following issues: - EditedPopup.qml: "layout polish loop" and "recursive rearrange" errors (GitLab: #1510) as well as an unreported bug where text was clipped instead of elided - BaseContextMenu.qml: QML warning ("Created graphical object was not placed in the graphics scene.") The daemon is also bumped in order to include a patch for a build issue on openSUSE Leap (GitLab: #1552). GitLab: #1466 Change-Id: I12df2f84067ebe961368879e08ff7ef275d93395
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
# Copyright (C) 2024 Savoir-faire Linux Inc.
 | 
						|
#
 | 
						|
# This program is free software; you can redistribute it and/or modify
 | 
						|
# it under the terms of the GNU General Public License as published by
 | 
						|
# the Free Software Foundation; either version 3 of the License, or
 | 
						|
# (at your option) any later version.
 | 
						|
#
 | 
						|
# This program is distributed in the hope that it will be useful,
 | 
						|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
# GNU General Public License for more details.
 | 
						|
#
 | 
						|
# You should have received a copy of the GNU General Public License
 | 
						|
# along with this program; if not, write to the Free Software
 | 
						|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
 | 
						|
 | 
						|
include(FetchContent)
 | 
						|
include(CMakeParseArguments)
 | 
						|
 | 
						|
# Helper function to check if we're on a distribution that requires us
 | 
						|
# to apply a patch in order for qmsetup to use the right package directory
 | 
						|
function(check_distro_needs_qmsetup_patch DISTRO_NEEDS_QMSETUP_PATCH)
 | 
						|
  set(${DISTRO_NEEDS_QMSETUP_PATCH} FALSE PARENT_SCOPE)
 | 
						|
  # Check for the existence of /etc/os-release
 | 
						|
  if(EXISTS "/etc/os-release")
 | 
						|
    # Read the content of the file
 | 
						|
    file(READ "/etc/os-release" OS_RELEASE_CONTENT)
 | 
						|
      # Check if the distribution is Fedora or Red Hat-based
 | 
						|
      string(REGEX MATCH "ID=fedora|ID_LIKE=\"rhel fedora\"|ID_LIKE=\"rhel centos fedora\"" RED_HAT_BASED "${OS_RELEASE_CONTENT}")
 | 
						|
      # Check if the distribution is openSUSE Leap
 | 
						|
      string(REGEX MATCH "ID=\"opensuse-leap\"" OPENSUSE_LEAP "${OS_RELEASE_CONTENT}")
 | 
						|
      if(RED_HAT_BASED)
 | 
						|
        set(${DISTRO_NEEDS_QMSETUP_PATCH} TRUE PARENT_SCOPE)
 | 
						|
        message(STATUS "Running on a Red Hat-based distribution (Fedora, RHEL, CentOS, etc.)")
 | 
						|
      elseif(OPENSUSE_LEAP)
 | 
						|
        set(${DISTRO_NEEDS_QMSETUP_PATCH} TRUE PARENT_SCOPE)
 | 
						|
        message(STATUS "Running on openSUSE Leap")
 | 
						|
      else()
 | 
						|
        message(STATUS "Distribution is not openSUSE Leap or Red Hat-based")
 | 
						|
      endif()
 | 
						|
  else()
 | 
						|
    message(STATUS "Cannot determine the distribution type: /etc/os-release not found")
 | 
						|
  endif()
 | 
						|
endfunction()
 | 
						|
 | 
						|
# Helper function to add external content with patches and options.
 | 
						|
# Parameters:
 | 
						|
#   TARGET: Name of the target to create
 | 
						|
#   URL: URL of the git repository
 | 
						|
#   BRANCH: Branch to checkout
 | 
						|
#   PATCHES: List of patch files to apply
 | 
						|
#   OPTIONS: List of options to set prior to calling FetchContent_MakeAvailable
 | 
						|
function(add_fetch_content)
 | 
						|
  # Parse function arguments
 | 
						|
  set(oneValueArgs TARGET URL BRANCH)
 | 
						|
  set(multiValueArgs PATCHES OPTIONS)
 | 
						|
  cmake_parse_arguments(PARSE_ARGV 0 AFCWP "" "${oneValueArgs}" "${multiValueArgs}")
 | 
						|
 | 
						|
  # Create a string for the patch command
 | 
						|
  set(patch_cmd "")
 | 
						|
  # If patches is not empty, start the command with "git apply"
 | 
						|
  if(NOT "${AFCWP_PATCHES}" STREQUAL "")
 | 
						|
    set(patch_cmd git apply)
 | 
						|
  endif()
 | 
						|
  foreach(patch_file IN LISTS AFCWP_PATCHES)
 | 
						|
    list(APPEND patch_cmd "${patch_file}")
 | 
						|
  endforeach()
 | 
						|
 | 
						|
  # Declare the external content
 | 
						|
  FetchContent_Declare(
 | 
						|
    ${AFCWP_TARGET}
 | 
						|
    GIT_REPOSITORY ${AFCWP_URL}
 | 
						|
    GIT_TAG ${AFCWP_BRANCH}
 | 
						|
    PATCH_COMMAND ${patch_cmd}
 | 
						|
    UPDATE_DISCONNECTED 1
 | 
						|
  )
 | 
						|
 | 
						|
  # Apply options
 | 
						|
  list(LENGTH AFCWP_OPTIONS options_length)
 | 
						|
  if(NOT ${options_length} EQUAL 0)
 | 
						|
    math(EXPR max_idx "${options_length} - 1")
 | 
						|
    foreach(idx RANGE 0 ${max_idx} 2)
 | 
						|
      list(GET AFCWP_OPTIONS ${idx} key)
 | 
						|
      math(EXPR value_idx "${idx} + 1")
 | 
						|
      list(GET AFCWP_OPTIONS ${value_idx} value)
 | 
						|
      set(${key} ${value} CACHE STRING "${key}" FORCE)
 | 
						|
    endforeach()
 | 
						|
  endif()
 | 
						|
 | 
						|
  # Make the content available
 | 
						|
  FetchContent_MakeAvailable(${AFCWP_TARGET})
 | 
						|
endfunction()
 |