diff options
| author | Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> | 2021-04-06 19:53:41 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-06 10:53:41 -0700 |
| commit | 1bb0fe61dfecd1450a1ff44c7fc8d424365366aa (patch) | |
| tree | 7e99db8c737c022a6e19392ec0a6f98504a38069 | |
| parent | 030cfaa24de9ea1bbf0a4d9c615ce7312ba77af1 (diff) | |
| download | vcpkg-1bb0fe61dfecd1450a1ff44c7fc8d424365366aa.tar.gz vcpkg-1bb0fe61dfecd1450a1ff44c7fc8d424365366aa.zip | |
[vcpkg baseline][qt5-base] Fix glib link issues on linux (#16954)
* [qt5-base] fix glib link issues on linux
* add version
* remove unused vars
* update version
* write port info file.
* version stuff
* remove paraview from baseline. It was added due to the same spurious glib failures.
* trying out a different approach
* more changes
* change the if to actually use the buildtype instead
* remove x_vcpkg_get_port_info
* add option QT_OPENSSL_LINK back in
* use INCLUDE_DIRS_(DEBUG|RELEASE) instead of just INCLUDE_DIRS
* regen docs
* remove function call I forgot to remove
* [vcpkg-pkgconfig-get-modules] Move to port
* revert changes to ports.cmake
* include the file in qt5-base
* fix path
* remove unnecessary include
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* Apply suggestions from code review
* update version
* ws removal
* version stuff
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
| -rw-r--r-- | docs/maintainers/portfile-functions.md | 4 | ||||
| -rw-r--r-- | docs/maintainers/ports/vcpkg-pkgconfig-get-modules.md | 6 | ||||
| -rw-r--r-- | docs/maintainers/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.md | 44 | ||||
| -rwxr-xr-x | docs/regenerate.ps1 | 1 | ||||
| -rw-r--r-- | ports/qt5-base/cmake/qt_build_submodule.cmake | 29 | ||||
| -rw-r--r-- | ports/qt5-base/portfile.cmake | 75 | ||||
| -rw-r--r-- | ports/qt5-base/vcpkg.json | 6 | ||||
| -rw-r--r-- | ports/vcpkg-pkgconfig-get-modules/README.md | 6 | ||||
| -rw-r--r-- | ports/vcpkg-pkgconfig-get-modules/copyright | 23 | ||||
| -rw-r--r-- | ports/vcpkg-pkgconfig-get-modules/portfile.cmake | 12 | ||||
| -rw-r--r-- | ports/vcpkg-pkgconfig-get-modules/vcpkg-port-config.cmake | 1 | ||||
| -rw-r--r-- | ports/vcpkg-pkgconfig-get-modules/vcpkg.json | 4 | ||||
| -rw-r--r-- | ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake | 146 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 1 | ||||
| -rw-r--r-- | versions/baseline.json | 6 | ||||
| -rw-r--r-- | versions/q-/qt5-base.json | 5 | ||||
| -rw-r--r-- | versions/v-/vcpkg-pkgconfig-get-modules.json | 9 |
17 files changed, 321 insertions, 57 deletions
diff --git a/docs/maintainers/portfile-functions.md b/docs/maintainers/portfile-functions.md index fbad18c8e..842ef6137 100644 --- a/docs/maintainers/portfile-functions.md +++ b/docs/maintainers/portfile-functions.md @@ -73,3 +73,7 @@ ### [vcpkg-cmake-config](ports/vcpkg-cmake-config.md) - [vcpkg\_cmake\_config\_fixup](ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.md) + +### [vcpkg-pkgconfig-get-modules](ports/vcpkg-pkgconfig-get-modules.md) + +- [x\_vcpkg\_pkgconfig\_get\_modules](ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.md) diff --git a/docs/maintainers/ports/vcpkg-pkgconfig-get-modules.md b/docs/maintainers/ports/vcpkg-pkgconfig-get-modules.md new file mode 100644 index 000000000..ac99412c2 --- /dev/null +++ b/docs/maintainers/ports/vcpkg-pkgconfig-get-modules.md @@ -0,0 +1,6 @@ +# vcpkg-pkgconfig-get-modules + +**Experimental: will change or be removed at any time** + +`vcpkg-pkgconfig-get-modules` provides `x_vcpkg_pkgconfig_get_modules()`, a function which simplifies calling +`pkg-config` in portfiles in order to gather dependencies for exotic buildsystems. diff --git a/docs/maintainers/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.md b/docs/maintainers/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.md new file mode 100644 index 000000000..06299533a --- /dev/null +++ b/docs/maintainers/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.md @@ -0,0 +1,44 @@ +# x_vcpkg_pkgconfig_get_modules + +The latest version of this document lives in the [vcpkg repo](https://github.com/Microsoft/vcpkg/blob/master/docs/maintainers/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.md). + +Experimental +Retrieve required module information from pkgconfig modules + +## Usage +```cmake +x_vcpkg_pkgconfig_get_modules( + PREFIX <prefix> + MODULES <pkgconfig_modules>... + [LIBS] + [LIBRARIES] + [LIBRARIES_DIRS] + [INCLUDE_DIRS] +) +``` +## Parameters + +### PREFIX +Used variable prefix to use + +### MODULES +List of pkgconfig modules to retrieve information for. + +### LIBS +Returns `"${PKGCONFIG}" --libs` in <prefix>_LIBS_(DEBUG|RELEASE) + +### LIBRARIES +Returns `"${PKGCONFIG}" --libs-only-l` in <prefix>_LIBRARIES_(DEBUG|RELEASE) + +### LIBRARIES_DIRS +Returns `"${PKGCONFIG}" --libs-only-L` in <prefix>_LIBRARIES_DIRS_(DEBUG|RELEASE) + +### INCLUDE_DIRS +Returns `"${PKGCONFIG}" --cflags-only-I` in <prefix>_INCLUDE_DIRS_(DEBUG|RELEASE) + +## Examples + +* [qt5-base](https://github.com/microsoft/vcpkg/blob/master/ports/qt5-base/portfile.cmake) + +## Source +[ports/vcpkg-pkgconfig-get-modules/x\_vcpkg\_pkgconfig\_get\_modules.cmake](https://github.com/Microsoft/vcpkg/blob/master/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake) diff --git a/docs/regenerate.ps1 b/docs/regenerate.ps1 index 93e78a3c9..4c847f75a 100755 --- a/docs/regenerate.ps1 +++ b/docs/regenerate.ps1 @@ -26,6 +26,7 @@ class CMakeDocumentation { [String[]]$cmakeScriptsPorts = @( 'vcpkg-cmake' 'vcpkg-cmake-config' + 'vcpkg-pkgconfig-get-modules' ) [CMakeDocumentation[]]$tableOfContents = @() diff --git a/ports/qt5-base/cmake/qt_build_submodule.cmake b/ports/qt5-base/cmake/qt_build_submodule.cmake index b30ef0299..52f9c6c1b 100644 --- a/ports/qt5-base/cmake/qt_build_submodule.cmake +++ b/ports/qt5-base/cmake/qt_build_submodule.cmake @@ -6,19 +6,20 @@ function(qt_build_submodule SOURCE_PATH) vcpkg_find_acquire_program(PYTHON2)
get_filename_component(PYTHON2_EXE_PATH ${PYTHON2} DIRECTORY)
vcpkg_add_to_path("${PYTHON2_EXE_PATH}")
-
+
vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH} ${ARGV})
vcpkg_build_qmake(SKIP_MAKEFILES)
-
+
#Fix the installation location within the makefiles
qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/")
qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/")
#Install the module files
vcpkg_build_qmake(TARGETS install SKIP_MAKEFILES BUILD_LOGNAME install)
-
+
qt_fix_cmake(${CURRENT_PACKAGES_DIR} ${PORT})
+ vcpkg_fixup_pkgconfig() # Needs further investigation if this is enough!
#Replace with VCPKG variables if PR #7733 is merged
unset(BUILDTYPES)
@@ -26,13 +27,13 @@ function(qt_build_submodule SOURCE_PATH) set(_buildname "DEBUG")
list(APPEND BUILDTYPES ${_buildname})
set(_short_name_${_buildname} "dbg")
- set(_path_suffix_${_buildname} "/debug")
+ set(_path_suffix_${_buildname} "/debug")
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
set(_buildname "RELEASE")
list(APPEND BUILDTYPES ${_buildname})
set(_short_name_${_buildname} "rel")
- set(_path_suffix_${_buildname} "")
+ set(_path_suffix_${_buildname} "")
endif()
unset(_buildname)
@@ -42,14 +43,14 @@ function(qt_build_submodule SOURCE_PATH) file(GLOB_RECURSE PRL_FILES "${CURRENT_BUILD_PACKAGE_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5${_path_suffix_${_buildname}}/lib/*.prl"
"${CURRENT_PACKAGES_DIR}/tools/qt5${_path_suffix_${_buildname}}/mkspecs/*.pri")
qt_fix_prl("${CURRENT_BUILD_PACKAGE_DIR}" "${PRL_FILES}")
-
+
# This makes it impossible to use the build tools in any meaningful way. qt5 assumes they are all in one folder!
# So does the Qt VS Plugin which even assumes all of the in a bin folder
#Move tools to the correct directory
#if(EXISTS ${CURRENT_BUILD_PACKAGE_DIR}/tools/qt5)
# file(RENAME ${CURRENT_BUILD_PACKAGE_DIR}/tools/qt5 ${CURRENT_PACKAGES_DIR}/tools/${PORT})
#endif()
-
+
# Move executables in bin to tools
# This is ok since those are not build tools.
file(GLOB PACKAGE_EXE ${CURRENT_BUILD_PACKAGE_DIR}/bin/*.exe)
@@ -64,13 +65,13 @@ function(qt_build_submodule SOURCE_PATH) endif()
endforeach()
endif()
-
+
#cleanup empty folders
file(GLOB PACKAGE_LIBS "${CURRENT_BUILD_PACKAGE_DIR}/lib/*")
if(NOT PACKAGE_LIBS)
file(REMOVE_RECURSE "${CURRENT_BUILD_PACKAGE_DIR}/lib")
endif()
-
+
file(GLOB PACKAGE_BINS "${CURRENT_BUILD_PACKAGE_DIR}/bin/*")
if(NOT PACKAGE_BINS)
file(REMOVE_RECURSE "${CURRENT_BUILD_PACKAGE_DIR}/bin")
@@ -78,12 +79,12 @@ function(qt_build_submodule SOURCE_PATH) endforeach()
if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/qt5/bin")
file(COPY "${CURRENT_PACKAGES_DIR}/tools/qt5/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
-
+
set(CURRENT_INSTALLED_DIR_BACKUP "${CURRENT_INSTALLED_DIR}")
set(CURRENT_INSTALLED_DIR "./../../.." ) # Making the qt.conf relative and not absolute
configure_file(${CURRENT_INSTALLED_DIR_BACKUP}/tools/qt5/qt_release.conf ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/qt.conf) # This makes the tools at least useable for release
set(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR_BACKUP}")
-
+
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(GLOB_RECURSE DLL_DEPS_AVAIL "${CURRENT_INSTALLED_DIR}/tools/qt5/bin/*.dll")
@@ -99,14 +100,14 @@ function(qt_build_submodule SOURCE_PATH) endforeach()
endif()
endif()
-
+
#This should be removed if somehow possible
if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/qt5/debug/bin")
set(CURRENT_INSTALLED_DIR_BACKUP "${CURRENT_INSTALLED_DIR}")
set(CURRENT_INSTALLED_DIR "./../../../.." ) # Making the qt.conf relative and not absolute
configure_file(${CURRENT_INSTALLED_DIR_BACKUP}/tools/qt5/qt_debug.conf ${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/qt.conf) # This makes the tools at least useable for release
set(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR_BACKUP}")
-
+
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin")
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(GLOB_RECURSE DLL_DEPS_AVAIL "${CURRENT_INSTALLED_DIR}/tools/qt5/debug/bin/*.dll")
@@ -122,5 +123,5 @@ function(qt_build_submodule SOURCE_PATH) endforeach()
endif()
endif()
-
+
endfunction()
\ No newline at end of file diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index 1ca13c559..5137f72d0 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -1,19 +1,11 @@ vcpkg_buildpath_length_warning(37) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - option(QT_OPENSSL_LINK "Link against OpenSSL at compile-time." ON) + set(QT_OPENSSL_LINK_DEFAULT ON) else() - option(QT_OPENSSL_LINK "Link against OpenSSL at compile-time." OFF) + set(QT_OPENSSL_LINK_DEFAULT OFF) endif() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - option(QT_MYSQL_PLUGIN "Create MySQL plugin" OFF) -else() - if ("mysqlplugin" IN_LIST FEATURES) - option(QT_MYSQL_PLUGIN "Create MySQL plugin" ON) - endif() -endif() - +option(QT_OPENSSL_LINK "Link against OpenSSL at compile-time." ${QT_OPENSSL_LINK_DEFAULT}) if (VCPKG_TARGET_IS_LINUX) message(WARNING "qt5-base currently requires some packages from the system package manager, see https://doc.qt.io/qt-5/linux-requirements.html") @@ -45,9 +37,17 @@ else() ) endif() -set(WITH_PGSQL OFF) +set(WITH_PGSQL_PLUGIN OFF) if("postgresqlplugin" IN_LIST FEATURES) - set(WITH_PGSQL ON) + set(WITH_PGSQL_PLUGIN ON) +endif() + +set(WITH_MYSQL_PLUGIN OFF) +if ("mysqlplugin" IN_LIST FEATURES) + set(WITH_MYSQL_PLUGIN ON) +endif() +if(WITH_MYSQL_PLUGIN AND NOT VCPKG_TARGET_IS_WINDOWS) + message(WARNING "${PORT} is currently not setup to support feature 'mysqlplugin' on platforms other than windows. Feel free to open up a PR to fix it!") endif() include(qt_port_functions) @@ -121,31 +121,33 @@ list(APPEND CORE_OPTIONS -system-zlib -system-libjpeg -system-libpng - -system-freetype # static builds require to also link its dependent bzip! + -system-freetype -system-pcre -system-doubleconversion -system-sqlite -system-harfbuzz -icu -no-vulkan - -no-angle) # Qt does not need to build angle. VCPKG will build angle! + -no-angle # Qt does not need to build angle. VCPKG will build angle! + -no-glib + ) if(QT_OPENSSL_LINK) list(APPEND CORE_OPTIONS -openssl-linked) endif() -if(WITH_PGSQL) +if(WITH_PGSQL_PLUGIN) list(APPEND CORE_OPTIONS -sql-psql) else() list(APPEND CORE_OPTIONS -no-sql-psql) endif() - -if(VCPKG_TARGET_IS_WINDOWS) - if(QT_MYSQL_PLUGIN) - list(APPEND CORE_OPTIONS -sql-mysql) - endif() +if(WITH_MYSQL_PLUGIN) + list(APPEND CORE_OPTIONS -sql-mysql) +else() + list(APPEND CORE_OPTIONS -no-sql-mysql) endif() + find_library(ZLIB_RELEASE NAMES z zlib PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ZLIB_DEBUG NAMES z zlib zd zlibd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(JPEG_RELEASE NAMES jpeg jpeg-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) @@ -202,7 +204,6 @@ if(VCPKG_TARGET_IS_WINDOWS) set(ICU_DEBUG "${ICU_DEBUG} Advapi32.lib" ) endif() - find_library(FONTCONFIG_RELEASE NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(FONTCONFIG_DEBUG NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(EXPAT_RELEASE NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) @@ -222,13 +223,7 @@ set(FREETYPE_RELEASE_ALL "${FREETYPE_RELEASE} ${BZ2_RELEASE} ${LIBPNG_RELEASE} $ set(FREETYPE_DEBUG_ALL "${FREETYPE_DEBUG} ${BZ2_DEBUG} ${LIBPNG_DEBUG} ${ZLIB_DEBUG} ${BROTLI_DEC_DEBUG} ${BROTLI_COMMON_DEBUG}") # If HarfBuzz is built with GLib enabled, it must be statically link -set(GLIB_LIB_VERSION 2.0) -find_library(GLIB_RELEASE NAMES glib-${GLIB_LIB_VERSION} PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) -find_library(GLIB_DEBUG NAMES glib-${GLIB_LIB_VERSION} PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) -if(GLIB_RELEASE MATCHES "-NOTFOUND" OR GLIB_DEBUG MATCHES "-NOTFOUND") - set(GLIB_RELEASE "") - set(GLIB_DEBUG "") -endif() +x_vcpkg_pkgconfig_get_modules(PREFIX harfbuzz MODULES harfbuzz LIBRARIES) set(RELEASE_OPTIONS "LIBJPEG_LIBS=${JPEG_RELEASE}" @@ -266,23 +261,23 @@ if(VCPKG_TARGET_IS_WINDOWS) endif() list(APPEND RELEASE_OPTIONS "SQLITE_LIBS=${SQLITE_RELEASE}" - "HARFBUZZ_LIBS=${HARFBUZZ_RELEASE} ${FREETYPE_RELEASE_ALL}" + "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE}" "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib" ) list(APPEND DEBUG_OPTIONS "SQLITE_LIBS=${SQLITE_DEBUG}" - "HARFBUZZ_LIBS=${HARFBUZZ_DEBUG} ${FREETYPE_DEBUG_ALL}" + "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG}" "OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib" ) - if(WITH_PGSQL) + if(WITH_PGSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "PSQL_LIBS=${PSQL_RELEASE} ${PSQL_PORT_RELEASE} ${PSQL_COMMON_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib") list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib") endif() - if (QT_MYSQL_PLUGIN) + if (WITH_MYSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "MYSQL_LIBS=${MYSQL_RELEASE}") list(APPEND DEBUG_OPTIONS "MYSQL_LIBS=${MYSQL_DEBUG}") - endif(QT_MYSQL_PLUGIN) + endif(WITH_MYSQL_PLUGIN) elseif(VCPKG_TARGET_IS_LINUX) list(APPEND CORE_OPTIONS -fontconfig -xcb-xlib -xcb -linuxfb) @@ -291,17 +286,17 @@ elseif(VCPKG_TARGET_IS_LINUX) endif() list(APPEND RELEASE_OPTIONS "SQLITE_LIBS=${SQLITE_RELEASE} -ldl -lpthread" - "HARFBUZZ_LIBS=${HARFBUZZ_RELEASE} ${FREETYPE_RELEASE_ALL} ${GLIB_RELEASE} -lpthread" + "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE}" "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread" "FONTCONFIG_LIBS=${FONTCONFIG_RELEASE} ${FREETYPE_RELEASE} ${EXPAT_RELEASE} -luuid" ) list(APPEND DEBUG_OPTIONS "SQLITE_LIBS=${SQLITE_DEBUG} -ldl -lpthread" - "HARFBUZZ_LIBS=${HARFBUZZ_DEBUG} ${FREETYPE_DEBUG_ALL} ${GLIB_DEBUG} -lpthread" + "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG}" "OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread" "FONTCONFIG_LIBS=${FONTCONFIG_DEBUG} ${FREETYPE_DEBUG} ${EXPAT_DEBUG} -luuid" ) - if(WITH_PGSQL) + if(WITH_PGSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "PSQL_LIBS=${PSQL_RELEASE} ${PSQL_PORT_RELEASE} ${PSQL_TYPES_RELEASE} ${PSQL_COMMON_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread") list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_TYPES_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread") endif() @@ -331,18 +326,18 @@ elseif(VCPKG_TARGET_IS_OSX) #list(APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_PLATFORM ${TARGET_MKSPEC}) list(APPEND RELEASE_OPTIONS "SQLITE_LIBS=${SQLITE_RELEASE} -ldl -lpthread" - "HARFBUZZ_LIBS=${HARFBUZZ_RELEASE} ${FREETYPE_RELEASE_ALL} -framework ApplicationServices" + "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE} -framework ApplicationServices" "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread" "FONTCONFIG_LIBS=${FONTCONFIG_RELEASE} ${FREETYPE_RELEASE} ${EXPAT_RELEASE} -liconv" ) list(APPEND DEBUG_OPTIONS "SQLITE_LIBS=${SQLITE_DEBUG} -ldl -lpthread" - "HARFBUZZ_LIBS=${HARFBUZZ_DEBUG} ${FREETYPE_DEBUG_ALL} -framework ApplicationServices" + "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG} -framework ApplicationServices" "OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread" "FONTCONFIG_LIBS=${FONTCONFIG_DEBUG} ${FREETYPE_DEBUG} ${EXPAT_DEBUG} -liconv" ) - if(WITH_PGSQL) + if(WITH_PGSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "PSQL_LIBS=${PSQL_RELEASE} ${PSQL_PORT_RELEASE} ${PSQL_TYPES_RELEASE} ${PSQL_COMMON_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread") list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_TYPES_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread") endif() diff --git a/ports/qt5-base/vcpkg.json b/ports/qt5-base/vcpkg.json index 37e62526c..e71dbb245 100644 --- a/ports/qt5-base/vcpkg.json +++ b/ports/qt5-base/vcpkg.json @@ -1,7 +1,7 @@ { "name": "qt5-base", "version-string": "5.15.2", - "port-version": 3, + "port-version": 4, "description": "Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", "homepage": "https://www.qt.io/", "dependencies": [ @@ -26,6 +26,10 @@ "openssl", "pcre2", "sqlite3", + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true + }, "zlib", "zstd" ], diff --git a/ports/vcpkg-pkgconfig-get-modules/README.md b/ports/vcpkg-pkgconfig-get-modules/README.md new file mode 100644 index 000000000..ac99412c2 --- /dev/null +++ b/ports/vcpkg-pkgconfig-get-modules/README.md @@ -0,0 +1,6 @@ +# vcpkg-pkgconfig-get-modules + +**Experimental: will change or be removed at any time** + +`vcpkg-pkgconfig-get-modules` provides `x_vcpkg_pkgconfig_get_modules()`, a function which simplifies calling +`pkg-config` in portfiles in order to gather dependencies for exotic buildsystems. diff --git a/ports/vcpkg-pkgconfig-get-modules/copyright b/ports/vcpkg-pkgconfig-get-modules/copyright new file mode 100644 index 000000000..2e4eac826 --- /dev/null +++ b/ports/vcpkg-pkgconfig-get-modules/copyright @@ -0,0 +1,23 @@ +Copyright (c) Microsoft Corporation + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/ports/vcpkg-pkgconfig-get-modules/portfile.cmake b/ports/vcpkg-pkgconfig-get-modules/portfile.cmake new file mode 100644 index 000000000..18df919b4 --- /dev/null +++ b/ports/vcpkg-pkgconfig-get-modules/portfile.cmake @@ -0,0 +1,12 @@ +if(NOT TARGET_TRIPLET STREQUAL HOST_TRIPLET) + # make FATAL_ERROR in CI when issue #16773 fixed + message(WARNING "vcpkg-pkgconfig-get-modules is a host-only port; please mark it as a host port in your dependencies.") +endif() + +file(COPY + "${CMAKE_CURRENT_LIST_DIR}/x_vcpkg_pkgconfig_get_modules.cmake" + "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" + "${CMAKE_CURRENT_LIST_DIR}/copyright" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/ports/vcpkg-pkgconfig-get-modules/vcpkg-port-config.cmake b/ports/vcpkg-pkgconfig-get-modules/vcpkg-port-config.cmake new file mode 100644 index 000000000..01c9e6aec --- /dev/null +++ b/ports/vcpkg-pkgconfig-get-modules/vcpkg-port-config.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/x_vcpkg_pkgconfig_get_modules.cmake") diff --git a/ports/vcpkg-pkgconfig-get-modules/vcpkg.json b/ports/vcpkg-pkgconfig-get-modules/vcpkg.json new file mode 100644 index 000000000..f9c24c7f3 --- /dev/null +++ b/ports/vcpkg-pkgconfig-get-modules/vcpkg.json @@ -0,0 +1,4 @@ +{ + "name": "vcpkg-pkgconfig-get-modules", + "version-date": "2021-04-02" +} diff --git a/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake b/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake new file mode 100644 index 000000000..43ccf92e7 --- /dev/null +++ b/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake @@ -0,0 +1,146 @@ +#[===[.md:
+# x_vcpkg_pkgconfig_get_modules
+
+Experimental
+Retrieve required module information from pkgconfig modules
+
+## Usage
+```cmake
+x_vcpkg_pkgconfig_get_modules(
+ PREFIX <prefix>
+ MODULES <pkgconfig_modules>...
+ [LIBS]
+ [LIBRARIES]
+ [LIBRARIES_DIRS]
+ [INCLUDE_DIRS]
+)
+```
+## Parameters
+
+### PREFIX
+Used variable prefix to use
+
+### MODULES
+List of pkgconfig modules to retrieve information for.
+
+### LIBS
+Returns `"${PKGCONFIG}" --libs` in <prefix>_LIBS_(DEBUG|RELEASE)
+
+### LIBRARIES
+Returns `"${PKGCONFIG}" --libs-only-l` in <prefix>_LIBRARIES_(DEBUG|RELEASE)
+
+### LIBRARIES_DIRS
+Returns `"${PKGCONFIG}" --libs-only-L` in <prefix>_LIBRARIES_DIRS_(DEBUG|RELEASE)
+
+### INCLUDE_DIRS
+Returns `"${PKGCONFIG}" --cflags-only-I` in <prefix>_INCLUDE_DIRS_(DEBUG|RELEASE)
+
+## Examples
+
+* [qt5-base](https://github.com/microsoft/vcpkg/blob/master/ports/qt5-base/portfile.cmake)
+#]===]
+if(Z_VCPKG_PKGCONFIG_GET_MODULES_GUARD)
+ return()
+endif()
+set(Z_VCPKG_PKGCONFIG_GET_MODULES_GUARD ON CACHE INTERNAL "guard variable")
+
+function(x_vcpkg_pkgconfig_get_modules)
+ cmake_parse_arguments(PARSE_ARGV 0 "arg" "LIBS;LIBRARIES;LIBRARIES_DIR;INCLUDE_DIRS" "PREFIX" "MODULES")
+ if(NOT DEFINED arg_PREFIX OR arg_PREFIX STREQUAL "")
+ message(FATAL_ERROR "x_vcpkg_pkgconfig_get_modules requires parameter PREFIX!")
+ endif()
+ if(NOT DEFINED arg_MODULES OR arg_MODULES STREQUAL "")
+ message(FATAL_ERROR "x_vcpkg_pkgconfig_get_modules requires parameter MODULES!")
+ endif()
+ if(DEFINED arg_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "extra arguments passed to x_vcpkg_pkgconfig_get_modules: ${arg_UNPARSED_ARGUMENTS}")
+ endif()
+
+ vcpkg_find_acquire_program(PKGCONFIG)
+ set(backup_PKG_CONFIG_PATH "$ENV{PKG_CONFIG_PATH}")
+
+ set(var_suffixes)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ z_vcpkg_set_pkgconfig_path("${CURRENT_INSTALLED_DIR}/lib/pkgconfig" "${backup_PKG_CONFIG_PATH}")
+ if(arg_LIBS)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --libs ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_LIBS_RELEASE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes LIBS_RELEASE)
+ endif()
+ if(arg_LIBRARIES)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --libs-only-l ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_RELEASE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes LIBRARIES_RELEASE)
+ endif()
+ if(arg_LIBRARIES_DIRS)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --libs-only-L ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DIRS_RELEASE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes LIBRARIES_DIRS_RELEASE)
+ endif()
+ if(arg_INCLUDE_DIRS)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --cflags-only-I ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_INCLUDE_DIRS_RELEASE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes INCLUDE_DIRS_RELEASE)
+ endif()
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ z_vcpkg_set_pkgconfig_path("${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig" "${backup_PKG_CONFIG_PATH}")
+ if(arg_LIBS)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --libs ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_LIBS_DEBUG
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes LIBS_DEBUG)
+ endif()
+ if(arg_LIBRARIES)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --libs-only-l ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DEBUG
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes LIBRARIES_DEBUG)
+ endif()
+ if(arg_LIBRARIES_DIRS)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --libs-only-L ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DIRS_DEBUG
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes LIBRARIES_DIRS_DEBUG)
+ endif()
+ if(arg_INCLUDE_DIRS)
+ execute_process(
+ COMMAND "${PKGCONFIG}" --cflags-only-I ${arg_MODULES}
+ OUTPUT_VARIABLE ${arg_PREFIX}_INCLUDE_DIRS_DEBUG
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ list(APPEND var_suffixes INCLUDE_DIRS_DEBUG)
+ endif()
+ endif()
+ set(ENV{PKG_CONFIG_PATH} "${backup_PKG_CONFIG_PATH}")
+
+ foreach(_var IN LISTS var_suffixes)
+ set("${arg_PREFIX}_${_var}" "${${arg_PREFIX}_${_var}}" PARENT_SCOPE)
+ endforeach()
+endfunction()
+
+function(z_vcpkg_set_pkgconfig_path _path _backup)
+ if(NOT _backup STREQUAL "")
+ set(ENV{PKG_CONFIG_PATH} "${_path}${VCPKG_HOST_PATH_SEPARATOR}${_backup}")
+ else()
+ set(ENV{PKG_CONFIG_PATH} "${_path}")
+ endif()
+endfunction()
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 9b0bd80f4..124afea57 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1213,7 +1213,6 @@ paho-mqtt:arm-uwp=fail paho-mqtt:x64-uwp=fail pangomm:x64-osx=fail pangomm:arm64-windows=fail -paraview:x64-linux=fail parmetis:x64-linux=fail parmetis:x64-osx=fail pdal:x64-linux=fail diff --git a/versions/baseline.json b/versions/baseline.json index 7ba361f3b..eefd125a7 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4962,7 +4962,7 @@ }, "qt5-base": { "baseline": "5.15.2", - "port-version": 3 + "port-version": 4 }, "qt5-canvas3d": { "baseline": "0", @@ -6264,6 +6264,10 @@ "baseline": "3", "port-version": 0 }, + "vcpkg-pkgconfig-get-modules": { + "baseline": "2021-04-02", + "port-version": 0 + }, "vectorclass": { "baseline": "2.00.01", "port-version": 0 diff --git a/versions/q-/qt5-base.json b/versions/q-/qt5-base.json index 4fbe36d47..8b437940a 100644 --- a/versions/q-/qt5-base.json +++ b/versions/q-/qt5-base.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "6bd06b14752f1123c7d43df59ae19c584c24ea54", + "version-string": "5.15.2", + "port-version": 4 + }, + { "git-tree": "da84dcfb306668b2cdb510efb6a130882da2055a", "version-string": "5.15.2", "port-version": 3 diff --git a/versions/v-/vcpkg-pkgconfig-get-modules.json b/versions/v-/vcpkg-pkgconfig-get-modules.json new file mode 100644 index 000000000..c1c65a541 --- /dev/null +++ b/versions/v-/vcpkg-pkgconfig-get-modules.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "827541895526ebcd68711de9d05e98acd09bd323", + "version-date": "2021-04-02", + "port-version": 0 + } + ] +} |
