Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions overlay/ports/qtbase/GLIB2-static.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake
index 24a194c..91c8e41 100644
--- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake
+++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake
@@ -95,6 +95,18 @@ find_library(GLIB2_GIO_LIBRARIES
HINTS ${PC_GIO_LIBDIR}
)

+pkg_check_modules(PC_GMODULE QUIET gmodule-2.0)
+
+find_path(GLIB2_GMODULE_INCLUDE_DIRS
+ NAMES gmodule.h
+ HINTS ${PC_GMODULE}
+ PATH_SUFFIXES glib-2.0)
+
+find_library(GLIB2_GMODULE_LIBRARIES
+ NAMES gmodule-2.0
+ HINTS ${PC_GMODULE}
+)
+
# search the glibconfig.h include dir under the same root where the library is found
get_filename_component(glib2LibDir "${GLIB2_LIBRARIES}" PATH)

@@ -126,6 +138,11 @@ if(GLIB2_GIO_LIBRARIES AND GLIB2_GIO_INCLUDE_DIRS)
set(GLIB2_GIO_FOUND TRUE)
endif()

+if(GLIB2_GMODULE_LIBRARIES AND GLIB2_GMODULE_INCLUDE_DIRS)
+ set(GLIB2_GMODULE_FOUND TRUE)
+endif()
+
+
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GLIB2
REQUIRED_VARS GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS
@@ -137,6 +154,16 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2)
IMPORTED_LOCATION "${GLIB2_LIBRARIES}"
INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}")
+ #vcpkg specific
+ pkg_check_modules(PC_PCRE2_8BIT QUIET libpcre2-8)
+ find_library(PCRE2_8BIT_LIBRARIES
+ NAMES pcre2-8
+ HINTS ${PC_PCRE2_8BIT}
+ )
+ target_link_libraries(GLIB2::GLIB2 INTERFACE ${PCRE2_8BIT_LIBRARIES})
+ find_package(Iconv)
+ find_package(Intl)
+ target_link_libraries(GLIB2::GLIB2 INTERFACE Intl::Intl Iconv::Iconv)
endif()

if(GLIB2_GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT)
@@ -153,12 +180,21 @@ if(GLIB2_GIO_FOUND AND NOT TARGET GLIB2::GIO)
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GIO_INCLUDE_DIRS}")
endif()

+if(GLIB2_GMODULE_FOUND AND NOT TARGET GLIB2::GMODULE)
+ add_library(GLIB2::GMODULE UNKNOWN IMPORTED)
+ set_target_properties(GLIB2::GMODULE PROPERTIES
+ IMPORTED_LOCATION "${GLIB2_GMODULE_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GMODULE_INCLUDE_DIRS}")
+endif()
+
+
mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_INCLUDE_DIR
GLIB2_LIBRARIES GLIB2_LIBRARY
GLIB2_GOBJECT_INCLUDE_DIRS GLIB2_GOBJECT_INCLUDE_DIR
GLIB2_GOBJECT_LIBRARIES GLIB2_GOBJECT_LIBRARY
GLIB2_GIO_INCLUDE_DIRS GLIB2_GIO_INCLUDE_DIR
- GLIB2_GIO_LIBRARIES GLIB2_GIO_LIBRARY)
+ GLIB2_GIO_LIBRARIES GLIB2_GIO_LIBRARY
+ GLIB2_GMODULE_LIBRARIES GLIB2_GMODULE_INCLUDE_DIRS)

include(FeatureSummary)
set_package_properties(GLIB2 PROPERTIES
17 changes: 17 additions & 0 deletions overlay/ports/qtbase/allow_outside_prefix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/cmake/QtBuildPathsHelpers.cmake b/cmake/QtBuildPathsHelpers.cmake
index bd186c28b..2c1994d2e 100644
--- a/cmake/QtBuildPathsHelpers.cmake
+++ b/cmake/QtBuildPathsHelpers.cmake
@@ -141,11 +141,9 @@ function(qt_configure_process_path name default docstring)
elseif(rel_path MATCHES "^\.\./")
# INSTALL_SYSCONFDIR is allowed to be outside the prefix.
if(NOT name STREQUAL "INSTALL_SYSCONFDIR")
- message(FATAL_ERROR
- "Path component '${name}' is outside computed install prefix: ${rel_path} ")
endif()
# Keep the absolute path.
set(new_value "${${name}}")
else()
# Use the canonicalized path.
set(new_value "${rel_path}")

38 changes: 38 additions & 0 deletions overlay/ports/qtbase/clang-cl_QGADGET_fix.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index e40cd85..ba68a01 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -18,6 +18,7 @@
#include <QtCore/qscopeguard.h>
#include <QtCore/qttypetraits.h>

+#include <type_traits>
#include <array>
#include <new>
#include <vector>
@@ -826,7 +829,13 @@
struct IsGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; };

template<typename T>
+#if defined(__clang__) && (__clang_major__ > 11)
+ // Clang does not reject T::QtGadgetHelper as ambiguous if a class inherits from two QGADGETS
+ // but is not a QGADGET itself
+ struct IsGadgetHelper<T, std::void_t<typename T::QtGadgetHelper, decltype(&T::qt_check_for_QGADGET_macro)>>
+#else
struct IsGadgetHelper<T, typename T::QtGadgetHelper>
+#endif
{
template <typename X>
static char checkType(void (X::*)());
@@ -841,7 +850,11 @@
struct IsPointerToGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; };

template<typename T>
+#if defined(__clang__) && (__clang_major__ > 11)
+ struct IsPointerToGadgetHelper<T*, std::void_t<typename T::QtGadgetHelper, decltype(&T::qt_check_for_QGADGET_macro)>>
+#else
struct IsPointerToGadgetHelper<T*, typename T::QtGadgetHelper>
+#endif
{
using BaseType = T;
template <typename X>
14 changes: 14 additions & 0 deletions overlay/ports/qtbase/clang-cl_source_location.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/src/corelib/kernel/qproperty.h b/src/corelib/kernel/qproperty.h
index 823b2057b..4a8cd4fa8 100644
--- a/src/corelib/kernel/qproperty.h
+++ b/src/corelib/kernel/qproperty.h
@@ -16,8 +16,8 @@

#include <QtCore/qpropertyprivate.h>

-#if __has_include(<source_location>) && __cplusplus >= 202002L && !defined(Q_QDOC)
+#if __has_include(<source_location>) && __cplusplus >= 202002L && !defined(Q_QDOC) && ( (defined(__cpp_consteval) && defined(_MSC_VER)) || !defined(_MSC_VER) )
#include <source_location>
#if defined(__cpp_lib_source_location)
#define QT_SOURCE_LOCATION_NAMESPACE std
#define QT_PROPERTY_COLLECT_BINDING_LOCATION
27 changes: 27 additions & 0 deletions overlay/ports/qtbase/cmake/qt_install_copyright.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
include_guard(GLOBAL)

#Could probably be the beginning of a vcpkg_install_copyright?
function(qt_install_copyright SOURCE_PATH)
#Find the relevant license file and install it
if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3-EXCEPT")
set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3-EXCEPT")
elseif(EXISTS "${SOURCE_PATH}/LICENSE.FDL")
set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.FDL")
endif()
if(LICENSE_PATH)
file(INSTALL "${LICENSE_PATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
elseif(EXISTS "${SOURCE_PATH}/LICENSES")
file(GLOB LICENSES "${SOURCE_PATH}/LICENSES/*")
vcpkg_install_copyright(FILE_LIST ${LICENSES})
else()
message(WARNING "No license/copyright file found!")
endif()
endfunction()
Loading