From 0c7af9d27ac1adc8ae07aaf9de8aa3514b99b695 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Sat, 12 Apr 2025 13:33:21 +0200 Subject: [PATCH 001/118] move mobile-sdk deps to main mobile repo --- .github/workflows/android.yml | 37 +- .github/workflows/gallery.yml | 1 - .github/workflows/ios.yml | 25 +- .github/workflows/linux.yml | 22 +- .github/workflows/macos.yml | 22 +- .github/workflows/macos_arm64.yml | 23 +- .github/workflows/win.yml | 25 +- CMakeLists.txt | 105 +- VCPKG_BASELINE | 1 + app/CMakeLists.txt | 71 +- cmake/FindAbsl.cmake | 1914 ----------------- cmake/FindBz2.cmake | 26 - cmake/FindCharset.cmake | 27 - cmake/FindCurl.cmake | 27 - cmake/FindExiv2.cmake | 26 - cmake/FindExpat.cmake | 27 - cmake/FindFreexl.cmake | 27 - cmake/FindGdal.cmake | 27 - cmake/FindGeodiff.cmake | 29 - cmake/FindGeos.cmake | 42 - cmake/FindGeotiff.cmake | 29 - cmake/FindGlib2.cmake | 23 - cmake/FindIconv.cmake | 25 - cmake/FindInih.cmake | 28 - cmake/FindJpeg.cmake | 30 - cmake/FindLzma.cmake | 27 - cmake/FindMiniZip.cmake | 29 - cmake/FindOpenSSL.cmake | 76 - cmake/FindPq.cmake | 52 - cmake/FindProj.cmake | 27 - cmake/FindProtobuf.cmake | 31 - cmake/FindQGIS.cmake | 6 - cmake/FindQca.cmake | 27 - cmake/FindQtkeychain.cmake | 30 - cmake/FindSpatialindex.cmake | 4 - cmake/FindSpatialite.cmake | 4 - cmake/FindSqlite3.cmake | 29 - cmake/FindTasn1.cmake | 4 - cmake/FindTiff.cmake | 27 - cmake/FindUtf8.cmake | 35 - cmake/FindWebP.cmake | 41 - cmake/FindXml2.cmake | 17 - cmake/FindZLIB.cmake | 2 - cmake/FindZXing.cmake | 27 - cmake/FindZip.cmake | 27 - cmake/FindZstd.cmake | 27 - scripts/update_all_versions.bash | 8 +- vcpkg.json | 50 + vcpkg/ports/gdal/cmake-project-include.cmake | 13 + vcpkg/ports/gdal/find-link-libraries.patch | 109 + .../gdal/fix-gdal-target-interfaces.patch | 15 + vcpkg/ports/gdal/libkml.patch | 46 + vcpkg/ports/gdal/portfile.cmake | 148 ++ vcpkg/ports/gdal/target-is-valid.patch | 21 + vcpkg/ports/gdal/usage | 4 + vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake | 23 + vcpkg/ports/gdal/vcpkg.json | 39 + vcpkg/ports/geodiff/portfile.cmake | 37 + vcpkg/ports/geodiff/usage | 4 + vcpkg/ports/geodiff/vcpkg-cmake-wrapper.cmake | 64 + vcpkg/ports/geodiff/vcpkg.json | 19 + vcpkg/ports/json-c/pkgconfig.patch | 13 + vcpkg/ports/json-c/portfile.cmake | 24 + vcpkg/ports/json-c/vcpkg.json | 7 + vcpkg/ports/kdab-openssl/portfile.cmake | 30 + vcpkg/ports/kdab-openssl/vcpkg.json | 17 + .../ports/libiconv/0002-Config-for-MSVC.patch | 14 + vcpkg/ports/libiconv/0003-Add-export.patch | 12 + .../ports/libiconv/0004-ModuleFileName.patch | 13 + vcpkg/ports/libiconv/portfile.cmake | 53 + vcpkg/ports/libiconv/usage | 4 + .../ports/libiconv/vcpkg-cmake-wrapper.cmake | 21 + vcpkg/ports/libiconv/vcpkg.json | 7 + vcpkg/ports/libjpeg-turbo/CMakeLists.txt | 82 + vcpkg/ports/libjpeg-turbo/cpl_port.h | 13 + vcpkg/ports/libjpeg-turbo/libjpeg.pc.in | 8 + vcpkg/ports/libjpeg-turbo/portfile.cmake | 34 + .../libjpeg-turbo/vcpkg-cmake-wrapper.cmake | 19 + vcpkg/ports/libjpeg-turbo/vcpkg.json | 22 + vcpkg/ports/liblzma/add_support_ios.patch | 20 + vcpkg/ports/liblzma/build-tools.patch | 20 + vcpkg/ports/liblzma/fix_config_include.patch | 12 + vcpkg/ports/liblzma/portfile.cmake | 86 + vcpkg/ports/liblzma/usage | 9 + vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake | 64 + vcpkg/ports/liblzma/vcpkg.json | 23 + vcpkg/ports/liblzma/win_output_name.patch | 17 + vcpkg/ports/libpq/Makefile | 54 + .../ports/libpq/android/unversioned_so.patch | 16 + vcpkg/ports/libpq/build-msvc.cmake | 80 + vcpkg/ports/libpq/libpq.props.in | 25 + vcpkg/ports/libpq/portfile.cmake | 160 ++ vcpkg/ports/libpq/unix/fix-configure.patch | 79 + vcpkg/ports/libpq/unix/installdirs.patch | 48 + vcpkg/ports/libpq/unix/mingw-install.patch | 36 + vcpkg/ports/libpq/unix/no-server-tools.patch | 37 + vcpkg/ports/libpq/unix/python.patch | 35 + vcpkg/ports/libpq/unix/single-linkage.patch | 56 + vcpkg/ports/libpq/usage | 4 + vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake | 72 + vcpkg/ports/libpq/vcpkg-libs.props.in | 31 + vcpkg/ports/libpq/vcpkg.json | 195 ++ vcpkg/ports/libpq/windows/macro-def.patch | 18 + vcpkg/ports/libpq/windows/msbuild.patch | 398 ++++ vcpkg/ports/libpq/windows/spin_delay.patch | 24 + .../ports/libpq/windows/win_bison_flex.patch | 42 + vcpkg/ports/libtasn1/portfile.cmake | 31 + vcpkg/ports/libtasn1/vcpkg.json | 8 + .../qca-qt6/0001-fix-path-for-vcpkg.patch | 72 + .../ports/qca-qt6/0002-fix-build-error.patch | 26 + ...-NOMINMAX-for-botan-plugin-with-MSVC.patch | 28 + vcpkg/ports/qca-qt6/connect_fix.patch | 29 + vcpkg/ports/qca-qt6/ios.patch | 13 + vcpkg/ports/qca-qt6/mk-ca-bundle.pl | 554 +++++ vcpkg/ports/qca-qt6/portfile.cmake | 95 + vcpkg/ports/qca-qt6/vcpkg.json | 18 + vcpkg/ports/qgis-qt6/applocal.ps1 | 125 ++ vcpkg/ports/qgis-qt6/cmakelists.patch | 39 + vcpkg/ports/qgis-qt6/crssync.patch | 13 + vcpkg/ports/qgis-qt6/libxml2.patch | 11 + vcpkg/ports/qgis-qt6/portfile.cmake | 301 +++ vcpkg/ports/qgis-qt6/vcpkg.json | 40 + vcpkg/ports/qt6-poly2tri/portfile.cmake | 18 + vcpkg/ports/qt6-poly2tri/vcpkg.json | 18 + vcpkg/ports/qt6/copyright | 175 ++ vcpkg/ports/qt6/portfile.cmake | 3 + vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake | 196 ++ vcpkg/ports/qt6/vcpkg.json | 6 + vcpkg/ports/qtkeychain-qt6/portfile.cmake | 41 + vcpkg/ports/qtkeychain-qt6/vcpkg.json | 23 + vcpkg/ports/tiff/FindCMath.patch | 13 + vcpkg/ports/tiff/portfile.cmake | 95 + vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in | 81 + vcpkg/ports/tiff/vcpkg.json | 61 + vcpkg/triplets/arm-android.cmake | 20 + vcpkg/triplets/arm64-android.cmake | 18 + vcpkg/triplets/arm64-ios.cmake | 17 + vcpkg/triplets/arm64-osx.cmake | 16 + vcpkg/triplets/x64-linux.cmake | 8 + vcpkg/triplets/x64-osx.cmake | 13 + vcpkg/triplets/x64-windows.cmake | 6 + 141 files changed, 4972 insertions(+), 3101 deletions(-) create mode 100644 VCPKG_BASELINE delete mode 100644 cmake/FindAbsl.cmake delete mode 100644 cmake/FindBz2.cmake delete mode 100644 cmake/FindCharset.cmake delete mode 100644 cmake/FindCurl.cmake delete mode 100644 cmake/FindExiv2.cmake delete mode 100644 cmake/FindExpat.cmake delete mode 100644 cmake/FindFreexl.cmake delete mode 100644 cmake/FindGdal.cmake delete mode 100644 cmake/FindGeodiff.cmake delete mode 100644 cmake/FindGeos.cmake delete mode 100644 cmake/FindGeotiff.cmake delete mode 100644 cmake/FindGlib2.cmake delete mode 100644 cmake/FindIconv.cmake delete mode 100644 cmake/FindInih.cmake delete mode 100644 cmake/FindJpeg.cmake delete mode 100644 cmake/FindLzma.cmake delete mode 100644 cmake/FindMiniZip.cmake delete mode 100644 cmake/FindOpenSSL.cmake delete mode 100644 cmake/FindPq.cmake delete mode 100644 cmake/FindProj.cmake delete mode 100644 cmake/FindProtobuf.cmake delete mode 100644 cmake/FindQca.cmake delete mode 100644 cmake/FindQtkeychain.cmake delete mode 100644 cmake/FindSqlite3.cmake delete mode 100644 cmake/FindTiff.cmake delete mode 100644 cmake/FindUtf8.cmake delete mode 100644 cmake/FindWebP.cmake delete mode 100644 cmake/FindXml2.cmake delete mode 100644 cmake/FindZXing.cmake delete mode 100644 cmake/FindZip.cmake delete mode 100644 cmake/FindZstd.cmake create mode 100644 vcpkg.json create mode 100644 vcpkg/ports/gdal/cmake-project-include.cmake create mode 100644 vcpkg/ports/gdal/find-link-libraries.patch create mode 100644 vcpkg/ports/gdal/fix-gdal-target-interfaces.patch create mode 100644 vcpkg/ports/gdal/libkml.patch create mode 100644 vcpkg/ports/gdal/portfile.cmake create mode 100644 vcpkg/ports/gdal/target-is-valid.patch create mode 100644 vcpkg/ports/gdal/usage create mode 100644 vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/gdal/vcpkg.json create mode 100644 vcpkg/ports/geodiff/portfile.cmake create mode 100644 vcpkg/ports/geodiff/usage create mode 100644 vcpkg/ports/geodiff/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/geodiff/vcpkg.json create mode 100644 vcpkg/ports/json-c/pkgconfig.patch create mode 100644 vcpkg/ports/json-c/portfile.cmake create mode 100644 vcpkg/ports/json-c/vcpkg.json create mode 100644 vcpkg/ports/kdab-openssl/portfile.cmake create mode 100644 vcpkg/ports/kdab-openssl/vcpkg.json create mode 100644 vcpkg/ports/libiconv/0002-Config-for-MSVC.patch create mode 100644 vcpkg/ports/libiconv/0003-Add-export.patch create mode 100644 vcpkg/ports/libiconv/0004-ModuleFileName.patch create mode 100644 vcpkg/ports/libiconv/portfile.cmake create mode 100644 vcpkg/ports/libiconv/usage create mode 100644 vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/libiconv/vcpkg.json create mode 100644 vcpkg/ports/libjpeg-turbo/CMakeLists.txt create mode 100644 vcpkg/ports/libjpeg-turbo/cpl_port.h create mode 100644 vcpkg/ports/libjpeg-turbo/libjpeg.pc.in create mode 100644 vcpkg/ports/libjpeg-turbo/portfile.cmake create mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg.json create mode 100644 vcpkg/ports/liblzma/add_support_ios.patch create mode 100644 vcpkg/ports/liblzma/build-tools.patch create mode 100644 vcpkg/ports/liblzma/fix_config_include.patch create mode 100644 vcpkg/ports/liblzma/portfile.cmake create mode 100644 vcpkg/ports/liblzma/usage create mode 100644 vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/liblzma/vcpkg.json create mode 100644 vcpkg/ports/liblzma/win_output_name.patch create mode 100644 vcpkg/ports/libpq/Makefile create mode 100644 vcpkg/ports/libpq/android/unversioned_so.patch create mode 100644 vcpkg/ports/libpq/build-msvc.cmake create mode 100644 vcpkg/ports/libpq/libpq.props.in create mode 100644 vcpkg/ports/libpq/portfile.cmake create mode 100644 vcpkg/ports/libpq/unix/fix-configure.patch create mode 100644 vcpkg/ports/libpq/unix/installdirs.patch create mode 100644 vcpkg/ports/libpq/unix/mingw-install.patch create mode 100644 vcpkg/ports/libpq/unix/no-server-tools.patch create mode 100644 vcpkg/ports/libpq/unix/python.patch create mode 100644 vcpkg/ports/libpq/unix/single-linkage.patch create mode 100644 vcpkg/ports/libpq/usage create mode 100644 vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/libpq/vcpkg-libs.props.in create mode 100644 vcpkg/ports/libpq/vcpkg.json create mode 100644 vcpkg/ports/libpq/windows/macro-def.patch create mode 100644 vcpkg/ports/libpq/windows/msbuild.patch create mode 100644 vcpkg/ports/libpq/windows/spin_delay.patch create mode 100644 vcpkg/ports/libpq/windows/win_bison_flex.patch create mode 100644 vcpkg/ports/libtasn1/portfile.cmake create mode 100644 vcpkg/ports/libtasn1/vcpkg.json create mode 100644 vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch create mode 100644 vcpkg/ports/qca-qt6/0002-fix-build-error.patch create mode 100644 vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch create mode 100644 vcpkg/ports/qca-qt6/connect_fix.patch create mode 100644 vcpkg/ports/qca-qt6/ios.patch create mode 100644 vcpkg/ports/qca-qt6/mk-ca-bundle.pl create mode 100644 vcpkg/ports/qca-qt6/portfile.cmake create mode 100644 vcpkg/ports/qca-qt6/vcpkg.json create mode 100644 vcpkg/ports/qgis-qt6/applocal.ps1 create mode 100644 vcpkg/ports/qgis-qt6/cmakelists.patch create mode 100644 vcpkg/ports/qgis-qt6/crssync.patch create mode 100644 vcpkg/ports/qgis-qt6/libxml2.patch create mode 100644 vcpkg/ports/qgis-qt6/portfile.cmake create mode 100644 vcpkg/ports/qgis-qt6/vcpkg.json create mode 100644 vcpkg/ports/qt6-poly2tri/portfile.cmake create mode 100644 vcpkg/ports/qt6-poly2tri/vcpkg.json create mode 100644 vcpkg/ports/qt6/copyright create mode 100644 vcpkg/ports/qt6/portfile.cmake create mode 100644 vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/qt6/vcpkg.json create mode 100644 vcpkg/ports/qtkeychain-qt6/portfile.cmake create mode 100644 vcpkg/ports/qtkeychain-qt6/vcpkg.json create mode 100644 vcpkg/ports/tiff/FindCMath.patch create mode 100644 vcpkg/ports/tiff/portfile.cmake create mode 100644 vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in create mode 100644 vcpkg/ports/tiff/vcpkg.json create mode 100644 vcpkg/triplets/arm-android.cmake create mode 100644 vcpkg/triplets/arm64-android.cmake create mode 100644 vcpkg/triplets/arm64-ios.cmake create mode 100644 vcpkg/triplets/arm64-osx.cmake create mode 100644 vcpkg/triplets/x64-linux.cmake create mode 100644 vcpkg/triplets/x64-osx.cmake create mode 100644 vcpkg/triplets/x64-windows.cmake diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e31268c0f..a893099ce 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -2,6 +2,9 @@ name: Android on: push: paths: + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' - 'app/**' - 'core/**' - 'scripts/**' @@ -29,8 +32,6 @@ jobs: JDK_VERSION: 17 SDK_PLATFORM: android-34 SDK_BUILD_TOOLS: 34.0.0 - INPUT_SDK_VERSION_ARM: arm-android-20250326-241 - INPUT_SDK_VERSION_ARM64: arm64-android-20250326-241 CCACHE_DIR: /Users/runner/work/ccache GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} CACHE_VERSION: 0 @@ -173,38 +174,6 @@ jobs: run: | sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools - # Input SDK - - name: Cache Input-SDK - id: cache-input-sdk - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/input-sdk - key: ${{ runner.os }}-input-sdk-v0-${{ env.INPUT_SDK_VERSION_ARM }}-${{ env.CACHE_VERSION }} - - - name: Install Input-SDK - if: steps.cache-input-sdk.outputs.cache-hit != 'true' - run: | - # download - wget -O \ - input-sdk-arm-android.tar.gz \ - https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION_ARM }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION_ARM }}.tar.gz - - wget -O \ - input-sdk-arm64-android.tar.gz \ - https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION_ARM64 }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION_ARM64 }}.tar.gz - - # unpack - mkdir -p ${{ github.workspace }}/input-sdk/arm-android - cd ${{ github.workspace }}/input-sdk/arm-android - tar -xvzf ${{ github.workspace }}/input-sdk-arm-android.tar.gz - - mkdir -p ${{ github.workspace }}/input-sdk/arm64-android - cd ${{ github.workspace }}/input-sdk/arm64-android - tar -xvzf ${{ github.workspace }}/input-sdk-arm64-android.tar.gz - - # check - ls ${{ github.workspace }}/input-sdk - - name: Extract Mergin API_KEY env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} diff --git a/.github/workflows/gallery.yml b/.github/workflows/gallery.yml index 764b28075..87fa1b354 100644 --- a/.github/workflows/gallery.yml +++ b/.github/workflows/gallery.yml @@ -3,7 +3,6 @@ on: push: paths: - 'app/qml/**' - - 'app/qmlV2/**' - 'gallery/**' - '.github/workflows/gallery.yml' diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 90db9943d..dbcc68807 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -2,6 +2,9 @@ name: iOS Build on: push: paths: + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' - 'app/**' - 'core/**' - 'scripts/**' @@ -18,8 +21,7 @@ on: env: QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change XC_VERSION: ${{ '16.4' }} - IOS_CMAKE_TOOLCHAIN_VERSION: "4.4.0" - INPUT_SDK_VERSION: arm64-ios-20250326-198 + IOS_CMAKE_TOOLCHAIN_VERSION: "4.4.0" IOS_PROVISIONING_PROFILE_UUID: 59aaa8d7-516a-4592-8c58-d7d1c1f81610 KEYCHAIN: ${{ 'inputapp.keychain' }} CCACHE_DIR: /Users/runner/work/ccache @@ -128,24 +130,6 @@ jobs: gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ./.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision.gpg cp ./.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/${IOS_PROVISIONING_PROFILE_UUID}.mobileprovision - # Input SDK - - name: Cache Input-SDK - id: cache-input-sdk - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/input-sdk - key: ${{ runner.os }}-input-sdk-v0-${{ env.INPUT_SDK_VERSION }}-${{ env.CACHE_VERSION }} - - - name: Install Input-SDK - if: steps.cache-input-sdk.outputs.cache-hit != 'true' - run: | - wget -O \ - ${{ github.workspace }}/input-sdk.tar.gz \ - https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION }}.tar.gz - mkdir -p ${{ github.workspace }}/input-sdk/arm64-ios - cd ${{ github.workspace }}/input-sdk/arm64-ios - tar -xvzf ${{ github.workspace }}/input-sdk.tar.gz - # Qt - name: Cache Qt id: cache-qt @@ -201,7 +185,6 @@ jobs: -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DCMAKE_INSTALL_PREFIX:PATH=../install-Input \ - -DINPUT_SDK_PATH=${{ github.workspace }}/input-sdk/arm64-ios \ -G "Xcode" \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -S ${{ github.workspace }} \ diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 8defae042..19bbe491b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -2,6 +2,9 @@ name: linux Build on: push: paths: + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' - 'app/**' - 'core/**' - 'scripts/**' @@ -105,24 +108,6 @@ jobs: ccache --set-config=max_size=2.0G ccache -s - # Input SDK - - name: Cache Input-SDK - id: cache-input-sdk - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/input-sdk - key: ${{ runner.os }}-input-sdk-v0-${{ env.INPUT_SDK_VERSION }}-${{ env.CACHE_VERSION }} - - - name: Install Input-SDK - if: steps.cache-input-sdk.outputs.cache-hit != 'true' - run: | - wget -O \ - ${{ github.workspace }}/input-sdk.tar.gz \ - https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION }}.tar.gz - mkdir -p ${{ github.workspace }}/input-sdk/x64-linux - cd ${{ github.workspace }}/input-sdk/x64-linux - tar -xvzf ${{ github.workspace }}/input-sdk.tar.gz - # Build Input App - name: Calculate build number run: | @@ -143,7 +128,6 @@ jobs: -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/gcc_64 \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DINPUT_SDK_PATH=${{ github.workspace }}/input-sdk/x64-linux \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DCOVERAGE=TRUE \ diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 3056db56b..f718ce9b6 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -2,6 +2,9 @@ name: macOS Build on: push: paths: + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' - 'app/**' - 'core/**' - 'scripts/**' @@ -17,7 +20,6 @@ on: env: QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change - INPUT_SDK_VERSION: x64-osx-20250326-218 CCACHE_DIR: /Users/runner/work/ccache CACHE_VERSION: 0 CMAKE_VERSION: '3.29.0' @@ -106,24 +108,6 @@ jobs: cache: true cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-mac - # Input SDK - - name: Cache Input-SDK - id: cache-input-sdk - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/input-sdk - key: ${{ runner.os }}-input-sdk-v0-${{ env.INPUT_SDK_VERSION }}-${{ env.CACHE_VERSION }} - - - name: Install Input-SDK - if: steps.cache-input-sdk.outputs.cache-hit != 'true' - run: | - wget -O \ - ${{ github.workspace }}/input-sdk.tar.gz \ - https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION }}.tar.gz - mkdir -p ${{ github.workspace }}/input-sdk/x64-osx - cd ${{ github.workspace }}/input-sdk/x64-osx - tar -xvzf ${{ github.workspace }}/input-sdk.tar.gz - # Build Input App - name: Calculate build number run: | diff --git a/.github/workflows/macos_arm64.yml b/.github/workflows/macos_arm64.yml index b5f2cad28..f967d4bc3 100644 --- a/.github/workflows/macos_arm64.yml +++ b/.github/workflows/macos_arm64.yml @@ -2,6 +2,9 @@ name: macOS arm64 Build on: push: paths: + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' - 'app/**' - 'core/**' - 'scripts/**' @@ -17,7 +20,6 @@ on: env: QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change - INPUT_SDK_VERSION: arm64-osx-20250326-17 CCACHE_DIR: /Users/runner/work/ccache CACHE_VERSION: 0 CMAKE_VERSION: '3.29.0' @@ -106,24 +108,6 @@ jobs: cache: true cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-mac-arm64 - # Input SDK - - name: Cache Input-SDK - id: cache-input-sdk - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/input-sdk - key: ${{ runner.os }}-input-sdk-v0-${{ env.INPUT_SDK_VERSION }}-${{ env.CACHE_VERSION }} - - - name: Install Input-SDK - if: steps.cache-input-sdk.outputs.cache-hit != 'true' - run: | - wget -O \ - ${{ github.workspace }}/input-sdk.tar.gz \ - https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION }}.tar.gz - mkdir -p ${{ github.workspace }}/input-sdk/arm64-osx - cd ${{ github.workspace }}/input-sdk/arm64-osx - tar -xvzf ${{ github.workspace }}/input-sdk.tar.gz - # Build Input App - name: Calculate build number run: | @@ -145,7 +129,6 @@ jobs: -DUSE_SERVER_API_KEY=TRUE \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DINPUT_SDK_PATH=${{ github.workspace }}/input-sdk/arm64-osx \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -GNinja \ diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 3f63f7733..bf7c856a7 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -3,6 +3,9 @@ name: Build win64 on: push: paths: + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' - 'app/**' - 'core/**' - 'scripts/**' @@ -105,28 +108,6 @@ jobs: cache: true cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-win - # Input SDK - - name: Cache Input-SDK - id: cache-input-sdk - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/input-sdk - key: ${{ runner.os }}-input-sdk-v1-${{ env.INPUT_SDK_VERSION }}-${{ env.CACHE_VERSION }} - - - name: Install Input-SDK - shell: bash - if: steps.cache-input-sdk.outputs.cache-hit != 'true' - run: | - URL="https://github.com/MerginMaps/mobile-sdk/releases/download/${{ env.INPUT_SDK_VERSION }}/mergin-maps-input-sdk-qt-${{ env.QT_VERSION }}-${{ env.INPUT_SDK_VERSION }}.zip" - echo "downloading: $URL" - curl -fsSL --connect-timeout 60 -o \ - input-sdk.tar.gz \ - ${URL} - - mkdir -p input-sdk/x64-windows - cd input-sdk/x64-windows - unzip ${{ steps.vars.outputs.WORKSPACE_DIR }}/input-sdk.tar.gz -d . - # Build Input App - name: Calculate build number shell: bash diff --git a/CMakeLists.txt b/CMakeLists.txt index 6145e35be..7d7f6f3a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,8 @@ if (APPLE AND NOT IOS AND NOT DEFINED ENV{INPUT_SDK_ANDROID_BASE} ) - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15.0") +# TODO change for arm64/osx + set(CMAKE_OSX_DEPLOYMENT_TARGET "15.4") endif () # ######################################################################################## @@ -60,7 +61,7 @@ mm_detect_platform() project( Input VERSION ${MM_VERSION_MAJOR}.${MM_VERSION_MINOR}.${MM_VERSION_PATCH} - DESCRIPTION "The easiest way to take your QGIS projects into the field" + DESCRIPTION "Collect. Share. Publish." HOMEPAGE_URL "https://merginmaps.com" LANGUAGES CXX ) @@ -81,21 +82,6 @@ else () set(HAVE_BLUETOOTH_DEFAULT TRUE) endif () -# on android in multi-ABI build, command line variables are NOT passed to -# ExternalProject_Add called by QT. Therefore we need to pass the variables through ENV -if (ANDROID) - if (NOT DEFINED ENV{INPUT_SDK_ANDROID_BASE}) - message( - FATAL_ERROR - "On Android, you need to define INPUT_SDK_ANDROID_BASE as environment variable. Clean build directory and run cmake again!" - ) - else () - set(INPUT_SDK_PATH_DEFAULT $ENV{INPUT_SDK_ANDROID_BASE}) - endif () -else () - set(INPUT_SDK_PATH_DEFAULT "") -endif () - if (DEFINED ENV{INPUT_VERSION_CODE}) set(INPUT_VERSION_CODE_DEFAULT "$ENV{INPUT_VERSION_CODE}") else () @@ -128,12 +114,7 @@ set(IOS_USE_PRODUCTION_SIGNING BOOL "Whether to sign the ios build with production certificate. Used in CI, leave false when building locally to automatically manage signing" ) -set(INPUT_SDK_PATH - ${INPUT_SDK_PATH_DEFAULT} - CACHE - PATH - "Path to the Mergin Maps Mobile-SDK on host machine; on android define ENV variable instead and without the ABI suffix (armeabi-v7a, arm64-v8a)" -) + set(ENABLE_TESTS ${ENABLE_TESTS_DEFAULT} CACHE BOOL "Whether to build tests" @@ -167,27 +148,6 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## -if (ANDROID) - set(INPUT_SDK_PATH_ANDROID_ABI_armeabi-v7a ${INPUT_SDK_PATH}/arm-android) - - if (NOT EXISTS ${INPUT_SDK_PATH_ANDROID_ABI_armeabi-v7a}) - message(WARNING "INPUT_SDK_PATH arm-android directory does not exist!") - endif () - - set(INPUT_SDK_PATH_ANDROID_ABI_arm64-v8a ${INPUT_SDK_PATH}/arm64-android) - if (NOT EXISTS ${INPUT_SDK_PATH_ANDROID_ABI_arm64-v8a}) - message(WARNING "INPUT_SDK_PATH arm64-android directory does not exist!") - endif () - - set(INPUT_SDK_PATH_MULTI ${INPUT_SDK_PATH_ANDROID_ABI_${ANDROID_ABI}}) - # allow libraries outside of SDK/NDK directory - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH) -else () - set(INPUT_SDK_PATH_MULTI ${INPUT_SDK_PATH}) -endif () - find_package( Qt6 ${QT6_VERSION} COMPONENTS Quick @@ -222,42 +182,43 @@ if (NOT IOS) endif () if (NOT LNX) - find_package(Charset REQUIRED) + # find_package(Charset CONFIG REQUIRED) find_package(Iconv REQUIRED) endif () find_package(ZLIB REQUIRED) -find_package(Bz2 REQUIRED) -find_package(Curl REQUIRED) -find_package(Inih REQUIRED) -find_package(Exiv2 REQUIRED) -find_package(Expat REQUIRED) -find_package(Freexl REQUIRED) -find_package(Gdal REQUIRED) -find_package(Geodiff REQUIRED) -find_package(Geos REQUIRED) -find_package(Jpeg REQUIRED) -find_package(Pq REQUIRED) -find_package(Proj REQUIRED) +# find_package(Bz2 CONFIG REQUIRED) +# find_package(bzip2 CONFIG REQUIRED) +find_package(CURL CONFIG REQUIRED) +# find_package(Inih CONFIG REQUIRED) +find_package(exiv2 CONFIG REQUIRED) +find_package(expat CONFIG REQUIRED) +# find_package(freexl CONFIG REQUIRED) +find_package(GDAL CONFIG REQUIRED) +find_package(Geodiff CONFIG REQUIRED) +find_package(GEOS CONFIG REQUIRED) +find_package(Jpeg CONFIG REQUIRED) +find_package(PostgreSQL REQUIRED) +find_package(PROJ CONFIG REQUIRED) find_package(Protobuf REQUIRED) find_package(QGIS REQUIRED) -find_package(Qca REQUIRED) -find_package(Qtkeychain REQUIRED) +find_package(Qca CONFIG REQUIRED) +find_package(Qt6Keychain CONFIG REQUIRED) find_package(Spatialindex REQUIRED) find_package(Spatialite REQUIRED) -find_package(Sqlite3 REQUIRED) -find_package(Tiff REQUIRED) -find_package(WebP REQUIRED) -find_package(Xml2 REQUIRED) -find_package(ZXing REQUIRED) -find_package(Zip REQUIRED) -find_package(OpenSSL REQUIRED) -find_package(Geotiff REQUIRED) -find_package(Lzma REQUIRED) -find_package(Zstd REQUIRED) -find_package(MiniZip REQUIRED) -find_package(Utf8 REQUIRED) -find_package(Absl REQUIRED QUIET) +find_package(unofficial-sqlite3 CONFIG REQUIRED) +# find_package(Tiff CONFIG REQUIRED) +find_package(WebP CONFIG REQUIRED) +# find_package(Xml2 CONFIG REQUIRED) +find_package(ZXing CONFIG REQUIRED) +find_package(libzip CONFIG REQUIRED) +find_package(OpenSSL CONFIG REQUIRED) +find_package(GeoTIFF CONFIG REQUIRED) +# find_package(Lzma CONFIG REQUIRED) +find_package(Zstd CONFIG REQUIRED) +find_package(unofficial-minizip CONFIG REQUIRED) +# find_package(Utf8 CONFIG REQUIRED) +find_package(Absl CONFIG REQUIRED) if (IOS OR MACOS) find_package(AppleFrameworks REQUIRED) diff --git a/VCPKG_BASELINE b/VCPKG_BASELINE new file mode 100644 index 000000000..7312e32e2 --- /dev/null +++ b/VCPKG_BASELINE @@ -0,0 +1 @@ +d5ec528843d29e3a52d745a64b469f810b2cedbf \ No newline at end of file diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 4d63c7b2d..252cb8471 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -478,7 +478,8 @@ target_link_libraries( Input PUBLIC mm_core Geodiff::Geodiff - Proj::Proj + PROJ::proj + ZXing::Core ZXing::ZXing ) @@ -509,55 +510,53 @@ endif () target_link_libraries( Input - PUBLIC Qtkeychain::Qtkeychain - Qca::Qca - Gdal::Gdal - Pq::Pq - Pq::Pgcommon - Pq::Pgport + PUBLIC Qt6Keychain::Qt6Keychain + qca + GDAL::GDAL + PostgreSQL::PostgreSQL Spatialite::Spatialite ) -if (NOT LNX) - target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) -endif () +#if (NOT LNX) +# target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) +#endif () -target_link_libraries(Input PUBLIC Xml2::Xml2) +# target_link_libraries(Input PUBLIC Xml2::Xml2) target_link_libraries( Input PUBLIC Spatialindex::Spatialindex - Geos::Geos-c - Geos::Geos - Protobuf::Protobuf-lite - Utf8::utf8_range - Utf8::utf8_validity - Expat::Expat - Freexl::Freexl - Exiv2::Exiv2 - Inih::Inireader - Inih::Inih - Tiff::Tiff - Sqlite3::Sqlite3 - MiniZip::MiniZip + GEOS::geos_c + # Geos::Geos + protobuf::libprotobuf-lite + # Utf8::utf8_range + # Utf8::utf8_validity + # Expat::Expat + # Freexl::Freexl + Exiv2::exiv2lib + # Inih::Inireader + # Inih::Inih + # Tiff::Tiff + unofficial::sqlite3::sqlite3 + unofficial::minizip::minizip ZLIB::ZLIB - Zip::Zip - WebP::WebP - WebP::Sharpyuv - Curl::Curl - Jpeg::Jpeg - Geotiff::Geotiff - Lzma::Lzma - Zstd::Zstd - Bz2::Bz2 - Absl::Absl + libzip::zip + # WebP::WebP + # WebP::Sharpyuv + # Curl::Curl + # Jpeg::Jpeg + # Geotiff::Geotiff + # Lzma::Lzma + # Zstd::Zstd + # Bz2::Bz2 + # Absl::Absl ) if (IOS OR MACOS) - target_link_libraries(Input PUBLIC Tasn1::Tasn1) + target_link_libraries(Input PUBLIC Tasn1::Tasn1) endif () -target_link_libraries(Input PUBLIC OpenSSL::OpenSSL OpenSSL::Crypto) +# target_link_libraries(Input PUBLIC OpenSSL::OpenSSL OpenSSL::Crypto) if (ANDROID) set_property( TARGET Input PROPERTY QT_ANDROID_EXTRA_LIBS ${KDAB_OpenSSL_CRYPTO_LIBRARY} diff --git a/cmake/FindAbsl.cmake b/cmake/FindAbsl.cmake deleted file mode 100644 index e3925d5d7..000000000 --- a/cmake/FindAbsl.cmake +++ /dev/null @@ -1,1914 +0,0 @@ -# GPLv2 Licence - -set(absl_libs - abseil_dll - absl_vlog_is_on - algorithm - algorithm_container - any - any_invocable - atomic_hook - bad_any_cast - bad_any_cast_impl - bad_optional_access - bad_variant_access - bind_front - bits - bounded_utf8_length_sequence - btree - charset - check - city - civil_time - cleanup - cleanup_internal - common_policy_traits - compare - compressed_tuple - config - container_common - container_memory - cord - cord_internal - cordz_functions - cordz_handle - cordz_info - cordz_sample_token - cordz_statistics - cordz_update_scope - cordz_update_tracker - core_headers - crc32c - crc_cord_state - crc_cpu_detect - crc_internal - debugging - debugging_internal - demangle_internal - demangle_rust - decode_rust_punycode - die_if_null - dynamic_annotations - endian - errno_saver - examine_stack - exponential_biased - failure_signal_handler - fast_type_id - fixed_array - flags - flags_commandlineflag - flags_commandlineflag_internal - flags_config - flags_config;flags_internal - flags_internal - flags_marshalling - flags_marshalling;flags_parse - flags_parse - flags_path_util - flags_private_handle_accessor - flags_private_handle_accessor;flags_program_name - flags_program_name - flags_reflection - flags_reflection;flags_usage - flags_usage - flags_usage_internal - flat_hash_map - flat_hash_set - function_ref - graphcycles_internal - has_ostream_operator - hash - hash_container_defaults - hash_function_defaults - hash_policy_traits - hashtable_debug - hashtable_debug_hooks - hashtablez_sampler - if_constexpr - inlined_vector - inlined_vector_internal - int128 - kernel_timeout_internal - layout - leak_check - log - log_entry - log_flags - log_flags;log_internal_structured_proto - log_globals - log_initialize - log_internal_append_truncated - log_internal_check_impl - log_internal_check_op - log_internal_conditions - log_internal_config - log_internal_flags - log_internal_fnmatch - log_internal_format - log_internal_globals - log_internal_log_impl - log_internal_log_sink_set - log_internal_message - log_internal_nullguard - log_internal_nullstream - log_internal_proto - log_internal_strip - log_internal_structured - log_internal_structured_proto - log_internal_voidify - log_severity - log_sink - log_sink_registry - log_streamer - log_structured - low_level_hash - malloc_internal - memory - meta - no_destructor - node_hash_map - node_hash_set - node_slot_policy - non_temporal_arm_intrinsics - non_temporal_memcpy - nullability - numeric - numeric_representation - optional - overload - periodic_sampler - poison - prefetch - pretty_function - random_bit_gen_ref - random_distributions - random_internal_distribution_caller - random_internal_distribution_test_util - random_internal_fast_uniform_bits - random_internal_fastmath - random_internal_generate_real - random_internal_iostream_state_saver - random_internal_mock_helpers - random_internal_nonsecure_base - random_internal_pcg_engine - random_internal_platform - random_internal_pool_urbg - random_internal_randen - random_internal_randen_engine - random_internal_randen_hwaes - random_internal_randen_hwaes_impl - random_internal_randen_slow - random_internal_salted_seed_seq - random_internal_seed_material - random_internal_traits - random_internal_uniform_helper - random_internal_wide_multiply - random_random - random_seed_gen_exception - random_seed_sequences - raw_hash_map - raw_hash_set - raw_logging_internal - sample_recorder - scoped_set_env - span - spinlock_wait - stacktrace - status - statusor - str_format - str_format_internal - strerror - string_view - strings - strings_internal - symbolize - synchronization - throw_delegate - time - time_zone - tracing_internal - type_traits - utf8_for_code_point - utility - variant - vlog_config_internal - vlog_is_on - base - base_internal -) - -foreach (absl_lib IN ITEMS ${absl_libs}) - - find_library( - absl_${absl_lib}_LIBRARY - NAMES absl_${absl_lib} libabsl_${absl_lib} ${absl_lib} - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH - ) - if (NOT TARGET "Absl::${absl_lib}") - if (EXISTS ${absl_${absl_lib}_LIBRARY}) - add_library(Absl::${absl_lib} UNKNOWN IMPORTED) - set_target_properties( - Absl::${absl_lib} PROPERTIES IMPORTED_LOCATION "${absl_${absl_lib}_LIBRARY}" - ) - set(ABSL_TARGETS "${ABSL_TARGETS};Absl::${absl_lib}") - else () - add_library(Absl::${absl_lib} INTERFACE IMPORTED) - endif () - endif () -endforeach () - -if (TARGET Absl::atomic_hook) - - set_target_properties( - Absl::atomic_hook PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::errno_saver - -if (TARGET Absl::errno_saver) - - set_target_properties( - Absl::errno_saver PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::log_severity -if (TARGET Absl::log_severity) - - set_target_properties( - Absl::log_severity PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::no_destructor -if (TARGET Absl::no_destructor) - - set_target_properties( - Absl::no_destructor PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::nullability" - ) - -endif () # imported target Absl::nullability -if (TARGET Absl::nullability) - - set_target_properties( - Absl::nullability PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::type_traits" - ) - -endif () # imported target Absl::raw_logging_internal -if (TARGET Absl::raw_logging_internal) - - set_target_properties( - Absl::raw_logging_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::atomic_hook;Absl::config;Absl::core_headers;Absl::errno_saver;Absl::log_severity" - ) - -endif () # imported target Absl::spinlock_wait -if (TARGET Absl::spinlock_wait) - - set_target_properties( - Absl::spinlock_wait - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::core_headers;Absl::errno_saver" - ) - -endif () # imported target Absl::config - -if (TARGET Absl::dynamic_annotations) - - set_target_properties( - Absl::dynamic_annotations PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::core_headers -if (TARGET Absl::core_headers) - - set_target_properties( - Absl::core_headers PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::malloc_internal -if (TARGET Absl::malloc_internal) - - set_target_properties( - Absl::malloc_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::base_internal;Absl::config;Absl::core_headers;Absl::dynamic_annotations;Absl::raw_logging_internal;Threads::Threads" - ) - -endif () # imported target Absl::base_internal -if (TARGET Absl::base_internal) - - set_target_properties( - Absl::base_internal PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::type_traits" - ) - -endif () # imported target Absl::base -if (TARGET Absl::base) - - set_target_properties( - Absl::base - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::atomic_hook;Absl::base_internal;Absl::config;Absl::core_headers;Absl::dynamic_annotations;Absl::log_severity;Absl::nullability;Absl::raw_logging_internal;Absl::spinlock_wait;Absl::type_traits;Threads::Threads;\$:-lrt>>;\$:-ladvapi32>>" - ) - -endif () # imported target Absl::throw_delegate -if (TARGET Absl::throw_delegate) - - set_target_properties( - Absl::throw_delegate PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::pretty_function - -if (TARGET Absl::endian) - - set_target_properties( - Absl::endian - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::nullability" - ) - -endif () # imported target Absl::scoped_set_env -if (TARGET Absl::scoped_set_env) - - set_target_properties( - Absl::scoped_set_env PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::strerror -if (TARGET Absl::strerror) - - set_target_properties( - Absl::strerror PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::errno_saver" - ) - -endif () # imported target Absl::fast_type_id -if (TARGET Absl::fast_type_id) - - set_target_properties( - Absl::fast_type_id PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::prefetch -if (TARGET Absl::prefetch) - - set_target_properties( - Absl::prefetch PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::poison -if (TARGET Absl::poison) - - set_target_properties( - Absl::poison PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::malloc_internal" - ) - -endif () # imported target Absl::tracing_internal -if (TARGET Absl::tracing_internal) - - set_target_properties( - Absl::tracing_internal PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::base" - ) - -endif () # imported target Absl::algorithm -if (TARGET Absl::algorithm) - - set_target_properties( - Absl::algorithm PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::algorithm_container -if (TARGET Absl::algorithm_container) - - set_target_properties( - Absl::algorithm_container - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::algorithm;Absl::config;Absl::core_headers;Absl::meta;Absl::nullability" - ) - -endif () # imported target Absl::cleanup_internal -if (TARGET Absl::cleanup_internal) - - set_target_properties( - Absl::cleanup_internal - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::core_headers;Absl::utility" - ) - -endif () # imported target Absl::cleanup -if (TARGET Absl::cleanup) - - set_target_properties( - Absl::cleanup PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::cleanup_internal;Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::btree -if (TARGET Absl::btree) - - set_target_properties( - Absl::btree - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::common_policy_traits;Absl::compare;Absl::compressed_tuple;Absl::config;Absl::container_common;Absl::container_memory;Absl::cord;Absl::core_headers;Absl::layout;Absl::memory;Absl::raw_logging_internal;Absl::strings;Absl::throw_delegate;Absl::type_traits" - ) - -endif () # imported target Absl::compressed_tuple -if (TARGET Absl::compressed_tuple) - - set_target_properties( - Absl::compressed_tuple PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::utility" - ) - -endif () # imported target Absl::fixed_array -if (TARGET Absl::fixed_array) - - set_target_properties( - Absl::fixed_array - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::compressed_tuple;Absl::algorithm;Absl::config;Absl::core_headers;Absl::dynamic_annotations;Absl::throw_delegate;Absl::memory" - ) - -endif () # imported target Absl::inlined_vector_internal -if (TARGET Absl::inlined_vector_internal) - - set_target_properties( - Absl::inlined_vector_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::compressed_tuple;Absl::config;Absl::core_headers;Absl::memory;Absl::span;Absl::type_traits" - ) - -endif () # imported target Absl::inlined_vector -if (TARGET Absl::inlined_vector) - - set_target_properties( - Absl::inlined_vector - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::algorithm;Absl::core_headers;Absl::inlined_vector_internal;Absl::throw_delegate;Absl::memory;Absl::type_traits" - ) - -endif () # imported target Absl::flat_hash_map -if (TARGET Absl::flat_hash_map) - - set_target_properties( - Absl::flat_hash_map - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::container_memory;Absl::core_headers;Absl::hash_container_defaults;Absl::raw_hash_map;Absl::algorithm_container;Absl::type_traits" - ) - -endif () # imported target Absl::flat_hash_set -if (TARGET Absl::flat_hash_set) - - set_target_properties( - Absl::flat_hash_set - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::container_memory;Absl::hash_container_defaults;Absl::raw_hash_set;Absl::algorithm_container;Absl::core_headers;Absl::memory;Absl::type_traits" - ) - -endif () # imported target Absl::node_hash_map -if (TARGET Absl::node_hash_map) - - set_target_properties( - Absl::node_hash_map - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::container_memory;Absl::core_headers;Absl::hash_container_defaults;Absl::node_slot_policy;Absl::raw_hash_map;Absl::algorithm_container;Absl::memory;Absl::type_traits" - ) - -endif () # imported target Absl::node_hash_set -if (TARGET Absl::node_hash_set) - - set_target_properties( - Absl::node_hash_set - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::container_memory;Absl::core_headers;Absl::hash_container_defaults;Absl::node_slot_policy;Absl::raw_hash_set;Absl::algorithm_container;Absl::memory;Absl::type_traits" - ) - -endif () # imported target Absl::hash_container_defaults -if (TARGET Absl::hash_container_defaults) - - set_target_properties( - Absl::hash_container_defaults PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::hash_function_defaults" - ) - -endif () # imported target Absl::container_memory -if (TARGET Absl::container_memory) - - set_target_properties( - Absl::container_memory - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::memory;Absl::type_traits;Absl::utility" - ) - -endif () # imported target Absl::hash_function_defaults -if (TARGET Absl::hash_function_defaults) - - set_target_properties( - Absl::hash_function_defaults - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::container_common;Absl::cord;Absl::hash;Absl::strings;Absl::type_traits" - ) - -endif () # imported target Absl::hash_policy_traits -if (TARGET Absl::hash_policy_traits) - - set_target_properties( - Absl::hash_policy_traits PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::common_policy_traits;Absl::meta" - ) - -endif () # imported target Absl::common_policy_traits -if (TARGET Absl::common_policy_traits) - - set_target_properties( - Absl::common_policy_traits PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::meta" - ) - -endif () # imported target Absl::hashtablez_sampler -if (TARGET Absl::hashtablez_sampler) - - set_target_properties( - Absl::hashtablez_sampler - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::exponential_biased;Absl::no_destructor;Absl::raw_logging_internal;Absl::sample_recorder;Absl::synchronization;Absl::time" - ) - -endif () # imported target Absl::hashtable_debug -if (TARGET Absl::hashtable_debug) - - set_target_properties( - Absl::hashtable_debug PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::hashtable_debug_hooks" - ) - -endif () # imported target Absl::hashtable_debug_hooks -if (TARGET Absl::hashtable_debug_hooks) - - set_target_properties( - Absl::hashtable_debug_hooks PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::node_slot_policy -if (TARGET Absl::node_slot_policy) - - set_target_properties( - Absl::node_slot_policy PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::raw_hash_map -if (TARGET Absl::raw_hash_map) - - set_target_properties( - Absl::raw_hash_map - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::container_memory;Absl::core_headers;Absl::raw_hash_set;Absl::throw_delegate" - ) - -endif () # imported target Absl::container_common -if (TARGET Absl::container_common) - - set_target_properties( - Absl::container_common PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::type_traits" - ) - -endif () # imported target Absl::raw_hash_set -if (TARGET Absl::raw_hash_set) - - set_target_properties( - Absl::raw_hash_set - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bits;Absl::common_policy_traits;Absl::compressed_tuple;Absl::config;Absl::container_common;Absl::container_memory;Absl::core_headers;Absl::dynamic_annotations;Absl::endian;Absl::hash;Absl::hash_function_defaults;Absl::hash_policy_traits;Absl::hashtable_debug_hooks;Absl::hashtablez_sampler;Absl::memory;Absl::meta;Absl::optional;Absl::prefetch;Absl::raw_logging_internal;Absl::utility" - ) - -endif () # imported target Absl::layout -if (TARGET Absl::layout) - - set_target_properties( - Absl::layout - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::debugging_internal;Absl::meta;Absl::strings;Absl::span;Absl::utility" - ) - -endif () # imported target Absl::crc_cpu_detect -if (TARGET Absl::crc_cpu_detect) - - set_target_properties( - Absl::crc_cpu_detect PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::optional" - ) - -endif () # imported target Absl::crc_internal -if (TARGET Absl::crc_internal) - - set_target_properties( - Absl::crc_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::crc_cpu_detect;Absl::config;Absl::core_headers;Absl::endian;Absl::prefetch;Absl::raw_logging_internal;Absl::memory;Absl::bits" - ) - -endif () # imported target Absl::crc32c -if (TARGET Absl::crc32c) - - set_target_properties( - Absl::crc32c - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::crc_cpu_detect;Absl::crc_internal;Absl::non_temporal_memcpy;Absl::config;Absl::core_headers;Absl::endian;Absl::prefetch;Absl::str_format;Absl::strings" - ) - -endif () # imported target Absl::non_temporal_arm_intrinsics -if (TARGET Absl::non_temporal_arm_intrinsics) - - set_target_properties( - Absl::non_temporal_arm_intrinsics PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::non_temporal_memcpy -if (TARGET Absl::non_temporal_memcpy) - - set_target_properties( - Absl::non_temporal_memcpy - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::non_temporal_arm_intrinsics;Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::crc_cord_state -if (TARGET Absl::crc_cord_state) - - set_target_properties( - Absl::crc_cord_state - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::crc32c;Absl::config;Absl::strings;Absl::no_destructor" - ) - -endif () # imported target Absl::stacktrace -if (TARGET Absl::stacktrace) - - set_target_properties( - Absl::stacktrace - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::debugging_internal;Absl::config;Absl::core_headers;Absl::dynamic_annotations;Absl::raw_logging_internal;\$:EXECINFO_LIBRARY-NOTFOUND>>" - ) - -endif () # imported target Absl::symbolize -if (TARGET Absl::symbolize) - - set_target_properties( - Absl::symbolize - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::debugging_internal;Absl::demangle_internal;Absl::base;Absl::config;Absl::core_headers;Absl::dynamic_annotations;Absl::malloc_internal;Absl::raw_logging_internal;Absl::strings;\$:-ldbghelp>>" - ) - -endif () # imported target Absl::examine_stack -if (TARGET Absl::examine_stack) - - set_target_properties( - Absl::examine_stack - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::stacktrace;Absl::symbolize;Absl::config;Absl::core_headers;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::failure_signal_handler -if (TARGET Absl::failure_signal_handler) - - set_target_properties( - Absl::failure_signal_handler - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::examine_stack;Absl::stacktrace;Absl::base;Absl::config;Absl::core_headers;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::debugging_internal -if (TARGET Absl::debugging_internal) - - set_target_properties( - Absl::debugging_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::core_headers;Absl::config;Absl::dynamic_annotations;Absl::errno_saver;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::demangle_internal -if (TARGET Absl::demangle_internal) - - set_target_properties( - Absl::demangle_internal PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::demangle_rust" - ) - -endif () # imported target Absl::bounded_utf8_length_sequence -if (TARGET Absl::bounded_utf8_length_sequence) - - set_target_properties( - Absl::bounded_utf8_length_sequence PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::bits;Absl::config" - ) - -endif () # imported target Absl::decode_rust_punycode -if (TARGET Absl::decode_rust_punycode) - - set_target_properties( - Absl::decode_rust_punycode - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bounded_utf8_length_sequence;Absl::config;Absl::nullability;Absl::utf8_for_code_point" - ) - -endif () # imported target Absl::demangle_rust -if (TARGET Absl::demangle_rust) - - set_target_properties( - Absl::demangle_rust - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::decode_rust_punycode" - ) - -endif () # imported target Absl::utf8_for_code_point -if (TARGET Absl::utf8_for_code_point) - - set_target_properties( - Absl::utf8_for_code_point PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::leak_check -if (TARGET Absl::leak_check) - - set_target_properties( - Absl::leak_check PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::debugging -if (TARGET Absl::debugging) - - set_target_properties( - Absl::debugging PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::stacktrace;Absl::leak_check" - ) - -endif () # imported target Absl::flags_path_util -if (TARGET Absl::flags_path_util) - - set_target_properties( - Absl::flags_path_util PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::strings" - ) - -endif () # imported target Absl::flags_program_name -if (TARGET Absl::flags_program_name) - - set_target_properties( - Absl::flags_program_name - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::no_destructor;Absl::flags_path_util;Absl::strings;Absl::synchronization" - ) - -endif () # imported target Absl::flags_config -if (TARGET Absl::flags_config) - - set_target_properties( - Absl::flags_config - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::flags_path_util;Absl::flags_program_name;Absl::core_headers;Absl::no_destructor;Absl::strings;Absl::synchronization" - ) - -endif () # imported target Absl::flags_marshalling -if (TARGET Absl::flags_marshalling) - - set_target_properties( - Absl::flags_marshalling - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_severity;Absl::int128;Absl::optional;Absl::strings;Absl::str_format" - ) - -endif () # imported target Absl::flags_commandlineflag_internal -if (TARGET Absl::flags_commandlineflag_internal) - - set_target_properties( - Absl::flags_commandlineflag_internal - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::dynamic_annotations;Absl::fast_type_id" - ) - -endif () # imported target Absl::flags_commandlineflag -if (TARGET Absl::flags_commandlineflag) - - set_target_properties( - Absl::flags_commandlineflag - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::fast_type_id;Absl::flags_commandlineflag_internal;Absl::optional;Absl::strings" - ) - -endif () # imported target Absl::flags_private_handle_accessor -if (TARGET Absl::flags_private_handle_accessor) - - set_target_properties( - Absl::flags_private_handle_accessor - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::flags_commandlineflag;Absl::flags_commandlineflag_internal;Absl::strings" - ) - -endif () # imported target Absl::flags_reflection -if (TARGET Absl::flags_reflection) - - set_target_properties( - Absl::flags_reflection - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::flags_commandlineflag;Absl::flags_private_handle_accessor;Absl::flags_config;Absl::strings;Absl::synchronization;Absl::flat_hash_map;Absl::no_destructor" - ) - -endif () # imported target Absl::flags_internal -if (TARGET Absl::flags_internal) - - set_target_properties( - Absl::flags_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::flags_commandlineflag;Absl::flags_commandlineflag_internal;Absl::flags_config;Absl::flags_marshalling;Absl::no_destructor;Absl::synchronization;Absl::meta;Absl::utility" - ) - -endif () # imported target Absl::flags -if (TARGET Absl::flags) - - set_target_properties( - Absl::flags - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::flags_commandlineflag;Absl::flags_config;Absl::flags_internal;Absl::flags_reflection;Absl::core_headers;Absl::strings" - ) - -endif () # imported target Absl::flags_usage_internal -if (TARGET Absl::flags_usage_internal) - - set_target_properties( - Absl::flags_usage_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::flags_config;Absl::flags;Absl::flags_commandlineflag;Absl::flags_internal;Absl::flags_path_util;Absl::flags_private_handle_accessor;Absl::flags_program_name;Absl::flags_reflection;Absl::strings;Absl::synchronization" - ) - -endif () # imported target Absl::flags_usage -if (TARGET Absl::flags_usage) - - set_target_properties( - Absl::flags_usage - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::flags_usage_internal;Absl::no_destructor;Absl::raw_logging_internal;Absl::strings;Absl::synchronization" - ) - -endif () # imported target Absl::flags_parse -if (TARGET Absl::flags_parse) - - set_target_properties( - Absl::flags_parse - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::algorithm_container;Absl::config;Absl::core_headers;Absl::flags_config;Absl::flags;Absl::flags_commandlineflag;Absl::flags_commandlineflag_internal;Absl::flags_internal;Absl::flags_private_handle_accessor;Absl::flags_program_name;Absl::flags_reflection;Absl::flags_usage;Absl::no_destructor;Absl::strings;Absl::synchronization" - ) - -endif () # imported target Absl::any_invocable -if (TARGET Absl::any_invocable) - - set_target_properties( - Absl::any_invocable - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::config;Absl::core_headers;Absl::type_traits;Absl::utility" - ) - -endif () # imported target Absl::bind_front -if (TARGET Absl::bind_front) - - set_target_properties( - Absl::bind_front PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::compressed_tuple" - ) - -endif () # imported target Absl::function_ref -if (TARGET Absl::function_ref) - - set_target_properties( - Absl::function_ref - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::core_headers;Absl::any_invocable;Absl::meta" - ) - -endif () # imported target Absl::overload -if (TARGET Absl::overload) - - set_target_properties(Absl::overload PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::meta") - -endif () # imported target Absl::hash -if (TARGET Absl::hash) - - set_target_properties( - Absl::hash - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bits;Absl::city;Absl::config;Absl::core_headers;Absl::endian;Absl::fixed_array;Absl::function_ref;Absl::meta;Absl::int128;Absl::strings;Absl::optional;Absl::variant;Absl::utility;Absl::low_level_hash" - ) - -endif () # imported target Absl::city -if (TARGET Absl::city) - - set_target_properties( - Absl::city PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::endian" - ) - -endif () # imported target Absl::low_level_hash -if (TARGET Absl::low_level_hash) - - set_target_properties( - Absl::low_level_hash - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::endian;Absl::int128;Absl::prefetch" - ) - -endif () # imported target Absl::log_internal_check_impl -if (TARGET Absl::log_internal_check_impl) - - set_target_properties( - Absl::log_internal_check_impl - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::core_headers;Absl::log_internal_check_op;Absl::log_internal_conditions;Absl::log_internal_message;Absl::log_internal_strip" - ) - -endif () # imported target Absl::log_internal_check_op -if (TARGET Absl::log_internal_check_op) - - set_target_properties( - Absl::log_internal_check_op - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::leak_check;Absl::log_internal_nullguard;Absl::log_internal_nullstream;Absl::log_internal_strip;Absl::nullability;Absl::strings" - ) - -endif () # imported target Absl::log_internal_conditions -if (TARGET Absl::log_internal_conditions) - - set_target_properties( - Absl::log_internal_conditions - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::log_internal_voidify" - ) - -endif () # imported target Absl::log_internal_config -if (TARGET Absl::log_internal_config) - - set_target_properties( - Absl::log_internal_config PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::log_internal_flags -if (TARGET Absl::log_internal_flags) - - set_target_properties( - Absl::log_internal_flags PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::flags" - ) - -endif () # imported target Absl::log_internal_format -if (TARGET Absl::log_internal_format) - - set_target_properties( - Absl::log_internal_format - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_internal_append_truncated;Absl::log_internal_config;Absl::log_internal_globals;Absl::log_severity;Absl::strings;Absl::str_format;Absl::time;Absl::span" - ) - -endif () # imported target Absl::log_internal_globals -if (TARGET Absl::log_internal_globals) - - set_target_properties( - Absl::log_internal_globals - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_severity;Absl::raw_logging_internal;Absl::strings;Absl::time" - ) - -endif () # imported target Absl::log_internal_log_impl -if (TARGET Absl::log_internal_log_impl) - - set_target_properties( - Absl::log_internal_log_impl - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::log_internal_conditions;Absl::log_internal_message;Absl::log_internal_strip;Absl::absl_vlog_is_on" - ) - -endif () # imported target Absl::log_internal_proto -if (TARGET Absl::log_internal_proto) - - set_target_properties( - Absl::log_internal_proto - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::strings;Absl::span" - ) - -endif () # imported target Absl::log_internal_message -if (TARGET Absl::log_internal_message) - - set_target_properties( - Absl::log_internal_message - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::errno_saver;Absl::examine_stack;Absl::inlined_vector;Absl::log_internal_append_truncated;Absl::log_internal_format;Absl::log_internal_globals;Absl::log_internal_proto;Absl::log_internal_log_sink_set;Absl::log_internal_nullguard;Absl::log_internal_structured_proto;Absl::log_globals;Absl::log_entry;Absl::log_severity;Absl::log_sink;Absl::log_sink_registry;Absl::memory;Absl::nullability;Absl::raw_logging_internal;Absl::span;Absl::strerror;Absl::strings;Absl::time" - ) - -endif () # imported target Absl::log_internal_log_sink_set -if (TARGET Absl::log_internal_log_sink_set) - - set_target_properties( - Absl::log_internal_log_sink_set - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::cleanup;Absl::config;Absl::core_headers;Absl::log_internal_config;Absl::log_internal_globals;Absl::log_globals;Absl::log_entry;Absl::log_severity;Absl::log_sink;Absl::no_destructor;Absl::raw_logging_internal;Absl::synchronization;Absl::span;Absl::strings;\$:-llog>>" - ) - -endif () # imported target Absl::log_internal_nullguard -if (TARGET Absl::log_internal_nullguard) - - set_target_properties( - Absl::log_internal_nullguard PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::log_internal_nullstream -if (TARGET Absl::log_internal_nullstream) - - set_target_properties( - Absl::log_internal_nullstream - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_severity;Absl::strings" - ) - -endif () # imported target Absl::log_internal_strip -if (TARGET Absl::log_internal_strip) - - set_target_properties( - Absl::log_internal_strip - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::core_headers;Absl::log_internal_message;Absl::log_internal_nullstream;Absl::log_severity" - ) - -endif () # imported target Absl::log_internal_voidify -if (TARGET Absl::log_internal_voidify) - - set_target_properties( - Absl::log_internal_voidify PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::log_internal_append_truncated -if (TARGET Absl::log_internal_append_truncated) - - set_target_properties( - Absl::log_internal_append_truncated - PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config;Absl::strings;Absl::span" - ) - -endif () # imported target Absl::absl_check -if (TARGET Absl::absl_check) - - set_target_properties( - Absl::absl_check PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::log_internal_check_impl" - ) - -endif () # imported target Absl::absl_log -if (TARGET Absl::absl_log) - - set_target_properties( - Absl::absl_log PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::log_internal_log_impl" - ) - -endif () # imported target Absl::check -if (TARGET Absl::check) - - set_target_properties( - Absl::check - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::log_internal_check_impl;Absl::core_headers;Absl::log_internal_check_op;Absl::log_internal_conditions;Absl::log_internal_message;Absl::log_internal_strip" - ) - -endif () # imported target Absl::die_if_null -if (TARGET Absl::die_if_null) - - set_target_properties( - Absl::die_if_null - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log;Absl::strings" - ) - -endif () # imported target Absl::log_flags -if (TARGET Absl::log_flags) - - set_target_properties( - Absl::log_flags - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_globals;Absl::log_severity;Absl::log_internal_config;Absl::log_internal_flags;Absl::flags;Absl::flags_marshalling;Absl::strings;Absl::vlog_config_internal" - ) - -endif () # imported target Absl::log_globals -if (TARGET Absl::log_globals) - - set_target_properties( - Absl::log_globals - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::atomic_hook;Absl::config;Absl::core_headers;Absl::hash;Absl::log_severity;Absl::raw_logging_internal;Absl::strings;Absl::vlog_config_internal" - ) - -endif () # imported target Absl::log_initialize -if (TARGET Absl::log_initialize) - - set_target_properties( - Absl::log_initialize - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::log_globals;Absl::log_internal_globals;Absl::time" - ) - -endif () # imported target Absl::log -if (TARGET Absl::log) - - set_target_properties( - Absl::log PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::log_internal_log_impl;Absl::vlog_is_on" - ) - -endif () # imported target Absl::log_entry -if (TARGET Absl::log_entry) - - set_target_properties( - Absl::log_entry - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_internal_config;Absl::log_severity;Absl::span;Absl::strings;Absl::time" - ) - -endif () # imported target Absl::log_sink -if (TARGET Absl::log_sink) - - set_target_properties( - Absl::log_sink PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config;Absl::log_entry" - ) - -endif () # imported target Absl::log_sink_registry -if (TARGET Absl::log_sink_registry) - - set_target_properties( - Absl::log_sink_registry - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::log_sink;Absl::log_internal_log_sink_set;Absl::nullability" - ) - -endif () # imported target Absl::log_streamer -if (TARGET Absl::log_streamer) - - set_target_properties( - Absl::log_streamer - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::absl_log;Absl::log_severity;Absl::optional;Absl::strings;Absl::strings_internal;Absl::utility" - ) - -endif () # imported target Absl::log_internal_structured -if (TARGET Absl::log_internal_structured) - - set_target_properties( - Absl::log_internal_structured - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::any_invocable;Absl::config;Absl::core_headers;Absl::log_internal_message;Absl::log_internal_structured_proto;Absl::strings" - ) - -endif () # imported target Absl::log_internal_structured_proto -if (TARGET Absl::log_internal_structured_proto) - - set_target_properties( - Absl::log_internal_structured_proto - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::log_internal_proto;Absl::config;Absl::span;Absl::strings;Absl::variant" - ) - -endif () # imported target Absl::log_structured -if (TARGET Absl::log_structured) - - set_target_properties( - Absl::log_structured - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::log_internal_structured;Absl::strings" - ) - -endif () # imported target Absl::vlog_config_internal -if (TARGET Absl::vlog_config_internal) - - set_target_properties( - Absl::vlog_config_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::log_internal_fnmatch;Absl::memory;Absl::no_destructor;Absl::strings;Absl::synchronization;Absl::optional" - ) - -endif () # imported target Absl::absl_vlog_is_on -if (TARGET Absl::absl_vlog_is_on) - - set_target_properties( - Absl::absl_vlog_is_on - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::vlog_config_internal;Absl::config;Absl::core_headers;Absl::strings" - ) - -endif () # imported target Absl::vlog_is_on -if (TARGET Absl::vlog_is_on) - - set_target_properties( - Absl::vlog_is_on PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::absl_vlog_is_on" - ) - -endif () # imported target Absl::log_internal_fnmatch -if (TARGET Absl::log_internal_fnmatch) - - set_target_properties( - Absl::log_internal_fnmatch PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::strings" - ) - -endif () # imported target Absl::memory -if (TARGET Absl::memory) - - set_target_properties( - Absl::memory PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::core_headers;Absl::meta" - ) - -endif () # imported target Absl::type_traits -if (TARGET Absl::type_traits) - - set_target_properties( - Absl::type_traits PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::meta -if (TARGET Absl::meta) - - set_target_properties( - Absl::meta PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::type_traits" - ) - -endif () # imported target Absl::bits -if (TARGET Absl::bits) - - set_target_properties( - Absl::bits PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::core_headers" - ) - -endif () # imported target Absl::int128 -if (TARGET Absl::int128) - - set_target_properties( - Absl::int128 PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::compare;Absl::config;Absl::core_headers;Absl::bits" - ) - -endif () # imported target Absl::numeric -if (TARGET Absl::numeric) - - set_target_properties(Absl::numeric PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::int128") - -endif () # imported target Absl::numeric_representation -if (TARGET Absl::numeric_representation) - - set_target_properties( - Absl::numeric_representation PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::sample_recorder -if (TARGET Absl::sample_recorder) - - set_target_properties( - Absl::sample_recorder PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::synchronization" - ) - -endif () # imported target Absl::exponential_biased -if (TARGET Absl::exponential_biased) - - set_target_properties( - Absl::exponential_biased PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers" - ) - -endif () # imported target Absl::periodic_sampler -if (TARGET Absl::periodic_sampler) - - set_target_properties( - Absl::periodic_sampler PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::core_headers;Absl::exponential_biased" - ) - -endif () # imported target Absl::random_random -if (TARGET Absl::random_random) - - set_target_properties( - Absl::random_random - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::random_distributions;Absl::random_internal_nonsecure_base;Absl::random_internal_pcg_engine;Absl::random_internal_pool_urbg;Absl::random_internal_randen_engine;Absl::random_seed_sequences" - ) - -endif () # imported target Absl::random_bit_gen_ref -if (TARGET Absl::random_bit_gen_ref) - - set_target_properties( - Absl::random_bit_gen_ref - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::random_internal_distribution_caller;Absl::random_internal_fast_uniform_bits;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_mock_helpers -if (TARGET Absl::random_internal_mock_helpers) - - set_target_properties( - Absl::random_internal_mock_helpers - PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config;Absl::fast_type_id;Absl::optional" - ) - -endif () # imported target Absl::random_distributions -if (TARGET Absl::random_distributions) - - set_target_properties( - Absl::random_distributions - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::config;Absl::core_headers;Absl::random_internal_generate_real;Absl::random_internal_distribution_caller;Absl::random_internal_fast_uniform_bits;Absl::random_internal_fastmath;Absl::random_internal_iostream_state_saver;Absl::random_internal_traits;Absl::random_internal_uniform_helper;Absl::random_internal_wide_multiply;Absl::strings;Absl::type_traits" - ) - -endif () # imported target Absl::random_seed_gen_exception -if (TARGET Absl::random_seed_gen_exception) - - set_target_properties( - Absl::random_seed_gen_exception PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::random_seed_sequences -if (TARGET Absl::random_seed_sequences) - - set_target_properties( - Absl::random_seed_sequences - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::inlined_vector;Absl::nullability;Absl::random_internal_pool_urbg;Absl::random_internal_salted_seed_seq;Absl::random_internal_seed_material;Absl::random_seed_gen_exception;Absl::span;Absl::string_view" - ) - -endif () # imported target Absl::random_internal_traits -if (TARGET Absl::random_internal_traits) - - set_target_properties( - Absl::random_internal_traits PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::random_internal_distribution_caller -if (TARGET Absl::random_internal_distribution_caller) - - set_target_properties( - Absl::random_internal_distribution_caller - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::utility;Absl::fast_type_id;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_fast_uniform_bits -if (TARGET Absl::random_internal_fast_uniform_bits) - - set_target_properties( - Absl::random_internal_fast_uniform_bits PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config" - ) - -endif () # imported target Absl::random_internal_seed_material -if (TARGET Absl::random_internal_seed_material) - - set_target_properties( - Absl::random_internal_seed_material - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::core_headers;Absl::optional;Absl::random_internal_fast_uniform_bits;Absl::raw_logging_internal;Absl::span;Absl::strings;\$:-lbcrypt>>" - ) - -endif () # imported target Absl::random_internal_pool_urbg -if (TARGET Absl::random_internal_pool_urbg) - - set_target_properties( - Absl::random_internal_pool_urbg - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::endian;Absl::random_internal_randen;Absl::random_internal_seed_material;Absl::random_internal_traits;Absl::random_seed_gen_exception;Absl::raw_logging_internal;Absl::span" - ) - -endif () # imported target Absl::random_internal_salted_seed_seq -if (TARGET Absl::random_internal_salted_seed_seq) - - set_target_properties( - Absl::random_internal_salted_seed_seq - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::inlined_vector;Absl::optional;Absl::span;Absl::random_internal_seed_material;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_iostream_state_saver -if (TARGET Absl::random_internal_iostream_state_saver) - - set_target_properties( - Absl::random_internal_iostream_state_saver - PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config;Absl::int128;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_generate_real -if (TARGET Absl::random_internal_generate_real) - - set_target_properties( - Absl::random_internal_generate_real - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bits;Absl::random_internal_fastmath;Absl::random_internal_traits;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_wide_multiply -if (TARGET Absl::random_internal_wide_multiply) - - set_target_properties( - Absl::random_internal_wide_multiply PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::bits;Absl::config;Absl::int128" - ) - -endif () # imported target Absl::random_internal_fastmath -if (TARGET Absl::random_internal_fastmath) - - set_target_properties( - Absl::random_internal_fastmath PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::bits" - ) - -endif () # imported target Absl::random_internal_nonsecure_base -if (TARGET Absl::random_internal_nonsecure_base) - - set_target_properties( - Absl::random_internal_nonsecure_base - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::core_headers;Absl::inlined_vector;Absl::random_internal_pool_urbg;Absl::random_internal_salted_seed_seq;Absl::random_internal_seed_material;Absl::span;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_pcg_engine -if (TARGET Absl::random_internal_pcg_engine) - - set_target_properties( - Absl::random_internal_pcg_engine - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::int128;Absl::random_internal_fastmath;Absl::random_internal_iostream_state_saver;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_randen_engine -if (TARGET Absl::random_internal_randen_engine) - - set_target_properties( - Absl::random_internal_randen_engine - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::endian;Absl::random_internal_iostream_state_saver;Absl::random_internal_randen;Absl::raw_logging_internal;Absl::type_traits" - ) - -endif () # imported target Absl::random_internal_platform -if (TARGET Absl::random_internal_platform) - - set_target_properties( - Absl::random_internal_platform PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::random_internal_randen -if (TARGET Absl::random_internal_randen) - - set_target_properties( - Absl::random_internal_randen - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::random_internal_platform;Absl::random_internal_randen_hwaes;Absl::random_internal_randen_slow" - ) - -endif () # imported target Absl::random_internal_randen_slow -if (TARGET Absl::random_internal_randen_slow) - - set_target_properties( - Absl::random_internal_randen_slow - PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::random_internal_platform;Absl::config" - ) - -endif () # imported target Absl::random_internal_randen_hwaes -if (TARGET Absl::random_internal_randen_hwaes) - - set_target_properties( - Absl::random_internal_randen_hwaes - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::random_internal_platform;Absl::random_internal_randen_hwaes_impl;Absl::config;Absl::optional" - ) - -endif () # imported target Absl::random_internal_randen_hwaes_impl -if (TARGET Absl::random_internal_randen_hwaes_impl) - - set_target_properties( - Absl::random_internal_randen_hwaes_impl - PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::random_internal_platform;Absl::config" - ) - -endif () # imported target Absl::random_internal_distribution_test_util -if (TARGET Absl::random_internal_distribution_test_util) - - set_target_properties( - Absl::random_internal_distribution_test_util - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::raw_logging_internal;Absl::strings;Absl::str_format;Absl::span" - ) - -endif () # imported target Absl::random_internal_uniform_helper -if (TARGET Absl::random_internal_uniform_helper) - - set_target_properties( - Absl::random_internal_uniform_helper - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::random_internal_traits;Absl::type_traits" - ) - -endif () # imported target Absl::status -if (TARGET Absl::status) - - set_target_properties( - Absl::status - PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "\$<\$:_LINUX_SOURCE_COMPAT>" - INTERFACE_LINK_LIBRARIES - "Absl::atomic_hook;Absl::config;Absl::cord;Absl::core_headers;Absl::function_ref;Absl::inlined_vector;Absl::leak_check;Absl::memory;Absl::no_destructor;Absl::nullability;Absl::optional;Absl::raw_logging_internal;Absl::span;Absl::stacktrace;Absl::str_format;Absl::strerror;Absl::strings;Absl::symbolize" - ) - -endif () # imported target Absl::statusor -if (TARGET Absl::statusor) - - set_target_properties( - Absl::statusor - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::has_ostream_operator;Absl::nullability;Absl::raw_logging_internal;Absl::status;Absl::str_format;Absl::strings;Absl::type_traits;Absl::utility;Absl::variant" - ) - -endif () # imported target Absl::string_view -if (TARGET Absl::string_view) - - set_target_properties( - Absl::string_view - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::nullability;Absl::throw_delegate" - ) - -endif () # imported target Absl::strings -if (TARGET Absl::strings) - - set_target_properties( - Absl::strings - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::string_view;Absl::strings_internal;Absl::base;Absl::bits;Absl::charset;Absl::config;Absl::core_headers;Absl::endian;Absl::int128;Absl::memory;Absl::nullability;Absl::raw_logging_internal;Absl::throw_delegate;Absl::type_traits" - ) - -endif () # imported target Absl::charset -if (TARGET Absl::charset) - - set_target_properties( - Absl::charset PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config;Absl::string_view" - ) - -endif () # imported target Absl::has_ostream_operator -if (TARGET Absl::has_ostream_operator) - - set_target_properties( - Absl::has_ostream_operator PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::strings_internal -if (TARGET Absl::strings_internal) - - set_target_properties( - Absl::strings_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::endian;Absl::raw_logging_internal;Absl::type_traits" - ) - -endif () # imported target Absl::str_format -if (TARGET Absl::str_format) - - set_target_properties( - Absl::str_format - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::nullability;Absl::span;Absl::str_format_internal;Absl::string_view" - ) - -endif () # imported target Absl::str_format_internal -if (TARGET Absl::str_format_internal) - - set_target_properties( - Absl::str_format_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bits;Absl::strings;Absl::config;Absl::core_headers;Absl::fixed_array;Absl::inlined_vector;Absl::numeric_representation;Absl::type_traits;Absl::utility;Absl::int128;Absl::span" - ) - -endif () # imported target Absl::cord_internal -if (TARGET Absl::cord_internal) - - set_target_properties( - Absl::cord_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::compressed_tuple;Absl::config;Absl::container_memory;Absl::compare;Absl::core_headers;Absl::crc_cord_state;Absl::endian;Absl::inlined_vector;Absl::layout;Absl::raw_logging_internal;Absl::strings;Absl::throw_delegate;Absl::type_traits" - ) - -endif () # imported target Absl::cordz_update_tracker -if (TARGET Absl::cordz_update_tracker) - - set_target_properties( - Absl::cordz_update_tracker PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) - -endif () # imported target Absl::cordz_functions -if (TARGET Absl::cordz_functions) - - set_target_properties( - Absl::cordz_functions - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::exponential_biased;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::cordz_statistics -if (TARGET Absl::cordz_statistics) - - set_target_properties( - Absl::cordz_statistics - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::cordz_update_tracker;Absl::synchronization" - ) - -endif () # imported target Absl::cordz_handle -if (TARGET Absl::cordz_handle) - - set_target_properties( - Absl::cordz_handle - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::no_destructor;Absl::raw_logging_internal;Absl::synchronization" - ) - -endif () # imported target Absl::cordz_info -if (TARGET Absl::cordz_info) - - set_target_properties( - Absl::cordz_info - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::cord_internal;Absl::cordz_functions;Absl::cordz_handle;Absl::cordz_statistics;Absl::cordz_update_tracker;Absl::core_headers;Absl::inlined_vector;Absl::span;Absl::raw_logging_internal;Absl::stacktrace;Absl::synchronization;Absl::time" - ) - -endif () # imported target Absl::cordz_sample_token -if (TARGET Absl::cordz_sample_token) - - set_target_properties( - Absl::cordz_sample_token - PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::cordz_handle;Absl::cordz_info" - ) - -endif () # imported target Absl::cordz_update_scope -if (TARGET Absl::cordz_update_scope) - - set_target_properties( - Absl::cordz_update_scope - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::cord_internal;Absl::cordz_info;Absl::cordz_update_tracker;Absl::core_headers" - ) - -endif () # imported target Absl::cord -if (TARGET Absl::cord) - - set_target_properties( - Absl::cord - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::cord_internal;Absl::cordz_functions;Absl::cordz_info;Absl::cordz_update_scope;Absl::cordz_update_tracker;Absl::core_headers;Absl::crc32c;Absl::crc_cord_state;Absl::endian;Absl::function_ref;Absl::inlined_vector;Absl::nullability;Absl::optional;Absl::raw_logging_internal;Absl::span;Absl::strings;Absl::type_traits" - ) - -endif () # imported target Absl::graphcycles_internal -if (TARGET Absl::graphcycles_internal) - - set_target_properties( - Absl::graphcycles_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::base_internal;Absl::config;Absl::core_headers;Absl::malloc_internal;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::kernel_timeout_internal -if (TARGET Absl::kernel_timeout_internal) - - set_target_properties( - Absl::kernel_timeout_internal - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::config;Absl::core_headers;Absl::raw_logging_internal;Absl::time" - ) - -endif () # imported target Absl::synchronization -if (TARGET Absl::synchronization) - - set_target_properties( - Absl::synchronization - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::graphcycles_internal;Absl::kernel_timeout_internal;Absl::atomic_hook;Absl::base;Absl::base_internal;Absl::config;Absl::core_headers;Absl::dynamic_annotations;Absl::malloc_internal;Absl::raw_logging_internal;Absl::stacktrace;Absl::symbolize;Absl::tracing_internal;Absl::time;Absl::tracing_internal;Threads::Threads" - ) - -endif () # imported target Absl::time -if (TARGET Absl::time) - - set_target_properties( - Absl::time - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::base;Absl::civil_time;Absl::core_headers;Absl::int128;Absl::raw_logging_internal;Absl::strings;Absl::time_zone" - ) - -endif () # imported target Absl::civil_time - -if (TARGET Absl::time_zone) - - set_target_properties( - Absl::time_zone - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Threads::Threads;\$<\$:-Wl,-framework,CoreFoundation>" - ) - -endif () # imported target Absl::any -if (TARGET Absl::any) - - set_target_properties( - Absl::any - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bad_any_cast;Absl::config;Absl::core_headers;Absl::fast_type_id;Absl::type_traits;Absl::utility" - ) - -endif () # imported target Absl::bad_any_cast -if (TARGET Absl::bad_any_cast) - - set_target_properties( - Absl::bad_any_cast PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::bad_any_cast_impl;Absl::config" - ) - -endif () # imported target Absl::bad_any_cast_impl -if (TARGET Absl::bad_any_cast_impl) - - set_target_properties( - Absl::bad_any_cast_impl PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::span -if (TARGET Absl::span) - - set_target_properties( - Absl::span - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::algorithm;Absl::config;Absl::core_headers;Absl::nullability;Absl::throw_delegate;Absl::type_traits" - ) - -endif () # imported target Absl::optional -if (TARGET Absl::optional) - - set_target_properties( - Absl::optional - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bad_optional_access;Absl::base_internal;Absl::config;Absl::core_headers;Absl::memory;Absl::nullability;Absl::type_traits;Absl::utility" - ) - -endif () # imported target Absl::bad_optional_access -if (TARGET Absl::bad_optional_access) - - set_target_properties( - Absl::bad_optional_access PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::bad_variant_access -if (TARGET Absl::bad_variant_access) - - set_target_properties( - Absl::bad_variant_access PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::raw_logging_internal" - ) - -endif () # imported target Absl::variant -if (TARGET Absl::variant) - - set_target_properties( - Absl::variant - PROPERTIES - INTERFACE_LINK_LIBRARIES - "Absl::bad_variant_access;Absl::base_internal;Absl::config;Absl::core_headers;Absl::type_traits;Absl::utility" - ) - -endif () # imported target Absl::compare -if (TARGET Absl::compare) - - set_target_properties( - Absl::compare PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::config;Absl::core_headers;Absl::type_traits" - ) - -endif () # imported target Absl::utility -if (TARGET Absl::utility) - - set_target_properties( - Absl::utility PROPERTIES INTERFACE_LINK_LIBRARIES - "Absl::base_internal;Absl::config;Absl::type_traits" - ) - -endif () # imported target Absl::if_constexpr -if (TARGET Absl::if_constexpr) - - set_target_properties( - Absl::if_constexpr PROPERTIES INTERFACE_LINK_LIBRARIES "Absl::config" - ) -endif () - -if (NOT TARGET Absl::Absl) - add_library(Absl::Absl INTERFACE IMPORTED) - set_target_properties(Absl::Absl PROPERTIES INTERFACE_LINK_LIBRARIES "${ABSL_TARGETS}") - -endif () - -find_package_handle_standard_args(Absl REQUIRED_VARS ABSL_TARGETS) diff --git a/cmake/FindBz2.cmake b/cmake/FindBz2.cmake deleted file mode 100644 index eb068df69..000000000 --- a/cmake/FindBz2.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# GPLv2 Licence - -find_path( - Bz2_INCLUDE_DIR - bzlib.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) -find_library( - Bz2_LIBRARY - NAMES bz2 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Bz2 REQUIRED_VARS Bz2_LIBRARY Bz2_INCLUDE_DIR) - -if (Bz2_FOUND AND NOT TARGET Bz2::Bz2) - add_library(Bz2::Bz2 UNKNOWN IMPORTED) - set_target_properties( - Bz2::Bz2 PROPERTIES IMPORTED_LOCATION "${Bz2_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Bz2_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Bz2_LIBRARY Bz2_INCLUDE_DIR) diff --git a/cmake/FindCharset.cmake b/cmake/FindCharset.cmake deleted file mode 100644 index 60c034e16..000000000 --- a/cmake/FindCharset.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -# not in macos and linux input-SDK -if (MACOS) - find_library(Charset_LIBRARY NAMES charset) -elseif (LNX) - message(FATAL_ERROR "charset not available for this platform in input-SDK") -else () - find_library( - Charset_LIBRARY - NAMES charset libcharset - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH - ) -endif () - -find_package_handle_standard_args(Charset REQUIRED_VARS Charset_LIBRARY) - -if (Charset_FOUND AND NOT TARGET Charset::Charset) - add_library(Charset::Charset UNKNOWN IMPORTED) - set_target_properties( - Charset::Charset PROPERTIES IMPORTED_LOCATION "${Charset_LIBRARY}" - ) - -endif () - -mark_as_advanced(Charset_LIBRARY) diff --git a/cmake/FindCurl.cmake b/cmake/FindCurl.cmake deleted file mode 100644 index 4008d1102..000000000 --- a/cmake/FindCurl.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Curl_INCLUDE_DIR - curl/curl.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Curl_LIBRARY - NAMES curl libcurl - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Curl REQUIRED_VARS Curl_LIBRARY Curl_INCLUDE_DIR) - -if (Curl_FOUND AND NOT TARGET Curl::Curl) - add_library(Curl::Curl UNKNOWN IMPORTED) - set_target_properties( - Curl::Curl PROPERTIES IMPORTED_LOCATION "${Curl_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Curl_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Curl_LIBRARY Curl_INCLUDE_DIR) diff --git a/cmake/FindExiv2.cmake b/cmake/FindExiv2.cmake deleted file mode 100644 index 351502da6..000000000 --- a/cmake/FindExiv2.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# GPLv2 Licence -find_path( - Exiv2_INCLUDE_DIR - exif.hpp - "${INPUT_SDK_PATH_MULTI}/include/exiv2" - NO_DEFAULT_PATH -) - -find_library( - Exiv2_LIBRARY - NAMES exiv2 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Exiv2 REQUIRED_VARS Exiv2_LIBRARY Exiv2_INCLUDE_DIR) - -if (Exiv2_FOUND AND NOT TARGET Exiv2::Exiv2) - add_library(Exiv2::Exiv2 UNKNOWN IMPORTED) - set_target_properties( - Exiv2::Exiv2 PROPERTIES IMPORTED_LOCATION "${Exiv2_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Exiv2_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Exiv2_LIBRARY Exiv2_INCLUDE_DIR) diff --git a/cmake/FindExpat.cmake b/cmake/FindExpat.cmake deleted file mode 100644 index 0919bbed7..000000000 --- a/cmake/FindExpat.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Expat_INCLUDE_DIR - expat.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Expat_LIBRARY - NAMES expat libexpat - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Expat REQUIRED_VARS Expat_LIBRARY Expat_INCLUDE_DIR) - -if (Expat_FOUND AND NOT TARGET Expat::Expat) - add_library(Expat::Expat UNKNOWN IMPORTED) - set_target_properties( - Expat::Expat PROPERTIES IMPORTED_LOCATION "${Expat_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Expat_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Expat_LIBRARY Expat_INCLUDE_DIR) diff --git a/cmake/FindFreexl.cmake b/cmake/FindFreexl.cmake deleted file mode 100644 index abd9bae58..000000000 --- a/cmake/FindFreexl.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Freexl_INCLUDE_DIR - freexl.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Freexl_LIBRARY - NAMES freexl - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Freexl REQUIRED_VARS Freexl_LIBRARY Freexl_INCLUDE_DIR) - -if (Freexl_FOUND AND NOT TARGET Freexl::Freexl) - add_library(Freexl::Freexl UNKNOWN IMPORTED) - set_target_properties( - Freexl::Freexl PROPERTIES IMPORTED_LOCATION "${Freexl_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Freexl_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Freexl_LIBRARY Freexl_INCLUDE_DIR) diff --git a/cmake/FindGdal.cmake b/cmake/FindGdal.cmake deleted file mode 100644 index a4b82ef8d..000000000 --- a/cmake/FindGdal.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Gdal_INCLUDE_DIR - gdal.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Gdal_LIBRARY - NAMES gdal - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Gdal REQUIRED_VARS Gdal_LIBRARY Gdal_INCLUDE_DIR) - -if (Gdal_FOUND AND NOT TARGET Gdal::Gdal) - add_library(Gdal::Gdal STATIC IMPORTED) - set_target_properties( - Gdal::Gdal PROPERTIES IMPORTED_LOCATION "${Gdal_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Gdal_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Gdal_LIBRARY Gdal_INCLUDE_DIR) diff --git a/cmake/FindGeodiff.cmake b/cmake/FindGeodiff.cmake deleted file mode 100644 index f25f14623..000000000 --- a/cmake/FindGeodiff.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# GPLv2 Licence - -find_path( - Geodiff_INCLUDE_DIR - geodiff.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Geodiff_LIBRARY - NAMES geodiff - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Geodiff REQUIRED_VARS Geodiff_LIBRARY Geodiff_INCLUDE_DIR -) - -if (Geodiff_FOUND AND NOT TARGET Geodiff::Geodiff) - add_library(Geodiff::Geodiff STATIC IMPORTED) - set_target_properties( - Geodiff::Geodiff PROPERTIES IMPORTED_LOCATION "${Geodiff_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Geodiff_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Geodiff_LIBRARY Geodiff_INCLUDE_DIR) diff --git a/cmake/FindGeos.cmake b/cmake/FindGeos.cmake deleted file mode 100644 index 3504ad09e..000000000 --- a/cmake/FindGeos.cmake +++ /dev/null @@ -1,42 +0,0 @@ -# GPLv2 Licence - -find_path( - Geos_INCLUDE_DIR - geos_c.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Geos_LIBRARY - NAMES geos - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - Geos_c_LIBRARY - NAMES geos_c - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Geos REQUIRED_VARS Geos_LIBRARY Geos_c_LIBRARY Geos_INCLUDE_DIR -) - -if (Geos_FOUND AND NOT TARGET Geos::Geos) - add_library(Geos::Geos UNKNOWN IMPORTED) - set_target_properties( - Geos::Geos PROPERTIES IMPORTED_LOCATION "${Geos_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Geos_INCLUDE_DIR}" - ) - - add_library(Geos::Geos-c UNKNOWN IMPORTED) - set_target_properties( - Geos::Geos-c PROPERTIES IMPORTED_LOCATION "${Geos_c_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Geos_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Geos_LIBRARY Geos_INCLUDE_DIR Geos_c_LIBRARY) diff --git a/cmake/FindGeotiff.cmake b/cmake/FindGeotiff.cmake deleted file mode 100644 index 98165f59c..000000000 --- a/cmake/FindGeotiff.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# GPLv2 Licence - -find_path( - Geotiff_INCLUDE_DIR - geotiff.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Geotiff_LIBRARY - NAMES geotiff geotiff_i - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Geotiff REQUIRED_VARS Geotiff_LIBRARY Geotiff_INCLUDE_DIR -) - -if (Geotiff_FOUND AND NOT TARGET Geotiff::Geotiff) - add_library(Geotiff::Geotiff UNKNOWN IMPORTED) - set_target_properties( - Geotiff::Geotiff PROPERTIES IMPORTED_LOCATION "${Geotiff_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Geotiff_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Geotiff_LIBRARY Geotiff_INCLUDE_DIR) diff --git a/cmake/FindGlib2.cmake b/cmake/FindGlib2.cmake deleted file mode 100644 index 73a65607e..000000000 --- a/cmake/FindGlib2.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# GPLv2 Licence - -if (NOT LNX) - message(FATAL_ERROR "glib2 not available for this platform in input-SDK") -else () - - find_library( - Glib2_LIBRARY - NAMES glib-2.0 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH - ) - - find_package_handle_standard_args(Glib2 REQUIRED_VARS Glib2_LIBRARY) - - if (Glib2_FOUND AND NOT TARGET Glib2::Glib2) - add_library(Glib2::Glib2 UNKNOWN IMPORTED) - set_target_properties(Glib2::Glib2 PROPERTIES IMPORTED_LOCATION "${Glib2_LIBRARY}") - endif () - - mark_as_advanced(Glib2_LIBRARY Glib2_INCLUDE_DIR) - -endif () diff --git a/cmake/FindIconv.cmake b/cmake/FindIconv.cmake deleted file mode 100644 index f4f058d88..000000000 --- a/cmake/FindIconv.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# GPLv2 Licence - -# not in macos input-SDK, not in linux input-SDK -if (MACOS) - find_library(Iconv_LIBRARY NAMES iconv) -elseif (LNX) - message(FATAL_ERROR "iconv not available for this platform in input-SDK") -else () - find_library( - Iconv_LIBRARY - NAMES iconv - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH - ) -endif () - -find_package_handle_standard_args(Iconv REQUIRED_VARS Iconv_LIBRARY) - -if (Iconv_FOUND AND NOT TARGET Iconv::Iconv) - add_library(Iconv::Iconv UNKNOWN IMPORTED) - set_target_properties(Iconv::Iconv PROPERTIES IMPORTED_LOCATION "${Iconv_LIBRARY}") - -endif () - -mark_as_advanced(Iconv_LIBRARY) diff --git a/cmake/FindInih.cmake b/cmake/FindInih.cmake deleted file mode 100644 index 4cfb87ea4..000000000 --- a/cmake/FindInih.cmake +++ /dev/null @@ -1,28 +0,0 @@ -# GPLv2 Licence -find_library( - Inih_LIBRARY - NAMES libinih inih - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - Inireader_LIBRARY - NAMES libINIReader INIReader - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Inih REQUIRED_VARS Inih_LIBRARY Inireader_LIBRARY) - -if (Inih_FOUND AND NOT TARGET Inih::Inih) - add_library(Inih::Inih UNKNOWN IMPORTED) - set_target_properties(Inih::Inih PROPERTIES IMPORTED_LOCATION "${Inih_LIBRARY}") - - add_library(Inih::Inireader UNKNOWN IMPORTED) - set_target_properties( - Inih::Inireader PROPERTIES IMPORTED_LOCATION "${Inireader_LIBRARY}" - ) -endif () - -mark_as_advanced(Inih_LIBRARY Inireader_LIBRARY) diff --git a/cmake/FindJpeg.cmake b/cmake/FindJpeg.cmake deleted file mode 100644 index 4ab419a04..000000000 --- a/cmake/FindJpeg.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# GPLv2 Licence - -# GDAL uses internal JPEG with renamed symbols TIFF uses jpegturbo QT has bundled -# Qt6BundledLibjpeg on iOS - -find_path( - Jpeg_INCLUDE_DIR - jpeglib.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Jpeg_LIBRARY - NAMES jpeg - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Jpeg REQUIRED_VARS Jpeg_LIBRARY Jpeg_INCLUDE_DIR) - -if (Jpeg_FOUND AND NOT TARGET Jpeg::Jpeg) - add_library(Jpeg::Jpeg UNKNOWN IMPORTED) - set_target_properties( - Jpeg::Jpeg PROPERTIES IMPORTED_LOCATION "${Jpeg_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Jpeg_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Jpeg_LIBRARY Jpeg_INCLUDE_DIR) diff --git a/cmake/FindLzma.cmake b/cmake/FindLzma.cmake deleted file mode 100644 index 51c00dfc7..000000000 --- a/cmake/FindLzma.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Lzma_INCLUDE_DIR - lzma.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Lzma_LIBRARY - NAMES lzma - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Lzma REQUIRED_VARS Lzma_LIBRARY Lzma_INCLUDE_DIR) - -if (Lzma_FOUND AND NOT TARGET Lzma::Lzma) - add_library(Lzma::Lzma UNKNOWN IMPORTED) - set_target_properties( - Lzma::Lzma PROPERTIES IMPORTED_LOCATION "${Lzma_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Lzma_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Lzma_LIBRARY Lzma_INCLUDE_DIR) diff --git a/cmake/FindMiniZip.cmake b/cmake/FindMiniZip.cmake deleted file mode 100644 index aca0a4e2d..000000000 --- a/cmake/FindMiniZip.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# GPLv2 Licence - -find_path( - MiniZip_INCLUDE_DIR - minizip/zip.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - MiniZip_LIBRARY - NAMES minizip - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - MiniZip REQUIRED_VARS MiniZip_LIBRARY MiniZip_INCLUDE_DIR -) - -if (MiniZip_FOUND AND NOT TARGET MiniZip::MiniZip) - add_library(MiniZip::MiniZip UNKNOWN IMPORTED) - set_target_properties( - MiniZip::MiniZip PROPERTIES IMPORTED_LOCATION "${MiniZip_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${MiniZip_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(MiniZip_LIBRARY MiniZip_INCLUDE_DIR) diff --git a/cmake/FindOpenSSL.cmake b/cmake/FindOpenSSL.cmake deleted file mode 100644 index f7237699c..000000000 --- a/cmake/FindOpenSSL.cmake +++ /dev/null @@ -1,76 +0,0 @@ -# GPLv2 Licence - -find_path( - OpenSSL_INCLUDE_DIR - openssl/ssl.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - OpenSSL_CRYPTO_LIBRARY - NAMES crypto libcrypto - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - OpenSSL_LIBRARY - NAMES ssl libssl - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -if (ANDROID) - # Android only note: on android platform we have both static openssl and shared openssl - # libraries required for Qt shared openssl should not be linked against!, it just need - # to be copied to APK for Qt - find_library( - KDAB_OpenSSL_CRYPTO_LIBRARY - NAMES crypto_3 - PATHS "${INPUT_SDK_PATH_MULTI}/lib/kdab-openssl" - NO_DEFAULT_PATH - ) - - find_library( - KDAB_OpenSSL_LIBRARY - NAMES ssl_3 - PATHS "${INPUT_SDK_PATH_MULTI}/lib/kdab-openssl" - NO_DEFAULT_PATH - ) -endif () - -if (ANDROID) - find_package_handle_standard_args( - OpenSSL - REQUIRED_VARS - OpenSSL_LIBRARY - OpenSSL_CRYPTO_LIBRARY - OpenSSL_INCLUDE_DIR - KDAB_OpenSSL_LIBRARY - KDAB_OpenSSL_CRYPTO_LIBRARY - ) -else () - find_package_handle_standard_args( - OpenSSL REQUIRED_VARS OpenSSL_LIBRARY OpenSSL_CRYPTO_LIBRARY OpenSSL_INCLUDE_DIR - ) -endif () - -if (OpenSSL_FOUND AND NOT TARGET OpenSSL::OpenSSL) - add_library(OpenSSL::OpenSSL UNKNOWN IMPORTED) - set_target_properties( - OpenSSL::OpenSSL PROPERTIES IMPORTED_LOCATION "${OpenSSL_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${OpenSSL_INCLUDE_DIR}" - ) - - add_library(OpenSSL::Crypto UNKNOWN IMPORTED) - set_target_properties( - OpenSSL::Crypto PROPERTIES IMPORTED_LOCATION "${OpenSSL_CRYPTO_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${OpenSSL_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(OpenSSL_LIBRARY OpenSSL_CRYPTO_LIBRARY OpenSSL_INCLUDE_DIR) -if (ANDROID) - mark_as_advanced(KDAB_OpenSSL_LIBRARY KDAB_OpenSSL_CRYPTO_LIBRARY) -endif () diff --git a/cmake/FindPq.cmake b/cmake/FindPq.cmake deleted file mode 100644 index 4b2f407c5..000000000 --- a/cmake/FindPq.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# GPLv2 Licence - -find_path( - Pq_INCLUDE_DIR - postgres_ext.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Pq_LIBRARY - NAMES pq libpq - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - Pgport_LIBRARY - NAMES pgport libpgport - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - Pgcommon_LIBRARY - NAMES pgcommon libpgcommon - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Pq REQUIRED_VARS Pq_LIBRARY Pq_INCLUDE_DIR) - -if (Pq_FOUND AND NOT TARGET Pq::Pq) - add_library(Pq::Pq UNKNOWN IMPORTED) - set_target_properties( - Pq::Pq PROPERTIES IMPORTED_LOCATION "${Pq_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Pq_INCLUDE_DIR}" - ) - - add_library(Pq::Pgport UNKNOWN IMPORTED) - set_target_properties(Pq::Pgport PROPERTIES IMPORTED_LOCATION "${Pgport_LIBRARY}") - - add_library(Pq::Pgcommon UNKNOWN IMPORTED) - set_target_properties(Pq::Pgcommon PROPERTIES IMPORTED_LOCATION "${Pgcommon_LIBRARY}") -endif () - -mark_as_advanced( - Pq_LIBRARY - Pgport_LIBRARY - Pgcommon_LIBRARY - Pq_INCLUDE_DIR -) diff --git a/cmake/FindProj.cmake b/cmake/FindProj.cmake deleted file mode 100644 index bed99f5ef..000000000 --- a/cmake/FindProj.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Proj_INCLUDE_DIR - proj.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Proj_LIBRARY - NAMES proj - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Proj REQUIRED_VARS Proj_LIBRARY Proj_INCLUDE_DIR) - -if (Proj_FOUND AND NOT TARGET Proj::Proj) - add_library(Proj::Proj STATIC IMPORTED) - set_target_properties( - Proj::Proj PROPERTIES IMPORTED_LOCATION "${Proj_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Proj_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Proj_LIBRARY Proj_INCLUDE_DIR) diff --git a/cmake/FindProtobuf.cmake b/cmake/FindProtobuf.cmake deleted file mode 100644 index 5bfa67146..000000000 --- a/cmake/FindProtobuf.cmake +++ /dev/null @@ -1,31 +0,0 @@ -# GPLv2 Licence - -find_path( - Protobuf_INCLUDE_DIR - google/protobuf/service.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Protobuf_lite_LIBRARY - NAMES protobuf-lite libprotobuf-lite - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Protobuf REQUIRED_VARS Protobuf_lite_LIBRARY Protobuf_INCLUDE_DIR -) - -if (Protobuf_FOUND AND NOT TARGET Protobuf::Protobuf-lite) - add_library(Protobuf::Protobuf-lite UNKNOWN IMPORTED) - set_target_properties( - Protobuf::Protobuf-lite - PROPERTIES IMPORTED_LOCATION "${Protobuf_lite_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Protobuf_INCLUDE_DIR}" - ) - -endif () - -mark_as_advanced(Protobuf_lite_LIBRARY Protobuf_INCLUDE_DIR) diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index 82455e508..f1ac8ad1b 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -2,15 +2,11 @@ find_path( QGIS_INCLUDE_DIR qgis.h - "${INPUT_SDK_PATH_MULTI}/include/qgis" - NO_DEFAULT_PATH ) find_library( QGIS_CORE_LIBRARY NAMES qgis_core - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH ) set(QGIS_REQUIRED_VARS QGIS_CORE_LIBRARY QGIS_INCLUDE_DIR) @@ -36,8 +32,6 @@ foreach (provider ${QGIS_PROVIDERS_LIST}) find_library( QGIS_${provider}_LIBRARY NAMES ${provider}_a - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH ) set(QGIS_REQUIRED_VARS ${QGIS_REQUIRED_VARS} QGIS_${provider}_LIBRARY) endforeach () diff --git a/cmake/FindQca.cmake b/cmake/FindQca.cmake deleted file mode 100644 index 56bd7730a..000000000 --- a/cmake/FindQca.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Qca_INCLUDE_DIR - QtCrypto/qca.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Qca_LIBRARY - NAMES qca - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Qca REQUIRED_VARS Qca_LIBRARY Qca_INCLUDE_DIR) - -if (Qca_FOUND AND NOT TARGET Qca::Qca) - add_library(Qca::Qca STATIC IMPORTED) - set_target_properties( - Qca::Qca PROPERTIES IMPORTED_LOCATION "${Qca_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Qca_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Qca_LIBRARY Qca_INCLUDE_DIR) diff --git a/cmake/FindQtkeychain.cmake b/cmake/FindQtkeychain.cmake deleted file mode 100644 index 73426db7b..000000000 --- a/cmake/FindQtkeychain.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# GPLv2 Licence - -find_path( - Qtkeychain_INCLUDE_DIR - qt6keychain/keychain.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Qtkeychain_LIBRARY - NAMES qt6keychain - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Qtkeychain REQUIRED_VARS Qtkeychain_LIBRARY Qtkeychain_INCLUDE_DIR -) - -if (Qtkeychain_FOUND AND NOT TARGET Qtkeychain::Qtkeychain) - add_library(Qtkeychain::Qtkeychain STATIC IMPORTED) - set_target_properties( - Qtkeychain::Qtkeychain - PROPERTIES IMPORTED_LOCATION "${Qtkeychain_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Qtkeychain_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Qtkeychain_LIBRARY Qtkeychain_INCLUDE_DIR) diff --git a/cmake/FindSpatialindex.cmake b/cmake/FindSpatialindex.cmake index 2d7b6618d..6e4cd5173 100644 --- a/cmake/FindSpatialindex.cmake +++ b/cmake/FindSpatialindex.cmake @@ -3,15 +3,11 @@ find_path( Spatialindex_INCLUDE_DIR spatialindex/RTree.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH ) find_library( Spatialindex_LIBRARY NAMES spatialindex spatialindex-64 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH ) find_package_handle_standard_args( diff --git a/cmake/FindSpatialite.cmake b/cmake/FindSpatialite.cmake index a6814fd32..6967c89de 100644 --- a/cmake/FindSpatialite.cmake +++ b/cmake/FindSpatialite.cmake @@ -3,15 +3,11 @@ find_path( Spatialite_INCLUDE_DIR spatialite.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH ) find_library( Spatialite_LIBRARY NAMES spatialite - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH ) find_package_handle_standard_args( diff --git a/cmake/FindSqlite3.cmake b/cmake/FindSqlite3.cmake deleted file mode 100644 index 5e54673a3..000000000 --- a/cmake/FindSqlite3.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# GPLv2 Licence - -find_path( - Sqlite3_INCLUDE_DIR - sqlite3.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Sqlite3_LIBRARY - NAMES sqlite3 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Sqlite3 REQUIRED_VARS Sqlite3_LIBRARY Sqlite3_INCLUDE_DIR -) - -if (Sqlite3_FOUND AND NOT TARGET Sqlite3::Sqlite3) - add_library(Sqlite3::Sqlite3 UNKNOWN IMPORTED) - set_target_properties( - Sqlite3::Sqlite3 PROPERTIES IMPORTED_LOCATION "${Sqlite3_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Sqlite3_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Sqlite3_LIBRARY Sqlite3_INCLUDE_DIR) diff --git a/cmake/FindTasn1.cmake b/cmake/FindTasn1.cmake index 63f30b47b..2eb1caf12 100644 --- a/cmake/FindTasn1.cmake +++ b/cmake/FindTasn1.cmake @@ -11,15 +11,11 @@ else () find_path( Tasn1_INCLUDE_DIR libtasn1.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH ) find_library( Tasn1_LIBRARY NAMES tasn1 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH ) endif () diff --git a/cmake/FindTiff.cmake b/cmake/FindTiff.cmake deleted file mode 100644 index 7e97a47f9..000000000 --- a/cmake/FindTiff.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Tiff_INCLUDE_DIR - tiff.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Tiff_LIBRARY - NAMES tiff - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Tiff REQUIRED_VARS Tiff_LIBRARY Tiff_INCLUDE_DIR) - -if (Tiff_FOUND AND NOT TARGET Tiff::Tiff) - add_library(Tiff::Tiff UNKNOWN IMPORTED) - set_target_properties( - Tiff::Tiff PROPERTIES IMPORTED_LOCATION "${Tiff_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Tiff_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Tiff_LIBRARY Tiff_INCLUDE_DIR) diff --git a/cmake/FindUtf8.cmake b/cmake/FindUtf8.cmake deleted file mode 100644 index 499621371..000000000 --- a/cmake/FindUtf8.cmake +++ /dev/null @@ -1,35 +0,0 @@ -# GPLv2 Licence - -find_library( - utf8_range_LIBRARY - NAMES libutf8_range utf8_range - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - utf8_validity_LIBRARY - NAMES libutf8_validity utf8_validity - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Utf8 REQUIRED_VARS utf8_range_LIBRARY utf8_validity_LIBRARY -) - -if (Utf8_FOUND AND NOT TARGET Utf8::utf8_range) - add_library(Utf8::utf8_range UNKNOWN IMPORTED) - set_target_properties( - Utf8::utf8_range PROPERTIES IMPORTED_LOCATION "${utf8_range_LIBRARY}" - ) -endif () - -if (Utf8_FOUND AND NOT TARGET Utf8::utf8_validity) - add_library(Utf8::utf8_validity UNKNOWN IMPORTED) - set_target_properties( - Utf8::utf8_validity PROPERTIES IMPORTED_LOCATION "${utf8_validity_LIBRARY}" - ) -endif () - -mark_as_advanced(utf8_range_LIBRARY utf8_validity_LIBRARY) diff --git a/cmake/FindWebP.cmake b/cmake/FindWebP.cmake deleted file mode 100644 index b98942a10..000000000 --- a/cmake/FindWebP.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# GPLv2 Licence - -find_path( - WebP_INCLUDE_DIR - webp/encode.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - WebP_LIBRARY - NAMES webp libwebp - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_library( - WebP_sharpyuv_LIBRARY - NAMES sharpyuv libsharpyuv - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - WebP REQUIRED_VARS WebP_LIBRARY WebP_sharpyuv_LIBRARY WebP_INCLUDE_DIR -) - -if (WebP_FOUND AND NOT TARGET WebP::WebP) - add_library(WebP::WebP UNKNOWN IMPORTED) - set_target_properties( - WebP::WebP PROPERTIES IMPORTED_LOCATION "${WebP_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${WebP_INCLUDE_DIR}" - ) - - add_library(WebP::Sharpyuv UNKNOWN IMPORTED) - set_target_properties( - WebP::Sharpyuv PROPERTIES IMPORTED_LOCATION "${WebP_sharpyuv_LIBRARY}" - ) -endif () - -mark_as_advanced(WebP_LIBRARY WebP_sharpyuv_LIBRARY WebP_INCLUDE_DIR) diff --git a/cmake/FindXml2.cmake b/cmake/FindXml2.cmake deleted file mode 100644 index 4421b9d42..000000000 --- a/cmake/FindXml2.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# GPLv2 Licence - -find_library( - Xml2_LIBRARY - NAMES xml2 libxml2 - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Xml2 REQUIRED_VARS Xml2_LIBRARY) - -if (Xml2_FOUND AND NOT TARGET Xml2::Xml2) - add_library(Xml2::Xml2 UNKNOWN IMPORTED) - set_target_properties(Xml2::Xml2 PROPERTIES IMPORTED_LOCATION "${Xml2_LIBRARY}") -endif () - -mark_as_advanced(Xml2_LIBRARY) diff --git a/cmake/FindZLIB.cmake b/cmake/FindZLIB.cmake index 31efa027a..2c40aabc3 100644 --- a/cmake/FindZLIB.cmake +++ b/cmake/FindZLIB.cmake @@ -3,8 +3,6 @@ find_library( ZLIB_LIBRARY NAMES z zlib libz - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH ) find_package_handle_standard_args(ZLIB REQUIRED_VARS ZLIB_LIBRARY) diff --git a/cmake/FindZXing.cmake b/cmake/FindZXing.cmake deleted file mode 100644 index f01b4ef8f..000000000 --- a/cmake/FindZXing.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - ZXing_INCLUDE_DIR - ZXing/ZXVersion.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - ZXing_LIBRARY - NAMES ZXing - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(ZXing REQUIRED_VARS ZXing_LIBRARY ZXing_INCLUDE_DIR) - -if (ZXing_FOUND AND NOT TARGET ZXing::ZXing) - add_library(ZXing::ZXing STATIC IMPORTED) - set_target_properties( - ZXing::ZXing PROPERTIES IMPORTED_LOCATION "${ZXing_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${ZXing_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(ZXing_LIBRARY ZXing_INCLUDE_DIR) diff --git a/cmake/FindZip.cmake b/cmake/FindZip.cmake deleted file mode 100644 index e00c7b371..000000000 --- a/cmake/FindZip.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Zip_INCLUDE_DIR - zip.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Zip_LIBRARY - NAMES zip - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Zip REQUIRED_VARS Zip_LIBRARY Zip_INCLUDE_DIR) - -if (Zip_FOUND AND NOT TARGET Zip::Zip) - add_library(Zip::Zip UNKNOWN IMPORTED) - set_target_properties( - Zip::Zip PROPERTIES IMPORTED_LOCATION "${Zip_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Zip_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Zip_LIBRARY Zip_INCLUDE_DIR) diff --git a/cmake/FindZstd.cmake b/cmake/FindZstd.cmake deleted file mode 100644 index 5ee36b99b..000000000 --- a/cmake/FindZstd.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# GPLv2 Licence - -find_path( - Zstd_INCLUDE_DIR - zstd.h - "${INPUT_SDK_PATH_MULTI}/include" - NO_DEFAULT_PATH -) - -find_library( - Zstd_LIBRARY - NAMES zstd libzstd - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args(Zstd REQUIRED_VARS Zstd_LIBRARY Zstd_INCLUDE_DIR) - -if (Zstd_FOUND AND NOT TARGET Zstd::Zstd) - add_library(Zstd::Zstd UNKNOWN IMPORTED) - set_target_properties( - Zstd::Zstd PROPERTIES IMPORTED_LOCATION "${Zstd_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Zstd_INCLUDE_DIR}" - ) -endif () - -mark_as_advanced(Zstd_LIBRARY Zstd_INCLUDE_DIR) diff --git a/scripts/update_all_versions.bash b/scripts/update_all_versions.bash index 47dac957c..5f8b38b6c 100755 --- a/scripts/update_all_versions.bash +++ b/scripts/update_all_versions.bash @@ -34,4 +34,10 @@ echo "patching $CITATION_FILE" sed -i.orig -E "s|cff-version: [0-9]+\.[0-9]+\.[0-9]+|cff-version: $MAJOR\.$MINOR\.$BUILD|g" $CITATION_FILE rm -f $CITATION_FILE.orig -echo "patching done" +# vcpkg.json +VCPKG_FILE=$DIR/../vcpkg.json +echo "patching $VCPKG_FILE" +sed -i.orig -E "s|\"version\": \"[0-9]+\.[0-9]+\.[0-9]+\"|\"version\": \"$MAJOR\.$MINOR\.$BUILD\"|g" $VCPKG_FILE +rm -f $CITATION_FILE.orig + +echo "patching done" \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 000000000..0c083a6ef --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,50 @@ +{ + "vcpkg-configuration": { + "overlay-ports": [ + "vcpkg/ports" + ], + "overlay-triplets": [ + "vcpkg/triplets" + ] + }, + "name": "merginmaps-mobile-app", + "description": "Collect. Share. Publish.", + "version": "2025.2.0", + "dependencies": [ + { + "name": "sqlite3", + "default-features": false, + "features": [ "rtree", "json1", "fts3" ] + }, + { + "name": "exiv2", + "features": ["xmp"] + }, + { + "name": "proj", + "default-features": false, + "features": ["tiff"] + }, + { + "name": "libspatialite", + "default-features": false, + "features": ["freexl"] + }, + { + "name": "tiff", + "default-features": false, + "features": ["webp", "zip", "lzma", "jpeg", "zstd"] + }, + { + "name": "kdab-openssl", + "platform": "android" + }, + "geodiff", + "nu-book-zxing-cpp", + "gdal", + "qt6", + "qca-qt6", + "qtkeychain-qt6", + "qgis-qt6" + ] +} diff --git a/vcpkg/ports/gdal/cmake-project-include.cmake b/vcpkg/ports/gdal/cmake-project-include.cmake new file mode 100644 index 000000000..409b7b1a6 --- /dev/null +++ b/vcpkg/ports/gdal/cmake-project-include.cmake @@ -0,0 +1,13 @@ +if(GDAL_USE_KEA) + find_package(Kealib CONFIG REQUIRED) + add_library(KEA::KEA ALIAS Kealib::Kealib) + set(GDAL_CHECK_PACKAGE_KEA_NAMES Kealib CACHE INTERNAL "vcpkg") + set(GDAL_CHECK_PACKAGE_KEA_TARGETS Kealib::Kealib CACHE INTERNAL "vcpkg") +endif() + +if(GDAL_USE_WEBP) + find_package(WebP CONFIG REQUIRED) + add_library(WEBP::WebP ALIAS WebP::webp) + set(GDAL_CHECK_PACKAGE_WebP_NAMES WebP CACHE INTERNAL "vcpkg") + set(GDAL_CHECK_PACKAGE_WebP_TARGETS WebP::webp CACHE INTERNAL "vcpkg") +endif() diff --git a/vcpkg/ports/gdal/find-link-libraries.patch b/vcpkg/ports/gdal/find-link-libraries.patch new file mode 100644 index 000000000..a802e4264 --- /dev/null +++ b/vcpkg/ports/gdal/find-link-libraries.patch @@ -0,0 +1,109 @@ +diff --git a/cmake/modules/packages/FindFreeXL.cmake b/cmake/modules/packages/FindFreeXL.cmake +index 6c86fb8..0634412 100644 +--- a/cmake/modules/packages/FindFreeXL.cmake ++++ b/cmake/modules/packages/FindFreeXL.cmake +@@ -37,7 +37,15 @@ include(SelectLibraryConfigurations) + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_FREEXL QUIET freexl) ++ pkg_check_modules(PC_FREEXL QUIET IMPORTED_TARGET freexl) ++endif() ++if(PC_FREEXL_FOUND) ++ set(FREEXL_INCLUDE_DIR "${PC_FREEXL_INCLUDE_DIRS}" CACHE STRING "") ++ set(FREEXL_LIBRARY "${PC_FREEXL_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET FREEXL::freexl) ++ add_library(FREEXL::freexl INTERFACE IMPORTED) ++ set_target_properties(FREEXL::freexl PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_FREEXL) ++ endif() + endif() + + find_path(FREEXL_INCLUDE_DIR +diff --git a/cmake/modules/packages/FindOpenJPEG.cmake b/cmake/modules/packages/FindOpenJPEG.cmake +index c697484..6e83222 100644 +--- a/cmake/modules/packages/FindOpenJPEG.cmake ++++ b/cmake/modules/packages/FindOpenJPEG.cmake +@@ -32,9 +32,18 @@ endfunction() + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_OPENJPEG QUIET libopenjp2) ++ pkg_check_modules(PC_OPENJPEG QUIET IMPORTED_TARGET libopenjp2) + set(OpenJPEG_VERSION_STRING ${PC_OPENJPEG_VERSION}) + endif() ++if(PC_OPENJPEG_FOUND) ++ set(OPENJPEG_INCLUDE_DIR "${PC_OPENJPEG_INCLUDE_DIRS}" CACHE STRING "") ++ set(OPENJPEG_LIBRARY "${PC_OPENJPEG_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET OPENJPEG::OpenJPEG) ++ add_library(OPENJPEG::OpenJPEG INTERFACE IMPORTED) ++ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PC_OPENJPEG_INCLUDE_DIRS}") ++ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_OPENJPEG) ++ endif() ++endif() + + + find_path(OPENJPEG_INCLUDE_DIR opj_config.h +diff --git a/cmake/modules/packages/FindPoppler.cmake b/cmake/modules/packages/FindPoppler.cmake +index 3807ec0..8059eb4 100644 +--- a/cmake/modules/packages/FindPoppler.cmake ++++ b/cmake/modules/packages/FindPoppler.cmake +@@ -42,11 +42,19 @@ This module defines the following variables: + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_Poppler QUIET poppler) ++ pkg_check_modules(PC_Poppler QUIET IMPORTED_TARGET poppler) + if(PC_Poppler_VERSION) + set(Poppler_VERSION_STRING ${PC_Poppler_VERSION}) + endif() + endif() ++if(PC_Poppler_FOUND) ++ find_path(Poppler_INCLUDE_DIR NAMES Object.h PATHS ${PC_Poppler_INCLUDE_DIRS} NO_DEFAULT_PATH) ++ set(Poppler_LIBRARY "${PC_Poppler_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET Poppler::Poppler) ++ add_library(Poppler::Poppler INTERFACE IMPORTED) ++ set_target_properties(Poppler::Poppler PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler) ++ endif() ++endif() + find_path(Poppler_INCLUDE_DIR NAMES "poppler-config.h" "cpp/poppler-version.h" "qt5/poppler-qt5.h" "qt4/poppler-qt4.h" + "glib/poppler.h" + HINTS ${PC_Poppler_INCLUDE_DIRS} +@@ -77,6 +85,15 @@ endforeach() + foreach(_comp IN LISTS Poppler_known_components) + list(FIND Poppler_FIND_COMPONENTS "${_comp}" _nextcomp) + if(_nextcomp GREATER -1) ++ pkg_check_modules(PC_Poppler_${_comp} QUIET IMPORTED_TARGET ${Poppler_${_comp}_pkg_config}) ++ if(PC_Poppler_${_comp}_FOUND) ++ set(Poppler_${_comp}_INCLUDE_DIR "${PC_Poppler_${_comp}_INCLUDE_DIRS}" CACHE STRING "") ++ set(Poppler_${_comp}_LIBRARY "${PC_Poppler_${_comp}_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET Poppler::Poppler_${_comp}) ++ add_library(Poppler::${_comp} INTERFACE IMPORTED) ++ set_target_properties(Poppler::${_comp} PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler_${_comp}) ++ endif() ++ endif() + find_path(Poppler_${_comp}_INCLUDE_DIR + NAMES ${Poppler_${_comp}_header} + PATH_SUFFIXES poppler +diff --git a/cmake/modules/packages/FindSPATIALITE.cmake b/cmake/modules/packages/FindSPATIALITE.cmake +index 00612b0..6388719 100644 +--- a/cmake/modules/packages/FindSPATIALITE.cmake ++++ b/cmake/modules/packages/FindSPATIALITE.cmake +@@ -38,9 +38,17 @@ endif() + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_SPATIALITE QUIET spatialite) ++ pkg_check_modules(PC_SPATIALITE QUIET IMPORTED_TARGET spatialite) + set(SPATIALITE_VERSION_STRING ${PC_SPATIALITE_VERSION}) + endif() ++if(PC_SPATIALITE_FOUND) ++ set(SPATIALITE_INCLUDE_DIR "${PC_SPATIALITE_INCLUDE_DIRS}" CACHE STRING "") ++ set(SPATIALITE_LIBRARY "${PC_SPATIALITE_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET SPATIALITE::SPATIALITE) ++ add_library(SPATIALITE::SPATIALITE INTERFACE IMPORTED) ++ set_target_properties(SPATIALITE::SPATIALITE PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_SPATIALITE) ++ endif() ++endif() + + find_path(SPATIALITE_INCLUDE_DIR + NAMES spatialite.h diff --git a/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch b/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch new file mode 100644 index 000000000..bf159fce5 --- /dev/null +++ b/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/helpers/GdalDriverHelper.cmake b/cmake/helpers/GdalDriverHelper.cmake +index 838f0fd..380e20d 100644 +--- a/cmake/helpers/GdalDriverHelper.cmake ++++ b/cmake/helpers/GdalDriverHelper.cmake +@@ -248,6 +248,10 @@ function(gdal_target_interfaces _TARGET) + if (_res) + target_compile_options(${_TARGET} PRIVATE ${_res}) + endif () ++ get_property(_res TARGET ${_LIB} PROPERTY INTERFACE_LINK_LIBRARIES) ++ if (_res) ++ gdal_target_interfaces(${_TARGET} ${_res}) ++ endif () + endif () + endforeach () + endfunction() diff --git a/vcpkg/ports/gdal/libkml.patch b/vcpkg/ports/gdal/libkml.patch new file mode 100644 index 000000000..ef25d06de --- /dev/null +++ b/vcpkg/ports/gdal/libkml.patch @@ -0,0 +1,46 @@ +diff --git a/cmake/modules/packages/FindLibKML.cmake b/cmake/modules/packages/FindLibKML.cmake +index 9418247..589b83d 100644 +--- a/cmake/modules/packages/FindLibKML.cmake ++++ b/cmake/modules/packages/FindLibKML.cmake +@@ -56,6 +56,8 @@ find_library(LIBKML_BASE_LIBRARY + HINTS ${PC_LIBKML_LIBRARY_DIRS} ) + mark_as_advanced(LIBKML_BASE_LIBRARY) + ++cmake_policy(PUSH) ++cmake_policy(SET CMP0057 NEW) + set(libkml_known_components DOM CONVENIENCE ENGINE REGIONATOR) + foreach(_comp IN LISTS libkml_known_components) + if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) +@@ -99,21 +101,20 @@ find_package_handle_standard_args(LibKML + if(LIBKML_FOUND) + set(LIBKML_INCLUDE_DIRS "${LIBKML_INCLUDE_DIR}") + set(LIBKML_LIBRARIES "${LIBKML_BASE_LIBRARY}") ++ find_package(LibKML CONFIG REQUIRED) + if(NOT TARGET LIBKML::LibKML) +- add_library(LIBKML::LibKML UNKNOWN IMPORTED) ++ add_library(LIBKML::LibKML INTERFACE IMPORTED) + set_target_properties(LIBKML::LibKML PROPERTIES +- INTERFACE_INCLUDE_DIRECTORIES "${LIBKML_INCLUDE_DIR}" +- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" +- IMPORTED_LOCATION "${LIBKML_BASE_LIBRARY}") ++ INTERFACE_LINK_LIBRARIES kmlbase) + endif() + foreach(_comp IN LISTS libkml_known_components) + if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) ++ string(TOLOWER ${_comp} _name) + list(APPEND LIBKML_LIBRARIES "${LIBKML_${_comp}_LIBRARY}") + if(NOT TARGET LIBKML::${_comp}) +- add_library(LIBKML::${_comp} UNKNOWN IMPORTED) ++ add_library(LIBKML::${_comp} INTERFACE IMPORTED) + set_target_properties(LIBKML::${_comp} PROPERTIES +- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" +- IMPORTED_LOCATION "${LIBKML_${_comp}_LIBRARY}") ++ INTERFACE_LINK_LIBRARIES kml${_name}) + endif() + endif() + endforeach() +@@ -129,3 +130,4 @@ if(LIBKML_FOUND) + endif() + endforeach() + endif() ++cmake_policy(POP) diff --git a/vcpkg/ports/gdal/portfile.cmake b/vcpkg/ports/gdal/portfile.cmake new file mode 100644 index 000000000..fbced9391 --- /dev/null +++ b/vcpkg/ports/gdal/portfile.cmake @@ -0,0 +1,148 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OSGeo/gdal + REF "v${VERSION}" # keep up to date with vcpkg-overlay/libjpeg-turbo version + SHA512 c974977789092058540ace0e9192a17b0f593e770822a885181ec6eed4323e2f7a7a61963667ae8c9c8c8c0d2d8fb80d194ab4d918e6d4851f39abd1e1c948bc + HEAD_REF master + PATCHES + find-link-libraries.patch + fix-gdal-target-interfaces.patch + libkml.patch + target-is-valid.patch +) + +# `vcpkg clean` stumbles over one subdir +file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") + +# Avoid abseil, no matter if vcpkg or system +vcpkg_replace_string("${SOURCE_PATH}/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h" [[__has_include("absl/strings/string_view.h")]] "(0)") + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_PNG_INTERNAL=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_JSONC_INTERNAL=ON) + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ICONV=ON) +if(GDAL_USE_ICONV AND VCPKG_TARGET_IS_WINDOWS) + list(APPEND FEATURE_OPTIONS -D_ICONV_SECOND_ARGUMENT_IS_NOT_CONST=ON) +endif() + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBXML2=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_TIFF=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_CURL=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_WEBP=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_SQLITE3=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOS=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOTIFF=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_SPATIALITE=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_EXPAT=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZLIB=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_FREEXL=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_JPEG=ON) + + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_KEA=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_POSTGRESQL=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_PCRE2=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_GIF=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_OPENJPEG=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_CFITSIO=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_HDF5=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_MYSQL=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_POPPLER=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_MSSQL_ODBC=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZSTD=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBKML=OFF) + +# Compatibility with older Android versions https://github.com/OSGeo/gdal/pull/5941 +if(VCPKG_TARGET_IS_ANDROID AND ANRDOID_PLATFORM VERSION_LESS 24 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) + list(APPEND FEATURE_OPTIONS -DBUILD_WITHOUT_64BIT_OFFSET=ON) +endif() + +# we want gdalinfo/ogrinfo on macOS to generate supported formats list +if(VCPKG_TARGET_IS_OSX) + list(APPEND FEATURE_OPTIONS -DBUILD_APPS=ON) +else() + list(APPEND FEATURE_OPTIONS -DBUILD_APPS=OFF) +endif() + +string(REPLACE "dynamic" "" qhull_target "Qhull::qhull${VCPKG_LIBRARY_LINKAGE}_r") + +# PCIDSK does not add compile interface defininions! +# do this instead of patching for now +# https://github.com/OSGeo/gdal/blob/af5b75ecc6b8d3cef36f2b6fecf085319d39a546/frmts/pcidsk/sdk/CMakeLists.txt#L84 +set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") +set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # for host pkgconf in PATH + ${FEATURE_OPTIONS} + -DBUILD_DOCS=OFF + -DBUILD_PYTHON_BINDINGS=OFF + -DBUILD_TESTING=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_CSharp=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON + -DGDAL_USE_INTERNAL_LIBS=OFF + -DGDAL_USE_EXTERNAL_LIBS=OFF + -DGDAL_BUILD_OPTIONAL_DRIVERS=ON + -DOGR_BUILD_OPTIONAL_DRIVERS=ON + -DGDAL_CHECK_PACKAGE_MySQL_NAMES=unofficial-libmariadb + -DGDAL_CHECK_PACKAGE_MySQL_TARGETS=unofficial::libmariadb + -DMYSQL_LIBRARIES=unofficial::libmariadb + -DGDAL_CHECK_PACKAGE_NetCDF_NAMES=netCDF + -DGDAL_CHECK_PACKAGE_NetCDF_TARGETS=netCDF::netcdf + -DGDAL_CHECK_PACKAGE_QHULL_NAMES=Qhull + "-DGDAL_CHECK_PACKAGE_QHULL_TARGETS=${qhull_target}" + "-DQHULL_LIBRARY=${qhull_target}" + -DCMAKE_PROJECT_INCLUDE="${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" + OPTIONS_DEBUG + -DBUILD_APPS=OFF + MAYBE_UNUSED_VARIABLES + QHULL_LIBRARY +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gdal) +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/gdal/GDALConfig.cmake" + "include(CMakeFindDependencyMacro)" + "include(CMakeFindDependencyMacro) +# gdal needs a pkg-config tool. A host dependency provides pkgconf. +get_filename_component(vcpkg_host_prefix \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" ABSOLUTE) +list(APPEND CMAKE_PROGRAM_PATH \"\${vcpkg_host_prefix}/tools/pkgconf\")" +) + +if(VCPKG_TARGET_IS_OSX) + vcpkg_copy_tools( + TOOL_NAMES + gdalinfo + ogrinfo + AUTO_CLEAN + ) +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/gdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/gdal-config") + +file(GLOB bin_files "${CURRENT_PACKAGES_DIR}/bin/*") +if(NOT bin_files) + file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/bin" + "${CURRENT_PACKAGES_DIR}/debug/bin" + ) +endif() + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_PACKAGES_DIR}\"" "") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/gdal/target-is-valid.patch b/vcpkg/ports/gdal/target-is-valid.patch new file mode 100644 index 000000000..10f3dcfcf --- /dev/null +++ b/vcpkg/ports/gdal/target-is-valid.patch @@ -0,0 +1,21 @@ +diff --git a/cmake/helpers/CheckDependentLibrariesCommon.cmake b/cmake/helpers/CheckDependentLibrariesCommon.cmake +index ebb3538..a4a6d69 100644 +--- a/cmake/helpers/CheckDependentLibrariesCommon.cmake ++++ b/cmake/helpers/CheckDependentLibrariesCommon.cmake +@@ -41,6 +41,7 @@ endif() + # https://github.com/OSGeo/gdal/issues/5324 + function (gdal_check_target_is_valid target res_var) + get_target_property(_interface_include_directories ${target} "INTERFACE_INCLUDE_DIRECTORIES") ++ get_target_property(_type ${target} "TYPE") + if(_interface_include_directories) + foreach(_dir IN LISTS _interface_include_directories) + if(NOT EXISTS "${_dir}") +@@ -54,7 +55,7 @@ function (gdal_check_target_is_valid target res_var) + # property, but a GeoTIFF_INCLUDE_DIRS variable. + set_target_properties(${target} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GeoTIFF_INCLUDE_DIRS}") +- else() ++ elseif(NOT _type STREQUAL "INTERFACE" AND _type STREQUAL "ALIAS") + message(WARNING "Target ${target} has no INTERFACE_INCLUDE_DIRECTORIES property. Ignoring that target.") + set(${res_var} FALSE PARENT_SCOPE) + return() diff --git a/vcpkg/ports/gdal/usage b/vcpkg/ports/gdal/usage new file mode 100644 index 000000000..6982a9a24 --- /dev/null +++ b/vcpkg/ports/gdal/usage @@ -0,0 +1,4 @@ +The package GDAL provides CMake targets: + + find_package(GDAL CONFIG REQUIRED) + target_link_libraries(main PRIVATE GDAL::GDAL) diff --git a/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..5b70b673b --- /dev/null +++ b/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,23 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0054 NEW) + +list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") +list(APPEND ARGS "CONFIG") +# The current port version should satisfy GDAL 3.0 ... 3.5 +list(GET ARGS 1 vcpkg_gdal_maybe_version) +if(vcpkg_gdal_maybe_version MATCHES "(^3\$|^3[.][0-5])") + list(REMOVE_AT ARGS "1") +endif() +unset(vcpkg_gdal_maybe_version) +_find_package(${ARGS} CONFIG) +if(GDAL_FOUND) + get_filename_component(vcpkg_gdal_prefix "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) + set(GDAL_INCLUDE_DIR "${vcpkg_gdal_prefix}/include" CACHE INTERNAL "") + set(GDAL_INCLUDE_DIRS "${GDAL_INCLUDE_DIR}") + set(GDAL_LIBRARY GDAL::GDAL CACHE INTERNAL "") + set(GDAL_LIBRARIES "${GDAL_LIBRARY}") + unset(vcpkg_gdal_prefix) +endif() + +cmake_policy(POP) diff --git a/vcpkg/ports/gdal/vcpkg.json b/vcpkg/ports/gdal/vcpkg.json new file mode 100644 index 000000000..335ff27ef --- /dev/null +++ b/vcpkg/ports/gdal/vcpkg.json @@ -0,0 +1,39 @@ +{ + "name": "gdal", + "version-semver": "3.10.2", + "port-version": 0, + "description": "The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data", + "homepage": "https://gdal.org", + "license": null, + "supports": "!uwp", + "dependencies": [ + "proj", + "tiff", + "zlib", + "sqlite3", + "curl", + "geos", + "freexl", + "libspatialindex", + "libspatialite", + "protobuf", + "exiv2", + "libiconv", + "libxml2", + "libgeotiff", + "expat", + "libjpeg-turbo", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true + } + ] +} diff --git a/vcpkg/ports/geodiff/portfile.cmake b/vcpkg/ports/geodiff/portfile.cmake new file mode 100644 index 000000000..3142822ad --- /dev/null +++ b/vcpkg/ports/geodiff/portfile.cmake @@ -0,0 +1,37 @@ +# Be sure to update both of these versions together. +set(GEODIFF_VERSION 2.0.2) +set(GEODIFF_HASH 290f10ec1a0d419d13996e915d02b7d226f23359c2745a72a1a286d439bed3afdf536d5bb8771c3d4fb3df2d56ac5c0d4c7f178ee31493f4bf02d597c8b9a878) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO MerginMaps/geodiff + REF ${GEODIFF_VERSION} + SHA512 ${GEODIFF_HASH} + HEAD_REF master +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND GEODIFF_LINK_OPTIONS -DBUILD_STATIC=ON) + list(APPEND GEODIFF_LINK_OPTIONS -DBUILD_SHARED=OFF) +else() + list(APPEND GEODIFF_LINK_OPTIONS -DBUILD_STATIC=OFF) + list(APPEND GEODIFF_LINK_OPTIONS -DBUILD_SHARED=ON) +endif() + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/geodiff + OPTIONS + -DENABLE_TESTS=OFF + -DBUILD_TOOLS=OFF + -DWITH_POSTGRESQL=OFF + ${GEODIFF_LINK_OPTIONS} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "Geodiff is MIT licensed\n") +configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake ${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake @ONLY) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) \ No newline at end of file diff --git a/vcpkg/ports/geodiff/usage b/vcpkg/ports/geodiff/usage new file mode 100644 index 000000000..b77f14811 --- /dev/null +++ b/vcpkg/ports/geodiff/usage @@ -0,0 +1,4 @@ +The package Geodiff provides CMake targets: + + find_package(Geodiff CONFIG REQUIRED) + target_link_libraries(main PRIVATE Geodiff::Geodiff) diff --git a/vcpkg/ports/geodiff/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/geodiff/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..c28a31201 --- /dev/null +++ b/vcpkg/ports/geodiff/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,64 @@ +include(SelectLibraryConfigurations) +select_library_configurations(Geodiff) + +find_path(Geodiff_INCLUDE_DIR + NAMES geodiff.h + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" + NO_DEFAULT_PATH +) + +if(NOT Geodiff_LIBRARY) + find_library(Geodiff_LIBRARY_RELEASE NAMES geodiff + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" + NO_DEFAULT_PATH + ) + find_library(Geodiff_LIBRARY_DEBUG NAMES geodiff + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" + NO_DEFAULT_PATH + ) + select_library_configurations(Geodiff) + mark_as_advanced(Geodiff_LIBRARY_RELEASE Geodiff_LIBRARY_DEBUG) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + Geodiff + REQUIRED_VARS Geodiff_LIBRARY Geodiff_INCLUDE_DIR +) + +find_package(unofficial-sqlite3 CONFIG QUIET) + +if (Geodiff_FOUND AND NOT TARGET Geodiff::Geodiff) + add_library(Geodiff::Geodiff UNKNOWN IMPORTED) + set_target_properties( Geodiff::Geodiff PROPERTIES + INTERFACE_LINK_LIBRARIES unofficial::sqlite3::sqlite3 + ) + + if(Geodiff_INCLUDE_DIR) + set_target_properties(Geodiff::Geodiff PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${Geodiff_INCLUDE_DIR}" + ) + endif() + + if(EXISTS "${Geodiff_LIBRARY}") + set_target_properties(Geodiff::Geodiff PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${Geodiff_LIBRARY}") + endif() + + if(EXISTS "${Geodiff_LIBRARY_RELEASE}") + set_property(TARGET Geodiff::Geodiff APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(Geodiff::Geodiff PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" + IMPORTED_LOCATION_RELEASE "${Geodiff_LIBRARY_RELEASE}") + endif() + + if(EXISTS "${Geodiff_LIBRARY_DEBUG}") + set_property(TARGET Geodiff::Geodiff APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(Geodiff::Geodiff PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" + IMPORTED_LOCATION_DEBUG "${Geodiff_LIBRARY_DEBUG}") + endif() +endif () diff --git a/vcpkg/ports/geodiff/vcpkg.json b/vcpkg/ports/geodiff/vcpkg.json new file mode 100644 index 000000000..7381d738c --- /dev/null +++ b/vcpkg/ports/geodiff/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "geodiff", + "version": "2.0.2", + "port-version": 2, + "description": "Library for handling diffs for geospatial data", + "homepage": "https://github.com/MerginMaps/geodiff", + "license": "MIT", + "dependencies": [ + "sqlite3", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/json-c/pkgconfig.patch b/vcpkg/ports/json-c/pkgconfig.patch new file mode 100644 index 000000000..893406ed5 --- /dev/null +++ b/vcpkg/ports/json-c/pkgconfig.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ffb1db3dc..a82ed8619 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -273,7 +273,7 @@ install( + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + ) + +-if (UNIX OR MINGW OR CYGWIN) ++if (1) + SET(prefix ${CMAKE_INSTALL_PREFIX}) + # exec_prefix is prefix by default and CMake does not have the + # concept. diff --git a/vcpkg/ports/json-c/portfile.cmake b/vcpkg/ports/json-c/portfile.cmake new file mode 100644 index 000000000..d0893ebee --- /dev/null +++ b/vcpkg/ports/json-c/portfile.cmake @@ -0,0 +1,24 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO json-c/json-c + REF eae040a84a479ccad1d1c48314345c51ecf1a4a4 + SHA512 18d8a31b341830b04676cad13fbc0608fb75a323522161ac8fd0bb5058db82c1c261d504696a1e12f4b03eb0967632885580ff81d808adf2f1dff7e32d131ba0 + HEAD_REF master + PATCHES pkgconfig.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) +vcpkg_fixup_pkgconfig() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/vcpkg/ports/json-c/vcpkg.json b/vcpkg/ports/json-c/vcpkg.json new file mode 100644 index 000000000..ff61b336e --- /dev/null +++ b/vcpkg/ports/json-c/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "json-c", + "version-string": "2019-09-10", + "port-version": 2, + "description": "A JSON implementation in C", + "homepage": "https://github.com/json-c/json-c" +} diff --git a/vcpkg/ports/kdab-openssl/portfile.cmake b/vcpkg/ports/kdab-openssl/portfile.cmake new file mode 100644 index 000000000..a42acf2b3 --- /dev/null +++ b/vcpkg/ports/kdab-openssl/portfile.cmake @@ -0,0 +1,30 @@ +set(KDAB_OPENSSL_GIT_TAG "82c850cbc602ca4d20c82552e618b0a98b196f3c") + +# on Android we need openssl shared libraries for some QT network modules +if(NOT VCPKG_TARGET_IS_ANDROID) + message(FATAL_ERROR "KDAB-openssl shared libraries only needed on Android") +else() + vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/KDAB/android_openssl/archive/${KDAB_OPENSSL_GIT_TAG}.tar.gz" + FILENAME "kdab-openssl-${VERSION}.tar.gz" + SHA512 7f61c1fc0f6f38eac5da81234194b9fe5bcbf575c968ae90b8a734466aa818ce87b167defc4a60af166266bfafeaa03c6e6b8cb27fd39cdf214d464613f0c4d8 + ) + + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" + ) + + if (${TARGET_TRIPLET} STREQUAL "arm-android") + set(OPENSSL_ARCH "armeabi-v7a") + elseif (${TARGET_TRIPLET} STREQUAL "arm64-android") + set(OPENSSL_ARCH "arm64-v8a") + else() + message(FATAL_ERROR "KDAB-openssl unsupported platform ${TARGET_TRIPLET}") + endif() + + file(INSTALL ${SOURCE_PATH}/ssl_3/include/openssl/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/kdab-openssl/ ) + file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libssl_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) + file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libcrypto_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) +endif() diff --git a/vcpkg/ports/kdab-openssl/vcpkg.json b/vcpkg/ports/kdab-openssl/vcpkg.json new file mode 100644 index 000000000..6f16afda0 --- /dev/null +++ b/vcpkg/ports/kdab-openssl/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "kdab-openssl", + "version": "3.1.1", + "description": "OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols", + "homepage": "https://www.openssl.org", + "license": "Apache-2.0", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch b/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch new file mode 100644 index 000000000..0c90e50ef --- /dev/null +++ b/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch @@ -0,0 +1,14 @@ +diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h" +index 6dc011b..158ccdd 100644 +--- "a/lib/loop_wchar.h" ++++ "b/lib/loop_wchar.h" +@@ -37,7 +37,7 @@ + # include + # define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ + /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ +- extern size_t mbrtowc (); ++// extern size_t mbrtowc (); + # ifdef mbstate_t + # define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) + # define mbsinit(ps) 1 + \ No newline at end of file diff --git a/vcpkg/ports/libiconv/0003-Add-export.patch b/vcpkg/ports/libiconv/0003-Add-export.patch new file mode 100644 index 000000000..c8d131d2e --- /dev/null +++ b/vcpkg/ports/libiconv/0003-Add-export.patch @@ -0,0 +1,12 @@ +diff -uNr libiconv-1.16/libcharset/include/libcharset.h.in libiconv-1.16-work/libcharset/include/libcharset.h.in +--- libiconv-1.16/libcharset/include/libcharset.h.in 2018-09-17 19:07:42.000000000 +0300 ++++ libiconv-1.16-work/libcharset/include/libcharset.h.in 2019-12-04 17:15:50.000000000 +0300 +@@ -33,7 +33,7 @@ + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +-extern void libcharset_set_relocation_prefix (const char *orig_prefix, ++extern void LIBCHARSET_DLL_EXPORTED libcharset_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + + diff --git a/vcpkg/ports/libiconv/0004-ModuleFileName.patch b/vcpkg/ports/libiconv/0004-ModuleFileName.patch new file mode 100644 index 000000000..15ceb2a41 --- /dev/null +++ b/vcpkg/ports/libiconv/0004-ModuleFileName.patch @@ -0,0 +1,13 @@ +diff --git a/lib/relocatable.c b/lib/relocatable.c +index 89b6c27..1561894 100644 +--- a/lib/relocatable.c ++++ b/lib/relocatable.c +@@ -329,7 +329,7 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) + /* The DLL is being loaded into an application's address range. */ + static char location[MAX_PATH]; + +- if (!GetModuleFileName (module_handle, location, sizeof (location))) ++ if (!GetModuleFileNameA (module_handle, location, sizeof (location))) + /* Shouldn't happen. */ + return FALSE; + diff --git a/vcpkg/ports/libiconv/portfile.cmake b/vcpkg/ports/libiconv/portfile.cmake new file mode 100644 index 000000000..8bf88682c --- /dev/null +++ b/vcpkg/ports/libiconv/portfile.cmake @@ -0,0 +1,53 @@ +if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID AND NOT VCPKG_TARGET_IS_IOS) + set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/iconv") + file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") + return() +endif() + +set(LIBICONV_VERSION 1.16) + +vcpkg_download_distfile(ARCHIVE + URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" + FILENAME "libiconv-${LIBICONV_VERSION}.tar.gz" + SHA512 365dac0b34b4255a0066e8033a8b3db4bdb94b9b57a9dca17ebf2d779139fe935caf51a465d17fd8ae229ec4b926f3f7025264f37243432075e5583925bb77b7 +) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${LIBICONV_VERSION} + PATCHES + 0002-Config-for-MSVC.patch + 0003-Add-export.patch + 0004-ModuleFileName.patch +) + +if (NOT VCPKG_TARGET_IS_ANDROID) + list(APPEND OPTIONS --enable-relocatable) +endif() + +vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + DETERMINE_BUILD_TRIPLET + USE_WRAPPERS + OPTIONS + --enable-extra-encodings + --without-libiconv-prefix + --without-libintl-prefix + ${OPTIONS} +) +vcpkg_install_make() + +vcpkg_copy_pdbs() +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") + +set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}") # share contains unneeded doc files + +# Please keep, the default usage is broken +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libiconv/usage b/vcpkg/ports/libiconv/usage new file mode 100644 index 000000000..db47c33e8 --- /dev/null +++ b/vcpkg/ports/libiconv/usage @@ -0,0 +1,4 @@ +The package libiconv provides CMake targets: + + find_package(Iconv) + target_link_libraries(main PRIVATE Iconv::Iconv) diff --git a/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..8e25449ae --- /dev/null +++ b/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,21 @@ +include(SelectLibraryConfigurations) + +_find_package(${ARGS}) +if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) + find_path(CHARSET_INCLUDE_DIR NAMES "libcharset.h" HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") + find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug") + find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") + select_library_configurations(CHARSET) + if(NOT TARGET Iconv::Charset) + add_library(Iconv::Charset INTERFACE IMPORTED) + set_target_properties(Iconv::Charset PROPERTIES + INTERFACE_LINK_LIBRARIES "\$<\$>:${CHARSET_LIBRARY_RELEASE}>;\$<\$:${CHARSET_LIBRARY_DEBUG}>" + INTERFACE_INCLUDE_DIRECTORIES "${CHARSET_INCLUDE_DIRS}") + endif() + if(CHARSET_LIBRARIES) + list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES}) + if(TARGET Iconv::Iconv) + set_property(TARGET Iconv::Iconv APPEND PROPERTY INTERFACE_LINK_LIBRARIES Iconv::Charset) + endif() + endif() +endif() diff --git a/vcpkg/ports/libiconv/vcpkg.json b/vcpkg/ports/libiconv/vcpkg.json new file mode 100644 index 000000000..b567aee18 --- /dev/null +++ b/vcpkg/ports/libiconv/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "libiconv", + "version": "1.16", + "port-version": 13, + "description": "GNU Unicode text conversion", + "homepage": "https://www.gnu.org/software/libiconv/" +} diff --git a/vcpkg/ports/libjpeg-turbo/CMakeLists.txt b/vcpkg/ports/libjpeg-turbo/CMakeLists.txt new file mode 100644 index 000000000..e1fa17184 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/CMakeLists.txt @@ -0,0 +1,82 @@ +# see https://github.com/OSGeo/gdal/blob/master/frmts/jpeg/libjpeg/CMakeLists.txt +cmake_minimum_required(VERSION 3.6) +project(JPEG) + +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +add_library( + jpeg ${JPEG_BUILD_TYPE} + jcapimin.c + jchuff.h + jconfig.h + jdapimin.c + jdct.h + jdmarker.c + jdtrans.c + jidctflt.c + jmemmgr.c + jquant2.c + jcapistd.c + jcinit.c + jcparam.c + jdapistd.c + jddctmgr.c + jdmaster.c + jerror.c + jidctfst.c + jmemsys.h + jutils.c + jccoefct.c + jcmainct.c + jcphuff.c + jdatadst.c + jdhuff.c + jdmerge.c + jerror.h + jidctint.c + jmorecfg.h + jversion.h + jccolor.c + jcmarker.c + jcprepct.c + jdatasrc.c + jdhuff.h + jdphuff.c + jfdctflt.c + jidctred.c + jpegint.h + jcdctmgr.c + jcmaster.c + jcsample.c + jdcoefct.c + jdinput.c + jdpostct.c + jfdctfst.c + jinclude.h + jpeglib.h + jchuff.c + jcomapi.c + jctrans.c + jdcolor.c + jdmainct.c + jdsample.c + jfdctint.c + jmemnobs.c + jquant1.c) + +target_include_directories(jpeg PRIVATE $ $/..) +# target_compile_options(libjpeg PRIVATE ${GDAL_C_WARNING_FLAGS} ${GDAL_SOFTWARNFLAGS}) + +target_compile_definitions(jpeg PRIVATE -DDEFAULT_MAX_MEM=500000000L) +target_compile_definitions(jpeg PUBLIC -DRENAME_INTERNAL_LIBJPEG_SYMBOLS) + +# produce position independent code, default is on when building a shared library +# option(GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE "Set ON to produce -fPIC code" ${BUILD_SHARED_LIBS}) +# set_property(TARGET jpeg PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE}) +# target_sources(${GDAL_LIB_TARGET_NAME} PRIVATE $) + +configure_file(libjpeg.pc.in libjpeg.pc @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjpeg.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) + +INSTALL(TARGETS jpeg) +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include FILES_MATCHING PATTERN "*.h") \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/cpl_port.h b/vcpkg/ports/libjpeg-turbo/cpl_port.h new file mode 100644 index 000000000..30fe16696 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/cpl_port.h @@ -0,0 +1,13 @@ +#ifndef CPL_BASE_H_INCLUDED_TWEAKED +#define CPL_BASE_H_INCLUDED_TWEAKED + +#if defined(__GNUC__) && __GNUC__ >= 4 +/** Qualifier for an argument that is unused */ +# define CPL_UNUSED __attribute((__unused__)) +#else +/* TODO: add cases for other compilers */ +/** Qualifier for an argument that is unused */ +# define CPL_UNUSED +#endif + +#endif /* ndef CPL_BASE_H_INCLUDED_TWEAKED */ \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in b/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in new file mode 100644 index 000000000..ddc7882e7 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in @@ -0,0 +1,8 @@ +prefix=@CMAKE_INSTALL_PREFIX@ + +Name: libjpeg +Version: 6b +Description: jpeg with renamed symbols +URL: https://gdal.org +Libs: -L${prefix}/lib -ljpeg +Cflags: -I${prefix}/include -DRENAME_INTERNAL_JPEG_SYMBOLS \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/portfile.cmake b/vcpkg/ports/libjpeg-turbo/portfile.cmake new file mode 100644 index 000000000..6428bf1e5 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/portfile.cmake @@ -0,0 +1,34 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OSGeo/gdal + REF "v${VERSION}" # keep up to date with vcpkg-overlay/gdal version + SHA512 dfc7ccf5c1a3184fa93be762a880b7631faa4cd178cd72df8f5fd8a6296edafc56de2594617bebcb75ddf19ed4471dafcb574b22d7e9217dedfd7ea72c9247f2 + HEAD_REF master +) + +# `vcpkg clean` stumbles over one subdir +file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") + +file(REMOVE "${SOURCE_PATH}/frmts/jpeg/libjpeg/CMakeLists.txt") +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/cpl_port.h DESTINATION ${SOURCE_PATH}/frmts/jpeg/) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/libjpeg.pc.in DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="STATIC") +else() + list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="SHARED") +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/frmts/jpeg/libjpeg" + OPTIONS + ${LINK_OPTIONS} +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jpeg") +file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..28456a89f --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,19 @@ +find_path(JPEG_INCLUDE_DIRS NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) +find_library(JPEG_LIBRARY NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + JPEG + REQUIRED_VARS JPEG_LIBRARY JPEG_INCLUDE_DIRS +) + +if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) + add_library(JPEG::JPEG UNKNOWN IMPORTED) + set_target_properties(JPEG::JPEG PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${JPEG_LIBRARY}") + + set_target_properties(JPEG::JPEG PROPERTIES INTERFACE_COMPILE_OPTIONS "-DRENAME_INTERNAL_LIBJPEG_SYMBOLS") +endif() \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg.json b/vcpkg/ports/libjpeg-turbo/vcpkg.json new file mode 100644 index 000000000..f2113622e --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/vcpkg.json @@ -0,0 +1,22 @@ +{ + "name": "libjpeg-turbo", + "version-semver": "3.7.0", + "description": "JPEG image codec; taken from GDAL so on iOS it has renamed symbols and does not clash with Qt JPEG; this is NOT jpeg-turbo - name used so we do not need to patch all other libraries that uses JPEG", + "homepage": "https://gdal.org", + "license": null, + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true + } + ] +} diff --git a/vcpkg/ports/liblzma/add_support_ios.patch b/vcpkg/ports/liblzma/add_support_ios.patch new file mode 100644 index 000000000..79741639b --- /dev/null +++ b/vcpkg/ports/liblzma/add_support_ios.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 52439b3..0b5e371 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -574,6 +574,7 @@ if(HAVE_GETOPT_LONG) + + install(TARGETS xzdec + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xzdec) + + if(UNIX) +@@ -701,6 +702,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) + + install(TARGETS xz + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xz) + + if(UNIX) diff --git a/vcpkg/ports/liblzma/build-tools.patch b/vcpkg/ports/liblzma/build-tools.patch new file mode 100644 index 000000000..759345ef2 --- /dev/null +++ b/vcpkg/ports/liblzma/build-tools.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 03b8301..820d08e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -584,6 +584,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config.cmake" + COMPONENT liblzma_Development) + + ++if(BUILD_TOOLS) + ############################################################################# + # getopt_long + ############################################################################# +@@ -793,6 +794,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) + endforeach() + endif() + endif() ++endif() + + + ############################################################################# diff --git a/vcpkg/ports/liblzma/fix_config_include.patch b/vcpkg/ports/liblzma/fix_config_include.patch new file mode 100644 index 000000000..91dc4c13b --- /dev/null +++ b/vcpkg/ports/liblzma/fix_config_include.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 34c6aca00..7b3708ab2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -413,6 +413,7 @@ if(WIN32) + if(BUILD_SHARED_LIBS) + # Add the Windows resource file for liblzma.dll. + target_sources(liblzma PRIVATE src/liblzma/liblzma_w32res.rc) ++ target_include_directories(liblzma PRIVATE windows/vs2019) + + set_target_properties(liblzma PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" diff --git a/vcpkg/ports/liblzma/portfile.cmake b/vcpkg/ports/liblzma/portfile.cmake new file mode 100644 index 000000000..0fdc38dff --- /dev/null +++ b/vcpkg/ports/liblzma/portfile.cmake @@ -0,0 +1,86 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO tukaani-project/xz + REF "v${VERSION}" + SHA512 c28461123562564e030f3f733f078bc4c840e87598d9f4b718d4bca639120d8133f969c45d7bdc62f33f081d789ec0f14a1791fb7da18515682bfe3c0c7362e0 + HEAD_REF master + PATCHES + fix_config_include.patch + win_output_name.patch # Fix output name on Windows. Autotool build does not generate lib prefixed libraries on windows. + add_support_ios.patch # add install bundle info for support ios + build-tools.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + tools BUILD_TOOLS +) + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") + set(WASM_OPTIONS -DCMAKE_C_BYTE_ORDER=LITTLE_ENDIAN -DCMAKE_CXX_BYTE_ORDER=LITTLE_ENDIAN) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + ${WASM_OPTIONS} + -DBUILD_TESTING=OFF + -DCREATE_XZ_SYMLINKS=OFF + -DCREATE_LZMA_SYMLINKS=OFF + -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT= # using flags from (vcpkg) toolchain + MAYBE_UNUSED_VARIABLES + CMAKE_MSVC_DEBUG_INFORMATION_FORMAT + CREATE_XZ_SYMLINKS + CREATE_LZMA_SYMLINKS +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +set(exec_prefix "\${prefix}") +set(libdir "\${prefix}/lib") +set(includedir "\${prefix}/include") +set(PACKAGE_URL https://tukaani.org/xz/) +set(PACKAGE_VERSION 5.4.3) +if(NOT VCPKG_TARGET_IS_WINDOWS) + set(PTHREAD_CFLAGS -pthread) +endif() +set(prefix "${CURRENT_INSTALLED_DIR}") +configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/liblzma.pc" @ONLY) +if (NOT VCPKG_BUILD_TYPE) + set(prefix "${CURRENT_INSTALLED_DIR}/debug") + configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/liblzma.pc" @ONLY) +endif() +vcpkg_fixup_pkgconfig() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/liblzma) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "1") +else() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "0") +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/share/man" +) + +set(TOOLS xz xzdec) +foreach(_tool IN LISTS TOOLS) + if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + list(REMOVE_ITEM TOOLS ${_tool}) + endif() +endforeach() +if(TOOLS) + vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/liblzma/usage b/vcpkg/ports/liblzma/usage new file mode 100644 index 000000000..b1461c93f --- /dev/null +++ b/vcpkg/ports/liblzma/usage @@ -0,0 +1,9 @@ +liblzma is compatible with built-in CMake targets: + + find_package(LibLZMA REQUIRED) + target_link_libraries(main PRIVATE LibLZMA::LibLZMA) + +liblzma provides CMake targets: + + find_package(liblzma CONFIG REQUIRED) + target_link_libraries(main PRIVATE liblzma::liblzma) diff --git a/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..826cdba06 --- /dev/null +++ b/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,64 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +set(z_vcpkg_liblzma_fixup_needed 0) +if(NOT "CONFIG" IN_LIST ARGS AND NOT "NO_MODULE" IN_LIST ARGS AND NOT CMAKE_DISABLE_FIND_PACKAGE_LibLZMA) + get_filename_component(z_vcpkg_liblzma_prefix "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) + get_filename_component(z_vcpkg_liblzma_prefix "${z_vcpkg_liblzma_prefix}" DIRECTORY) + find_path(LIBLZMA_INCLUDE_DIR NAMES lzma.h PATHS "${z_vcpkg_liblzma_prefix}/include" NO_DEFAULT_PATH) + # liblzma doesn't use a debug postfix, but FindLibLZMA.cmake expects it + find_library(LIBLZMA_LIBRARY_RELEASE NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/lib" NO_DEFAULT_PATH) + find_library(LIBLZMA_LIBRARY_DEBUG NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/debug/lib" NO_DEFAULT_PATH) + unset(z_vcpkg_liblzma_prefix) + if(CMAKE_VERSION VERSION_LESS 3.16) + # Older versions of FindLibLZMA.cmake need a single lib in LIBLZMA_LIBRARY. + set(z_vcpkg_liblzma_fixup_needed 1) + set(LIBLZMA_LIBRARY "${LIBLZMA_LIBRARY_RELEASE}" CACHE INTERNAL "") + elseif(NOT TARGET LibLZMA::LibLZMA) + set(z_vcpkg_liblzma_fixup_needed 1) + endif() + # Known values, and required. Skip expensive tests. + set(LIBLZMA_HAS_AUTO_DECODER 1 CACHE INTERNAL "") + set(LIBLZMA_HAS_EASY_ENCODER 1 CACHE INTERNAL "") + set(LIBLZMA_HAS_LZMA_PRESET 1 CACHE INTERNAL "") +endif() + +_find_package(${ARGS}) + +if(z_vcpkg_liblzma_fixup_needed) + include(SelectLibraryConfigurations) + select_library_configurations(LIBLZMA) + if(NOT TARGET LibLZMA::LibLZMA) + # Backfill LibLZMA::LibLZMA to versions of cmake before 3.14 + add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED) + if(DEFINED LIBLZMA_INCLUDE_DIRS) + set_target_properties(LibLZMA::LibLZMA PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${LIBLZMA_INCLUDE_DIRS}") + endif() + set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(LibLZMA::LibLZMA PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" + IMPORTED_LOCATION_RELEASE "${LIBLZMA_LIBRARY_RELEASE}") + if(EXISTS "${LIBLZMA_LIBRARY}") + set_target_properties(LibLZMA::LibLZMA PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${LIBLZMA_LIBRARY}") + endif() + endif() + if(LIBLZMA_LIBRARY_DEBUG) + # Backfill debug variant to versions of cmake before 3.16 + set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBLZMA_LIBRARY_DEBUG}") + endif() +endif() +if(LIBLZMA_LIBRARIES AND NOT "Threads::Threads" IN_LIST LIBLZMA_LIBRARIES) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads) + list(APPEND LIBLZMA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) + if(TARGET LibLZMA::LibLZMA) + set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) + endif() +endif() +unset(z_vcpkg_liblzma_fixup_needed) +cmake_policy(POP) diff --git a/vcpkg/ports/liblzma/vcpkg.json b/vcpkg/ports/liblzma/vcpkg.json new file mode 100644 index 000000000..e9168357c --- /dev/null +++ b/vcpkg/ports/liblzma/vcpkg.json @@ -0,0 +1,23 @@ +{ + "name": "liblzma", + "version": "5.4.4", + "description": "Compression library with an API similar to that of zlib.", + "homepage": "https://tukaani.org/xz/", + "license": null, + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tools": { + "description": "Build tools", + "supports": "!windows, mingw" + } + } +} diff --git a/vcpkg/ports/liblzma/win_output_name.patch b/vcpkg/ports/liblzma/win_output_name.patch new file mode 100644 index 000000000..9a845bdba --- /dev/null +++ b/vcpkg/ports/liblzma/win_output_name.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0c6d4b7..62a824a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -868,8 +868,11 @@ set_target_properties(liblzma PROPERTIES + + # It's liblzma.so or liblzma.dll, not libliblzma.so or lzma.dll. + # Avoid the name lzma.dll because it would conflict with LZMA SDK. +- PREFIX "" ++ OUTPUT_NAME lzma + ) ++if(WIN32 AND NOT MINGW) ++ set_target_properties(liblzma PROPERTIES RUNTIME_OUTPUT_NAME liblzma) ++endif() + + # Create liblzma-config-version.cmake. + # diff --git a/vcpkg/ports/libpq/Makefile b/vcpkg/ports/libpq/Makefile new file mode 100644 index 000000000..67994f4ba --- /dev/null +++ b/vcpkg/ports/libpq/Makefile @@ -0,0 +1,54 @@ +subdir = . +top_builddir = . +include src/Makefile.global + +ifeq ($(LIBPQ_LIBRARY_TYPE), static) +LIBPQ_INSTALL_LIBS = install-stlib +endif + +ifeq ($(LIBPQ_LIBRARY_TYPE), shared) +ifeq ($(LIBPQ_USING_MINGW), yes) +# The import library name is the same as the static library name +EXTRA_TARGET = install-lib-static +endif +endif + +.PHONY: all +all: + $(MAKE) -C src/include + $(MAKE) -C src/common + $(MAKE) -C src/port + $(MAKE) -C src/interfaces/libpq all-$(LIBPQ_LIBRARY_TYPE)-lib + $(MAKE) -C src/interfaces/ecpg/include + $(MAKE) -C src/interfaces/ecpg/pgtypeslib + $(MAKE) -C src/interfaces/ecpg/ecpglib + $(MAKE) -C src/interfaces/ecpg/compatlib +ifeq ($(LIBPQ_ENABLE_TOOLS), yes) + $(MAKE) -C src/interfaces/ecpg/preproc + $(MAKE) -C src/fe_utils + $(MAKE) -C src/bin +else + $(MAKE) -C src/bin/pg_config +endif + +.PHONY: install-stlib +install-stlib: + $(MAKE) -C src/common install -o all + rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a' + $(MAKE) -C src/port install -o all + rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a' + +.PHONY: install +install: $(LIBPQ_INSTALL_LIBS) + $(MAKE) -C src/include install + $(MAKE) -C src/interfaces/libpq $(EXTRA_TARGET) install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib-pc install -o all -o install-lib + $(MAKE) -C src/interfaces/ecpg/include install + $(MAKE) -C src/interfaces/ecpg/pgtypeslib install + $(MAKE) -C src/interfaces/ecpg/ecpglib install + $(MAKE) -C src/interfaces/ecpg/compatlib install +ifeq ($(LIBPQ_ENABLE_TOOLS), yes) + $(MAKE) -C src/interfaces/ecpg/preproc install + $(MAKE) -C src/bin install +else + $(MAKE) -C src/bin/pg_config install +endif diff --git a/vcpkg/ports/libpq/android/unversioned_so.patch b/vcpkg/ports/libpq/android/unversioned_so.patch new file mode 100644 index 000000000..42096a367 --- /dev/null +++ b/vcpkg/ports/libpq/android/unversioned_so.patch @@ -0,0 +1,16 @@ +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index f94d59d1c597..8ca51ca03f75 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -183,6 +183,11 @@ endif + ifeq ($(PORTNAME), linux) + LINK.shared = $(COMPILER) -shared + ifdef soname ++ ifneq (,$(findstring linux-android,$(host_os))) ++ # Android uses unversioned shared libraries ++ shlib = $(shlib_bare) ++ soname = $(shlib_bare) ++ endif + LINK.shared += -Wl,-soname,$(soname) + endif + BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ diff --git a/vcpkg/ports/libpq/build-msvc.cmake b/vcpkg/ports/libpq/build-msvc.cmake new file mode 100644 index 000000000..34d969487 --- /dev/null +++ b/vcpkg/ports/libpq/build-msvc.cmake @@ -0,0 +1,80 @@ +function(build_msvc build_type source_path) + if(build_type STREQUAL "DEBUG") + set(vcpkg_configuration "Debug") + set(label "${TARGET_TRIPLET}-dbg") + set(packages_dir "${CURRENT_PACKAGES_DIR}/debug") + else() + set(vcpkg_configuration "Release") + set(label "${TARGET_TRIPLET}-rel") + set(packages_dir "${CURRENT_PACKAGES_DIR}") + endif() + + set(build_path "${CURRENT_BUILDTREES_DIR}/${label}") + file(REMOVE_RECURSE "${build_path}") + file(COPY "${source_path}/" DESTINATION "${build_path}") + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${build_path}/src/include/port/win32.h" "__declspec (dllimport)" "") + endif() + vcpkg_replace_string("${build_path}/src/tools/msvc/MSBuildProject.pm" "perl " "\"${PERL}\" ") + configure_file("${CURRENT_PORT_DIR}/libpq.props.in" "${build_path}/libpq.props" @ONLY) + configure_file("${CURRENT_PORT_DIR}/vcpkg-libs.props.in" "${build_path}/vcpkg-libs.props" @ONLY) + set(config "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n\n") + foreach(var IN ITEMS VCPKG_TARGET_ARCHITECTURE VCPKG_LIBRARY_LINKAGE VCPKG_CRT_LINKAGE) + string(APPEND config "\$config->{${var}} = \"${${var}}\";\n") + endforeach() + foreach(option IN ITEMS icu lz4 nls openssl python tcl xml xslt zlib zstd) + if(option IN_LIST FEATURES) + string(APPEND config "\$config->{${option}} = \"${CURRENT_INSTALLED_DIR}\";\n") + endif() + endforeach() + if("openssl" IN_LIST FEATURES) + file(STRINGS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/openssl.pc" OPENSSL_VERSION REGEX "Version:") + string(APPEND config "\$config->{openssl_version} = '${OPENSSL_VERSION}';\n") + endif() + string(APPEND config "\$config->{python_version} = '3.${PYTHON_VERSION_MINOR}';\n") + string(APPEND config "\$config->{tcl_version} = '90';\n") + file(WRITE "${build_path}/src/tools/msvc/config.pl" "${config}") + + set(build_in_parallel "-m") + set(build_targets libpq libecpg_compat) + set(install_target core) + if(HAS_TOOLS AND NOT build_type STREQUAL "DEBUG") + set(build_in_parallel "") # mitigate winflex races + set(build_targets client) + set(install_target client) + endif() + + string(REPLACE "x86" "Win32" platform "${VCPKG_TARGET_ARCHITECTURE}") + vcpkg_get_windows_sdk(VCPKG_TARGET_PLATFORM_VERSION) + set(ENV{MSBFLAGS} "\ + /p:Platform=${platform} \ + /p:PlatformToolset=${VCPKG_PLATFORM_TOOLSET} \ + /p:VCPkgLocalAppDataDisabled=true \ + /p:UseIntelMKL=No \ + /p:WindowsTargetPlatformVersion=${VCPKG_TARGET_PLATFORM_VERSION} \ + /p:VcpkgConfiguration=${vcpkg_configuration} \ + ${build_in_parallel} \ + /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets;${build_path}/vcpkg-libs.props\" \ + /p:VcpkgTriplet=${TARGET_TRIPLET} \ + /p:VcpkgCurrentInstalledDir=\"${CURRENT_INSTALLED_DIR}\" \ + /p:ForceImportAfterCppTargets=\"${build_path}/libpq.props\" \ + ") + + message(STATUS "Building ${label}") + foreach(target IN LISTS build_targets) + string(REPLACE "client" "" target "${target}") + vcpkg_execute_required_process( + COMMAND "${PERL}" build.pl ${build_type} ${target} + WORKING_DIRECTORY "${build_path}/src/tools/msvc" + LOGNAME "build-${target}-${label}" + ) + endforeach() + + message(STATUS "Installing ${label}") + vcpkg_execute_required_process( + COMMAND "${PERL}" install.pl "${packages_dir}" ${install_target} + WORKING_DIRECTORY "${build_path}/src/tools/msvc" + LOGNAME "install-${label}" + ) +endfunction() diff --git a/vcpkg/ports/libpq/libpq.props.in b/vcpkg/ports/libpq/libpq.props.in new file mode 100644 index 000000000..223e528fe --- /dev/null +++ b/vcpkg/ports/libpq/libpq.props.in @@ -0,0 +1,25 @@ + + + + + %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_DEBUG@ + + + %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG@ + + + %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ + + + + + %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_RELEASE@ + + + %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE@ + + + %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ + + + diff --git a/vcpkg/ports/libpq/portfile.cmake b/vcpkg/ports/libpq/portfile.cmake new file mode 100644 index 000000000..782205437 --- /dev/null +++ b/vcpkg/ports/libpq/portfile.cmake @@ -0,0 +1,160 @@ +vcpkg_download_distfile(ARCHIVE + URLS "https://ftp.postgresql.org/pub/source/v${VERSION}/postgresql-${VERSION}.tar.bz2" + FILENAME "postgresql-${VERSION}.tar.bz2" + SHA512 3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf +) + +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES + unix/installdirs.patch + unix/fix-configure.patch + unix/single-linkage.patch + unix/no-server-tools.patch + unix/mingw-install.patch + unix/python.patch + windows/macro-def.patch + windows/win_bison_flex.patch + windows/msbuild.patch + windows/spin_delay.patch + android/unversioned_so.patch +) + +file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*") +string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}") +set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") + +if("client" IN_LIST FEATURES) + set(HAS_TOOLS TRUE) +else() + set(HAS_TOOLS FALSE) +endif() + +set(required_programs PERL) +if(VCPKG_TARGET_IS_WINDOWS) + list(APPEND required_programs BISON FLEX) +endif() +foreach(program_name IN LISTS required_programs) + # Need to rename win_bison and win_flex to just bison and flex + vcpkg_find_acquire_program(${program_name}) + get_filename_component(program_dir ${${program_name}} DIRECTORY) + vcpkg_add_to_path(PREPEND "${program_dir}") +endforeach() + +vcpkg_cmake_get_vars(cmake_vars_file) +include("${cmake_vars_file}") + +if(VCPKG_DETECTED_MSVC) + if("nls" IN_LIST FEATURES) + vcpkg_acquire_msys(MSYS_ROOT PACKAGES gettext) + vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") + endif() + if("xml" IN_LIST FEATURES) + x_vcpkg_pkgconfig_get_modules( + PREFIX PC_LIBXML2 + MODULES --msvc-syntax libxml-2.0 + LIBS + ) + separate_arguments(LIBXML2_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXML2_LIBS_DEBUG}") + separate_arguments(LIBXML2_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXML2_LIBS_RELEASE}") + endif() + if("xslt" IN_LIST FEATURES) + x_vcpkg_pkgconfig_get_modules( + PREFIX PC_LIBXSLT + MODULES --msvc-syntax libxslt + LIBS + ) + separate_arguments(LIBXSLT_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXSLT_LIBS_DEBUG}") + separate_arguments(LIBXSLT_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXSLT_LIBS_RELEASE}") + endif() + + include("${CMAKE_CURRENT_LIST_DIR}/build-msvc.cmake") + if(NOT VCPKG_BUILD_TYPE) + build_msvc(DEBUG "${SOURCE_PATH}") + endif() + build_msvc(RELEASE "${SOURCE_PATH}") + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") + endif() + + if(HAS_TOOLS) + vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") + else() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") + endif() +else() + file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}") + + vcpkg_list(SET BUILD_OPTS) + foreach(option IN ITEMS icu lz4 nls openssl readline xml xslt zlib zstd) + if(option IN_LIST FEATURES) + list(APPEND BUILD_OPTS --with-${option}) + else() + list(APPEND BUILD_OPTS --without-${option}) + endif() + endforeach() + if("nls" IN_LIST FEATURES) + set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}") + if(VCPKG_TARGET_IS_ANDROID) + list(APPEND BUILD_OPTS [[LIBS=$LIBS -liconv]]) + endif() + endif() + if("python" IN_LIST FEATURES) + list(APPEND BUILD_OPTS --with-python=3.${PYTHON_VERSION_MINOR}) + vcpkg_find_acquire_program(PYTHON3) + list(APPEND BUILD_OPTS "PYTHON=${PYTHON3}") + endif() + if(VCPKG_TARGET_IS_ANDROID) # AND CMAKE_SYSTEM_VERSION LESS 26) + list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no) + endif() + if(VCPKG_DETECTED_CMAKE_OSX_SYSROOT) + list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") + endif() + vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + COPY_SOURCE + AUTOCONFIG + ADDITIONAL_MSYS_PACKAGES autoconf-archive + DIRECT_PACKAGES + "https://mirror.msys2.org/msys/x86_64/tzcode-2023c-1-x86_64.pkg.tar.zst" + 7550b843964744607f736a7138f10c6cd92489406a1b84ac71d9a9d8aa16bc69048aa1b24e1f49291b010347047008194c334ca9c632e17fa8245e85549e3c7a + OPTIONS + ${BUILD_OPTS} + OPTIONS_DEBUG + --enable-debug + ) + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(ENV{LIBPQ_LIBRARY_TYPE} shared) + else() + set(ENV{LIBPQ_LIBRARY_TYPE} static) + endif() + if(VCPKG_TARGET_IS_MINGW) + set(ENV{LIBPQ_USING_MINGW} yes) + endif() + if(HAS_TOOLS) + set(ENV{LIBPQ_ENABLE_TOOLS} yes) + endif() + vcpkg_install_make() + + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") +endif() + +vcpkg_fixup_pkgconfig() +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/doc" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/symbols" + "${CURRENT_PACKAGES_DIR}/debug/tools" + "${CURRENT_PACKAGES_DIR}/symbols" + "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" +) + +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") diff --git a/vcpkg/ports/libpq/unix/fix-configure.patch b/vcpkg/ports/libpq/unix/fix-configure.patch new file mode 100644 index 000000000..29c764635 --- /dev/null +++ b/vcpkg/ports/libpq/unix/fix-configure.patch @@ -0,0 +1,79 @@ +diff --git a/configure.ac b/configure.ac +index 7f97248..48ff1a1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,7 +19,8 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros + + AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) + +-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. ++cross_compiling=yes # Avoid conftest loading shared objects ++m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required. + Untested combinations of 'autoconf' and PostgreSQL versions are not + recommended. You can remove the check from 'configure.ac' but it is then + your responsibility whether the result works or not.])]) +@@ -1311,7 +1312,8 @@ if test "$enable_thread_safety" = yes; then + fi + + if test "$with_readline" = yes; then +- PGAC_CHECK_READLINE ++ PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no]) ++ LIBS="$READLINE_LIBS $LIBS" + if test x"$pgac_cv_check_readline" = x"no"; then + AC_MSG_ERROR([readline library not found + If you have readline already installed, see config.log for details on the +@@ -1321,7 +1323,7 @@ Use --without-readline to disable readline support.]) + fi + + if test "$with_zlib" = yes; then +- AC_CHECK_LIB(z, inflate, [], ++ PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"], + [AC_MSG_ERROR([zlib library not found + If you have zlib already installed, see config.log for details on the + failure. It is possible the compiler isn't looking in the proper directory. +@@ -1370,6 +1372,9 @@ if test "$with_ssl" = openssl ; then + # Minimum required OpenSSL version is 1.0.1 + AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L], + [Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.]) ++ PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) ++ PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) ++ if false ; then + if test "$PORTNAME" != "win32"; then + AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) + AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) +@@ -1377,6 +1382,7 @@ if test "$with_ssl" = openssl ; then + AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])]) + AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])]) + fi ++ fi + # Functions introduced in OpenSSL 1.0.2. LibreSSL does not have + # SSL_CTX_set_cert_cb(). + AC_CHECK_FUNCS([X509_get_signature_nid SSL_CTX_set_cert_cb]) +@@ -1403,19 +1409,23 @@ if test "$with_pam" = yes ; then + fi + + if test "$with_libxml" = yes ; then +- AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) ++ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) ++ LIBS="$LIBXML2_LIBS $LIBS" + fi + + if test "$with_libxslt" = yes ; then +- AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) ++ PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) ++ LIBS="$LIBXSLT_LIBS $LIBS" + fi + + if test "$with_lz4" = yes ; then +- AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) ++ PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) ++ LIBS="$LZ4_LIBS $LIBS" + fi + + if test "$with_zstd" = yes ; then +- AC_CHECK_LIB(zstd, ZSTD_compress, [], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) ++ PKG_CHECK_MODULES([ZSTD], [libzstd], [AC_DEFINE(HAVE_LIBZSTD,1,[Define to 1 if with zstd])], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) ++ LIBS="$ZSTD_LIBS $LIBS" + fi + + # Note: We can test for libldap_r only after we know PTHREAD_LIBS; diff --git a/vcpkg/ports/libpq/unix/installdirs.patch b/vcpkg/ports/libpq/unix/installdirs.patch new file mode 100644 index 000000000..ae6653f90 --- /dev/null +++ b/vcpkg/ports/libpq/unix/installdirs.patch @@ -0,0 +1,48 @@ +diff --git a/src/Makefile.global.in b/src/Makefile.global.in +index 5dacc4d..a9a797e 100644 +--- a/src/Makefile.global.in ++++ b/src/Makefile.global.in +@@ -100,14 +100,14 @@ datarootdir := @datarootdir@ + + bindir := @bindir@ + +-datadir := @datadir@ ++datadir := @datadir@/postgresql + ifeq "$(findstring pgsql, $(datadir))" "" + ifeq "$(findstring postgres, $(datadir))" "" + override datadir := $(datadir)/postgresql + endif + endif + +-sysconfdir := @sysconfdir@ ++sysconfdir := @sysconfdir@/postgresql + ifeq "$(findstring pgsql, $(sysconfdir))" "" + ifeq "$(findstring postgres, $(sysconfdir))" "" + override sysconfdir := $(sysconfdir)/postgresql +@@ -116,7 +116,7 @@ endif + + libdir := @libdir@ + +-pkglibdir = $(libdir) ++pkglibdir = $(libdir)/postgresql + ifeq "$(findstring pgsql, $(pkglibdir))" "" + ifeq "$(findstring postgres, $(pkglibdir))" "" + override pkglibdir := $(pkglibdir)/postgresql +@@ -125,7 +125,7 @@ endif + + includedir := @includedir@ + +-pkgincludedir = $(includedir) ++pkgincludedir = $(includedir)/postgresql + ifeq "$(findstring pgsql, $(pkgincludedir))" "" + ifeq "$(findstring postgres, $(pkgincludedir))" "" + override pkgincludedir := $(pkgincludedir)/postgresql +@@ -134,7 +134,7 @@ endif + + mandir := @mandir@ + +-docdir := @docdir@ ++docdir := @docdir@/postgresql + ifeq "$(findstring pgsql, $(docdir))" "" + ifeq "$(findstring postgres, $(docdir))" "" + override docdir := $(docdir)/postgresql diff --git a/vcpkg/ports/libpq/unix/mingw-install.patch b/vcpkg/ports/libpq/unix/mingw-install.patch new file mode 100644 index 000000000..ffeea023c --- /dev/null +++ b/vcpkg/ports/libpq/unix/mingw-install.patch @@ -0,0 +1,36 @@ +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index 16255d7..51e9ed2 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -85,7 +85,11 @@ else + # Naming convention for dynamically loadable modules + shlib = $(NAME)$(DLSUFFIX) + endif ++ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) ++stlib = lib$(NAME).dll.a ++else + stlib = lib$(NAME).a ++endif + + ifndef soname + # additional flags for backend modules +@@ -468,6 +472,9 @@ endif + else # no soname + $(INSTALL_SHLIB) $< '$(DESTDIR)$(pkglibdir)/$(shlib)' + endif ++ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) ++ mv '$(DESTDIR)$(libdir)/$(shlib)' '$(DESTDIR)$(libdir)/../bin/$(shlib)' ++endif + + + installdirs-lib: +@@ -476,6 +483,9 @@ ifdef soname + else + $(MKDIR_P) '$(DESTDIR)$(pkglibdir)' + endif ++ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) ++ $(MKDIR_P) '$(DESTDIR)$(libdir)/../bin' ++endif + + + ## diff --git a/vcpkg/ports/libpq/unix/no-server-tools.patch b/vcpkg/ports/libpq/unix/no-server-tools.patch new file mode 100644 index 000000000..f83682afb --- /dev/null +++ b/vcpkg/ports/libpq/unix/no-server-tools.patch @@ -0,0 +1,37 @@ +diff --git a/src/bin/Makefile b/src/bin/Makefile +index 7f9dde9..bc6d835 100644 +--- a/src/bin/Makefile ++++ b/src/bin/Makefile +@@ -13,29 +13,20 @@ subdir = src/bin + top_builddir = ../.. + include $(top_builddir)/src/Makefile.global + ++.NOTPARALLEL: ++# incl. https://www.postgresql.org/docs/current/reference-client.html ++# excl. https://www.postgresql.org/docs/current/reference-server.html + SUBDIRS = \ +- initdb \ + pg_amcheck \ +- pg_archivecleanup \ + pg_basebackup \ +- pg_checksums \ + pg_config \ +- pg_controldata \ +- pg_ctl \ + pg_dump \ +- pg_resetwal \ +- pg_rewind \ +- pg_test_fsync \ +- pg_test_timing \ +- pg_upgrade \ + pg_verifybackup \ +- pg_waldump \ + pgbench \ + psql \ + scripts + + ifeq ($(PORTNAME), win32) +-SUBDIRS += pgevent + else + ALWAYS_SUBDIRS += pgevent + endif diff --git a/vcpkg/ports/libpq/unix/python.patch b/vcpkg/ports/libpq/unix/python.patch new file mode 100644 index 000000000..7d8f58d4a --- /dev/null +++ b/vcpkg/ports/libpq/unix/python.patch @@ -0,0 +1,35 @@ +diff --git a/configure.ac b/configure.ac +index 7f97248992..33b6c84fc4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -891,7 +891,9 @@ AC_SUBST(with_perl) + # Optionally build Python modules (PL/Python) + # + AC_MSG_CHECKING([whether to build Python modules]) +-PGAC_ARG_BOOL(with, python, no, [build Python modules (PL/Python)]) ++PGAC_ARG_OPTARG(with, python, [PYTHON_VERSION], [build Python modules (PL/Python)], ++ [], ++ [python_version=$withval]) + AC_MSG_RESULT([$with_python]) + AC_SUBST(with_python) + +@@ -1214,7 +1216,18 @@ fi + + if test "$with_python" = yes; then + PGAC_PATH_PYTHON +- PGAC_CHECK_PYTHON_EMBED_SETUP ++ python_majorversion=3 ++ PKG_CHECK_MODULES(PYTHON_EMBED, python-${python_version}-embed) ++ python_includespec="${PYTHON_EMBED_CFLAGS}" ++ python_libdir=[$(echo " ${PYTHON_EMBED_LIBS}" | sed -e 's/\( -L[^ ]*\).*/\1/' -e 's/^.* -L//')] ++ python_libspec="${PYTHON_EMBED_LIBS}" ++ python_additional_libs="" ++ AC_SUBST(python_majorversion) ++ AC_SUBST(python_version) ++ AC_SUBST(python_includespec) ++ AC_SUBST(python_libdir) ++ AC_SUBST(python_libspec) ++ AC_SUBST(python_additional_libs) + fi + + if test x"$cross_compiling" = x"yes" && test -z "$with_system_tzdata"; then diff --git a/vcpkg/ports/libpq/unix/single-linkage.patch b/vcpkg/ports/libpq/unix/single-linkage.patch new file mode 100644 index 000000000..dd149c7d3 --- /dev/null +++ b/vcpkg/ports/libpq/unix/single-linkage.patch @@ -0,0 +1,56 @@ +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index 551023c..16255d7 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -260,10 +260,14 @@ endif + + .PHONY: all-lib all-static-lib all-shared-lib + ++ifndef LIBPQ_LIBRARY_TYPE + all-lib: all-shared-lib + ifdef soname + # no static library when building a dynamically loadable module + all-lib: all-static-lib ++endif ++else ++all-lib: all-$(LIBPQ_LIBRARY_TYPE)-lib + all-lib: lib$(NAME).pc + endif + +@@ -417,9 +421,13 @@ endif # PORTNAME == cygwin || PORTNAME == win32 + ## + + .PHONY: install-lib install-lib-static install-lib-shared installdirs-lib ++ifndef LIBPQ_LIBRARY_TYPE + install-lib: install-lib-shared + ifdef soname + install-lib: install-lib-static ++endif ++else ++install-lib: install-lib-$(LIBPQ_LIBRARY_TYPE) + install-lib: install-lib-pc + endif + +diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile +index 8abdb09..185461e 100644 +--- a/src/interfaces/libpq/Makefile ++++ b/src/interfaces/libpq/Makefile +@@ -115,6 +115,7 @@ backend_src = $(top_srcdir)/src/backend + # Also skip the test on platforms where libpq infrastructure may be provided + # by statically-linked libraries, as we can't expect them to honor this + # coding rule. ++ifeq ($(LIBPQ_LIBRARY_TYPE), shared) + libpq-refs-stamp: $(shlib) + ifneq ($(enable_coverage), yes) + ifeq (,$(filter aix solaris,$(PORTNAME))) +@@ -124,6 +125,10 @@ ifeq (,$(filter aix solaris,$(PORTNAME))) + endif + endif + touch $@ ++else ++.PHONY: libpq-refs-stamp ++libpq-refs-stamp: ++endif + + # Make dependencies on pg_config_paths.h visible in all builds. + fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h diff --git a/vcpkg/ports/libpq/usage b/vcpkg/ports/libpq/usage new file mode 100644 index 000000000..8dfcd2754 --- /dev/null +++ b/vcpkg/ports/libpq/usage @@ -0,0 +1,4 @@ +The package libpq provides CMake integration: + + find_package(PostgreSQL REQUIRED) + target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL) diff --git a/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..6f1432570 --- /dev/null +++ b/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,72 @@ +# Give the CMake module a little bit of help to find the debug libraries +find_library(PostgreSQL_LIBRARY_DEBUG +NAMES pq +PATHS + "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" +NO_DEFAULT_PATH +) +_find_package(${ARGS}) +if(PostgreSQL_FOUND AND NOT "@VCPKG_TARGET_IS_WINDOWS@") + find_library(PostgreSQL_DL_LIBRARY NAMES dl) + if(PostgreSQL_DL_LIBRARY) + list(APPEND PostgreSQL_LIBRARIES "dl") + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") + endif() + endif() +endif() +if(PostgreSQL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") + include(SelectLibraryConfigurations) + foreach(LIB_ITEM libpgport libpgcommon pgport pgcommon) + find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE + NAMES ${LIB_ITEM} + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH + ) + if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE) + set_property( + TARGET PostgreSQL::PostgreSQL + APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE}>" + ) + endif() + + find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG + NAMES ${LIB_ITEM} + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH + ) + if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) + set_property( + TARGET PostgreSQL::PostgreSQL + APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG}>" + ) + endif() + + if (PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE OR PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) + select_library_configurations(PostgreSQL_${LIB_ITEM}) + list(APPEND PostgreSQL_LIBRARIES ${PostgreSQL_${LIB_ITEM}_LIBRARY}) + endif() + endforeach() + if(WIN32) + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Secur32.lib") + endif() + list(APPEND PostgreSQL_LIBRARIES Secur32.lib) + endif() + cmake_policy(PUSH) + cmake_policy(SET CMP0057 NEW) + set(Z_VCPKG_PORT_FEATURES "@FEATURES@") + if("openssl" IN_LIST Z_VCPKG_PORT_FEATURES) + find_package(OpenSSL REQUIRED) + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenSSL::SSL") + endif() + list(APPEND PostgreSQL_LIBRARIES OpenSSL::SSL) + endif() + if(WIN32) + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Wldap32.lib") + endif() + list(APPEND PostgreSQL_LIBRARIES Wldap32.lib) + endif() + unset(Z_VCPKG_PORT_FEATURES) + cmake_policy(POP) +endif() diff --git a/vcpkg/ports/libpq/vcpkg-libs.props.in b/vcpkg/ports/libpq/vcpkg-libs.props.in new file mode 100644 index 000000000..cb7e5f92c --- /dev/null +++ b/vcpkg/ports/libpq/vcpkg-libs.props.in @@ -0,0 +1,31 @@ + + + + @CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib; + @CURRENT_INSTALLED_DIR@/debug/lib/lz4d.lib + @CURRENT_INSTALLED_DIR@/debug/lib/intl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/debug/lib/charset.lib + @CURRENT_INSTALLED_DIR@/debug/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib + @CURRENT_INSTALLED_DIR@/debug/lib/python3@PYTHON_VERSION_MINOR@_d.lib + @CURRENT_INSTALLED_DIR@/debug/lib/tcl90g.lib + @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sg.lib + @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sgx.lib + @LIBXML2_LIBS_DEBUG@ + @LIBXSLT_LIBS_DEBUG@ + @CURRENT_INSTALLED_DIR@/debug/lib/zlibd.lib + @CURRENT_INSTALLED_DIR@/debug/lib/zstd.lib + + + @CURRENT_INSTALLED_DIR@/lib/icuin.lib;@CURRENT_INSTALLED_DIR@/lib/icuuc.lib;@CURRENT_INSTALLED_DIR@/lib/icudt.lib; + @CURRENT_INSTALLED_DIR@/lib/lz4.lib + @CURRENT_INSTALLED_DIR@/lib/intl.lib;@CURRENT_INSTALLED_DIR@/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/lib/charset.lib + @CURRENT_INSTALLED_DIR@/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib + @CURRENT_INSTALLED_DIR@/lib/python3@PYTHON_VERSION_MINOR@.lib + @CURRENT_INSTALLED_DIR@/lib/tcl90.lib + @CURRENT_INSTALLED_DIR@/lib/tcl90s.lib + @CURRENT_INSTALLED_DIR@/lib/tcl90sx.lib + @LIBXML2_LIBS_RELEASE@ + @LIBXSLT_LIBS_RELEASE@ + @CURRENT_INSTALLED_DIR@/lib/zlib.lib + @CURRENT_INSTALLED_DIR@/lib/zstd.lib + + diff --git a/vcpkg/ports/libpq/vcpkg.json b/vcpkg/ports/libpq/vcpkg.json new file mode 100644 index 000000000..772c1a995 --- /dev/null +++ b/vcpkg/ports/libpq/vcpkg.json @@ -0,0 +1,195 @@ +{ + "name": "libpq", + "version": "16.2", + "port-version": 1, + "description": "The official database access API of postgresql", + "homepage": "https://www.postgresql.org/", + "license": "PostgreSQL", + "supports": "!uwp", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "bonjour" + ], + "platform": "osx" + }, + { + "name": "vcpkg-cmake-get-vars", + "host": true + }, + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true, + "platform": "windows & !mingw" + } + ], + "default-features": [ + "lz4", + "openssl", + "zlib" + ], + "features": { + "all": { + "description": "Build all supported features", + "dependencies": [ + { + "name": "libpq", + "features": [ + "client", + "icu", + "xml", + "xslt", + "zstd" + ] + }, + { + "name": "libpq", + "features": [ + "bonjour" + ], + "platform": "osx" + }, + { + "name": "libpq", + "features": [ + "nls" + ], + "platform": "!osx" + }, + { + "name": "libpq", + "features": [ + "readline" + ], + "platform": "!windows" + }, + { + "name": "libpq", + "features": [ + "python" + ], + "platform": "!android & !mingw" + }, + { + "name": "libpq", + "features": [ + "tcl" + ], + "platform": "windows & !mingw & !arm" + } + ] + }, + "bonjour": { + "description": "Build with Bonjour support", + "supports": "osx" + }, + "client": { + "description": "Build all client tools and libraries" + }, + "icu": { + "description": "Build with support for the ICU library", + "dependencies": [ + "icu" + ] + }, + "lz4": { + "description": "Use lz4", + "dependencies": [ + "lz4" + ] + }, + "nls": { + "description": "Native Language Support", + "supports": "!osx", + "dependencies": [ + "gettext", + { + "name": "gettext", + "host": true, + "features": [ + "tools" + ], + "platform": "!windows, mingw" + } + ] + }, + "openssl": { + "description": "support for encrypted client connections and random number generation on platforms that do not have \"/dev/urandom\" (except windows)", + "dependencies": [ + "openssl" + ] + }, + "python": { + "$supports": "!(windows & (static | mingw))", + "description": "build the PL/Python server programming language", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "client" + ] + }, + "python3" + ] + }, + "readline": { + "description": "Use readline", + "supports": "!windows, mingw", + "dependencies": [ + "readline" + ] + }, + "tcl": { + "$supports": "!(windows & (static | mingw))", + "description": "build the PL/Tcl procedural language", + "supports": "windows & !mingw", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "client" + ] + }, + "tcl" + ] + }, + "xml": { + "description": "Build with libxml", + "dependencies": [ + { + "name": "libxml2", + "default-features": false + } + ] + }, + "xslt": { + "description": "Build with libxslt", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "xml" + ] + }, + "libxslt" + ] + }, + "zlib": { + "description": "Use zlib", + "dependencies": [ + "zlib" + ] + }, + "zstd": { + "description": "Use zstd", + "dependencies": [ + "zstd" + ] + } + } +} diff --git a/vcpkg/ports/libpq/windows/macro-def.patch b/vcpkg/ports/libpq/windows/macro-def.patch new file mode 100644 index 000000000..1d16c1270 --- /dev/null +++ b/vcpkg/ports/libpq/windows/macro-def.patch @@ -0,0 +1,18 @@ +diff --git a/src/include/common/checksum_helper.h b/src/include/common/checksum_helper.h +index cac7570ea..d0ca1243c 100644 +--- a/src/include/common/checksum_helper.h ++++ b/src/include/common/checksum_helper.h +@@ -33,7 +28,13 @@ + */ + typedef enum pg_checksum_type + { ++#pragma push_macro("CHECKSUM_TYPE_NONE") ++#ifdef CHECKSUM_TYPE_NONE ++// winioctl.h defines CHECKSUM_TYPE_NONE to 0 as a macro. ++#undef CHECKSUM_TYPE_NONE ++#endif + CHECKSUM_TYPE_NONE, ++#pragma pop_macro("CHECKSUM_TYPE_NONE") + CHECKSUM_TYPE_CRC32C, + CHECKSUM_TYPE_SHA224, + CHECKSUM_TYPE_SHA256, diff --git a/vcpkg/ports/libpq/windows/msbuild.patch b/vcpkg/ports/libpq/windows/msbuild.patch new file mode 100644 index 000000000..e6c70ad09 --- /dev/null +++ b/vcpkg/ports/libpq/windows/msbuild.patch @@ -0,0 +1,398 @@ +diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm +index 05548d7..097db91 100644 +--- a/src/tools/msvc/Install.pm ++++ b/src/tools/msvc/Install.pm +@@ -53,6 +53,11 @@ sub Install + my $target = shift; + $insttype = shift; + $insttype = "all" unless ($insttype); ++ if ($insttype eq 'core') ++ { ++ $insttype = 'client'; ++ @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' ); ++ } + + # if called from vcregress, the config will be passed to us + # so no need to re-include these +@@ -89,7 +94,7 @@ sub Install + my $majorver = DetermineMajorVersion(); + print "Installing version $majorver for $conf in $target\n"; + +- my @client_dirs = ('bin', 'lib', 'share', 'symbols'); ++ my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq'); + my @all_dirs = ( + @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib', + 'share/extension', 'share/timezonesets', 'share/tsearch_data'); +@@ -117,11 +122,11 @@ sub Install + } + }, + @top_dir); +- CopySetOfFiles('config files', $sample_files, $target . '/share/'); ++ CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/'); + CopyFiles( + 'Import libraries', + $target . '/lib/', +- "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib", ++ "$conf\\", "libpgcommon\\libpgcommon.lib", + "libpgport\\libpgport.lib"); + CopyContribFiles($config, $target); + CopyIncludeFiles($target); +@@ -293,7 +298,16 @@ sub CopySolutionOutput + { + if ($1 == 1) + { +- push(@{ $install_list{'bin'} }, "exe"); ++ push(@{ $install_list{'tools\\libpq'} }, "exe"); ++ } ++ elsif ($1 == 2) ++ { ++ push(@{ $install_list{'bin'} }, "dll"); ++ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins ++ } ++ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet ++ { ++ push(@{ $install_list{'lib'} }, "lib"); + } + elsif ($1 == 2) + { +@@ -317,7 +331,16 @@ sub CopySolutionOutput + { + if ($1 eq 'Application') + { +- push(@{ $install_list{'bin'} }, "exe"); ++ push(@{ $install_list{'tools\\libpq'} }, "exe"); ++ } ++ elsif ($1 eq 'DynamicLibrary') ++ { ++ push(@{ $install_list{'bin'} }, "dll"); ++ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins ++ } ++ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet ++ { ++ push(@{ $install_list{'lib'} }, "lib"); + } + elsif ($1 eq 'DynamicLibrary') + { +@@ -350,7 +373,8 @@ sub CopySolutionOutput + || croak "Could not copy $pf.$ext\n"; + } + } +- lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb") ++ $1 ne 'DynamicLibrary' || ++ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb") + || croak "Could not copy $pf.pdb\n"; + print "."; + } +@@ -453,7 +477,7 @@ sub CopySubdirFiles + foreach my $f (split /\s+/, $flist) + { + lcopy("$subdir/$module/$f.control", +- "$target/share/extension/$f.control") ++ "$target/share/libpq/extension/$f.control") + || croak("Could not copy file $f.control in contrib $module"); + print '.'; + } +@@ -471,7 +495,7 @@ sub CopySubdirFiles + foreach my $f (split /\s+/, $flist) + { + lcopy("$subdir/$module/$f", +- "$target/share/$moduledir/" . basename($f)) ++ "$target/share/libpq/$moduledir/" . basename($f)) + || croak("Could not copy file $f in contrib $module"); + print '.'; + } +@@ -486,7 +510,7 @@ sub CopySubdirFiles + foreach my $f (split /\s+/, $flist) + { + lcopy("$subdir/$module/$f", +- "$target/share/tsearch_data/" . basename($f)) ++ "$target/share/libpq/tsearch_data/" . basename($f)) + || croak("Could not copy file $f in $subdir $module"); + print '.'; + } +@@ -549,7 +573,7 @@ sub CopySubdirFiles + if ($module eq 'spi'); + foreach my $f (split /\s+/, $flist) + { +- lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f") ++ lcopy("$subdir/$module/$f", "$target/share/libpq/doc/$moduledir/$f") + || croak("Could not copy file $f in contrib $module"); + print '.'; + } +@@ -675,7 +699,7 @@ sub GenerateNLSFiles + my $majorver = shift; + + print "Installing NLS files..."; +- EnsureDirectories($target, "share/locale"); ++ EnsureDirectories($target, "share/libpq/locale"); + my @flist; + File::Find::find( + { +@@ -697,12 +721,12 @@ sub GenerateNLSFiles + next unless /([^\/]+)\.po/; + $lang = $1; + +- EnsureDirectories($target, "share/locale/$lang", +- "share/locale/$lang/LC_MESSAGES"); ++ EnsureDirectories($target, "share/libpq/locale/$lang", ++ "share/libpq/locale/$lang/LC_MESSAGES"); + my @args = ( +- "$nlspath\\bin\\msgfmt", ++ "msgfmt", + '-o', +- "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", ++ "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", + $_); + system(@args) && croak("Could not run msgfmt on $dir\\$_"); + print "."; +diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm +index 62fec1f..ecb1b86 100644 +--- a/src/tools/msvc/MSBuildProject.pm ++++ b/src/tools/msvc/MSBuildProject.pm +@@ -80,14 +80,14 @@ EOF + print $f < + EOF +- ++ my $maybe_dll = $self->{solution}->{options}->{VCPKG_CRT_LINKAGE} eq 'dynamic' ? "DLL" : ''; + $self->WriteItemDefinitionGroup( + $f, 'Debug', + { + defs => "_DEBUG;DEBUG=1", + opt => 'Disabled', + strpool => 'false', +- runtime => 'MultiThreadedDebugDLL' ++ runtime => 'MultiThreadedDebug' . $maybe_dll + }); + $self->WriteItemDefinitionGroup( + $f, +@@ -96,7 +96,7 @@ EOF + defs => "", + opt => 'Full', + strpool => 'true', +- runtime => 'MultiThreadedDLL' ++ runtime => 'MultiThreaded' . $maybe_dll + }); + return; + } +@@ -266,6 +266,8 @@ sub WriteConfigurationPropertyGroup + ($self->{type} eq "exe") + ? 'Application' + : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary'); ++ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') ++ { $cfgtype =~ s/DynamicLibrary/StaticLibrary/; } + + print $f < +@@ -311,7 +313,9 @@ sub WriteItemDefinitionGroup + my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';'); + + my $targetmachine = +- $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64'; ++ 'Machine' . uc($self->{platform}); ++ $targetmachine =~ s/WIN32/X86/; ++ my $randomizebase = ($self->{platform} =~ /^ARM/) ? 'true' : 'false'; + my $arch = $self->{platform} eq 'Win32' ? 'x86' : 'x86_64'; + + my $includes = join ';', @{ $self->{includes} }, ""; +diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm +index 9e05eb9..8ac0a5d 100644 +--- a/src/tools/msvc/Mkvcbuild.pm ++++ b/src/tools/msvc/Mkvcbuild.pm +@@ -125,8 +125,10 @@ sub mkvcbuild + + if ($vsVersion >= '9.00') + { ++ if ($solution->{platform} !~ /^ARM/) { + push(@pgportfiles, 'pg_crc32c_sse42_choose.c'); + push(@pgportfiles, 'pg_crc32c_sse42.c'); ++ } + push(@pgportfiles, 'pg_crc32c_sb8.c'); + } + else +@@ -208,6 +210,7 @@ sub mkvcbuild + 'syncrep_gram.y'); + $postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l', + 'jsonpath_gram.y'); ++ ($config->{VCPKG_LIBRARY_LINKAGE} eq 'dynamic') && + $postgres->AddDefine('BUILDING_DLL'); + $postgres->AddLibrary('secur32.lib'); + $postgres->AddLibrary('ws2_32.lib'); +@@ -252,12 +255,13 @@ sub mkvcbuild + $pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include'); + $pltcl->AddReference($postgres); + +- for my $tclver (qw(86t 86 85 84)) ++ my $v = $solution->{options}->{tcl_version}; ++ for my $tclver ( ("${v}","${v}s","${v}sx") ) + { + my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib"; + if (-e $tcllib) + { +- $pltcl->AddLibrary($tcllib); ++ $pltcl->AddLibrary("\$(VcpkgTcl${tclver}Libs)"); + $found = 1; + last; + } +@@ -512,8 +516,7 @@ sub mkvcbuild + . "print(str(sys.version_info[0])+str(sys.version_info[1]))"; + my $prefixcmd = + qq("$solution->{options}->{python}\\python" -c "$pythonprog"); +- my $pyout = `$prefixcmd`; +- die "Could not query for python version!\n" if $?; ++ my $pyout = "$solution->{options}->{python}\n$solution->{options}->{python_version}"; + my ($pyprefix, $pyver) = split(/\r?\n/, $pyout); + + # Sometimes (always?) if python is not present, the execution +@@ -529,8 +532,8 @@ sub mkvcbuild + + my $plpython = $solution->AddProject('plpython' . $pymajorver, + 'dll', 'PLs', 'src/pl/plpython'); +- $plpython->AddIncludeDir($pyprefix . '/include'); +- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib"); ++ $plpython->AddIncludeDir($pyprefix . "/include/python$pyver"); ++ $plpython->AddLibrary('$(VcpkgPythonLibs)'); + $plpython->AddReference($postgres); + + # Add transform modules dependent on plpython +diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm +index 0507ad0..48caab9 100644 +--- a/src/tools/msvc/Project.pm ++++ b/src/tools/msvc/Project.pm +@@ -167,6 +167,11 @@ sub AddReference + } + $self->AddLibrary( + "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib"); ++ ++ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') ++ { ++ map { $self->AddLibrary($_) } @{ $ref->{libraries} }; ++ } + } + return; + } +diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm +index b6d31c3..27d89fc 100644 +--- a/src/tools/msvc/Solution.pm ++++ b/src/tools/msvc/Solution.pm +@@ -63,6 +63,11 @@ sub DeterminePlatform + my $self = shift; + + if ($^O eq "MSWin32") ++ { ++ $self->{platform} = uc($self->{options}->{VCPKG_TARGET_ARCHITECTURE}); ++ $self->{platform} =~ s/^X86$/Win32/; ++ } ++ elsif (0) + { + # Examine CL help output to determine if we are in 32 or 64-bit mode. + my $output = `cl /help 2>&1`; +@@ -124,6 +129,9 @@ sub copyFile + sub GetOpenSSLVersion + { + my $self = shift; ++ if ($self->{options}->{openssl_version} =~ /(\d+)\.(\d+)\.(\d+)/m) { ++ return ($1, $2, $3); ++ } + + # Attempt to get OpenSSL version and location. This assumes that + # openssl.exe is in the specified directory. +@@ -148,7 +156,7 @@ sub GetOpenSSLVersion + sub GenerateFiles + { + my $self = shift; +- my $bits = $self->{platform} eq 'Win32' ? 32 : 64; ++ my $bits = $self->{platform} =~ /64/ ? 64 : 32; + my $ac_init_found = 0; + my $package_name; + my $package_version; +@@ -440,7 +448,7 @@ sub GenerateFiles + USE_PAM => undef, + USE_SLICING_BY_8_CRC32C => undef, + USE_SSE42_CRC32C => undef, +- USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1, ++ USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => $self->{platform} =~ /^ARM/ ? undef : 1, + USE_SYSTEMD => undef, + USE_SYSV_SEMAPHORES => undef, + USE_SYSV_SHARED_MEMORY => undef, +@@ -725,14 +733,14 @@ sub GenerateFiles + || confess "Could not open pg_config_paths.h"; + print $o <{options}->{zlib}) + { + $proj->AddIncludeDir($self->{options}->{zlib} . '\include'); +- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib'); ++ $proj->AddLibrary('$(VcpkgZlibLibs)'); + } + if ($self->{options}->{openssl}) + { + $proj->AddIncludeDir($self->{options}->{openssl} . '\include'); ++ $proj->AddLibrary('$(VcpkgOpensslLibs)'); ++ } ++ elsif (0) ++ { + my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); + + # Starting at version 1.1.0 the OpenSSL installers have +@@ -1032,7 +1044,7 @@ sub AddProject + if ($self->{options}->{nls}) + { + $proj->AddIncludeDir($self->{options}->{nls} . '\include'); +- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib'); ++ $proj->AddLibrary('$(VcpkgNlsLibs)'); + } + if ($self->{options}->{gss}) + { +@@ -1065,6 +1077,10 @@ sub AddProject + if ($self->{options}->{icu}) + { + $proj->AddIncludeDir($self->{options}->{icu} . '\include'); ++ $proj->AddLibrary('$(VcpkgIcuLibs)'); ++ } ++ elsif (0) ++ { + if ($self->{platform} eq 'Win32') + { + $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); +@@ -1082,22 +1098,22 @@ sub AddProject + { + $proj->AddIncludeDir($self->{options}->{xml} . '\include'); + $proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2'); +- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); ++ $proj->AddLibrary('$(VcpkgXmlLibs)'); + } + if ($self->{options}->{xslt}) + { + $proj->AddIncludeDir($self->{options}->{xslt} . '\include'); +- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); ++ $proj->AddLibrary('$(VcpkgXsltLibs)'); + } + if ($self->{options}->{lz4}) + { + $proj->AddIncludeDir($self->{options}->{lz4} . '\include'); +- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib'); ++ $proj->AddLibrary('$(VcpkgLz4Libs)'); + } + if ($self->{options}->{zstd}) + { + $proj->AddIncludeDir($self->{options}->{zstd} . '\include'); +- $proj->AddLibrary($self->{options}->{zstd} . '\lib\libzstd.lib'); ++ $proj->AddLibrary('$(VcpkgZstdLibs)'); + } + if ($self->{options}->{uuid}) + { diff --git a/vcpkg/ports/libpq/windows/spin_delay.patch b/vcpkg/ports/libpq/windows/spin_delay.patch new file mode 100644 index 000000000..163e8e6ef --- /dev/null +++ b/vcpkg/ports/libpq/windows/spin_delay.patch @@ -0,0 +1,24 @@ +diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h +index 4d3ffc7..658b1a1 100644 +--- a/src/include/storage/s_lock.h ++++ b/src/include/storage/s_lock.h +@@ -953,12 +953,18 @@ typedef LONG slock_t; + /* If using Visual C++ on Win64, inline assembly is unavailable. + * Use a _mm_pause intrinsic instead of rep nop. + */ +-#if defined(_WIN64) ++#if defined(_M_X64) && !defined(_M_ARM64EC) + static __forceinline void + spin_delay(void) + { + _mm_pause(); + } ++#elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) ++static __forceinline void ++spin_delay(void) ++{ ++ __yield(); ++} + #else + static __forceinline void + spin_delay(void) diff --git a/vcpkg/ports/libpq/windows/win_bison_flex.patch b/vcpkg/ports/libpq/windows/win_bison_flex.patch new file mode 100644 index 000000000..fc8230193 --- /dev/null +++ b/vcpkg/ports/libpq/windows/win_bison_flex.patch @@ -0,0 +1,42 @@ +diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl +index 25df669..373bedd 100644 +--- a/src/tools/msvc/pgbison.pl ++++ b/src/tools/msvc/pgbison.pl +@@ -13,7 +13,7 @@ use File::Basename; + + do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; + +-my ($bisonver) = `bison -V`; # grab first line ++my ($bisonver) = `win_bison -V`; # grab first line + $bisonver = (split(/\s+/, $bisonver))[3]; # grab version number + + unless ($bisonver ge '2.3') +@@ -51,5 +51,5 @@ my $headerflag = ($make =~ /^$basetarg:\s+BISONFLAGS\b.*-d/m ? '-d' : ''); + + my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : ""; + +-system("bison $nodep $headerflag $input -o $output"); ++system("win_bison $nodep $headerflag $input -o $output"); + exit $? >> 8; +diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl +index c308a08..0807ce7 100644 +--- a/src/tools/msvc/pgflex.pl ++++ b/src/tools/msvc/pgflex.pl +@@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning'; + + do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; + +-my ($flexver) = `flex -V`; # grab first line ++my ($flexver) = `win_flex -V`; # grab first line + $flexver = (split(/\s+/, $flexver))[1]; + $flexver =~ s/[^0-9.]//g; + my @verparts = split(/\./, $flexver); +@@ -52,7 +52,7 @@ close($mf); + my $basetarg = basename($output); + my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : ''); + +-system("flex $flexflags -o$output $input"); ++system("win_flex $flexflags -o$output $input"); + if ($? == 0) + { + diff --git a/vcpkg/ports/libtasn1/portfile.cmake b/vcpkg/ports/libtasn1/portfile.cmake new file mode 100644 index 000000000..ce464c769 --- /dev/null +++ b/vcpkg/ports/libtasn1/portfile.cmake @@ -0,0 +1,31 @@ +vcpkg_download_distfile(ARCHIVE + https://ftp.gnu.org/pub/gnu/libtasn1/libtasn1-${VERSION_libtasn1}.tar.gz + + URLS "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" + "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" + FILENAME "libtasn1-${VERSION}.tar.gz" + SHA512 287f5eddfb5e21762d9f14d11997e56b953b980b2b03a97ed4cd6d37909bda1ed7d2cdff9da5d270a21d863ab7e54be6b85c05f1075ac5d8f0198997cf335ef4 +) +vcpkg_extract_source_archive(SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" +) + +string(APPEND VCPKG_C_FLAGS " -Wno-implicit-function-declaration") +string(APPEND VCPKG_CXX_FLAGS " -Wno-implicit-function-declaration") + +vcpkg_list(SET OPTIONS) +vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + DETERMINE_BUILD_TRIPLET + USE_WRAPPERS + OPTIONS + --enable-extra-encodings + --disable-doc + --disable-valgrind-tests + --disable-gcc-warnings + --disable-silent-rules + ${OPTIONS} +) +vcpkg_install_make() + diff --git a/vcpkg/ports/libtasn1/vcpkg.json b/vcpkg/ports/libtasn1/vcpkg.json new file mode 100644 index 000000000..7950a5cc2 --- /dev/null +++ b/vcpkg/ports/libtasn1/vcpkg.json @@ -0,0 +1,8 @@ +{ + "name": "libtasn1", + "version": "4.19.0", + "port-version": 0, + "description": "GNU Abstract Syntax Notation One (ASN.1) and Distinguished Encoding Rules (DER) manipulation", + "homepage": "https://www.gnu.org/software/libtasn1/", + "license": null +} diff --git a/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch b/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch new file mode 100644 index 000000000..744fce107 --- /dev/null +++ b/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch @@ -0,0 +1,72 @@ +diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" +index 1f84c2c9e..f72ee9d8d 100644 +--- "a/CMakeLists.txt" ++++ "b/CMakeLists.txt" +@@ -58,6 +58,7 @@ set(QCA_SUFFIX "qt5") + if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) + set(STATIC_PLUGINS ON) + add_definitions(-DQT_STATICPLUGIN) ++ add_definitions(-DQCA_STATIC) + set(PLUGIN_TYPE "STATIC") + else() + set(PLUGIN_TYPE "MODULE") +@@ -266,10 +267,17 @@ if(DEVELOPER_MODE) + add_definitions(-DDEVELOPER_MODE) + + # To prefer plugins from build tree when run qca from build tree +- file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf +-"[Paths] +-Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} +-") ++ if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) ++ file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf ++ "[Paths] ++ Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} ++ ") ++ else() ++ file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf ++ "[Paths] ++ Plugins=${CMAKE_BINARY_DIR}/bin/${QCA_LIB_NAME} ++ ") ++ endif() + endif() + + if (APPLE) +@@ -309,7 +317,7 @@ else() + set( qca_CERTSTORE "${CMAKE_CURRENT_SOURCE_DIR}/certs/rootcerts.pem") + # note that INSTALL_FILES targets are relative to the current installation prefix... + if(NOT DEVELOPER_MODE) +- install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/certs") ++ install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/share/qca/certs") + endif() + endif() + message(STATUS "certstore path: " ${qca_CERTSTORE}) +@@ -390,10 +398,10 @@ endif() + include(CMakePackageConfigHelpers) + configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/QcaConfig.cmake.in" +- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" +- INSTALL_DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} ++ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" ++ INSTALL_DESTINATION ${CMAKE_BINARY_DIR}/share/qca/cmake + ) +-write_basic_config_version_file("${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) ++write_basic_config_version_file("${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) + + if(NOT DEVELOPER_MODE) + +@@ -461,10 +469,10 @@ if(NOT DEVELOPER_MODE) + endif() + endif() + +- install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) ++ install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) + install(FILES +- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" +- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" +- DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} ++ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" ++ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" ++ DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake + ) + endif() diff --git a/vcpkg/ports/qca-qt6/0002-fix-build-error.patch b/vcpkg/ports/qca-qt6/0002-fix-build-error.patch new file mode 100644 index 000000000..5515d21f7 --- /dev/null +++ b/vcpkg/ports/qca-qt6/0002-fix-build-error.patch @@ -0,0 +1,26 @@ +From 8d67288a3dde7e535ff747715f96f98282a3bf67 Mon Sep 17 00:00:00 2001 +From: Matthias Kuhn +Date: Fri, 3 Dec 2021 15:17:25 +0100 +Subject: [PATCH] Ifdef codecs + +--- + cmake/modules/QcaMacro.cmake | 9 --------- + plugins/qca-ossl/qca-ossl.cpp | 6 ++++++ + 2 files changed, 6 insertions(+), 9 deletions(-) + +diff --git a/cmake/modules/QcaMacro.cmake b/cmake/modules/QcaMacro.cmake +index 80af6e84..ba86310d 100644 +--- a/cmake/modules/QcaMacro.cmake ++++ b/cmake/modules/QcaMacro.cmake +@@ -65,10 +65,6 @@ macro(add_qca_test TARGET DESCRIPTION) + endmacro(add_qca_test) + + macro(install_pdb TARGET INSTALL_PATH) +- if(MSVC) +- install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS Debug) +- install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS RelWithDebInfo) +- endif() + endmacro(install_pdb) + + macro(normalize_path PATH) + diff --git a/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch b/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch new file mode 100644 index 000000000..d894000d6 --- /dev/null +++ b/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch @@ -0,0 +1,28 @@ +From f32f5ae8b8b49653bfff87f2f882862bcaa8c3f1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= + =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= +Date: Mon, 20 Mar 2023 16:21:18 +0100 +Subject: [PATCH] Define NOMINMAX to fix building qca-botan plugin with MSVC + +--- + plugins/qca-botan/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/plugins/qca-botan/CMakeLists.txt b/plugins/qca-botan/CMakeLists.txt +index 11c0d20..9b8b978 100644 +--- a/plugins/qca-botan/CMakeLists.txt ++++ b/plugins/qca-botan/CMakeLists.txt +@@ -11,6 +11,10 @@ if(BOTAN_FOUND) + set(QCA_BOTAN_SOURCES qca-botan.cpp) + add_library(qca-botan ${PLUGIN_TYPE} ${QCA_BOTAN_SOURCES}) + ++ if(MSVC) ++ target_compile_definitions(qca-botan PRIVATE NOMINMAX) ++ endif() ++ + if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE") + set_property(TARGET qca-botan PROPERTY SUFFIX ".dylib") + endif() +-- +2.40.0.windows.1 + diff --git a/vcpkg/ports/qca-qt6/connect_fix.patch b/vcpkg/ports/qca-qt6/connect_fix.patch new file mode 100644 index 000000000..0a2aa1377 --- /dev/null +++ b/vcpkg/ports/qca-qt6/connect_fix.patch @@ -0,0 +1,29 @@ +diff --git a/src/qca_safeobj.h b/src/qca_safeobj.h +index 5c47adad..20570b27 100644 +--- a/src/qca_safeobj.h ++++ b/src/qca_safeobj.h +@@ -57,7 +57,7 @@ public Q_SLOTS: + } + + Q_SIGNALS: +- void activated(); ++ void activated(QSocketDescriptor socket, QSocketNotifier::Type type); + + private: + QSocketNotifier *sn; +diff --git a/src/support/qpipe.cpp b/src/support/qpipe.cpp +index 122e96a8..2d9d8ab7 100644 +--- a/src/support/qpipe.cpp ++++ b/src/support/qpipe.cpp +@@ -1075,8 +1075,10 @@ public Q_SLOTS: + #endif + } + +- void sn_read_activated() ++ void sn_read_activated(QSocketDescriptor socket, QSocketNotifier::Type type) + { ++ Q_UNUSED(socket) ++ Q_UNUSED(type) + #ifdef Q_OS_UNIX + if (blockReadNotify) + return; diff --git a/vcpkg/ports/qca-qt6/ios.patch b/vcpkg/ports/qca-qt6/ios.patch new file mode 100644 index 000000000..06d53bd2c --- /dev/null +++ b/vcpkg/ports/qca-qt6/ios.patch @@ -0,0 +1,13 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 47773219..0e2b90ac 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -52,7 +52,7 @@ SET( SOURCES + + IF (WIN32) + SET( SOURCES ${SOURCES} qca_systemstore_win.cpp ) +-elseif(APPLE AND NOT IOS) ++elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set( SOURCES ${SOURCES} qca_systemstore_mac.cpp) + else() + SET( SOURCES ${SOURCES} qca_systemstore_flatfile.cpp ) diff --git a/vcpkg/ports/qca-qt6/mk-ca-bundle.pl b/vcpkg/ports/qca-qt6/mk-ca-bundle.pl new file mode 100644 index 000000000..9574f1dbf --- /dev/null +++ b/vcpkg/ports/qca-qt6/mk-ca-bundle.pl @@ -0,0 +1,554 @@ +#!/usr/bin/perl -w +# *************************************************************************** +# * _ _ ____ _ +# * Project ___| | | | _ \| | +# * / __| | | | |_) | | +# * | (__| |_| | _ <| |___ +# * \___|\___/|_| \_\_____| +# * +# * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. +# * +# * This software is licensed as described in the file COPYING, which +# * you should have received as part of this distribution. The terms +# * are also available at https://curl.haxx.se/docs/copyright.html. +# * +# * You may opt to use, copy, modify, merge, publish, distribute and/or sell +# * copies of the Software, and permit persons to whom the Software is +# * furnished to do so, under the terms of the COPYING file. +# * +# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# * KIND, either express or implied. +# * +# *************************************************************************** +# This Perl script creates a fresh ca-bundle.crt file for use with libcurl. +# It downloads certdata.txt from Mozilla's source tree (see URL below), +# then parses certdata.txt and extracts CA Root Certificates into PEM format. +# These are then processed with the OpenSSL commandline tool to produce the +# final ca-bundle.crt file. +# The script is based on the parse-certs script written by Roland Krikava. +# This Perl script works on almost any platform since its only external +# dependency is the OpenSSL commandline tool for optional text listing. +# Hacked by Guenter Knauf. +# +use Encode; +use Getopt::Std; +use MIME::Base64; +use strict; +use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w); +use List::Util; +use Text::Wrap; +my $MOD_SHA = "Digest::SHA"; +eval "require $MOD_SHA"; +if ($@) { + $MOD_SHA = "Digest::SHA::PurePerl"; + eval "require $MOD_SHA"; +} +eval "require LWP::UserAgent"; + +my %urls = ( + 'nss' => + 'https://hg.mozilla.org/projects/nss/raw-file/tip/lib/ckfw/builtins/certdata.txt', + 'central' => + 'https://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', + 'aurora' => + 'https://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', + 'beta' => + 'https://hg.mozilla.org/releases/mozilla-beta/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', + 'release' => + 'https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', +); + +$opt_d = 'release'; + +# If the OpenSSL commandline is not in search path you can configure it here! +my $openssl = 'openssl'; + +my $version = '1.27'; + +$opt_w = 76; # default base64 encoded lines length + +# default cert types to include in the output (default is to include CAs which may issue SSL server certs) +my $default_mozilla_trust_purposes = "SERVER_AUTH"; +my $default_mozilla_trust_levels = "TRUSTED_DELEGATOR"; +$opt_p = $default_mozilla_trust_purposes . ":" . $default_mozilla_trust_levels; + +my @valid_mozilla_trust_purposes = ( + "DIGITAL_SIGNATURE", + "NON_REPUDIATION", + "KEY_ENCIPHERMENT", + "DATA_ENCIPHERMENT", + "KEY_AGREEMENT", + "KEY_CERT_SIGN", + "CRL_SIGN", + "SERVER_AUTH", + "CLIENT_AUTH", + "CODE_SIGNING", + "EMAIL_PROTECTION", + "IPSEC_END_SYSTEM", + "IPSEC_TUNNEL", + "IPSEC_USER", + "TIME_STAMPING", + "STEP_UP_APPROVED" +); + +my @valid_mozilla_trust_levels = ( + "TRUSTED_DELEGATOR", # CAs + "NOT_TRUSTED", # Don't trust these certs. + "MUST_VERIFY_TRUST", # This explicitly tells us that it ISN'T a CA but is otherwise ok. In other words, this should tell the app to ignore any other sources that claim this is a CA. + "TRUSTED" # This cert is trusted, but only for itself and not for delegates (i.e. it is not a CA). +); + +my $default_signature_algorithms = $opt_s = "MD5"; + +my @valid_signature_algorithms = ( + "MD5", + "SHA1", + "SHA256", + "SHA384", + "SHA512" +); + +$0 =~ s@.*(/|\\)@@; +$Getopt::Std::STANDARD_HELP_VERSION = 1; +getopts('bd:fhiklmnp:qs:tuvw:'); + +if(!defined($opt_d)) { + # to make plain "-d" use not cause warnings, and actually still work + $opt_d = 'release'; +} + +# Use predefined URL or else custom URL specified on command line. +my $url; +if(defined($urls{$opt_d})) { + $url = $urls{$opt_d}; + if(!$opt_k && $url !~ /^https:\/\//i) { + die "The URL for '$opt_d' is not HTTPS. Use -k to override (insecure).\n"; + } +} +else { + $url = $opt_d; +} + +my $curl = `curl -V`; + +if ($opt_i) { + print ("=" x 78 . "\n"); + print "Script Version : $version\n"; + print "Perl Version : $]\n"; + print "Operating System Name : $^O\n"; + print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n"; + print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n"; + print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n" if($LWP::UserAgent::VERSION); + print "LWP.pm Version : ${LWP::VERSION}\n" if($LWP::VERSION); + print "Digest::SHA.pm Version : ${Digest::SHA::VERSION}\n" if ($Digest::SHA::VERSION); + print "Digest::SHA::PurePerl.pm Version : ${Digest::SHA::PurePerl::VERSION}\n" if ($Digest::SHA::PurePerl::VERSION); + print ("=" x 78 . "\n"); +} + +sub warning_message() { + if ( $opt_d =~ m/^risk$/i ) { # Long Form Warning and Exit + print "Warning: Use of this script may pose some risk:\n"; + print "\n"; + print " 1) If you use HTTP URLs they are subject to a man in the middle attack\n"; + print " 2) Default to 'release', but more recent updates may be found in other trees\n"; + print " 3) certdata.txt file format may change, lag time to update this script\n"; + print " 4) Generally unwise to blindly trust CAs without manual review & verification\n"; + print " 5) Mozilla apps use additional security checks aren't represented in certdata\n"; + print " 6) Use of this script will make a security engineer grind his teeth and\n"; + print " swear at you. ;)\n"; + exit; + } else { # Short Form Warning + print "Warning: Use of this script may pose some risk, -d risk for more details.\n"; + } +} + +sub HELP_MESSAGE() { + print "Usage:\t${0} [-b] [-d] [-f] [-i] [-k] [-l] [-n] [-p] [-q] [-s] [-t] [-u] [-v] [-w] []\n"; + print "\t-b\tbackup an existing version of ca-bundle.crt\n"; + print "\t-d\tspecify Mozilla tree to pull certdata.txt or custom URL\n"; + print "\t\t Valid names are:\n"; + print "\t\t ", join( ", ", map { ( $_ =~ m/$opt_d/ ) ? "$_ (default)" : "$_" } sort keys %urls ), "\n"; + print "\t-f\tforce rebuild even if certdata.txt is current\n"; + print "\t-i\tprint version info about used modules\n"; + print "\t-k\tallow URLs other than HTTPS, enable HTTP fallback (insecure)\n"; + print "\t-l\tprint license info about certdata.txt\n"; + print "\t-m\tinclude meta data in output\n"; + print "\t-n\tno download of certdata.txt (to use existing)\n"; + print wrap("\t","\t\t", "-p\tlist of Mozilla trust purposes and levels for certificates to include in output. Takes the form of a comma separated list of purposes, a colon, and a comma separated list of levels. (default: $default_mozilla_trust_purposes:$default_mozilla_trust_levels)"), "\n"; + print "\t\t Valid purposes are:\n"; + print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_purposes ) ), "\n"; + print "\t\t Valid levels are:\n"; + print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_levels ) ), "\n"; + print "\t-q\tbe really quiet (no progress output at all)\n"; + print wrap("\t","\t\t", "-s\tcomma separated list of certificate signatures/hashes to output in plain text mode. (default: $default_signature_algorithms)\n"); + print "\t\t Valid signature algorithms are:\n"; + print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_signature_algorithms ) ), "\n"; + print "\t-t\tinclude plain text listing of certificates\n"; + print "\t-u\tunlink (remove) certdata.txt after processing\n"; + print "\t-v\tbe verbose and print out processed CAs\n"; + print "\t-w \twrap base64 output lines after chars (default: ${opt_w})\n"; + exit; +} + +sub VERSION_MESSAGE() { + print "${0} version ${version} running Perl ${]} on ${^O}\n"; +} + +warning_message() unless ($opt_q || $url =~ m/^(ht|f)tps:/i ); +HELP_MESSAGE() if ($opt_h); + +sub report($@) { + my $output = shift; + + print STDERR $output . "\n" unless $opt_q; +} + +sub is_in_list($@) { + my $target = shift; + + return defined(List::Util::first { $target eq $_ } @_); +} + +# Parses $param_string as a case insensitive comma separated list with optional whitespace +# validates that only allowed parameters are supplied +sub parse_csv_param($$@) { + my $description = shift; + my $param_string = shift; + my @valid_values = @_; + + my @values = map { + s/^\s+//; # strip leading spaces + s/\s+$//; # strip trailing spaces + uc $_ # return the modified string as upper case + } split( ',', $param_string ); + + # Find all values which are not in the list of valid values or "ALL" + my @invalid = grep { !is_in_list($_,"ALL",@valid_values) } @values; + + if ( scalar(@invalid) > 0 ) { + # Tell the user which parameters were invalid and print the standard help message which will exit + print "Error: Invalid ", $description, scalar(@invalid) == 1 ? ": " : "s: ", join( ", ", map { "\"$_\"" } @invalid ), "\n"; + HELP_MESSAGE(); + } + + @values = @valid_values if ( is_in_list("ALL",@values) ); + + return @values; +} + +sub sha256 { + my $result; + if ($Digest::SHA::VERSION || $Digest::SHA::PurePerl::VERSION) { + open(FILE, $_[0]) or die "Can't open '$_[0]': $!"; + binmode(FILE); + $result = $MOD_SHA->new(256)->addfile(*FILE)->hexdigest; + close(FILE); + } else { + # Use OpenSSL command if Perl Digest::SHA modules not available + $result = `"$openssl" dgst -r -sha256 "$_[0]"`; + $result =~ s/^([0-9a-f]{64}) .+/$1/is; + } + return $result; +} + + +sub oldhash { + my $hash = ""; + open(C, "<$_[0]") || return 0; + while() { + chomp; + if($_ =~ /^\#\# SHA256: (.*)/) { + $hash = $1; + last; + } + } + close(C); + return $hash; +} + +if ( $opt_p !~ m/:/ ) { + print "Error: Mozilla trust identifier list must include both purposes and levels\n"; + HELP_MESSAGE(); +} + +(my $included_mozilla_trust_purposes_string, my $included_mozilla_trust_levels_string) = split( ':', $opt_p ); +my @included_mozilla_trust_purposes = parse_csv_param( "trust purpose", $included_mozilla_trust_purposes_string, @valid_mozilla_trust_purposes ); +my @included_mozilla_trust_levels = parse_csv_param( "trust level", $included_mozilla_trust_levels_string, @valid_mozilla_trust_levels ); + +my @included_signature_algorithms = parse_csv_param( "signature algorithm", $opt_s, @valid_signature_algorithms ); + +sub should_output_cert(%) { + my %trust_purposes_by_level = @_; + + foreach my $level (@included_mozilla_trust_levels) { + # for each level we want to output, see if any of our desired purposes are included + return 1 if ( defined( List::Util::first { is_in_list( $_, @included_mozilla_trust_purposes ) } @{$trust_purposes_by_level{$level}} ) ); + } + + return 0; +} + +my $crt = $ARGV[0] || 'ca-bundle.crt'; +(my $txt = $url) =~ s@(.*/|\?.*)@@g; + +my $stdout = $crt eq '-'; +my $resp; +my $fetched; + +my $oldhash = oldhash($crt); + +report "SHA256 of old file: $oldhash"; + +if(!$opt_n) { + report "Downloading $txt ..."; + + # If we have an HTTPS URL then use curl + if($url =~ /^https:\/\//i) { + if($curl) { + if($curl =~ /^Protocols:.* https( |$)/m) { + report "Get certdata with curl!"; + my $proto = !$opt_k ? "--proto =https" : ""; + my $quiet = $opt_q ? "-s" : ""; + my @out = `curl -w %{response_code} $proto $quiet -o "$txt" "$url"`; + if(@out && $out[0] == 200) { + $fetched = 1; + report "Downloaded $txt"; + } + else { + report "Failed downloading via HTTPS with curl"; + if(-e $txt && !unlink($txt)) { + report "Failed to remove '$txt': $!"; + } + } + } + else { + report "curl lacks https support"; + } + } + else { + report "curl not found"; + } + } + + # If nothing was fetched then use LWP + if(!$fetched) { + if($url =~ /^https:\/\//i) { + report "Falling back to HTTP"; + $url =~ s/^https:\/\//http:\/\//i; + } + if(!$opt_k) { + report "URLs other than HTTPS are disabled by default, to enable use -k"; + exit 1; + } + report "Get certdata with LWP!"; + if(!defined(${LWP::UserAgent::VERSION})) { + report "LWP is not available (LWP::UserAgent not found)"; + exit 1; + } + my $ua = new LWP::UserAgent(agent => "$0/$version"); + $ua->env_proxy(); + $resp = $ua->mirror($url, $txt); + if($resp && $resp->code eq '304') { + report "Not modified"; + exit 0 if -e $crt && !$opt_f; + } + else { + $fetched = 1; + report "Downloaded $txt"; + } + if(!$resp || $resp->code !~ /^(?:200|304)$/) { + report "Unable to download latest data: " + . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed"); + exit 1 if -e $crt || ! -r $txt; + } + } +} + +my $filedate = $resp ? $resp->last_modified : (stat($txt))[9]; +my $datesrc = "as of"; +if(!$filedate) { + # mxr.mozilla.org gave us a time, hg.mozilla.org does not! + $filedate = time(); + $datesrc="downloaded on"; +} + +# get the hash from the download file +my $newhash= sha256($txt); + +if(!$opt_f && $oldhash eq $newhash) { + report "Downloaded file identical to previous run\'s source file. Exiting"; + exit; +} + +report "SHA256 of new file: $newhash"; + +my $currentdate = scalar gmtime($filedate); + +my $format = $opt_t ? "plain text and " : ""; +if( $stdout ) { + open(CRT, '> -') or die "Couldn't open STDOUT: $!\n"; +} else { + open(CRT,">$crt.~") or die "Couldn't open $crt.~: $!\n"; +} +print CRT <) { + if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { + print CRT; + print if ($opt_l); + while () { + print CRT; + print if ($opt_l); + last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); + } + } + elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) { + push @precert, $_; + next; + } + elsif(/^#|^\s*$/) { + undef @precert; + next; + } + chomp; + + # this is a match for the start of a certificate + if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { + $start_of_cert = 1 + } + if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { + $caname = $1; + } + my %trust_purposes_by_level; + if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { + my $data; + while () { + last if (/^END/); + chomp; + my @octets = split(/\\/); + shift @octets; + for (@octets) { + $data .= chr(oct); + } + } + # scan forwards until the trust part + while () { + last if (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/); + chomp; + } + # now scan the trust part to determine how we should trust this cert + while () { + last if (/^#/); + if (/^CKA_TRUST_([A-Z_]+)\s+CK_TRUST\s+CKT_NSS_([A-Z_]+)\s*$/) { + if ( !is_in_list($1,@valid_mozilla_trust_purposes) ) { + report "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2"; + } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) { + report "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2"; + } else { + push @{$trust_purposes_by_level{$2}}, $1; + } + } + } + + if ( !should_output_cert(%trust_purposes_by_level) ) { + $skipnum ++; + } else { + my $encoded = MIME::Base64::encode_base64($data, ''); + $encoded =~ s/(.{1,${opt_w}})/$1\n/g; + my $pem = "-----BEGIN CERTIFICATE-----\n" + . $encoded + . "-----END CERTIFICATE-----\n"; + print CRT "\n$caname\n"; + print CRT @precert if($opt_m); + my $maxStringLength = length(decode('UTF-8', $caname, Encode::FB_CROAK)); + if ($opt_t) { + foreach my $key (keys %trust_purposes_by_level) { + my $string = $key . ": " . join(", ", @{$trust_purposes_by_level{$key}}); + $maxStringLength = List::Util::max( length($string), $maxStringLength ); + print CRT $string . "\n"; + } + } + print CRT ("=" x $maxStringLength . "\n"); + if (!$opt_t) { + print CRT $pem; + } else { + my $pipe = ""; + foreach my $hash (@included_signature_algorithms) { + $pipe = "|$openssl x509 -" . $hash . " -fingerprint -noout -inform PEM"; + if (!$stdout) { + $pipe .= " >> $crt.~"; + close(CRT) or die "Couldn't close $crt.~: $!"; + } + open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + if (!$stdout) { + open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; + } + } + $pipe = "|$openssl x509 -text -inform PEM"; + if (!$stdout) { + $pipe .= " >> $crt.~"; + close(CRT) or die "Couldn't close $crt.~: $!"; + } + open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + if (!$stdout) { + open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; + } + } + report "Parsing: $caname" if ($opt_v); + $certnum ++; + $start_of_cert = 0; + } + undef @precert; + } + +} +close(TXT) or die "Couldn't close $txt: $!\n"; +close(CRT) or die "Couldn't close $crt.~: $!\n"; +unless( $stdout ) { + if ($opt_b && -e $crt) { + my $bk = 1; + while (-e "$crt.~${bk}~") { + $bk++; + } + rename $crt, "$crt.~${bk}~" or die "Failed to create backup $crt.~$bk}~: $!\n"; + } elsif( -e $crt ) { + unlink( $crt ) or die "Failed to remove $crt: $!\n"; + } + rename "$crt.~", $crt or die "Failed to rename $crt.~ to $crt: $!\n"; +} +if($opt_u && -e $txt && !unlink($txt)) { + report "Failed to remove $txt: $!\n"; +} +report "Done ($certnum CA certs processed, $skipnum skipped)."; diff --git a/vcpkg/ports/qca-qt6/portfile.cmake b/vcpkg/ports/qca-qt6/portfile.cmake new file mode 100644 index 000000000..74ab67e3a --- /dev/null +++ b/vcpkg/ports/qca-qt6/portfile.cmake @@ -0,0 +1,95 @@ +# This portfile adds the Qt Cryptographic Arcitecture +# Changes to the original build: +# No -qt5 suffix, which is recommended just for Linux +# Output directories according to vcpkg +# Updated certstore. See certstore.pem in the output dirs +# +vcpkg_find_acquire_program(PERL) +get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +vcpkg_add_to_path("${PERL_EXE_PATH}") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/qca + REF "v${VERSION}" + SHA512 956d36058db61498c492fc9b5345b45ca75a5e8214fcbf358273dfacdd5980c1394394652536d9332df05f29fc912d0781338bcca403d98de1285bb8b1216402 + PATCHES + 0001-fix-path-for-vcpkg.patch + 0002-fix-build-error.patch + 0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch + ios.patch + connect_fix.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/Qca) + set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/bin/Qca) +else() + set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/Qca) + set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/lib/Qca) +endif() + +# According to: +# https://www.openssl.org/docs/faq.html#USER16 +# it is up to developers or admins to maintain CAs. +# So we do it here: +message(STATUS "Importing certstore") +file(REMOVE "${SOURCE_PATH}/certs/rootcerts.pem") +# Using file(DOWNLOAD) to use https +file(DOWNLOAD https://raw.githubusercontent.com/mozilla/gecko-dev/master/security/nss/lib/ckfw/builtins/certdata.txt + "${CURRENT_BUILDTREES_DIR}/cert/certdata.txt" + TLS_VERIFY ON +) +vcpkg_execute_required_process( + COMMAND "${PERL}" "${CMAKE_CURRENT_LIST_DIR}/mk-ca-bundle.pl" -n "${SOURCE_PATH}/certs/rootcerts.pem" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/cert" + LOGNAME ca-bundle +) +message(STATUS "Importing certstore done") + +if(VCPKG_CROSSCOMPILING) + list(APPEND QCA_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND QCA_OPTIONS -DQT_ADDITIONAL_PACKAGES_PREFIX_PATH=${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND QCA_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) +endif() + +list(APPEND QCA_OPTIONS -DWITH_gnupg_PLUGIN=no) +# Configure and build +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_WITH_QT6=ON + -DUSE_RELATIVE_PATHS=ON + -DBUILD_TESTS=OFF + -DBUILD_TOOLS=OFF + -DQCA_SUFFIX=OFF + -DQCA_FEATURE_INSTALL_DIR=share/qca/mkspecs/features + -DOSX_FRAMEWORK=OFF + -DQT6=ON + ${QCA_OPTIONS} + OPTIONS_DEBUG + -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_DEBUG} + OPTIONS_RELEASE + -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_RELEASE} +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH share/qca/cmake) +file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" QCA_CONFIG_FILE) +string(REGEX REPLACE "PACKAGE_PREFIX_DIR \"(.*)\" ABSOLUTE" + [[PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE]] + QCA_CONFIG_FILE "${QCA_CONFIG_FILE}" +) +file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" "${QCA_CONFIG_FILE}") + +# Remove unneeded dirs +file(REMOVE_RECURSE + "${CURRENT_BUILDTREES_DIR}/share/man" + "${CURRENT_PACKAGES_DIR}/share/man" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +# Handle copyright +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/qca-qt6/vcpkg.json b/vcpkg/ports/qca-qt6/vcpkg.json new file mode 100644 index 000000000..ecb7027ee --- /dev/null +++ b/vcpkg/ports/qca-qt6/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "qca-qt6", + "version": "2.3.9", + "description": "Qt Cryptographic Architecture (QCA).", + "homepage": "https://cgit.kde.org/qca.git/", + "dependencies": [ + "qt6", + "openssl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qgis-qt6/applocal.ps1 b/vcpkg/ports/qgis-qt6/applocal.ps1 new file mode 100644 index 000000000..10119875d --- /dev/null +++ b/vcpkg/ports/qgis-qt6/applocal.ps1 @@ -0,0 +1,125 @@ +[cmdletbinding()] +param([string]$targetBinary, [string]$installedDir, [string]$tlogFile, [string]$copiedFilesLog, [string]$outputDir) + +$g_searched = @{} +# Note: installedDir is actually the bin\ directory. +$g_install_root = Split-Path $installedDir -parent +$g_is_debug = $g_install_root -match '(.*\\)?debug(\\)?$' + +# Ensure we create the copied files log, even if we don't end up copying any files +if ($copiedFilesLog) +{ + Set-Content -Path $copiedFilesLog -Value "" -Encoding UTF8 +} + +# Note: this function signature is depended upon by the qtdeploy.ps1 script introduced in 5.7.1-7 +function deployBinary([string]$targetBinaryDir, [string]$SourceDir, [string]$targetBinaryName) { + if (Test-Path "$targetBinaryDir\$targetBinaryName") { + $sourceModTime = (Get-Item $SourceDir\$targetBinaryName).LastWriteTime + $destModTime = (Get-Item $targetBinaryDir\$targetBinaryName).LastWriteTime + if ($destModTime -lt $sourceModTime) { + Write-Verbose " ${targetBinaryName}: Updating $SourceDir\$targetBinaryName" + Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir + } else { + Write-Verbose " ${targetBinaryName}: already present" + } + } + else { + Write-Verbose " ${targetBinaryName}: Copying $SourceDir\$targetBinaryName" + Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir + } + if ($copiedFilesLog) { Add-Content $copiedFilesLog "$targetBinaryDir\$targetBinaryName" -Encoding UTF8 } + if ($tlogFile) { Add-Content $tlogFile "$targetBinaryDir\$targetBinaryName" -Encoding Unicode } +} + + +Write-Verbose "Resolving base path $targetBinary..." +try +{ + $baseBinaryPath = Resolve-Path $targetBinary -erroraction stop + $baseTargetBinaryDir = Split-Path $baseBinaryPath -parent + if (![string]::IsNullOrEmpty($outputDir)) { + if (Test-Path "$outputDir\$_"){ + $baseTargetBinaryDir = $outputDir + } else { + Write-Error " ${outputDir} not found" + return + } + } +} +catch [System.Management.Automation.ItemNotFoundException] +{ + return +} + +# Note: this function signature is depended upon by the qtdeploy.ps1 script +function resolve([string]$targetBinary) { + Write-Verbose "Resolving $targetBinary..." + try + { + $targetBinaryPath = Resolve-Path $targetBinary -erroraction stop + } + catch [System.Management.Automation.ItemNotFoundException] + { + return + } + $targetBinaryDir = Split-Path $targetBinaryPath -parent + + $a = $(dumpbin /DEPENDENTS $targetBinary | ? { $_ -match "^ [^ ].*\.dll" } | % { $_ -replace "^ ","" }) + $a | % { + if ([string]::IsNullOrEmpty($_)) { + return + } + if ($g_searched.ContainsKey($_)) { + Write-Verbose " ${_}: previously searched - Skip" + return + } + $g_searched.Set_Item($_, $true) + if (Test-Path "$installedDir\$_") { + deployBinary $baseTargetBinaryDir $installedDir "$_" + if (Test-Path function:\deployPluginsIfQt) { deployPluginsIfQt $baseTargetBinaryDir "$g_install_root\plugins" "$_" } + if (Test-Path function:\deployOpenNI2) { deployOpenNI2 $targetBinaryDir "$g_install_root" "$_" } + if (Test-Path function:\deployPluginsIfMagnum) { + if ($g_is_debug) { + deployPluginsIfMagnum $targetBinaryDir "$g_install_root\bin\magnum-d" "$_" + } else { + deployPluginsIfMagnum $targetBinaryDir "$g_install_root\bin\magnum" "$_" + } + } + if (Test-Path function:\deployAzureKinectSensorSDK) { deployAzureKinectSensorSDK $targetBinaryDir "$g_install_root" "$_" } + resolve "$baseTargetBinaryDir\$_" + } elseif (Test-Path "$targetBinaryDir\$_") { + Write-Verbose " ${_}: $_ not found in vcpkg; locally deployed" + resolve "$targetBinaryDir\$_" + } else { + Write-Verbose " ${_}: $installedDir\$_ not found" + } + } + Write-Verbose "Done Resolving $targetBinary." +} + +# Note: This is a hack to make Qt5 work. +# Introduced with Qt package version 5.7.1-7 +if (Test-Path "$g_install_root\plugins\qtdeploy.ps1") { + . "$g_install_root\plugins\qtdeploy.ps1" +} + +# Note: This is a hack to make OpenNI2 work. +if (Test-Path "$g_install_root\bin\OpenNI2\openni2deploy.ps1") { + . "$g_install_root\bin\OpenNI2\openni2deploy.ps1" +} + +# Note: This is a hack to make Magnum work. +if (Test-Path "$g_install_root\bin\magnum\magnumdeploy.ps1") { + . "$g_install_root\bin\magnum\magnumdeploy.ps1" +} elseif (Test-Path "$g_install_root\bin\magnum-d\magnumdeploy.ps1") { + . "$g_install_root\bin\magnum-d\magnumdeploy.ps1" +} + +# Note: This is a hack to make Azure Kinect Sensor SDK work. +if (Test-Path "$g_install_root\tools\azure-kinect-sensor-sdk\k4adeploy.ps1") { + . "$g_install_root\tools\azure-kinect-sensor-sdk\k4adeploy.ps1" +} + +resolve($targetBinary) +Write-Verbose $($g_searched | out-string) diff --git a/vcpkg/ports/qgis-qt6/cmakelists.patch b/vcpkg/ports/qgis-qt6/cmakelists.patch new file mode 100644 index 000000000..d2b22c7d2 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/cmakelists.patch @@ -0,0 +1,39 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -387,6 +387,7 @@ if(WITH_CORE) + message(STATUS "Found Geos: ${GEOS_VERSION} ${GEOS_DIR}") + find_package(GDAL REQUIRED) + message(STATUS "Found GDAL: ${GDAL_VERSION} ${GDAL_DIR}") ++ set(GDAL_LIBRARY ${GDAL_LIBRARIES}) + find_package(EXPAT REQUIRED) + find_package(Spatialindex REQUIRED) + find_package(LibZip REQUIRED) +@@ -409,7 +410,8 @@ if(WITH_CORE) + find_package(ZLIB REQUIRED) # for decompression of vector tiles in MBTiles file + message(STATUS "Found zlib: ${ZLIB_LIBRARIES}") + +- find_package(EXIV2 REQUIRED) ++ find_package(exiv2 REQUIRED) ++ set(EXIV2_LIBRARY exiv2lib) + + # optional + if (WITH_POSTGRESQL) +@@ -604,6 +606,10 @@ if(WITH_CORE) + else() + find_package(Qt5Keychain CONFIG REQUIRED) + endif() ++ set(QTKEYCHAIN_INCLUDE_DIR ${QTKEYCHAIN_INCLUDE_DIRS}/qt6keychain) ++ set(QTKEYCHAIN_LIBRARY ${QTKEYCHAIN_LIBRARIES}) ++ set(QTKEYCHAIN_FOUND ${Qt6Keychain_FOUND}) ++ + # Master password hash and authentication encryption + find_package(QCA REQUIRED) + # Check for runtime dependency of qca-ossl plugin +@@ -818,6 +824,7 @@ endif() + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + # disable macros that offend std::numeric_limits::min()/max() + add_definitions(-DNOMINMAX) ++ add_definitions(/bigobj) + endif() + + # Prevent build when Qt api deprecated before this Qt version is used: diff --git a/vcpkg/ports/qgis-qt6/crssync.patch b/vcpkg/ports/qgis-qt6/crssync.patch new file mode 100644 index 000000000..f3f28c349 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/crssync.patch @@ -0,0 +1,13 @@ +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -16,7 +16,9 @@ add_subdirectory(crssync) + + add_subdirectory(providers) + +-add_subdirectory(crssync) ++if (NOT FORCE_STATIC_LIBS) ++ add_subdirectory(crssync) ++endif() + + if (WITH_CRASH_HANDLER) + add_subdirectory(crashhandler) diff --git a/vcpkg/ports/qgis-qt6/libxml2.patch b/vcpkg/ports/qgis-qt6/libxml2.patch new file mode 100644 index 000000000..2d4bfd105 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/libxml2.patch @@ -0,0 +1,11 @@ +--- a/src/providers/mdal/CMakeLists.txt ++++ b/src/providers/mdal/CMakeLists.txt +@@ -16,7 +16,7 @@ find_package(LibXml2) + endif() + find_package(HDF5) + find_package(NetCDF) +-find_package(LibXml2) ++find_package(libxml2 CONFIG) + + ######################################################## + # Compile internal MDAL diff --git a/vcpkg/ports/qgis-qt6/portfile.cmake b/vcpkg/ports/qgis-qt6/portfile.cmake new file mode 100644 index 000000000..31ada00de --- /dev/null +++ b/vcpkg/ports/qgis-qt6/portfile.cmake @@ -0,0 +1,301 @@ +set(QGIS_REF 55d788f1f80183bd52fd8045c1fbed5e6260f194) # final-3_40_4 +set(QGIS_SHA512 6eb3e2259fda72f7e2e8203d951b891963d52d47128793af02dfa989a467ba5524ab7a1019b4cf4acfd9e70c21635bd7b8577dc452d5cf7b98fcf7ce03d97b9f) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO qgis/QGIS + REF ${QGIS_REF} + SHA512 ${QGIS_SHA512} + PATCHES + cmakelists.patch + crssync.patch + libxml2.patch +) + +file(REMOVE ${SOURCE_PATH}/cmake/FindQtKeychain.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindGDAL.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindGEOS.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindEXIV2.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindExpat.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindIconv.cmake) + +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) +vcpkg_add_to_path(${PYTHON3_PATH}) +vcpkg_add_to_path(${PYTHON3_PATH}/Scripts) +set(PYTHON_EXECUTABLE ${PYTHON3}) + +list(APPEND QGIS_OPTIONS -DFORCE_STATIC_LIBS:BOOL=ON) +list(APPEND QGIS_OPTIONS -DWITH_SPATIALITE:BOOL=ON) +list(APPEND QGIS_OPTIONS -DBUILD_WITH_QT6:BOOL=ON) + +list(APPEND QGIS_OPTIONS -DENABLE_TESTS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QTWEBKIT:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GRASS7:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QSPATIALITE:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DUSE_OPENCL:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_BINDINGS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GUI:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_DESKTOP:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_CUSTOM_WIDGETS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_SERVER_PLUGINS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_SERVER:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QGIS_PROCESS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_PDAL:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_EPT:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_3D:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_DRACO:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_COPC=OFF) +list(APPEND QGIS_OPTIONS -DWITH_ANALYSIS=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GRASS=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GEOREFERENCER:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QTMOBILITY:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DENABLE_TESTS=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QWTPOLAR=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GUI=OFF) +list(APPEND QGIS_OPTIONS -DWITH_APIDOC=OFF) +list(APPEND QGIS_OPTIONS -DWITH_ASTYLE=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QT5SERIALPORT=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QUICK:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DQGIS_MACAPP_FRAMEWORK=FALSE) +list(APPEND QGIS_OPTIONS -DWITH_QTSERIALPORT=FALSE) + +# Configure debug and release library paths +macro(FIND_LIB_OPTIONS basename relname debname suffix libsuffix) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}${relname}${libsuffix}" ${basename}_LIBRARY_RELEASE) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}${debname}${libsuffix}" ${basename}_LIBRARY_DEBUG) + if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE ) + list(APPEND QGIS_OPTIONS_RELEASE -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_RELEASE}) + list(APPEND QGIS_OPTIONS_DEBUG -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_DEBUG}) + elseif( ${basename}_LIBRARY_RELEASE ) + list(APPEND QGIS_OPTIONS -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_RELEASE}) + elseif( ${basename}_LIBRARY_DEBUG ) + list(APPEND QGIS_OPTIONS -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_DEBUG}) + endif() +endmacro() + +# QGIS likes to install auth and providers to different locations on each platform +# let's keep things clean and tidy and put them at a predictable location +list(APPEND QGIS_OPTIONS -DQGIS_PLUGIN_SUBDIR=lib) + +# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else +# let's keep things clean and tidy and put them at a predictable location +list(APPEND QGIS_OPTIONS -DQGIS_INCLUDE_SUBDIR=include/qgis) + + +if(VCPKG_TARGET_IS_WINDOWS) + ############################################################################## + #Install pip + # if(NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe") + # MESSAGE(STATUS "Install pip for Python Begin ...") + # vcpkg_download_distfile( + # GET_PIP_PATH + # URLS https://bootstrap.pypa.io/pip/3.5/get-pip.py + # FILENAME get-pip.py + # SHA512 a408dd74e69a2c3259e06669562bebfff676156a1a3b2f8ba6594ed308e3f94afdf79257688e59b02bf02bd7f6ecbea510fc6665b403149031f14bcc08308a47 + # ) + + # vcpkg_execute_required_process( + # COMMAND "${PYTHON_EXECUTABLE}" "${GET_PIP_PATH}" + # WORKING_DIRECTORY ${PYTHON3_PATH} + # LOGNAME pip + # ) + + # vcpkg_execute_required_process( + # COMMAND "${PYTHON_EXECUTABLE}" -m pip install --upgrade pip + # WORKING_DIRECTORY ${PYTHON3_PATH} + # LOGNAME pip + # ) + # MESSAGE(STATUS "Install pip for Python End") + # endif (NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe") + ############################################################################## + + list(APPEND QGIS_OPTIONS -DBISON_EXECUTABLE="${BISON}") + list(APPEND QGIS_OPTIONS -DFLEX_EXECUTABLE="${FLEX}") + + # list(APPEND QGIS_OPTIONS -DPYUIC_PROGRAM=${PYTHON3_PATH}/Scripts/pyuic5.exe) + # list(APPEND QGIS_OPTIONS -DPYRCC_PROGRAM=${PYTHON3_PATH}/Scripts/pyrcc5.exe) + # list(APPEND QGIS_OPTIONS -DQT_LRELEASE_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/qt5-tools/bin/lrelease.exe) + + # qgis_gui depends on Qt5UiTools, and Qt5UiTools is a static library. + # If Qt5_EXCLUDE_STATIC_DEPENDENCIES is not set, it will add the QT release library that it depends on. + # so that in debug mode, it will reference both the qt debug library and the release library. + # In Debug mode, add Qt5_EXCLUDE_STATIC_DEPENDENCIES to avoid this bug + list(APPEND QGIS_OPTIONS_DEBUG -DQt5_EXCLUDE_STATIC_DEPENDENCIES:BOOL=ON) + + FIND_LIB_OPTIONS(GDAL gdal gdald LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(GEOS geos_c geos_cd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(GSL gsl gsld LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(GSLCBLAS gslcblas gslcblasd LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(POSTGRES libpq libpq LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(PROJ proj proj_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(PYTHON python39 python39_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(QCA qca qcad LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + + FIND_LIB_OPTIONS(QTKEYCHAIN qt6keychain qt6keychaind LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(QSCINTILLA qscintilla2_qt5 qscintilla2_qt5d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + + # if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # FIND_LIB_OPTIONS(ZSTD zstd_static zstd_staticd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # endif() + + set(SPATIALINDEX_LIB_NAME spatialindex) + if( VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" ) + set( SPATIALINDEX_LIB_NAME "spatialindex-64" ) + else() + set( SPATIALINDEX_LIB_NAME "spatialindex-32" ) + endif() + FIND_LIB_OPTIONS(SPATIALINDEX ${SPATIALINDEX_LIB_NAME} ${SPATIALINDEX_LIB_NAME}d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) +endif() + +if(VCPKG_TARGET_IS_IOS) + if(NOT EXISTS "$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") + MESSAGE(FATAL_ERROR "missing libQt6Bundled_Poly2Tri") + endif() + # on iOS (static) Qt ships Poly2Tri ( but without headers :( ) + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) + list(APPEND QGIS_OPTIONS -Dpoly2tri_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include/poly2tri) + list(APPEND QGIS_OPTIONS_DEBUG -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri_debug.a") + list(APPEND QGIS_OPTIONS_RELEASE -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") +else() + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + #PREFER_NINJA + OPTIONS ${QGIS_OPTIONS} + OPTIONS_DEBUG ${QGIS_OPTIONS_DEBUG} + OPTIONS_RELEASE ${QGIS_OPTIONS_RELEASE} +) + +vcpkg_install_cmake() + +function(copy_path basepath targetdir) + file(GLOB ${basepath}_PATH ${CURRENT_PACKAGES_DIR}/${basepath}/*) + if( ${basepath}_PATH ) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath}) + file(COPY ${${basepath}_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath}) + endif() + + if(EXISTS "${CURRENT_PACKAGES_DIR}/${basepath}/") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${basepath}/) + endif() +endfunction() + + +if(VCPKG_TARGET_IS_WINDOWS) + file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) + if(QGIS_TOOL_PATH) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + file(REMOVE_RECURSE ${QGIS_TOOL_PATH}) + file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/* ) + file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + endif() + + file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) + if(QGIS_TOOL_PATH_DEBUG) + if("debug-tools" IN_LIST FEATURES) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) + file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) + file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG}) + file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/* ) + file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) + else() + file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG}) + endif() + endif() + + copy_path(doc share) + copy_path(i18n share) + copy_path(icons share) + copy_path(images share) + copy_path(plugins tools) + copy_path(resources share) + copy_path(svg share) + + # Extend vcpkg_copy_tool_dependencies to support the export of dll and exe dependencies in different directories to the same directory, + # and support the copy of debug dependencies + function(vcpkg_copy_tool_dependencies_ex TOOL_DIR OUTPUT_DIR SEARCH_DIR) + find_program(PS_EXE powershell PATHS ${DOWNLOADS}/tool) + if (PS_EXE-NOTFOUND) + message(FATAL_ERROR "Could not find powershell in vcpkg tools, please open an issue to report this.") + endif() + macro(search_for_dependencies PATH_TO_SEARCH) + file(GLOB TOOLS ${TOOL_DIR}/*.exe ${TOOL_DIR}/*.dll) + foreach(TOOL ${TOOLS}) + vcpkg_execute_required_process( + COMMAND ${PS_EXE} -noprofile -executionpolicy Bypass -nologo + -file ${CMAKE_CURRENT_LIST_DIR}/applocal.ps1 + -targetBinary ${TOOL} + -installedDir ${PATH_TO_SEARCH} + -outputDir ${OUTPUT_DIR} + WORKING_DIRECTORY ${VCPKG_ROOT_DIR} + LOGNAME copy-tool-dependencies + ) + endforeach() + endmacro() + search_for_dependencies(${CURRENT_PACKAGES_DIR}/${SEARCH_DIR}) + search_for_dependencies(${CURRENT_INSTALLED_DIR}/${SEARCH_DIR}) + endfunction() + + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/plugins ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) + if("debug-tools" IN_LIST FEATURES) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/plugins ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) + endif() + if("server" IN_LIST FEATURES) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) + if("debug-tools" IN_LIST FEATURES) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) + endif() + endif() + + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) + file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake) +else() + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) + if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libqt_poly2tri.a") + set(QT_POLY2TRI_DIR_RELEASE "${CURRENT_INSTALLED_DIR}/lib") + set(QT_POLY2TRI_DIR_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") + elseif(EXISTS "${Qt6_DIR}/../../libqt_poly2tri.a") + set(QT_POLY2TRI_DIR_RELEASE "${Qt6_DIR}/../..") + set(QT_POLY2TRI_DIR_DEBUG "${Qt6_DIR}/../..") + else() + list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri) + endif() + if(DEFINED QT_POLY2TRI_DIR_RELEASE) + list(APPEND QGIS_OPTIONS -DPoly2Tri_INCLUDE_DIR:PATH=${CMAKE_CURRENT_LIST_DIR}/poly2tri) + list(APPEND QGIS_OPTIONS_DEBUG -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_DEBUG}/debug/lib/libqt_poly2tri_debug.a) # static qt only + list(APPEND QGIS_OPTIONS_RELEASE -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_RELEASE}/lib/libqt_poly2tri.a) # static qt only + endif() +endif() + +if(VCPKG_TARGET_IS_OSX) + copy_path(resources share) +endif() + +file(GLOB QGIS_CMAKE_PATH ${CURRENT_PACKAGES_DIR}/*.cmake) +if(QGIS_CMAKE_PATH) + file(COPY ${QGIS_CMAKE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmake/${PORT}) + file(REMOVE_RECURSE ${QGIS_CMAKE_PATH}) +endif() + +file(GLOB QGIS_CMAKE_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.cmake) +if( QGIS_CMAKE_PATH_DEBUG ) + file(REMOVE_RECURSE ${QGIS_CMAKE_PATH_DEBUG}) +endif() + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include +) +file(REMOVE_RECURSE # Added for debug porpose + ${CURRENT_PACKAGES_DIR}/debug/share +) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file diff --git a/vcpkg/ports/qgis-qt6/vcpkg.json b/vcpkg/ports/qgis-qt6/vcpkg.json new file mode 100644 index 000000000..f573e12e5 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/vcpkg.json @@ -0,0 +1,40 @@ +{ + "name": "qgis-qt6", + "version": "3.40.4", + "port-version": 0, + "homepage": "https://qgis.org", + "description": "QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)", + "dependencies": [ + "expat", + "libxml2", + "libzip", + "zlib", + "libspatialindex", + "libspatialite", + "gdal", + "exiv2", + "libpq", + "protobuf", + "proj", + "geos", + "qt6", + "qca-qt6", + "qtkeychain-qt6", + { + "name": "libtasn1", + "platform": "osx | ios" + }, + { + "name": "qt6-poly2tri", + "platform": "ios" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qt6-poly2tri/portfile.cmake b/vcpkg/ports/qt6-poly2tri/portfile.cmake new file mode 100644 index 000000000..edbaed6fa --- /dev/null +++ b/vcpkg/ports/qt6-poly2tri/portfile.cmake @@ -0,0 +1,18 @@ +# on iOS (static) Qt ships Poly2Tri ( but without headers :( ) +if(NOT VCPKG_TARGET_IS_IOS) + message(FATAL_ERROR "qt poly2tri only needed on iOS") +else() + vcpkg_download_distfile(ARCHIVE + URLS "https://download.qt.io/archive/qt/6.8/${VERSION}/submodules/qtpositioning-everywhere-src-${VERSION}.zip" + FILENAME "qtpositioning-${VERSION}.zip" + SHA512 cd216c94ef2d35e48bd9b8d7cf3d5c71f8afba379044601737e062f0de88c10a5c931a63b0f05436355ab464918400f7704908ec9c46c79eee74d790e678ae47 + ) + + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" + ) + + file(INSTALL ${SOURCE_PATH}/src/3rdparty/poly2tri DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h") +endif() diff --git a/vcpkg/ports/qt6-poly2tri/vcpkg.json b/vcpkg/ports/qt6-poly2tri/vcpkg.json new file mode 100644 index 000000000..ee1436085 --- /dev/null +++ b/vcpkg/ports/qt6-poly2tri/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "qt6-poly2tri", + "version": "6.8.3", + "port-version": 0, + "description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", + "homepage": "https://www.qt.io/", + "license": null, + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qt6/copyright b/vcpkg/ports/qt6/copyright new file mode 100644 index 000000000..6bf924cd1 --- /dev/null +++ b/vcpkg/ports/qt6/copyright @@ -0,0 +1,175 @@ + GNU LESSER GENERAL PUBLIC LICENSE + + The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. + Contact: http://www.qt.io/licensing/ + + You may use, distribute and copy the Qt Toolkit under the terms of + GNU Lesser General Public License version 3, which is displayed below. + This license makes reference to the version 3 of the GNU General + Public License, which you can find in the LICENSE.GPLv3 file. + +------------------------------------------------------------------------- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright © 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies of this +licensedocument, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + +0. Additional Definitions. + + As used herein, “this License” refers to version 3 of the GNU Lesser +General Public License, and the “GNU GPL” refers to version 3 of the +GNU General Public License. + + “The Library” refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An “Application” is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A “Combined Work” is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the “Linked +Version”. + + The “Minimal Corresponding Source” for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The “Corresponding Application Code” for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort + to ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + +3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this + license document. + +4. Combined Works. + + You may convey a Combined Work under terms of your choice that, taken +together, effectively do not restrict modification of the portions of +the Library contained in the Combined Work and reverse engineering for +debugging such modifications, if you also do each of the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this + license document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of + this License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with + the Library. A suitable mechanism is one that (a) uses at run + time a copy of the Library already present on the user's + computer system, and (b) will operate properly with a modified + version of the Library that is interface-compatible with the + Linked Version. + + e) Provide Installation Information, but only if you would + otherwise be required to provide such information under section 6 + of the GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the Application + with a modified version of the Linked Version. (If you use option + 4d0, the Installation Information must accompany the Minimal + Corresponding Source and Corresponding Application Code. If you + use option 4d1, you must provide the Installation Information in + the manner specified by section 6 of the GNU GPL for conveying + Corresponding Source.) + +5. Combined Libraries. + + You may place library facilities that are a work based on the Library +side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities, conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of + it is a work based on the Library, and explaining where to find + the accompanying uncombined form of the same work. + +6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +as you received it specifies that a certain numbered version of the +GNU Lesser General Public License “or any later version” applies to +it, you have the option of following the terms and conditions either +of that published version or of any later version published by the +Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, +you may choose any version of the GNU Lesser General Public License +ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the Library. + diff --git a/vcpkg/ports/qt6/portfile.cmake b/vcpkg/ports/qt6/portfile.cmake new file mode 100644 index 000000000..6d9df585f --- /dev/null +++ b/vcpkg/ports/qt6/portfile.cmake @@ -0,0 +1,3 @@ +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) diff --git a/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..7f30acc45 --- /dev/null +++ b/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,196 @@ +set(QT_MODULES + Qt6 + Qt6Designer + Qt63DAnimation + Qt63DCore + Qt63DExtras + Qt63DInput + Qt63DLogic + Qt63DQuick + Qt63DQuickAnimation + Qt63DQuickExtras + Qt63DQuickInput + Qt63DQuickRender + Qt63DQuickScene2D + Qt63DRender + Qt6AccessibilitySupport + Qt6AttributionsScannerTools + Qt6Bluetooth + Qt6Bootstrap + Qt6BundledPcre2 + Qt6BundledLibpng + Qt6BundledHarfbuzz + Qt6BundledFreetype + Qt6BuildInternals + Qt6Bundled_Clip2Tri + Qt6BundledFreetype + Qt6BundledGlslang_Glslang + Qt6BundledGlslang_Oglcompiler + Qt6BundledGlslang_Osdependent + Qt6BundledGlslang_Spirv + Qt6BundledHarfbuzz + Qt6BundledLibjpeg + Qt6BundledLibpng + Qt6BundledPcre2 + Qt6BundledResonanceAudio + Qt6BundledSpirv_Cross + Qt6Bundled_Clip2Tri + Qt6Bundled_Clipper + Qt6Bundled_Poly2Tri + Qt6BundledPcre2 + Qt6HostInfo + Qt6Linguist + Qt6QmlDomPrivate + Qt6QmlIntegration + Qt6Tools + Qt6UiPlugin + Qt6Bluetooth + Qt6BundledLibjpeg + Qt6BundledLibpng + Qt6Bundled_Clipper + Qt6Charts + Qt6ChartsQml + Qt6ClipboardSupport + Qt6Concurrent + Qt6Core + Qt6Core5Compat + Qt6DeviceDiscoverySupport + Qt6DocTools + Qt6EntryPointPrivate + Qt6EdidSupport + Qt6EglSupport + Qt6EntryPointPrivate + Qt6EventDispatcherSupport + Qt6FbSupport + Qt6FFmpegMediaPluginImplPrivate + Qt6FontDatabaseSupport + Qt6Gamepad + Qt6Gui + Qt6GraphicsSupport + Qt6Help + Qt6HostInfo + Qt6InputSupport + Qt6LabsAnimation + Qt6LabsFolderListModel + Qt6LabsQmlModels + Qt6LabsSettings + Qt6LabsSharedImage + Qt6LabsWavefrontMesh + Qt6Location + Qt6MacExtras + Qt6Multimedia + Qt6MultimediaQuick + Qt6MultimediaQuickPrivate + Qt6MultimediaWidgets + Qt6Network + Qt6Nfc + Qt6OpenGL + Qt6OpenGLExtensions + Qt6OpenGLWidgets + Qt6PacketProtocol + Qt6PacketProtocolPrivate + Qt6PlatformCompositorSupport + Qt6PngPrivate + Qt6Positioning + Qt6PositioningQuick + Qt6PrintSupport + Qt6Qml + Qt6QmlCompilerPrivate + Qt6QmlCore + Qt6QmlDebugPrivate + Qt6QmlDomPrivate + Qt6QmlIntegration + Qt6QmlLocalStorage + Qt6QmlMeta + Qt6QmlModels + Qt6QmlWorkerScript + Qt6QmlXmlListModel + Qt6Quick + Qt6Quick3DUtils + Qt6QuickControls2 + Qt6QuickControls2Impl + Qt6QuickControls2ImplPrivate + Qt6QuickDialogs2 + Qt6QuickDialogs2QuickImpl + Qt6QuickDialogs2Utils + Qt6QuickEffectsPrivate + Qt6QuickLayouts + Qt6QuickParticlesPrivate + Qt6QuickShapesPrivate + Qt6QuickTemplates2 + Qt6QuickTest + Qt6QuickWidgets + Qt6RemoteObjects + Qt6RepParser + Qt6Scxml + Qt6Sensors + Qt6SensorsQuick + Qt6SerialPort + Qt6ServiceSupport + Qt6Sql + Qt6Svg + Qt6SvgWidgets + Qt6Test + Qt6TextToSpeech + Qt6ThemeSupport + Qt6UiPlugin + Qt6UiTools + Qt6VulkanSupport + Qt6WebChannel + Qt6WebSockets + Qt6WebView + Qt6WebViewQuick + Qt6Widgets + Qt6Xml + Qt6XmlPatterns + Qt6Zlib + Qt6BundledPcre2 +) + +set(Qt6_ROOT_DIR $ENV{Qt6_DIR}/lib/cmake) + +if(EXISTS ${Qt6_ROOT_DIR}) + MESSAGE(STATUS "Using Qt6 CMAKE dir: ${Qt6_ROOT_DIR}") +else() + MESSAGE(FATAL_ERROR "Qt6 installation not found: ${Qt6_ROOT_DIR}; Do you have Qt6_DIR environment variable set?") +endif() + +foreach(MOD ${QT_MODULES}) + if(EXISTS ${Qt6_ROOT_DIR}/${MOD}) + set(${MOD}_DIR ${Qt6_ROOT_DIR}/${MOD}) + MESSAGE(STATUS "Qt6 ${MOD} found: ${Qt6_ROOT_DIR}/${MOD}") + else() + # Not all modules are on all platforms + MESSAGE(STATUS "Skipped -- Qt6 ${MOD}: ${Qt6_ROOT_DIR}/${MOD}") + endif() +endforeach() + +### HOST +# These modules are not in iOS/Android Qt, but they are needed for Qt +set(QT_HOST_MODULES + Qt6CoreTools + Qt6LinguistTools + Qt6WidgetsTools + Qt6GuiTools + Qt6QmlTools + Qt6QmlImportScanner +) + +set(Qt6_ROOT_HOST_DIR $ENV{QT_HOST_PATH}/lib/cmake) +if(EXISTS ${Qt6_ROOT_HOST_DIR}) + MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable QT_HOST_PATH ${Qt6_ROOT_HOST_DIR}") +else() + MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable Qt6_DIR; for iOS or Android you need to set QT_HOST_PATH environment variable instead.") + set(Qt6_ROOT_HOST_DIR ${Qt6_ROOT_DIR}) +endif() + +foreach(MOD ${QT_HOST_MODULES}) + if(EXISTS ${Qt6_ROOT_HOST_DIR}/${MOD}) + set(${MOD}_DIR ${Qt6_ROOT_HOST_DIR}/${MOD}) + MESSAGE(STATUS "Qt6 HOST ${MOD} found: ${Qt6_ROOT_HOST_DIR}/${MOD}") + else() + MESSAGE(STATUS "Skipped -- Qt6 HOST ${MOD} not found: ${Qt6_ROOT_HOST_DIR}/${MOD}") + endif() +endforeach() + +_find_package(${ARGS}) \ No newline at end of file diff --git a/vcpkg/ports/qt6/vcpkg.json b/vcpkg/ports/qt6/vcpkg.json new file mode 100644 index 000000000..c26238389 --- /dev/null +++ b/vcpkg/ports/qt6/vcpkg.json @@ -0,0 +1,6 @@ +{ + "name": "qt6", + "version-string": "6.8.3", + "description": "Qt6 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", + "homepage": "https://www.qt.io/" +} \ No newline at end of file diff --git a/vcpkg/ports/qtkeychain-qt6/portfile.cmake b/vcpkg/ports/qtkeychain-qt6/portfile.cmake new file mode 100644 index 000000000..bbf95964b --- /dev/null +++ b/vcpkg/ports/qtkeychain-qt6/portfile.cmake @@ -0,0 +1,41 @@ +message(WARNING "qtkeychain is a third-party extension to Qt and is not affiliated with The Qt Company") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO frankosterfeld/qtkeychain + REF "${VERSION}" + SHA512 d1d87553db94bf54da1373016a847476e6cd608db6d427ed72532658e2272501daf45d7c9976efdde2f26ab3810ba9dbfec2518d46dee5a76ecaa369bfee2e4a + HEAD_REF master +) + +# Opportunity to build without dependency on qt5-tools/qt5-declarative +set(BUILD_TRANSLATIONS OFF) +if("translations" IN_LIST FEATURES) + set(BUILD_TRANSLATIONS ON) +endif() + +vcpkg_cmake_configure( + DISABLE_PARALLEL_CONFIGURE + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DBUILD_WITH_QT6=ON + -DBUILD_TEST_APPLICATION=OFF + -DBUILD_TRANSLATIONS=${BUILD_TRANSLATIONS} + -DBUILD_TOOLS=OFF + -DWITH_nss_PLUGIN=OFF + -DWITH_pkcs11_PLUGIN=OFF + -DLIBSECRET_SUPPORT=OFF +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Qt6Keychain PACKAGE_NAME Qt6Keychain) + +# Remove unneeded dirs +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +# Handle copyright +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/qtkeychain-qt6/vcpkg.json b/vcpkg/ports/qtkeychain-qt6/vcpkg.json new file mode 100644 index 000000000..e09581967 --- /dev/null +++ b/vcpkg/ports/qtkeychain-qt6/vcpkg.json @@ -0,0 +1,23 @@ +{ + "name": "qtkeychain-qt6", + "version": "0.14.3", + "port-version": 0, + "description": "(Unaffiliated with Qt) Platform-independent Qt5 API for storing passwords securely", + "homepage": "https://github.com/frankosterfeld/qtkeychain", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "libsecret", + "platform": "!(windows | uwp | osx | android | ios | linux)" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "qt6" + ] +} diff --git a/vcpkg/ports/tiff/FindCMath.patch b/vcpkg/ports/tiff/FindCMath.patch new file mode 100644 index 000000000..70654cf80 --- /dev/null +++ b/vcpkg/ports/tiff/FindCMath.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/FindCMath.cmake b/cmake/FindCMath.cmake +index ad92218..dd42aba 100644 +--- a/cmake/FindCMath.cmake ++++ b/cmake/FindCMath.cmake +@@ -31,7 +31,7 @@ include(CheckSymbolExists) + include(CheckLibraryExists) + + check_symbol_exists(pow "math.h" CMath_HAVE_LIBC_POW) +-find_library(CMath_LIBRARY NAMES m) ++find_library(CMath_LIBRARY NAMES m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) + + if(NOT CMath_HAVE_LIBC_POW) + set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) diff --git a/vcpkg/ports/tiff/portfile.cmake b/vcpkg/ports/tiff/portfile.cmake new file mode 100644 index 000000000..01af6b41b --- /dev/null +++ b/vcpkg/ports/tiff/portfile.cmake @@ -0,0 +1,95 @@ +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.com + OUT_SOURCE_PATH SOURCE_PATH + REPO libtiff/libtiff + REF "v${VERSION}" + SHA512 859331284cd28df56c44644a355ecdd8eece19f0d5cd3e693e37c0fe37115091e46943ffbad784e84af1b39a6fd81cd196af2d4fefe86369258f89050dafaa84 + HEAD_REF master + PATCHES + FindCMath.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + cxx cxx + jpeg jpeg + jpeg CMAKE_REQUIRE_FIND_PACKAGE_JPEG + lzma lzma + lzma CMAKE_REQUIRE_FIND_PACKAGE_liblzma + tools tiff-tools + webp webp + webp CMAKE_REQUIRE_FIND_PACKAGE_WebP + zip zlib + zip CMAKE_REQUIRE_FIND_PACKAGE_ZLIB + zstd zstd + zstd CMAKE_REQUIRE_FIND_PACKAGE_ZSTD +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON + -Dtiff-docs=OFF + -Dtiff-contrib=OFF + -Dtiff-tests=OFF + -Dlibdeflate=OFF + -Djbig=OFF # This is disabled by default due to GPL/Proprietary licensing. + -Djpeg12=OFF + -Dlerc=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON + -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON + -DZSTD_HAVE_DECOMPRESS_STREAM=ON + -DHAVE_JPEGTURBO_DUAL_MODE_8_12=OFF + OPTIONS_DEBUG + -DCMAKE_DEBUG_POSTFIX=d # tiff sets "d" for MSVC only. + MAYBE_UNUSED_VARIABLES + ZSTD_HAVE_DECOMPRESS_STREAM +) + +vcpkg_cmake_install() + +# CMake config wasn't packaged in the past and is not yet usable now, +# cf. https://gitlab.com/libtiff/libtiff/-/merge_requests/496 +# vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tiff") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") + +set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libtiff-4.pc") +if(EXISTS "${_file}") + vcpkg_replace_string("${_file}" "-ltiff" "-ltiffd") +endif() +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) + +if ("tools" IN_LIST FEATURES) + vcpkg_copy_tools(TOOL_NAMES + fax2ps + fax2tiff + pal2rgb + ppm2tiff + raw2tiff + tiff2bw + tiff2pdf + tiff2ps + tiff2rgba + tiffcmp + tiffcp + tiffcrop + tiffdither + tiffdump + tiffinfo + tiffmedian + tiffset + tiffsplit + AUTO_CLEAN + ) +endif() + +vcpkg_copy_pdbs() +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") diff --git a/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in new file mode 100644 index 000000000..ff0ddc0bc --- /dev/null +++ b/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in @@ -0,0 +1,81 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +set(z_vcpkg_tiff_find_options "") +if("REQUIRED" IN_LIST ARGS) + list(APPEND z_vcpkg_tiff_find_options "REQUIRED") +endif() +if("QUIET" IN_LIST ARGS) + list(APPEND z_vcpkg_tiff_find_options "QUIET") +endif() + +_find_package(${ARGS}) + +include(SelectLibraryConfigurations) + +if(TIFF_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") + set(z_vcpkg_tiff_link_libraries "") + set(z_vcpkg_tiff_libraries "") + if("@webp@") + find_package(WebP CONFIG ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${WebP_LIBRARIES}) + endif() + if("@lzma@") + find_package(LibLZMA ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${LIBLZMA_LIBRARIES}) + endif() + if("@jpeg@") + find_package(JPEG ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${JPEG_LIBRARIES}) + endif() + if("@zstd@") + find_package(zstd CONFIG ${z_vcpkg_tiff_find_options}) + set(z_vcpkg_tiff_zstd_target_property "IMPORTED_LOCATION_") + if(TARGET zstd::libzstd_shared) + set(z_vcpkg_tiff_zstd "\$") + set(z_vcpkg_tiff_zstd_target zstd::libzstd_shared) + if(WIN32) + set(z_vcpkg_tiff_zstd_target_property "IMPORTED_IMPLIB_") + endif() + else() + set(z_vcpkg_tiff_zstd "\$") + set(z_vcpkg_tiff_zstd_target zstd::libzstd_static) + endif() + get_target_property(z_vcpkg_tiff_zstd_configs "${z_vcpkg_tiff_zstd_target}" IMPORTED_CONFIGURATIONS) + foreach(z_vcpkg_config IN LISTS z_vcpkg_tiff_zstd_configs) + get_target_property(ZSTD_LIBRARY_${z_vcpkg_config} "${z_vcpkg_tiff_zstd_target}" "${z_vcpkg_tiff_zstd_target_property}${z_vcpkg_config}") + endforeach() + select_library_configurations(ZSTD) + if(NOT TARGET ZSTD::ZSTD) + add_library(ZSTD::ZSTD INTERFACE IMPORTED) + set_property(TARGET ZSTD::ZSTD APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_zstd}) + endif() + list(APPEND z_vcpkg_tiff_libraries ${ZSTD_LIBRARIES}) + list(APPEND z_vcpkg_tiff_link_libraries ${z_vcpkg_tiff_zstd}) + unset(z_vcpkg_tiff_zstd) + unset(z_vcpkg_tiff_zstd_configs) + unset(z_vcpkg_config) + unset(z_vcpkg_tiff_zstd_target) + endif() + if("@zlib@") + find_package(ZLIB ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${ZLIB_LIBRARIES}) + endif() + if(UNIX) + list(APPEND z_vcpkg_tiff_link_libraries m) + list(APPEND z_vcpkg_tiff_libraries m) + endif() + + if(TARGET TIFF::TIFF) + set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_link_libraries}) + endif() + list(APPEND TIFF_LIBRARIES ${z_vcpkg_tiff_libraries}) + unset(z_vcpkg_tiff_link_libraries) + unset(z_vcpkg_tiff_libraries) +endif() +unset(z_vcpkg_tiff_find_options) +cmake_policy(POP) diff --git a/vcpkg/ports/tiff/vcpkg.json b/vcpkg/ports/tiff/vcpkg.json new file mode 100644 index 000000000..5efdd8116 --- /dev/null +++ b/vcpkg/ports/tiff/vcpkg.json @@ -0,0 +1,61 @@ +{ + "name": "tiff", + "version": "4.5.1", + "port-version": 2, + "description": "A library that supports the manipulation of TIFF image files", + "homepage": "https://libtiff.gitlab.io/libtiff/", + "license": "libtiff", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "jpeg", + "lzma", + "zip" + ], + "features": { + "cxx": { + "description": "Build C++ libtiffxx library" + }, + "jpeg": { + "description": "Support JPEG compression in TIFF image files", + "dependencies": [ + "libjpeg-turbo" + ] + }, + "lzma": { + "description": "Support LZMA compression in TIFF image files", + "dependencies": [ + "liblzma" + ] + }, + "tools": { + "description": "Build tools" + }, + "webp": { + "description": "Support WEBP compression in TIFF image files", + "dependencies": [ + "libwebp" + ] + }, + "zip": { + "description": "Support ZIP/deflate compression in TIFF image files", + "dependencies": [ + "zlib" + ] + }, + "zstd": { + "description": "Support ZSTD compression in TIFF image files", + "dependencies": [ + "zstd" + ] + } + } +} diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake new file mode 100644 index 000000000..72d8ebb67 --- /dev/null +++ b/vcpkg/triplets/arm-android.cmake @@ -0,0 +1,20 @@ +set(VCPKG_TARGET_ARCHITECTURE arm) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CMAKE_SYSTEM_NAME Android) +set(VCPKG_BUILD_TYPE release) +set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") +set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON) + +if(DEFINED ENV{ANDROIDAPI}) + set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +endif() + +set(VCPKG_CXX_FLAGS "-fstack-protector-strong") +set(VCPKG_C_FLAGS "-fstack-protector-strong") + +set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake new file mode 100644 index 000000000..d5997b0c9 --- /dev/null +++ b/vcpkg/triplets/arm64-android.cmake @@ -0,0 +1,18 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CMAKE_SYSTEM_NAME Android) +set(VCPKG_BUILD_TYPE release) +set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") +set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) + +set(VCPKG_CXX_FLAGS "-fstack-protector-strong") +set(VCPKG_C_FLAGS "-fstack-protector-strong") + +if(DEFINED ENV{ANDROIDAPI}) + set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +endif() + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) diff --git a/vcpkg/triplets/arm64-ios.cmake b/vcpkg/triplets/arm64-ios.cmake new file mode 100644 index 000000000..bdd215c5a --- /dev/null +++ b/vcpkg/triplets/arm64-ios.cmake @@ -0,0 +1,17 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CMAKE_SYSTEM_NAME iOS) +set(VCPKG_OSX_ARCHITECTURES arm64) + +if(DEFINED ENV{DEPLOYMENT_TARGET}) + set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +endif() + +set(VCPKG_BUILD_TYPE release) +set(VCPKG_CXX_FLAGS "-fvisibility=hidden") +set(VCPKG_C_FLAGS "-fvisibility=hidden") + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-osx.cmake b/vcpkg/triplets/arm64-osx.cmake new file mode 100644 index 000000000..cf3b7ea23 --- /dev/null +++ b/vcpkg/triplets/arm64-osx.cmake @@ -0,0 +1,16 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES arm64) +set(VCPKG_BUILD_TYPE release) + +if(DEFINED ENV{DEPLOYMENT_TARGET}) + set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +endif() +# See https://github.com/microsoft/vcpkg/issues/10038 +set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) +set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-linux.cmake b/vcpkg/triplets/x64-linux.cmake new file mode 100644 index 000000000..f13901a97 --- /dev/null +++ b/vcpkg/triplets/x64-linux.cmake @@ -0,0 +1,8 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Linux) +set(VCPKG_BUILD_TYPE release) + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake \ No newline at end of file diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake new file mode 100644 index 000000000..a59b40a6d --- /dev/null +++ b/vcpkg/triplets/x64-osx.cmake @@ -0,0 +1,13 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES x86_64) +set(VCPKG_BUILD_TYPE release) + +if(DEFINED ENV{DEPLOYMENT_TARGET}) + set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +endif() + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-windows.cmake b/vcpkg/triplets/x64-windows.cmake new file mode 100644 index 000000000..9e31900b1 --- /dev/null +++ b/vcpkg/triplets/x64-windows.cmake @@ -0,0 +1,6 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) +set(VCPKG_BUILD_TYPE release) + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake \ No newline at end of file From 27b8e145fd7faf43a23d9e8a0a2f382bbc350c94 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 14:50:55 +0200 Subject: [PATCH 002/118] group macos builds to one --- .github/workflows/android.yml | 43 +++++- .github/workflows/ios.yml | 4 + .github/workflows/linux.yml | 4 + .github/workflows/macos.yml | 216 +++++++++++++++++++----------- .github/workflows/macos_arm64.yml | 157 ---------------------- .github/workflows/win.yml | 3 + INSTALL.md | 2 +- README.md | 1 - scripts/create_dmg.sh | 55 ++++++++ 9 files changed, 248 insertions(+), 237 deletions(-) delete mode 100644 .github/workflows/macos_arm64.yml create mode 100755 scripts/create_dmg.sh diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index a893099ce..8eff5d71e 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -24,6 +24,17 @@ concurrency: jobs: android_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) + strategy: + fail-fast: false + matrix: + include: + # - TRIPLET: 'arm-android' + # QT_ARCH: 'android_armv7' + # ANDROID_ABI: 'armeabi-v7a' + - TRIPLET: 'arm64-android' + QT_ARCH: 'android_arm64_v8a' + ANDROID_ABI: 'arm64-v8a' + runs-on: macos-15 env: QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change @@ -40,6 +51,7 @@ jobs: QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} XC_VERSION: ${{ '16.2' }} + VCPKG_ROOT: "${{ github.workspace }}/vcpkg" steps: - uses: actions/checkout@v4 @@ -104,6 +116,10 @@ jobs: brew install openssl brew install ninja brew install aqtinstall + brew install automake bison flex gnu-sed autoconf-archive libtool gettext + echo $(brew --prefix bison)/bin >> $GITHUB_PATH + echo $(brew --prefix flex)/bin >> $GITHUB_PATH + echo $(brew --prefix gettext)/bin >> $GITHUB_PATH if [[ ${{ github.ref }} == refs/tags/* ]] then @@ -202,6 +218,25 @@ jobs: echo "path to keystore $PATH_TO_KEYSTORE" echo "QT_ANDROID_KEYSTORE_PATH=$PATH_TO_KEYSTORE" >> $GITHUB_ENV + - name: Get vcpkg + shell: bash + run: | + mkdir -p "${{ env.VCPKG_ROOT }}" + cd "${{ env.VCPKG_ROOT }}" + git init + git remote add origin https://github.com/microsoft/vcpkg.git + git pull origin master + VCPKG_TAG=`cat ${{ github.workspace }}/VCPKG_BASELINE` + echo "using VCPKG_TAG ${VCPKG_TAG}" + git checkout ${VCPKG_TAG} + + - name: Install vcpkg + run: | + echo "install vcpkg" + cd "${{ env.VCPKG_ROOT }}" + chmod +x ./bootstrap-vcpkg.sh + ./bootstrap-vcpkg.sh + # Build Input App - name: Calculate build number env: @@ -220,12 +255,18 @@ jobs: ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} ANDROID_NDK_HOST: darwin-x86_64 QT_BASE: ${{ github.workspace }}/Qt/${{ env.QT_VERSION }} - INPUT_SDK_ANDROID_BASE: ${{ github.workspace }}/input-sdk run: | mkdir -p ${{ github.workspace }}/build-Input cd ${{ github.workspace }}/build-Input + export Qt6_DIR=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/${{ matrix.QT_ARCH }} + export QT_HOST_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos + export PATH=${{ env.VCPKG_ROOT }}:$PATH + export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} + export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} + export ANDROID_ABI=${{ matrix.ANDROID_ABI }} + cmake \ -DCMAKE_BUILD_TYPE=Release \ -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" \ diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index dbcc68807..7c4d80690 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -1,4 +1,8 @@ name: iOS Build + +# TODO remove +skip: true + on: push: paths: diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 19bbe491b..7704bd510 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -1,4 +1,8 @@ name: linux Build + +# TODO remove +skip: true + on: push: paths: diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index f718ce9b6..8914b8be5 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -20,84 +20,79 @@ on: env: QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change - CCACHE_DIR: /Users/runner/work/ccache - CACHE_VERSION: 0 CMAKE_VERSION: '3.29.0' - XC_VERSION: ${{ '15.2' }} - + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + VCPKG_ROOT: "${{ github.workspace }}/vcpkg" + concurrency: group: ci-${{github.ref}}-macos cancel-in-progress: true jobs: + build: macos_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: macos-13 + strategy: + matrix: + include: + - os: macos-13 + triplet: x64-osx + deployment-target: "10.15" + target-arch: x86_64 + xcode: "15.2" + - os: macos-15 + triplet: arm64-osx + deployment-target: "15.4" # TODO get back to "11.0" when https://github.com/microsoft/vcpkg/issues/44976 is fixed + target-arch: arm64 + xcode: "16.2" + + runs-on: ${{ matrix.os }} steps: - - name: Checkout Input - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 with: - path: input - - - name: Select latest Xcode - run: "sudo xcode-select -s /Applications/Xcode_$XC_VERSION.app" + path: mm - - name: install brew deps + - name: Export GitHub Actions cache environment variables + uses: actions/github-script@v7 + with: + script: | + core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + + - name: Install brew deps run: | - brew install lcov - brew install ccache - brew install ninja + brew uninstall cmake + brew install automake bison flex gnu-sed autoconf-archive nasm libtool xcbeautify mono lcov openssl - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: cmakeVersion: ${{ env.CMAKE_VERSION }} - + + - name: Setup XCode + uses: maxim-lobanov/setup-xcode@v1.6.0 + with: + xcode-version: ${{ matrix.xcode }} + - name: Extract Mergin API_KEY env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | - cd input/core/ - /usr/local/opt/openssl@1.1/bin/openssl \ + cd mm/core/ + $HOMEBREW_PREFIX/bin/openssl \ aes-256-cbc -d \ -in merginsecrets.cpp.enc \ -out merginsecrets.cpp \ -k "$MERGINSECRETS_DECRYPT_KEY" \ -md md5 - # CCache - - name: Prepare build cache for pull request - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name == 'pull_request' + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 with: - path: ${{ env.CCACHE_DIR }} - key: build-mac-ccache-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }} - # The head_ref or source branch of the pull request in a workflow run. - # The base_ref or target branch of the pull request in a workflow run. - restore-keys: | - build-mac-ccache-${{ github.actor }}-${{ github.head_ref }}- - build-mac-ccache-refs/heads/${{ github.base_ref }}- - build-mac-ccache-refs/heads/master- - - - name: Prepare build cache for branch/tag - # use a fork of actions/cache@v2 to upload cache even when the build or test failed - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name != 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ - key: build-mac-ccache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - build-mac-ccache-${{ github.ref }}- - build-mac-ccache-refs/heads/master- - - - name: Install ccache - run: | - mkdir -p ${CCACHE_DIR} - ccache --set-config=max_size=2.0G - ccache -s + key: ccache-${{ matrix.triplet }} + max-size: 200M - # Qt - name: Install Qt uses: jurplel/install-qt-action@v3 with: @@ -106,65 +101,80 @@ jobs: dir: ${{ github.workspace }} modules: 'qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth' cache: true - cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-mac + cache-key-prefix: qtcache-${{ matrix.triplet }} - # Build Input App + - name: Install vcpkg + shell: bash + run: | + mkdir -p "${{ env.VCPKG_ROOT }}" + cd "${{ env.VCPKG_ROOT }}" + git init + git remote add origin https://github.com/microsoft/vcpkg.git + git pull origin master + VCPKG_TAG=`cat ${{ github.workspace }}/mm/VCPKG_BASELINE` + git checkout ${VCPKG_TAG} + cd "${{ env.VCPKG_ROOT }}" + chmod +x ./bootstrap-vcpkg.sh + ./bootstrap-vcpkg.sh + - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT echo "INPUT_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV echo "Version code: ${BUILD_NUM}" - - # Do Tests - - name: build Input (Debug) + + - name: build app (debug) + if: ${{ matrix.triplet != 'x64-osx' }} run: | - mkdir -p build-Input-db - cd build-Input-db + mkdir -p build-mm-db + cd build-mm-db cmake \ -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.deployment-target }} \ + -DCMAKE_OSX_ARCHITECTURES=${{ matrix.target-arch }} \ + -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} \ -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos \ + -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DINPUT_SDK_PATH=${{ github.workspace }}/input-sdk/x64-osx \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ -DCOVERAGE=TRUE \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DENABLE_TESTS=TRUE \ -GNinja \ - -S ../input + -S ../mm ninja - name: run tests + if: ${{ matrix.triplet != 'x64-osx' }} env: TEST_MERGIN_URL: https://app.dev.merginmaps.com/ TEST_API_USERNAME: test_mobileapp2 TEST_API_PASSWORD: ${{ secrets.TEST_API_PASSWORD }} run: | - cd build-Input-db/ + cd build-mm-db/ ctest --output-on-failure - # Package - - name: build Input (Release) + - name: build app (release) run: | - mkdir -p install-Input - mkdir -p build-Input-rel - cd build-Input-rel + mkdir -p install-mm + mkdir -p build-mm-rel + cd build-mm-rel cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${QT_VERSION}/macos \ - -DCMAKE_INSTALL_PREFIX:PATH=../install-Input \ + -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DINPUT_SDK_PATH=${{ github.workspace }}/input-sdk/x64-osx \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -GNinja \ - -S ../input - + -S ../mm + ninja ninja install @@ -174,15 +184,67 @@ jobs: with: format: 'YYYYMMDD' - - name: package Input.app + - name: package app run: | - INPUT_TAR=input-${{ env.INPUT_SDK_VERSION }}-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.tar.gz - echo "INPUT_TAR=${INPUT_TAR}" >> $GITHUB_ENV - cd ${{ github.workspace }}/install-Input + APP_TAR=input-app-${{ matrix.triplet }}.tar.gz + echo "APP_TAR=${APP_TAR}" >> $GITHUB_ENV + cd ${{ github.workspace }}/install-mm find . - tar -c -z -f ${{ github.workspace }}/${INPUT_TAR} "./Input.app" + tar -c -z -f ${{ github.workspace }}/${APP_TAR} "./Input.app" + + - name: Upload package + uses: actions/upload-artifact@v4 + with: + path: ${{ github.workspace }}/${{ env.APP_TAR }} + + create_dmg: + name: Create dmg + runs-on: macos-15 + needs: build + steps: + - name: Checkout + uses: actions/checkout@v4 - - name: Upload Sdk in Artifacts + - name: Prepare build env + run: | + brew install create-dmg + + - name: Download app + uses: actions/download-artifact@v4 + with: + pattern: input-app-* + path: | + artifacts + + - name: Create universal app + run: | + mkdir -p x64 + gtar --strip-components=4 -zxf ./artifacts/input-app-x64-osx/input-app-x64-osx.tar.gz -C x64 + mkdir -p arm64 + gtar --strip-components=4 -zxf ./artifacts/input-app-arm64-osx/input-app-arm64-osx.tar.gz -C arm64 + pip install lipomerge + lipomerge ./x64 ./arm64 universal + + - name: Create dmg + run: | + if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then + echo "${{ secrets.APPLE_DEVELOPER_ID_P12_BASE64 }}" | base64 --decode > cert.p12 + export P12_PATH=cert.p12 + export P12_PASSWORD=${{ secrets.APPLE_DEVELOPER_ID_P12_PASSWORD }} + export API_KEY_ID=${{ secrets.IOS_APPSTORE_KEY_ID }} + export API_KEY_ISSUER_ID=${{ secrets.IOS_APPSTORE_ISSUER_ID }} + echo "${{ secrets.IOS_APPSTORE_PRIVATE_KEY }}" > authkey.p8 + export API_KEY_PATH=authkey.p8 + fi + + export APP_PATH=$(pwd)/universal/Input.app + export DMG_PATH=merginmaps_app.dmg + ./scripts/create_dmg.sh + + - name: Upload dmg uses: actions/upload-artifact@v4 + id: artifact-macos with: - path: ${{ github.workspace }}/${{ env.INPUT_TAR }} + name: merginmaps_app.dmg + path: | + *.dmg diff --git a/.github/workflows/macos_arm64.yml b/.github/workflows/macos_arm64.yml deleted file mode 100644 index f967d4bc3..000000000 --- a/.github/workflows/macos_arm64.yml +++ /dev/null @@ -1,157 +0,0 @@ -name: macOS arm64 Build -on: - push: - paths: - - 'vcpkg-overlay/**' - - 'vcpkg.json' - - 'VCPKG_BASELINE' - - 'app/**' - - 'core/**' - - 'scripts/**' - - 'cmake/**' - - 'cmake_templates/**' - - 'test/**' - - 'CMakeLists.txt' - - '.github/workflows/macos_arm64.yml' - - release: - types: - - published - -env: - QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change - CCACHE_DIR: /Users/runner/work/ccache - CACHE_VERSION: 0 - CMAKE_VERSION: '3.29.0' - XC_VERSION: ${{ '16.4' }} - -concurrency: - group: ci-${{github.ref}}-macos-arm64 - cancel-in-progress: true - -jobs: - macos_arm64_build: - if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: macos-15 - steps: - - name: Checkout Input - uses: actions/checkout@v4 - with: - path: input - - - name: Select latest Xcode - run: "sudo xcode-select -s /Applications/Xcode_$XC_VERSION.app" - - - name: install brew deps - run: | - brew install lcov - brew install ccache - brew install ninja - - - name: Install CMake and Ninja - uses: lukka/get-cmake@latest - with: - cmakeVersion: ${{ env.CMAKE_VERSION }} - - - name: Extract Mergin API_KEY - env: - MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} - run: | - cd input/core/ - /opt/homebrew/bin/openssl \ - aes-256-cbc -d \ - -in merginsecrets.cpp.enc \ - -out merginsecrets.cpp \ - -k "$MERGINSECRETS_DECRYPT_KEY" \ - -md md5 - - # CCache - - name: Prepare build cache for pull request - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name == 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - key: build-mac-ccache-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }} - # The head_ref or source branch of the pull request in a workflow run. - # The base_ref or target branch of the pull request in a workflow run. - restore-keys: | - build-mac-ccache-${{ github.actor }}-${{ github.head_ref }}- - build-mac-ccache-refs/heads/${{ github.base_ref }}- - build-mac-ccache-refs/heads/master- - - - name: Prepare build cache for branch/tag - # use a fork of actions/cache@v2 to upload cache even when the build or test failed - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name != 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ - key: build-mac-ccache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - build-mac-ccache-${{ github.ref }}- - build-mac-ccache-refs/heads/master- - - - name: Install ccache - run: | - mkdir -p ${CCACHE_DIR} - ccache --set-config=max_size=2.0G - ccache -s - - # Qt - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ env.QT_VERSION }} - target: desktop - dir: ${{ github.workspace }} - modules: 'qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth' - cache: true - cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-mac-arm64 - - # Build Input App - - name: Calculate build number - run: | - BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT - echo "INPUT_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV - echo "Version code: ${BUILD_NUM}" - - # Package - - name: build Input (Release) - run: | - mkdir -p install-Input - mkdir -p build-Input-rel - cd build-Input-rel - - cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${QT_VERSION}/macos \ - -DCMAKE_INSTALL_PREFIX:PATH=../install-Input \ - -DUSE_SERVER_API_KEY=TRUE \ - -DUSE_MM_SERVER_API_KEY=TRUE \ - -DUSE_KEYCHAIN=No \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -GNinja \ - -S ../input - - ninja - ninja install - - - name: Get TimeStamp - id: time - uses: josStorer/get-current-time@v2.0.2 - with: - format: 'YYYYMMDD' - - - name: package Input.app - run: | - INPUT_TAR=input-${{ env.INPUT_SDK_VERSION }}-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.tar.gz - echo "INPUT_TAR=${INPUT_TAR}" >> $GITHUB_ENV - cd ${{ github.workspace }}/install-Input - find . - tar -c -z -f ${{ github.workspace }}/${INPUT_TAR} "./Input.app" - - - name: Upload Sdk in Artifacts - uses: actions/upload-artifact@v4 - with: - path: ${{ github.workspace }}/${{ env.INPUT_TAR }} diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index bf7c856a7..c30285ef4 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -1,5 +1,8 @@ name: Build win64 +# TODO remove +skip: true + on: push: paths: diff --git a/INSTALL.md b/INSTALL.md index 617067b15..8339de4d2 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -232,7 +232,7 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back - This step can now be performed via QtCreator, if it for some reason fails/does not work, skip this step and continue with manual setup - Open QtCreator and navigate to `settings -> devices -> Android`, here: - - JDK location: Add Path to Java version, e.g. `/opt/homebrew/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home` + - JDK location: Add Path to Java version, e.g. `/opt/homebrew/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home` (or /opt/homebrew/Cellar/openjdk@17/17.0.15/libexec/openjdk.jdk/Contents/Home/) - Android SDK location: set path to some empty writeable directory, e.g. `~/android` - Hit `Set up SDK` and install the current SDK version (find the correct version in `.github/workflows/android.yml`) - Let QtCreator install NDK diff --git a/README.md b/README.md index fdd1ab707..9e20b8a02 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ Platform builds: [![iOS Build](https://github.com/MerginMaps/mobile/workflows/iOS%20Build/badge.svg)](https://github.com/MerginMaps/mobile/actions?query=workflow%3A%22iOS+Build%22) [![win64 Build](https://github.com/MerginMaps/mobile/actions/workflows/win.yml/badge.svg)](https://github.com/MerginMaps/mobile/actions/workflows/win.yml) [![macOS Build](https://github.com/MerginMaps/mobile/actions/workflows/macos.yml/badge.svg)](https://github.com/MerginMaps/mobile/actions/workflows/macos.yml) -[![macOS (arm64) Build](https://github.com/MerginMaps/mobile/actions/workflows/macos_arm64.yml/badge.svg)](https://github.com/MerginMaps/mobile/actions/workflows/macos_arm64.yml) [![linux Build](https://github.com/MerginMaps/mobile/actions/workflows/linux.yml/badge.svg)](https://github.com/MerginMaps/mobile/actions/workflows/linux.yml) Other Checks: diff --git a/scripts/create_dmg.sh b/scripts/create_dmg.sh new file mode 100755 index 000000000..cb03d6a75 --- /dev/null +++ b/scripts/create_dmg.sh @@ -0,0 +1,55 @@ +#!/bin/bash +set -euo pipefail + +# Required environment variables: +# APP_PATH: Path to your .app bundle +# DMG_PATH: Path to your .dmg file +# P12_PATH: Path to your .p12 certificate file +# P12_PASSWORD: Password for the .p12 file +# API_KEY_ID: App Store Connect API Key ID +# API_KEY_ISSUER_ID: App Store Connect API Key Issuer ID +# API_KEY_PATH: Path to the API key file (.p8) + +if [[ -n ${API_KEY_ID:-} ]]; then + KEYCHAIN_NAME="notary-keychain" + KEYCHAIN_PASSWORD="temp-password" + security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_NAME" + security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_NAME" + security import "$P12_PATH" -k "$KEYCHAIN_NAME" -P "$P12_PASSWORD" -T /usr/bin/codesign + security set-keychain-settings -t 3600 -l "$KEYCHAIN_NAME" + security list-keychains -d user -s "$KEYCHAIN_NAME" $(security list-keychains -d user | tr -d '"') + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_NAME" + + # Sign the .app bundle + codesign --force --options runtime --sign "Developer ID Application" --deep --keychain "$KEYCHAIN_NAME" "$APP_PATH" +fi + +create-dmg --volname "Mergin Maps mobile app Installer" \ + --hide-extension "Input.app" \ + --volicon "./platform/macos/installer.icns" \ + --background "./platform/macos/installer_background.png" \ + --window-pos 200 120 \ + --window-size 512 320 \ + --icon-size 100 \ + --icon "Input.app" 130 160 \ + --app-drop-link 400 155 \ + "$DMG_PATH" "$APP_PATH" + +if [[ -n ${API_KEY_ID:-} ]]; then + codesign --force --options runtime --sign "Developer ID Application" --keychain "$KEYCHAIN_NAME" "$DMG_PATH" + + echo "Submitting for notarization..." + xcrun notarytool submit "$DMG_PATH" \ + --key "$API_KEY_PATH" \ + --key-id "$API_KEY_ID" \ + --issuer "$API_KEY_ISSUER_ID" \ + --wait + + # Staple the notarization ticket + xcrun stapler staple "$DMG_PATH" + + # Clean up keychain + security delete-keychain "$KEYCHAIN_NAME" + + echo "Notarization and stapling complete!" +fi From ea91486f260b0e113e60454f68d7b95068f8eb97 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 14:57:03 +0200 Subject: [PATCH 003/118] fix cmake format --- .github/workflows/android.yml | 4 ++++ .github/workflows/macos.yml | 4 ++-- CMakeLists.txt | 5 ++--- app/CMakeLists.txt | 28 +++++++--------------------- cmake/FindQGIS.cmake | 15 +++------------ cmake/FindSpatialindex.cmake | 10 ++-------- cmake/FindSpatialite.cmake | 10 ++-------- cmake/FindTasn1.cmake | 10 ++-------- cmake/FindZLIB.cmake | 5 +---- scripts/format_cmake.bash | 2 +- 10 files changed, 26 insertions(+), 67 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 8eff5d71e..2ac88e197 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,4 +1,8 @@ name: Android + +# TODO remove +skip: true + on: push: paths: diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 8914b8be5..5842eff5e 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -57,8 +57,8 @@ jobs: uses: actions/github-script@v7 with: script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - name: Install brew deps run: | diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d7f6f3a1..3aa64a742 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,7 @@ if (APPLE AND NOT IOS AND NOT DEFINED ENV{INPUT_SDK_ANDROID_BASE} ) -# TODO change for arm64/osx + # TODO change for arm64/osx set(CMAKE_OSX_DEPLOYMENT_TARGET "15.4") endif () @@ -187,8 +187,7 @@ if (NOT LNX) endif () find_package(ZLIB REQUIRED) -# find_package(Bz2 CONFIG REQUIRED) -# find_package(bzip2 CONFIG REQUIRED) +# find_package(Bz2 CONFIG REQUIRED) find_package(bzip2 CONFIG REQUIRED) find_package(CURL CONFIG REQUIRED) # find_package(Inih CONFIG REQUIRED) find_package(exiv2 CONFIG REQUIRED) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 252cb8471..b17bf96ce 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -479,7 +479,7 @@ target_link_libraries( PUBLIC mm_core Geodiff::Geodiff PROJ::proj - ZXing::Core + ZXing::Core ZXing::ZXing ) @@ -517,9 +517,7 @@ target_link_libraries( Spatialite::Spatialite ) -#if (NOT LNX) -# target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) -#endif () +# if (NOT LNX) target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) endif () # target_link_libraries(Input PUBLIC Xml2::Xml2) @@ -529,31 +527,19 @@ target_link_libraries( GEOS::geos_c # Geos::Geos protobuf::libprotobuf-lite - # Utf8::utf8_range - # Utf8::utf8_validity - # Expat::Expat - # Freexl::Freexl + # Utf8::utf8_range Utf8::utf8_validity Expat::Expat Freexl::Freexl Exiv2::exiv2lib - # Inih::Inireader - # Inih::Inih - # Tiff::Tiff + # Inih::Inireader Inih::Inih Tiff::Tiff unofficial::sqlite3::sqlite3 unofficial::minizip::minizip ZLIB::ZLIB libzip::zip - # WebP::WebP - # WebP::Sharpyuv - # Curl::Curl - # Jpeg::Jpeg - # Geotiff::Geotiff - # Lzma::Lzma - # Zstd::Zstd - # Bz2::Bz2 - # Absl::Absl + # WebP::WebP WebP::Sharpyuv Curl::Curl Jpeg::Jpeg Geotiff::Geotiff Lzma::Lzma + # Zstd::Zstd Bz2::Bz2 Absl::Absl ) if (IOS OR MACOS) - target_link_libraries(Input PUBLIC Tasn1::Tasn1) + target_link_libraries(Input PUBLIC Tasn1::Tasn1) endif () # target_link_libraries(Input PUBLIC OpenSSL::OpenSSL OpenSSL::Crypto) diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index f1ac8ad1b..1045bedd5 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,13 +1,7 @@ # GPLv2 Licence -find_path( - QGIS_INCLUDE_DIR - qgis.h -) +find_path(QGIS_INCLUDE_DIR qgis.h) -find_library( - QGIS_CORE_LIBRARY - NAMES qgis_core -) +find_library(QGIS_CORE_LIBRARY NAMES qgis_core) set(QGIS_REQUIRED_VARS QGIS_CORE_LIBRARY QGIS_INCLUDE_DIR) set(QGIS_PROVIDERS_LIST @@ -29,10 +23,7 @@ set(QGIS_PROVIDERS_LIST ) foreach (provider ${QGIS_PROVIDERS_LIST}) - find_library( - QGIS_${provider}_LIBRARY - NAMES ${provider}_a - ) + find_library(QGIS_${provider}_LIBRARY NAMES ${provider}_a) set(QGIS_REQUIRED_VARS ${QGIS_REQUIRED_VARS} QGIS_${provider}_LIBRARY) endforeach () diff --git a/cmake/FindSpatialindex.cmake b/cmake/FindSpatialindex.cmake index 6e4cd5173..b4ee8bde8 100644 --- a/cmake/FindSpatialindex.cmake +++ b/cmake/FindSpatialindex.cmake @@ -1,14 +1,8 @@ # GPLv2 Licence -find_path( - Spatialindex_INCLUDE_DIR - spatialindex/RTree.h -) +find_path(Spatialindex_INCLUDE_DIR spatialindex/RTree.h) -find_library( - Spatialindex_LIBRARY - NAMES spatialindex spatialindex-64 -) +find_library(Spatialindex_LIBRARY NAMES spatialindex spatialindex-64) find_package_handle_standard_args( Spatialindex REQUIRED_VARS Spatialindex_LIBRARY Spatialindex_INCLUDE_DIR diff --git a/cmake/FindSpatialite.cmake b/cmake/FindSpatialite.cmake index 6967c89de..5b3198f41 100644 --- a/cmake/FindSpatialite.cmake +++ b/cmake/FindSpatialite.cmake @@ -1,14 +1,8 @@ # GPLv2 Licence -find_path( - Spatialite_INCLUDE_DIR - spatialite.h -) +find_path(Spatialite_INCLUDE_DIR spatialite.h) -find_library( - Spatialite_LIBRARY - NAMES spatialite -) +find_library(Spatialite_LIBRARY NAMES spatialite) find_package_handle_standard_args( Spatialite REQUIRED_VARS Spatialite_LIBRARY Spatialite_INCLUDE_DIR diff --git a/cmake/FindTasn1.cmake b/cmake/FindTasn1.cmake index 2eb1caf12..da3921c20 100644 --- a/cmake/FindTasn1.cmake +++ b/cmake/FindTasn1.cmake @@ -8,15 +8,9 @@ if (LNX ) message(FATAL_ERROR "tasn1 is not available for this platform in input-SDK") else () - find_path( - Tasn1_INCLUDE_DIR - libtasn1.h - ) + find_path(Tasn1_INCLUDE_DIR libtasn1.h) - find_library( - Tasn1_LIBRARY - NAMES tasn1 - ) + find_library(Tasn1_LIBRARY NAMES tasn1) endif () find_package_handle_standard_args(Tasn1 REQUIRED_VARS Tasn1_LIBRARY Tasn1_INCLUDE_DIR) diff --git a/cmake/FindZLIB.cmake b/cmake/FindZLIB.cmake index 2c40aabc3..2b97c27c5 100644 --- a/cmake/FindZLIB.cmake +++ b/cmake/FindZLIB.cmake @@ -1,9 +1,6 @@ # GPLv2 Licence -find_library( - ZLIB_LIBRARY - NAMES z zlib libz -) +find_library(ZLIB_LIBRARY NAMES z zlib libz) find_package_handle_standard_args(ZLIB REQUIRED_VARS ZLIB_LIBRARY) diff --git a/scripts/format_cmake.bash b/scripts/format_cmake.bash index fcdd4c687..f44eea503 100755 --- a/scripts/format_cmake.bash +++ b/scripts/format_cmake.bash @@ -15,7 +15,7 @@ if [ $? -ne 0 ]; then exit 1 fi -FILES=`find .. -name \*.cmake\* -print -o -name \CMakeLists.txt -print | grep -v build` +FILES=`find .. -name \*.cmake\* -print -o -name \CMakeLists.txt -print | grep -v build | grep -v vcpkg/` for FILE in $FILES; do cmake-format -c cmake_format_config.py --check $FILE From 6ae8224a91850ef41e8934ec53a3c3e43570c601 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 15:03:30 +0200 Subject: [PATCH 004/118] fix macos yml --- .github/workflows/macos.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 5842eff5e..7da9abab9 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -28,8 +28,7 @@ concurrency: group: ci-${{github.ref}}-macos cancel-in-progress: true -jobs: - build: +jobs: macos_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) strategy: From 26095baeefc114c5079653147589af5b54d8f4c9 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 15:03:58 +0200 Subject: [PATCH 005/118] fix macos yml --- .github/workflows/macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 7da9abab9..9039471e7 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -199,7 +199,7 @@ jobs: create_dmg: name: Create dmg runs-on: macos-15 - needs: build + needs: macos_build steps: - name: Checkout uses: actions/checkout@v4 From b4362606a50433c8a04c4b35e5879b51fd0a8086 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 15:07:05 +0200 Subject: [PATCH 006/118] fix macos yml --- .github/workflows/macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9039471e7..4c543214a 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -34,7 +34,7 @@ jobs: strategy: matrix: include: - - os: macos-13 + - os: macos-14 triplet: x64-osx deployment-target: "10.15" target-arch: x86_64 From 01797b8a829ff9215507d5957022a3a7500ed4b0 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Thu, 17 Apr 2025 09:44:50 +0200 Subject: [PATCH 007/118] fix brew --- .github/workflows/macos.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 4c543214a..3385e70ed 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -32,9 +32,10 @@ jobs: macos_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) strategy: + fail-fast: false matrix: include: - - os: macos-14 + - os: macos-13 triplet: x64-osx deployment-target: "10.15" target-arch: x86_64 @@ -62,7 +63,7 @@ jobs: - name: Install brew deps run: | brew uninstall cmake - brew install automake bison flex gnu-sed autoconf-archive nasm libtool xcbeautify mono lcov openssl + brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl - name: Install CMake and Ninja uses: lukka/get-cmake@latest From 5f48b5deb3a5aced356b679b52613c54f4a2fb49 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 15:24:45 +0200 Subject: [PATCH 008/118] use Qt from vcpkg --- .github/workflows/macos.yml | 66 +-- CMakeLists.txt | 24 +- INSTALL.md | 4 +- VCPKG_BASELINE | 2 +- app/android/assets/qgis-data/proj/copyright | 34 ++ app/android/assets/qgis-data/proj/usage | 9 + cmake/FindQGIS.cmake | 2 +- vcpkg.json | 45 +- vcpkg/ports/gdal/cmake-project-include.cmake | 13 - vcpkg/ports/gdal/find-link-libraries.patch | 109 ----- .../gdal/fix-gdal-target-interfaces.patch | 15 - vcpkg/ports/gdal/libkml.patch | 46 -- vcpkg/ports/gdal/portfile.cmake | 148 ------- vcpkg/ports/gdal/target-is-valid.patch | 21 - vcpkg/ports/gdal/usage | 4 - vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake | 23 - vcpkg/ports/gdal/vcpkg.json | 39 -- vcpkg/ports/json-c/pkgconfig.patch | 13 - vcpkg/ports/json-c/portfile.cmake | 24 -- vcpkg/ports/json-c/vcpkg.json | 7 - vcpkg/ports/kdab-openssl/portfile.cmake | 30 -- vcpkg/ports/kdab-openssl/vcpkg.json | 17 - .../ports/libiconv/0002-Config-for-MSVC.patch | 14 - vcpkg/ports/libiconv/0003-Add-export.patch | 12 - .../ports/libiconv/0004-ModuleFileName.patch | 13 - vcpkg/ports/libiconv/portfile.cmake | 53 --- vcpkg/ports/libiconv/usage | 4 - .../ports/libiconv/vcpkg-cmake-wrapper.cmake | 21 - vcpkg/ports/libiconv/vcpkg.json | 7 - vcpkg/ports/libjpeg-turbo/CMakeLists.txt | 82 ---- vcpkg/ports/libjpeg-turbo/cpl_port.h | 13 - vcpkg/ports/libjpeg-turbo/libjpeg.pc.in | 8 - vcpkg/ports/libjpeg-turbo/portfile.cmake | 34 -- .../libjpeg-turbo/vcpkg-cmake-wrapper.cmake | 19 - vcpkg/ports/libjpeg-turbo/vcpkg.json | 22 - vcpkg/ports/liblzma/add_support_ios.patch | 20 - vcpkg/ports/liblzma/build-tools.patch | 20 - vcpkg/ports/liblzma/fix_config_include.patch | 12 - vcpkg/ports/liblzma/portfile.cmake | 86 ---- vcpkg/ports/liblzma/usage | 9 - vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake | 64 --- vcpkg/ports/liblzma/vcpkg.json | 23 - vcpkg/ports/liblzma/win_output_name.patch | 17 - vcpkg/ports/libpq/Makefile | 54 --- .../ports/libpq/android/unversioned_so.patch | 16 - vcpkg/ports/libpq/build-msvc.cmake | 80 ---- vcpkg/ports/libpq/libpq.props.in | 25 -- vcpkg/ports/libpq/portfile.cmake | 160 ------- vcpkg/ports/libpq/unix/fix-configure.patch | 79 ---- vcpkg/ports/libpq/unix/installdirs.patch | 48 --- vcpkg/ports/libpq/unix/mingw-install.patch | 36 -- vcpkg/ports/libpq/unix/no-server-tools.patch | 37 -- vcpkg/ports/libpq/unix/python.patch | 35 -- vcpkg/ports/libpq/unix/single-linkage.patch | 56 --- vcpkg/ports/libpq/usage | 4 - vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake | 72 ---- vcpkg/ports/libpq/vcpkg-libs.props.in | 31 -- vcpkg/ports/libpq/vcpkg.json | 195 --------- vcpkg/ports/libpq/windows/macro-def.patch | 18 - vcpkg/ports/libpq/windows/msbuild.patch | 398 ------------------ vcpkg/ports/libpq/windows/spin_delay.patch | 24 -- .../ports/libpq/windows/win_bison_flex.patch | 42 -- vcpkg/ports/libtasn1/portfile.cmake | 31 -- vcpkg/ports/libtasn1/vcpkg.json | 8 - vcpkg/ports/qca-qt6/vcpkg.json | 18 - .../0001-fix-path-for-vcpkg.patch | 0 .../0002-fix-build-error.patch | 0 ...-NOMINMAX-for-botan-plugin-with-MSVC.patch | 0 .../ports/{qca-qt6 => qca}/connect_fix.patch | 0 vcpkg/ports/{qca-qt6 => qca}/ios.patch | 0 vcpkg/ports/{qca-qt6 => qca}/mk-ca-bundle.pl | 0 vcpkg/ports/{qca-qt6 => qca}/portfile.cmake | 31 +- vcpkg/ports/qca/vcpkg.json | 44 ++ vcpkg/ports/qgis-qt6/vcpkg.json | 40 -- vcpkg/ports/{qgis-qt6 => qgis}/applocal.ps1 | 0 .../ports/{qgis-qt6 => qgis}/cmakelists.patch | 0 vcpkg/ports/{qgis-qt6 => qgis}/crssync.patch | 0 vcpkg/ports/{qgis-qt6 => qgis}/libxml2.patch | 0 vcpkg/ports/{qgis-qt6 => qgis}/portfile.cmake | 0 vcpkg/ports/qgis/vcpkg.json | 118 ++++++ vcpkg/ports/qt6-poly2tri/portfile.cmake | 18 - vcpkg/ports/qt6-poly2tri/vcpkg.json | 18 - vcpkg/ports/qt6/copyright | 175 -------- vcpkg/ports/qt6/portfile.cmake | 3 - vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake | 196 --------- vcpkg/ports/qt6/vcpkg.json | 6 - vcpkg/ports/qtkeychain-qt6/portfile.cmake | 30 +- vcpkg/ports/qtkeychain-qt6/vcpkg.json | 18 +- vcpkg/ports/tiff/FindCMath.patch | 13 - vcpkg/ports/tiff/portfile.cmake | 95 ----- vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in | 81 ---- vcpkg/ports/tiff/vcpkg.json | 61 --- vcpkg/triplets/arm-android.cmake | 7 +- vcpkg/triplets/arm64-ios.cmake | 6 +- vcpkg/triplets/arm64-osx.cmake | 3 +- vcpkg/triplets/x64-linux.cmake | 2 +- vcpkg/triplets/x64-osx.cmake | 13 - vcpkg/triplets/x64-windows.cmake | 6 +- 98 files changed, 333 insertions(+), 3366 deletions(-) create mode 100644 app/android/assets/qgis-data/proj/copyright create mode 100644 app/android/assets/qgis-data/proj/usage delete mode 100644 vcpkg/ports/gdal/cmake-project-include.cmake delete mode 100644 vcpkg/ports/gdal/find-link-libraries.patch delete mode 100644 vcpkg/ports/gdal/fix-gdal-target-interfaces.patch delete mode 100644 vcpkg/ports/gdal/libkml.patch delete mode 100644 vcpkg/ports/gdal/portfile.cmake delete mode 100644 vcpkg/ports/gdal/target-is-valid.patch delete mode 100644 vcpkg/ports/gdal/usage delete mode 100644 vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/gdal/vcpkg.json delete mode 100644 vcpkg/ports/json-c/pkgconfig.patch delete mode 100644 vcpkg/ports/json-c/portfile.cmake delete mode 100644 vcpkg/ports/json-c/vcpkg.json delete mode 100644 vcpkg/ports/kdab-openssl/portfile.cmake delete mode 100644 vcpkg/ports/kdab-openssl/vcpkg.json delete mode 100644 vcpkg/ports/libiconv/0002-Config-for-MSVC.patch delete mode 100644 vcpkg/ports/libiconv/0003-Add-export.patch delete mode 100644 vcpkg/ports/libiconv/0004-ModuleFileName.patch delete mode 100644 vcpkg/ports/libiconv/portfile.cmake delete mode 100644 vcpkg/ports/libiconv/usage delete mode 100644 vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/libiconv/vcpkg.json delete mode 100644 vcpkg/ports/libjpeg-turbo/CMakeLists.txt delete mode 100644 vcpkg/ports/libjpeg-turbo/cpl_port.h delete mode 100644 vcpkg/ports/libjpeg-turbo/libjpeg.pc.in delete mode 100644 vcpkg/ports/libjpeg-turbo/portfile.cmake delete mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg.json delete mode 100644 vcpkg/ports/liblzma/add_support_ios.patch delete mode 100644 vcpkg/ports/liblzma/build-tools.patch delete mode 100644 vcpkg/ports/liblzma/fix_config_include.patch delete mode 100644 vcpkg/ports/liblzma/portfile.cmake delete mode 100644 vcpkg/ports/liblzma/usage delete mode 100644 vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/liblzma/vcpkg.json delete mode 100644 vcpkg/ports/liblzma/win_output_name.patch delete mode 100644 vcpkg/ports/libpq/Makefile delete mode 100644 vcpkg/ports/libpq/android/unversioned_so.patch delete mode 100644 vcpkg/ports/libpq/build-msvc.cmake delete mode 100644 vcpkg/ports/libpq/libpq.props.in delete mode 100644 vcpkg/ports/libpq/portfile.cmake delete mode 100644 vcpkg/ports/libpq/unix/fix-configure.patch delete mode 100644 vcpkg/ports/libpq/unix/installdirs.patch delete mode 100644 vcpkg/ports/libpq/unix/mingw-install.patch delete mode 100644 vcpkg/ports/libpq/unix/no-server-tools.patch delete mode 100644 vcpkg/ports/libpq/unix/python.patch delete mode 100644 vcpkg/ports/libpq/unix/single-linkage.patch delete mode 100644 vcpkg/ports/libpq/usage delete mode 100644 vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/libpq/vcpkg-libs.props.in delete mode 100644 vcpkg/ports/libpq/vcpkg.json delete mode 100644 vcpkg/ports/libpq/windows/macro-def.patch delete mode 100644 vcpkg/ports/libpq/windows/msbuild.patch delete mode 100644 vcpkg/ports/libpq/windows/spin_delay.patch delete mode 100644 vcpkg/ports/libpq/windows/win_bison_flex.patch delete mode 100644 vcpkg/ports/libtasn1/portfile.cmake delete mode 100644 vcpkg/ports/libtasn1/vcpkg.json delete mode 100644 vcpkg/ports/qca-qt6/vcpkg.json rename vcpkg/ports/{qca-qt6 => qca}/0001-fix-path-for-vcpkg.patch (100%) rename vcpkg/ports/{qca-qt6 => qca}/0002-fix-build-error.patch (100%) rename vcpkg/ports/{qca-qt6 => qca}/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch (100%) rename vcpkg/ports/{qca-qt6 => qca}/connect_fix.patch (100%) rename vcpkg/ports/{qca-qt6 => qca}/ios.patch (100%) rename vcpkg/ports/{qca-qt6 => qca}/mk-ca-bundle.pl (100%) rename vcpkg/ports/{qca-qt6 => qca}/portfile.cmake (84%) create mode 100644 vcpkg/ports/qca/vcpkg.json delete mode 100644 vcpkg/ports/qgis-qt6/vcpkg.json rename vcpkg/ports/{qgis-qt6 => qgis}/applocal.ps1 (100%) rename vcpkg/ports/{qgis-qt6 => qgis}/cmakelists.patch (100%) rename vcpkg/ports/{qgis-qt6 => qgis}/crssync.patch (100%) rename vcpkg/ports/{qgis-qt6 => qgis}/libxml2.patch (100%) rename vcpkg/ports/{qgis-qt6 => qgis}/portfile.cmake (100%) create mode 100644 vcpkg/ports/qgis/vcpkg.json delete mode 100644 vcpkg/ports/qt6-poly2tri/portfile.cmake delete mode 100644 vcpkg/ports/qt6-poly2tri/vcpkg.json delete mode 100644 vcpkg/ports/qt6/copyright delete mode 100644 vcpkg/ports/qt6/portfile.cmake delete mode 100644 vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/qt6/vcpkg.json delete mode 100644 vcpkg/ports/tiff/FindCMath.patch delete mode 100644 vcpkg/ports/tiff/portfile.cmake delete mode 100644 vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in delete mode 100644 vcpkg/ports/tiff/vcpkg.json delete mode 100644 vcpkg/triplets/x64-osx.cmake diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 3385e70ed..c950506fb 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -19,10 +19,11 @@ on: - published env: - QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change CMAKE_VERSION: '3.29.0' VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" VCPKG_ROOT: "${{ github.workspace }}/vcpkg" + XC_VERSION: ${{ '16.2' }} + DEPLOYMENT_TARGET: '11.0' concurrency: group: ci-${{github.ref}}-macos @@ -35,18 +36,12 @@ jobs: fail-fast: false matrix: include: - - os: macos-13 - triplet: x64-osx - deployment-target: "10.15" - target-arch: x86_64 - xcode: "15.2" - - os: macos-15 + - os: triplet: arm64-osx - deployment-target: "15.4" # TODO get back to "11.0" when https://github.com/microsoft/vcpkg/issues/44976 is fixed + deployment-target: "11.0" target-arch: arm64 - xcode: "16.2" - runs-on: ${{ matrix.os }} + runs-on: macos-15 steps: - name: Checkout uses: actions/checkout@v4 @@ -73,7 +68,7 @@ jobs: - name: Setup XCode uses: maxim-lobanov/setup-xcode@v1.6.0 with: - xcode-version: ${{ matrix.xcode }} + xcode-version: ${{ env.XC_VERSION }} - name: Extract Mergin API_KEY env: @@ -124,16 +119,13 @@ jobs: echo "Version code: ${BUILD_NUM}" - name: build app (debug) - if: ${{ matrix.triplet != 'x64-osx' }} run: | mkdir -p build-mm-db cd build-mm-db cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.deployment-target }} \ - -DCMAKE_OSX_ARCHITECTURES=${{ matrix.target-arch }} \ - -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} \ + -DVCPKG_TARGET_TRIPLET=arm64-osx \ -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ @@ -148,7 +140,6 @@ jobs: ninja - name: run tests - if: ${{ matrix.triplet != 'x64-osx' }} env: TEST_MERGIN_URL: https://app.dev.merginmaps.com/ TEST_API_USERNAME: test_mobileapp2 @@ -165,7 +156,9 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${QT_VERSION}/macos \ + -DVCPKG_TARGET_TRIPLET=arm64-osx \ + -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos \ + -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_MM_SERVER_API_KEY=TRUE \ @@ -184,47 +177,10 @@ jobs: with: format: 'YYYYMMDD' - - name: package app - run: | - APP_TAR=input-app-${{ matrix.triplet }}.tar.gz - echo "APP_TAR=${APP_TAR}" >> $GITHUB_ENV - cd ${{ github.workspace }}/install-mm - find . - tar -c -z -f ${{ github.workspace }}/${APP_TAR} "./Input.app" - - - name: Upload package - uses: actions/upload-artifact@v4 - with: - path: ${{ github.workspace }}/${{ env.APP_TAR }} - - create_dmg: - name: Create dmg - runs-on: macos-15 - needs: macos_build - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Prepare build env run: | brew install create-dmg - - name: Download app - uses: actions/download-artifact@v4 - with: - pattern: input-app-* - path: | - artifacts - - - name: Create universal app - run: | - mkdir -p x64 - gtar --strip-components=4 -zxf ./artifacts/input-app-x64-osx/input-app-x64-osx.tar.gz -C x64 - mkdir -p arm64 - gtar --strip-components=4 -zxf ./artifacts/input-app-arm64-osx/input-app-arm64-osx.tar.gz -C arm64 - pip install lipomerge - lipomerge ./x64 ./arm64 universal - - name: Create dmg run: | if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then @@ -237,7 +193,7 @@ jobs: export API_KEY_PATH=authkey.p8 fi - export APP_PATH=$(pwd)/universal/Input.app + export APP_PATH=${{ github.workspace }}/install-mm/Input.app export DMG_PATH=merginmaps_app.dmg ./scripts/create_dmg.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 3aa64a742..146cdf12e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,13 @@ if (DEFINED ENV{INPUT_SDK_ANDROID_BASE}) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) - set(ANDROIDAPI "28") + if (DEFINED ENV{ANDROIDAPI}) + set(ANDROIDAPI $ENV{ANDROIDAPI}) + else () + message(FATAL_ERROR "ANDROIDAPI not defined as env variable") + endif () + # set(ANDROIDAPI "28") + set(ANDROID_PLATFORM "android-${ANDROIDAPI}") set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") set(ANDROID_STL "c++_shared") @@ -36,15 +42,15 @@ if (IOS) set(PLATFORM "OS") set(ENABLE_ARC FALSE) set(ENABLE_BITCODE FALSE) - set(DEPLOYMENT_TARGET "16.0") + # set(DEPLOYMENT_TARGET "16.0") endif () -if (APPLE - AND NOT IOS - AND NOT DEFINED ENV{INPUT_SDK_ANDROID_BASE} -) - # TODO change for arm64/osx - set(CMAKE_OSX_DEPLOYMENT_TARGET "15.4") +if (APPLE) + if (DEFINED ENV{DEPLOYMENT_TARGET}) + set(CMAKE_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) + else () + message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") + endif () endif () # ######################################################################################## @@ -196,7 +202,7 @@ find_package(expat CONFIG REQUIRED) find_package(GDAL CONFIG REQUIRED) find_package(Geodiff CONFIG REQUIRED) find_package(GEOS CONFIG REQUIRED) -find_package(Jpeg CONFIG REQUIRED) +# find_package(Jpeg CONFIG REQUIRED) find_package(PostgreSQL REQUIRED) find_package(PROJ CONFIG REQUIRED) find_package(Protobuf REQUIRED) diff --git a/INSTALL.md b/INSTALL.md index 8339de4d2..21ed82461 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -6,7 +6,6 @@ - [2. Overview](#2-overview) - [2.1 Secrets](#21-secrets) - [2.2 Code formatting](#22-code-formatting) - - [2.3 Required Qt packages](#23-required-qt-packages) - [3. Building GNU/Linux](#3-building-gnulinux) - [4. Building Android (on Linux/macOS/Windows)](#4-building-android-on-linuxmacoswindows) - [4.1. Android on Ubuntu](#41-android-on-ubuntu) @@ -99,6 +98,7 @@ To manually run the style check, run `pre-commit run --all-files` or optionally In case you want to skip execution of pre-commit hooks, add additional flag `--no-verify` to your commit command, e.g.: `git commit -m "nit" --no-verify` +<<<<<<< HEAD ## 2.3 Required Qt packages Mergin Maps Mobile app is built with Qt. If you are using Qt's `Maintenance tool`, make sure to install these packages: @@ -113,6 +113,8 @@ Mergin Maps Mobile app is built with Qt. If you are using Qt's `Maintenance tool - `Qt Multimedia` - `Qt Positioning` - `Qt Sensors` +======= +>>>>>>> df49e97f (use Qt from vcpkg) # 3. Building GNU/Linux diff --git a/VCPKG_BASELINE b/VCPKG_BASELINE index 7312e32e2..6e42e8238 100644 --- a/VCPKG_BASELINE +++ b/VCPKG_BASELINE @@ -1 +1 @@ -d5ec528843d29e3a52d745a64b469f810b2cedbf \ No newline at end of file +d6995a0cf3cafda5e9e52749fad075dd62bfd90c \ No newline at end of file diff --git a/app/android/assets/qgis-data/proj/copyright b/app/android/assets/qgis-data/proj/copyright new file mode 100644 index 000000000..d46f95cd6 --- /dev/null +++ b/app/android/assets/qgis-data/proj/copyright @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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/app/android/assets/qgis-data/proj/usage b/app/android/assets/qgis-data/proj/usage new file mode 100644 index 000000000..06eb04dee --- /dev/null +++ b/app/android/assets/qgis-data/proj/usage @@ -0,0 +1,9 @@ +proj provides CMake targets: + + find_package(PROJ CONFIG REQUIRED) + target_link_libraries(main PRIVATE PROJ::proj) + +proj provides pkg-config modules: + + # Coordinate transformation software library + proj diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index 1045bedd5..0e29c7ade 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,5 +1,5 @@ # GPLv2 Licence -find_path(QGIS_INCLUDE_DIR qgis.h) +find_path(QGIS_INCLUDE_DIR qgis.h PATH_SUFFIXES qgis) find_library(QGIS_CORE_LIBRARY NAMES qgis_core) diff --git a/vcpkg.json b/vcpkg.json index 0c083a6ef..b23a799f8 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -10,6 +10,7 @@ "name": "merginmaps-mobile-app", "description": "Collect. Share. Publish.", "version": "2025.2.0", + "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ { "name": "sqlite3", @@ -35,16 +36,46 @@ "default-features": false, "features": ["webp", "zip", "lzma", "jpeg", "zstd"] }, - { - "name": "kdab-openssl", - "platform": "android" - }, "geodiff", "nu-book-zxing-cpp", "gdal", - "qt6", - "qca-qt6", + "qca", "qtkeychain-qt6", - "qgis-qt6" + "qgis", + { + "name": "qgis", + "host": true, + "default-features": false + }, + { + "name": "qtbase", + "default-features": false + }, + "qtconnectivity", + "qtdeclarative", + "qtimageformats", + "qtlocation", + { + "name": "qtmultimedia", + "features": [ + { + "name": "ffmpeg", + "platform": "linux | android | windows" + }, + "qml" + ] + }, + "qtremoteobjects", + { + "name": "qtsensors", + "features": [ + "qml" + ] + }, + { + "name": "qttools", + "host": true, + "default-features": false + } ] } diff --git a/vcpkg/ports/gdal/cmake-project-include.cmake b/vcpkg/ports/gdal/cmake-project-include.cmake deleted file mode 100644 index 409b7b1a6..000000000 --- a/vcpkg/ports/gdal/cmake-project-include.cmake +++ /dev/null @@ -1,13 +0,0 @@ -if(GDAL_USE_KEA) - find_package(Kealib CONFIG REQUIRED) - add_library(KEA::KEA ALIAS Kealib::Kealib) - set(GDAL_CHECK_PACKAGE_KEA_NAMES Kealib CACHE INTERNAL "vcpkg") - set(GDAL_CHECK_PACKAGE_KEA_TARGETS Kealib::Kealib CACHE INTERNAL "vcpkg") -endif() - -if(GDAL_USE_WEBP) - find_package(WebP CONFIG REQUIRED) - add_library(WEBP::WebP ALIAS WebP::webp) - set(GDAL_CHECK_PACKAGE_WebP_NAMES WebP CACHE INTERNAL "vcpkg") - set(GDAL_CHECK_PACKAGE_WebP_TARGETS WebP::webp CACHE INTERNAL "vcpkg") -endif() diff --git a/vcpkg/ports/gdal/find-link-libraries.patch b/vcpkg/ports/gdal/find-link-libraries.patch deleted file mode 100644 index a802e4264..000000000 --- a/vcpkg/ports/gdal/find-link-libraries.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff --git a/cmake/modules/packages/FindFreeXL.cmake b/cmake/modules/packages/FindFreeXL.cmake -index 6c86fb8..0634412 100644 ---- a/cmake/modules/packages/FindFreeXL.cmake -+++ b/cmake/modules/packages/FindFreeXL.cmake -@@ -37,7 +37,15 @@ include(SelectLibraryConfigurations) - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_FREEXL QUIET freexl) -+ pkg_check_modules(PC_FREEXL QUIET IMPORTED_TARGET freexl) -+endif() -+if(PC_FREEXL_FOUND) -+ set(FREEXL_INCLUDE_DIR "${PC_FREEXL_INCLUDE_DIRS}" CACHE STRING "") -+ set(FREEXL_LIBRARY "${PC_FREEXL_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET FREEXL::freexl) -+ add_library(FREEXL::freexl INTERFACE IMPORTED) -+ set_target_properties(FREEXL::freexl PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_FREEXL) -+ endif() - endif() - - find_path(FREEXL_INCLUDE_DIR -diff --git a/cmake/modules/packages/FindOpenJPEG.cmake b/cmake/modules/packages/FindOpenJPEG.cmake -index c697484..6e83222 100644 ---- a/cmake/modules/packages/FindOpenJPEG.cmake -+++ b/cmake/modules/packages/FindOpenJPEG.cmake -@@ -32,9 +32,18 @@ endfunction() - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_OPENJPEG QUIET libopenjp2) -+ pkg_check_modules(PC_OPENJPEG QUIET IMPORTED_TARGET libopenjp2) - set(OpenJPEG_VERSION_STRING ${PC_OPENJPEG_VERSION}) - endif() -+if(PC_OPENJPEG_FOUND) -+ set(OPENJPEG_INCLUDE_DIR "${PC_OPENJPEG_INCLUDE_DIRS}" CACHE STRING "") -+ set(OPENJPEG_LIBRARY "${PC_OPENJPEG_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET OPENJPEG::OpenJPEG) -+ add_library(OPENJPEG::OpenJPEG INTERFACE IMPORTED) -+ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PC_OPENJPEG_INCLUDE_DIRS}") -+ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_OPENJPEG) -+ endif() -+endif() - - - find_path(OPENJPEG_INCLUDE_DIR opj_config.h -diff --git a/cmake/modules/packages/FindPoppler.cmake b/cmake/modules/packages/FindPoppler.cmake -index 3807ec0..8059eb4 100644 ---- a/cmake/modules/packages/FindPoppler.cmake -+++ b/cmake/modules/packages/FindPoppler.cmake -@@ -42,11 +42,19 @@ This module defines the following variables: - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_Poppler QUIET poppler) -+ pkg_check_modules(PC_Poppler QUIET IMPORTED_TARGET poppler) - if(PC_Poppler_VERSION) - set(Poppler_VERSION_STRING ${PC_Poppler_VERSION}) - endif() - endif() -+if(PC_Poppler_FOUND) -+ find_path(Poppler_INCLUDE_DIR NAMES Object.h PATHS ${PC_Poppler_INCLUDE_DIRS} NO_DEFAULT_PATH) -+ set(Poppler_LIBRARY "${PC_Poppler_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET Poppler::Poppler) -+ add_library(Poppler::Poppler INTERFACE IMPORTED) -+ set_target_properties(Poppler::Poppler PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler) -+ endif() -+endif() - find_path(Poppler_INCLUDE_DIR NAMES "poppler-config.h" "cpp/poppler-version.h" "qt5/poppler-qt5.h" "qt4/poppler-qt4.h" - "glib/poppler.h" - HINTS ${PC_Poppler_INCLUDE_DIRS} -@@ -77,6 +85,15 @@ endforeach() - foreach(_comp IN LISTS Poppler_known_components) - list(FIND Poppler_FIND_COMPONENTS "${_comp}" _nextcomp) - if(_nextcomp GREATER -1) -+ pkg_check_modules(PC_Poppler_${_comp} QUIET IMPORTED_TARGET ${Poppler_${_comp}_pkg_config}) -+ if(PC_Poppler_${_comp}_FOUND) -+ set(Poppler_${_comp}_INCLUDE_DIR "${PC_Poppler_${_comp}_INCLUDE_DIRS}" CACHE STRING "") -+ set(Poppler_${_comp}_LIBRARY "${PC_Poppler_${_comp}_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET Poppler::Poppler_${_comp}) -+ add_library(Poppler::${_comp} INTERFACE IMPORTED) -+ set_target_properties(Poppler::${_comp} PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler_${_comp}) -+ endif() -+ endif() - find_path(Poppler_${_comp}_INCLUDE_DIR - NAMES ${Poppler_${_comp}_header} - PATH_SUFFIXES poppler -diff --git a/cmake/modules/packages/FindSPATIALITE.cmake b/cmake/modules/packages/FindSPATIALITE.cmake -index 00612b0..6388719 100644 ---- a/cmake/modules/packages/FindSPATIALITE.cmake -+++ b/cmake/modules/packages/FindSPATIALITE.cmake -@@ -38,9 +38,17 @@ endif() - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_SPATIALITE QUIET spatialite) -+ pkg_check_modules(PC_SPATIALITE QUIET IMPORTED_TARGET spatialite) - set(SPATIALITE_VERSION_STRING ${PC_SPATIALITE_VERSION}) - endif() -+if(PC_SPATIALITE_FOUND) -+ set(SPATIALITE_INCLUDE_DIR "${PC_SPATIALITE_INCLUDE_DIRS}" CACHE STRING "") -+ set(SPATIALITE_LIBRARY "${PC_SPATIALITE_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET SPATIALITE::SPATIALITE) -+ add_library(SPATIALITE::SPATIALITE INTERFACE IMPORTED) -+ set_target_properties(SPATIALITE::SPATIALITE PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_SPATIALITE) -+ endif() -+endif() - - find_path(SPATIALITE_INCLUDE_DIR - NAMES spatialite.h diff --git a/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch b/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch deleted file mode 100644 index bf159fce5..000000000 --- a/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/cmake/helpers/GdalDriverHelper.cmake b/cmake/helpers/GdalDriverHelper.cmake -index 838f0fd..380e20d 100644 ---- a/cmake/helpers/GdalDriverHelper.cmake -+++ b/cmake/helpers/GdalDriverHelper.cmake -@@ -248,6 +248,10 @@ function(gdal_target_interfaces _TARGET) - if (_res) - target_compile_options(${_TARGET} PRIVATE ${_res}) - endif () -+ get_property(_res TARGET ${_LIB} PROPERTY INTERFACE_LINK_LIBRARIES) -+ if (_res) -+ gdal_target_interfaces(${_TARGET} ${_res}) -+ endif () - endif () - endforeach () - endfunction() diff --git a/vcpkg/ports/gdal/libkml.patch b/vcpkg/ports/gdal/libkml.patch deleted file mode 100644 index ef25d06de..000000000 --- a/vcpkg/ports/gdal/libkml.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/cmake/modules/packages/FindLibKML.cmake b/cmake/modules/packages/FindLibKML.cmake -index 9418247..589b83d 100644 ---- a/cmake/modules/packages/FindLibKML.cmake -+++ b/cmake/modules/packages/FindLibKML.cmake -@@ -56,6 +56,8 @@ find_library(LIBKML_BASE_LIBRARY - HINTS ${PC_LIBKML_LIBRARY_DIRS} ) - mark_as_advanced(LIBKML_BASE_LIBRARY) - -+cmake_policy(PUSH) -+cmake_policy(SET CMP0057 NEW) - set(libkml_known_components DOM CONVENIENCE ENGINE REGIONATOR) - foreach(_comp IN LISTS libkml_known_components) - if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) -@@ -99,21 +101,20 @@ find_package_handle_standard_args(LibKML - if(LIBKML_FOUND) - set(LIBKML_INCLUDE_DIRS "${LIBKML_INCLUDE_DIR}") - set(LIBKML_LIBRARIES "${LIBKML_BASE_LIBRARY}") -+ find_package(LibKML CONFIG REQUIRED) - if(NOT TARGET LIBKML::LibKML) -- add_library(LIBKML::LibKML UNKNOWN IMPORTED) -+ add_library(LIBKML::LibKML INTERFACE IMPORTED) - set_target_properties(LIBKML::LibKML PROPERTIES -- INTERFACE_INCLUDE_DIRECTORIES "${LIBKML_INCLUDE_DIR}" -- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" -- IMPORTED_LOCATION "${LIBKML_BASE_LIBRARY}") -+ INTERFACE_LINK_LIBRARIES kmlbase) - endif() - foreach(_comp IN LISTS libkml_known_components) - if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) -+ string(TOLOWER ${_comp} _name) - list(APPEND LIBKML_LIBRARIES "${LIBKML_${_comp}_LIBRARY}") - if(NOT TARGET LIBKML::${_comp}) -- add_library(LIBKML::${_comp} UNKNOWN IMPORTED) -+ add_library(LIBKML::${_comp} INTERFACE IMPORTED) - set_target_properties(LIBKML::${_comp} PROPERTIES -- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" -- IMPORTED_LOCATION "${LIBKML_${_comp}_LIBRARY}") -+ INTERFACE_LINK_LIBRARIES kml${_name}) - endif() - endif() - endforeach() -@@ -129,3 +130,4 @@ if(LIBKML_FOUND) - endif() - endforeach() - endif() -+cmake_policy(POP) diff --git a/vcpkg/ports/gdal/portfile.cmake b/vcpkg/ports/gdal/portfile.cmake deleted file mode 100644 index fbced9391..000000000 --- a/vcpkg/ports/gdal/portfile.cmake +++ /dev/null @@ -1,148 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO OSGeo/gdal - REF "v${VERSION}" # keep up to date with vcpkg-overlay/libjpeg-turbo version - SHA512 c974977789092058540ace0e9192a17b0f593e770822a885181ec6eed4323e2f7a7a61963667ae8c9c8c8c0d2d8fb80d194ab4d918e6d4851f39abd1e1c948bc - HEAD_REF master - PATCHES - find-link-libraries.patch - fix-gdal-target-interfaces.patch - libkml.patch - target-is-valid.patch -) - -# `vcpkg clean` stumbles over one subdir -file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") - -# Avoid abseil, no matter if vcpkg or system -vcpkg_replace_string("${SOURCE_PATH}/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h" [[__has_include("absl/strings/string_view.h")]] "(0)") - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_PNG_INTERNAL=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_JSONC_INTERNAL=ON) - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ICONV=ON) -if(GDAL_USE_ICONV AND VCPKG_TARGET_IS_WINDOWS) - list(APPEND FEATURE_OPTIONS -D_ICONV_SECOND_ARGUMENT_IS_NOT_CONST=ON) -endif() - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBXML2=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_TIFF=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_CURL=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_WEBP=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_SQLITE3=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOS=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOTIFF=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_SPATIALITE=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_EXPAT=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZLIB=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_FREEXL=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_JPEG=ON) - - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_KEA=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_POSTGRESQL=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_PCRE2=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_GIF=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_OPENJPEG=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_CFITSIO=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_HDF5=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_MYSQL=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_POPPLER=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_MSSQL_ODBC=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZSTD=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBKML=OFF) - -# Compatibility with older Android versions https://github.com/OSGeo/gdal/pull/5941 -if(VCPKG_TARGET_IS_ANDROID AND ANRDOID_PLATFORM VERSION_LESS 24 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) - list(APPEND FEATURE_OPTIONS -DBUILD_WITHOUT_64BIT_OFFSET=ON) -endif() - -# we want gdalinfo/ogrinfo on macOS to generate supported formats list -if(VCPKG_TARGET_IS_OSX) - list(APPEND FEATURE_OPTIONS -DBUILD_APPS=ON) -else() - list(APPEND FEATURE_OPTIONS -DBUILD_APPS=OFF) -endif() - -string(REPLACE "dynamic" "" qhull_target "Qhull::qhull${VCPKG_LIBRARY_LINKAGE}_r") - -# PCIDSK does not add compile interface defininions! -# do this instead of patching for now -# https://github.com/OSGeo/gdal/blob/af5b75ecc6b8d3cef36f2b6fecf085319d39a546/frmts/pcidsk/sdk/CMakeLists.txt#L84 -set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") -set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # for host pkgconf in PATH - ${FEATURE_OPTIONS} - -DBUILD_DOCS=OFF - -DBUILD_PYTHON_BINDINGS=OFF - -DBUILD_TESTING=OFF - -DCMAKE_DISABLE_FIND_PACKAGE_CSharp=ON - -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON - -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON - -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON - -DGDAL_USE_INTERNAL_LIBS=OFF - -DGDAL_USE_EXTERNAL_LIBS=OFF - -DGDAL_BUILD_OPTIONAL_DRIVERS=ON - -DOGR_BUILD_OPTIONAL_DRIVERS=ON - -DGDAL_CHECK_PACKAGE_MySQL_NAMES=unofficial-libmariadb - -DGDAL_CHECK_PACKAGE_MySQL_TARGETS=unofficial::libmariadb - -DMYSQL_LIBRARIES=unofficial::libmariadb - -DGDAL_CHECK_PACKAGE_NetCDF_NAMES=netCDF - -DGDAL_CHECK_PACKAGE_NetCDF_TARGETS=netCDF::netcdf - -DGDAL_CHECK_PACKAGE_QHULL_NAMES=Qhull - "-DGDAL_CHECK_PACKAGE_QHULL_TARGETS=${qhull_target}" - "-DQHULL_LIBRARY=${qhull_target}" - -DCMAKE_PROJECT_INCLUDE="${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" - OPTIONS_DEBUG - -DBUILD_APPS=OFF - MAYBE_UNUSED_VARIABLES - QHULL_LIBRARY -) - -vcpkg_cmake_install() -vcpkg_copy_pdbs() -vcpkg_fixup_pkgconfig() -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gdal) -vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/gdal/GDALConfig.cmake" - "include(CMakeFindDependencyMacro)" - "include(CMakeFindDependencyMacro) -# gdal needs a pkg-config tool. A host dependency provides pkgconf. -get_filename_component(vcpkg_host_prefix \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" ABSOLUTE) -list(APPEND CMAKE_PROGRAM_PATH \"\${vcpkg_host_prefix}/tools/pkgconf\")" -) - -if(VCPKG_TARGET_IS_OSX) - vcpkg_copy_tools( - TOOL_NAMES - gdalinfo - ogrinfo - AUTO_CLEAN - ) -endif() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/gdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/gdal-config") - -file(GLOB bin_files "${CURRENT_PACKAGES_DIR}/bin/*") -if(NOT bin_files) - file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/bin" - "${CURRENT_PACKAGES_DIR}/debug/bin" - ) -endif() - -vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_PACKAGES_DIR}\"" "") - -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/gdal/target-is-valid.patch b/vcpkg/ports/gdal/target-is-valid.patch deleted file mode 100644 index 10f3dcfcf..000000000 --- a/vcpkg/ports/gdal/target-is-valid.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/cmake/helpers/CheckDependentLibrariesCommon.cmake b/cmake/helpers/CheckDependentLibrariesCommon.cmake -index ebb3538..a4a6d69 100644 ---- a/cmake/helpers/CheckDependentLibrariesCommon.cmake -+++ b/cmake/helpers/CheckDependentLibrariesCommon.cmake -@@ -41,6 +41,7 @@ endif() - # https://github.com/OSGeo/gdal/issues/5324 - function (gdal_check_target_is_valid target res_var) - get_target_property(_interface_include_directories ${target} "INTERFACE_INCLUDE_DIRECTORIES") -+ get_target_property(_type ${target} "TYPE") - if(_interface_include_directories) - foreach(_dir IN LISTS _interface_include_directories) - if(NOT EXISTS "${_dir}") -@@ -54,7 +55,7 @@ function (gdal_check_target_is_valid target res_var) - # property, but a GeoTIFF_INCLUDE_DIRS variable. - set_target_properties(${target} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${GeoTIFF_INCLUDE_DIRS}") -- else() -+ elseif(NOT _type STREQUAL "INTERFACE" AND _type STREQUAL "ALIAS") - message(WARNING "Target ${target} has no INTERFACE_INCLUDE_DIRECTORIES property. Ignoring that target.") - set(${res_var} FALSE PARENT_SCOPE) - return() diff --git a/vcpkg/ports/gdal/usage b/vcpkg/ports/gdal/usage deleted file mode 100644 index 6982a9a24..000000000 --- a/vcpkg/ports/gdal/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package GDAL provides CMake targets: - - find_package(GDAL CONFIG REQUIRED) - target_link_libraries(main PRIVATE GDAL::GDAL) diff --git a/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 5b70b673b..000000000 --- a/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,23 +0,0 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0054 NEW) - -list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") -list(APPEND ARGS "CONFIG") -# The current port version should satisfy GDAL 3.0 ... 3.5 -list(GET ARGS 1 vcpkg_gdal_maybe_version) -if(vcpkg_gdal_maybe_version MATCHES "(^3\$|^3[.][0-5])") - list(REMOVE_AT ARGS "1") -endif() -unset(vcpkg_gdal_maybe_version) -_find_package(${ARGS} CONFIG) -if(GDAL_FOUND) - get_filename_component(vcpkg_gdal_prefix "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) - set(GDAL_INCLUDE_DIR "${vcpkg_gdal_prefix}/include" CACHE INTERNAL "") - set(GDAL_INCLUDE_DIRS "${GDAL_INCLUDE_DIR}") - set(GDAL_LIBRARY GDAL::GDAL CACHE INTERNAL "") - set(GDAL_LIBRARIES "${GDAL_LIBRARY}") - unset(vcpkg_gdal_prefix) -endif() - -cmake_policy(POP) diff --git a/vcpkg/ports/gdal/vcpkg.json b/vcpkg/ports/gdal/vcpkg.json deleted file mode 100644 index 335ff27ef..000000000 --- a/vcpkg/ports/gdal/vcpkg.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "gdal", - "version-semver": "3.10.2", - "port-version": 0, - "description": "The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data", - "homepage": "https://gdal.org", - "license": null, - "supports": "!uwp", - "dependencies": [ - "proj", - "tiff", - "zlib", - "sqlite3", - "curl", - "geos", - "freexl", - "libspatialindex", - "libspatialite", - "protobuf", - "exiv2", - "libiconv", - "libxml2", - "libgeotiff", - "expat", - "libjpeg-turbo", - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - }, - { - "name": "vcpkg-pkgconfig-get-modules", - "host": true - } - ] -} diff --git a/vcpkg/ports/json-c/pkgconfig.patch b/vcpkg/ports/json-c/pkgconfig.patch deleted file mode 100644 index 893406ed5..000000000 --- a/vcpkg/ports/json-c/pkgconfig.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ffb1db3dc..a82ed8619 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -273,7 +273,7 @@ install( - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} - ) - --if (UNIX OR MINGW OR CYGWIN) -+if (1) - SET(prefix ${CMAKE_INSTALL_PREFIX}) - # exec_prefix is prefix by default and CMake does not have the - # concept. diff --git a/vcpkg/ports/json-c/portfile.cmake b/vcpkg/ports/json-c/portfile.cmake deleted file mode 100644 index d0893ebee..000000000 --- a/vcpkg/ports/json-c/portfile.cmake +++ /dev/null @@ -1,24 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO json-c/json-c - REF eae040a84a479ccad1d1c48314345c51ecf1a4a4 - SHA512 18d8a31b341830b04676cad13fbc0608fb75a323522161ac8fd0bb5058db82c1c261d504696a1e12f4b03eb0967632885580ff81d808adf2f1dff7e32d131ba0 - HEAD_REF master - PATCHES pkgconfig.patch -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA -) - -vcpkg_install_cmake() - -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) -vcpkg_fixup_pkgconfig() -vcpkg_copy_pdbs() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -# Handle copyright -configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/vcpkg/ports/json-c/vcpkg.json b/vcpkg/ports/json-c/vcpkg.json deleted file mode 100644 index ff61b336e..000000000 --- a/vcpkg/ports/json-c/vcpkg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "json-c", - "version-string": "2019-09-10", - "port-version": 2, - "description": "A JSON implementation in C", - "homepage": "https://github.com/json-c/json-c" -} diff --git a/vcpkg/ports/kdab-openssl/portfile.cmake b/vcpkg/ports/kdab-openssl/portfile.cmake deleted file mode 100644 index a42acf2b3..000000000 --- a/vcpkg/ports/kdab-openssl/portfile.cmake +++ /dev/null @@ -1,30 +0,0 @@ -set(KDAB_OPENSSL_GIT_TAG "82c850cbc602ca4d20c82552e618b0a98b196f3c") - -# on Android we need openssl shared libraries for some QT network modules -if(NOT VCPKG_TARGET_IS_ANDROID) - message(FATAL_ERROR "KDAB-openssl shared libraries only needed on Android") -else() - vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/KDAB/android_openssl/archive/${KDAB_OPENSSL_GIT_TAG}.tar.gz" - FILENAME "kdab-openssl-${VERSION}.tar.gz" - SHA512 7f61c1fc0f6f38eac5da81234194b9fe5bcbf575c968ae90b8a734466aa818ce87b167defc4a60af166266bfafeaa03c6e6b8cb27fd39cdf214d464613f0c4d8 - ) - - vcpkg_extract_source_archive( - SOURCE_PATH - ARCHIVE "${ARCHIVE}" - SOURCE_BASE "v${VERSION}" - ) - - if (${TARGET_TRIPLET} STREQUAL "arm-android") - set(OPENSSL_ARCH "armeabi-v7a") - elseif (${TARGET_TRIPLET} STREQUAL "arm64-android") - set(OPENSSL_ARCH "arm64-v8a") - else() - message(FATAL_ERROR "KDAB-openssl unsupported platform ${TARGET_TRIPLET}") - endif() - - file(INSTALL ${SOURCE_PATH}/ssl_3/include/openssl/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/kdab-openssl/ ) - file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libssl_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) - file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libcrypto_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) -endif() diff --git a/vcpkg/ports/kdab-openssl/vcpkg.json b/vcpkg/ports/kdab-openssl/vcpkg.json deleted file mode 100644 index 6f16afda0..000000000 --- a/vcpkg/ports/kdab-openssl/vcpkg.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "kdab-openssl", - "version": "3.1.1", - "description": "OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols", - "homepage": "https://www.openssl.org", - "license": "Apache-2.0", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch b/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch deleted file mode 100644 index 0c90e50ef..000000000 --- a/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h" -index 6dc011b..158ccdd 100644 ---- "a/lib/loop_wchar.h" -+++ "b/lib/loop_wchar.h" -@@ -37,7 +37,7 @@ - # include - # define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ - /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ -- extern size_t mbrtowc (); -+// extern size_t mbrtowc (); - # ifdef mbstate_t - # define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) - # define mbsinit(ps) 1 - \ No newline at end of file diff --git a/vcpkg/ports/libiconv/0003-Add-export.patch b/vcpkg/ports/libiconv/0003-Add-export.patch deleted file mode 100644 index c8d131d2e..000000000 --- a/vcpkg/ports/libiconv/0003-Add-export.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -uNr libiconv-1.16/libcharset/include/libcharset.h.in libiconv-1.16-work/libcharset/include/libcharset.h.in ---- libiconv-1.16/libcharset/include/libcharset.h.in 2018-09-17 19:07:42.000000000 +0300 -+++ libiconv-1.16-work/libcharset/include/libcharset.h.in 2019-12-04 17:15:50.000000000 +0300 -@@ -33,7 +33,7 @@ - by the corresponding pathname with the current prefix instead. Both - prefixes should be directory names without trailing slash (i.e. use "" - instead of "/"). */ --extern void libcharset_set_relocation_prefix (const char *orig_prefix, -+extern void LIBCHARSET_DLL_EXPORTED libcharset_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - - diff --git a/vcpkg/ports/libiconv/0004-ModuleFileName.patch b/vcpkg/ports/libiconv/0004-ModuleFileName.patch deleted file mode 100644 index 15ceb2a41..000000000 --- a/vcpkg/ports/libiconv/0004-ModuleFileName.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/relocatable.c b/lib/relocatable.c -index 89b6c27..1561894 100644 ---- a/lib/relocatable.c -+++ b/lib/relocatable.c -@@ -329,7 +329,7 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) - /* The DLL is being loaded into an application's address range. */ - static char location[MAX_PATH]; - -- if (!GetModuleFileName (module_handle, location, sizeof (location))) -+ if (!GetModuleFileNameA (module_handle, location, sizeof (location))) - /* Shouldn't happen. */ - return FALSE; - diff --git a/vcpkg/ports/libiconv/portfile.cmake b/vcpkg/ports/libiconv/portfile.cmake deleted file mode 100644 index 8bf88682c..000000000 --- a/vcpkg/ports/libiconv/portfile.cmake +++ /dev/null @@ -1,53 +0,0 @@ -if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID AND NOT VCPKG_TARGET_IS_IOS) - set(VCPKG_POLICY_EMPTY_PACKAGE enabled) - file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/iconv") - file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") - return() -endif() - -set(LIBICONV_VERSION 1.16) - -vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" - FILENAME "libiconv-${LIBICONV_VERSION}.tar.gz" - SHA512 365dac0b34b4255a0066e8033a8b3db4bdb94b9b57a9dca17ebf2d779139fe935caf51a465d17fd8ae229ec4b926f3f7025264f37243432075e5583925bb77b7 -) -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - REF ${LIBICONV_VERSION} - PATCHES - 0002-Config-for-MSVC.patch - 0003-Add-export.patch - 0004-ModuleFileName.patch -) - -if (NOT VCPKG_TARGET_IS_ANDROID) - list(APPEND OPTIONS --enable-relocatable) -endif() - -vcpkg_configure_make( - SOURCE_PATH "${SOURCE_PATH}" - DETERMINE_BUILD_TRIPLET - USE_WRAPPERS - OPTIONS - --enable-extra-encodings - --without-libiconv-prefix - --without-libintl-prefix - ${OPTIONS} -) -vcpkg_install_make() - -vcpkg_copy_pdbs() -vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") -vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") - -file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") - -set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}") # share contains unneeded doc files - -# Please keep, the default usage is broken -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libiconv/usage b/vcpkg/ports/libiconv/usage deleted file mode 100644 index db47c33e8..000000000 --- a/vcpkg/ports/libiconv/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package libiconv provides CMake targets: - - find_package(Iconv) - target_link_libraries(main PRIVATE Iconv::Iconv) diff --git a/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 8e25449ae..000000000 --- a/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,21 +0,0 @@ -include(SelectLibraryConfigurations) - -_find_package(${ARGS}) -if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) - find_path(CHARSET_INCLUDE_DIR NAMES "libcharset.h" HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") - find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug") - find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") - select_library_configurations(CHARSET) - if(NOT TARGET Iconv::Charset) - add_library(Iconv::Charset INTERFACE IMPORTED) - set_target_properties(Iconv::Charset PROPERTIES - INTERFACE_LINK_LIBRARIES "\$<\$>:${CHARSET_LIBRARY_RELEASE}>;\$<\$:${CHARSET_LIBRARY_DEBUG}>" - INTERFACE_INCLUDE_DIRECTORIES "${CHARSET_INCLUDE_DIRS}") - endif() - if(CHARSET_LIBRARIES) - list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES}) - if(TARGET Iconv::Iconv) - set_property(TARGET Iconv::Iconv APPEND PROPERTY INTERFACE_LINK_LIBRARIES Iconv::Charset) - endif() - endif() -endif() diff --git a/vcpkg/ports/libiconv/vcpkg.json b/vcpkg/ports/libiconv/vcpkg.json deleted file mode 100644 index b567aee18..000000000 --- a/vcpkg/ports/libiconv/vcpkg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "libiconv", - "version": "1.16", - "port-version": 13, - "description": "GNU Unicode text conversion", - "homepage": "https://www.gnu.org/software/libiconv/" -} diff --git a/vcpkg/ports/libjpeg-turbo/CMakeLists.txt b/vcpkg/ports/libjpeg-turbo/CMakeLists.txt deleted file mode 100644 index e1fa17184..000000000 --- a/vcpkg/ports/libjpeg-turbo/CMakeLists.txt +++ /dev/null @@ -1,82 +0,0 @@ -# see https://github.com/OSGeo/gdal/blob/master/frmts/jpeg/libjpeg/CMakeLists.txt -cmake_minimum_required(VERSION 3.6) -project(JPEG) - -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - -add_library( - jpeg ${JPEG_BUILD_TYPE} - jcapimin.c - jchuff.h - jconfig.h - jdapimin.c - jdct.h - jdmarker.c - jdtrans.c - jidctflt.c - jmemmgr.c - jquant2.c - jcapistd.c - jcinit.c - jcparam.c - jdapistd.c - jddctmgr.c - jdmaster.c - jerror.c - jidctfst.c - jmemsys.h - jutils.c - jccoefct.c - jcmainct.c - jcphuff.c - jdatadst.c - jdhuff.c - jdmerge.c - jerror.h - jidctint.c - jmorecfg.h - jversion.h - jccolor.c - jcmarker.c - jcprepct.c - jdatasrc.c - jdhuff.h - jdphuff.c - jfdctflt.c - jidctred.c - jpegint.h - jcdctmgr.c - jcmaster.c - jcsample.c - jdcoefct.c - jdinput.c - jdpostct.c - jfdctfst.c - jinclude.h - jpeglib.h - jchuff.c - jcomapi.c - jctrans.c - jdcolor.c - jdmainct.c - jdsample.c - jfdctint.c - jmemnobs.c - jquant1.c) - -target_include_directories(jpeg PRIVATE $ $/..) -# target_compile_options(libjpeg PRIVATE ${GDAL_C_WARNING_FLAGS} ${GDAL_SOFTWARNFLAGS}) - -target_compile_definitions(jpeg PRIVATE -DDEFAULT_MAX_MEM=500000000L) -target_compile_definitions(jpeg PUBLIC -DRENAME_INTERNAL_LIBJPEG_SYMBOLS) - -# produce position independent code, default is on when building a shared library -# option(GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE "Set ON to produce -fPIC code" ${BUILD_SHARED_LIBS}) -# set_property(TARGET jpeg PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE}) -# target_sources(${GDAL_LIB_TARGET_NAME} PRIVATE $) - -configure_file(libjpeg.pc.in libjpeg.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjpeg.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) - -INSTALL(TARGETS jpeg) -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include FILES_MATCHING PATTERN "*.h") \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/cpl_port.h b/vcpkg/ports/libjpeg-turbo/cpl_port.h deleted file mode 100644 index 30fe16696..000000000 --- a/vcpkg/ports/libjpeg-turbo/cpl_port.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef CPL_BASE_H_INCLUDED_TWEAKED -#define CPL_BASE_H_INCLUDED_TWEAKED - -#if defined(__GNUC__) && __GNUC__ >= 4 -/** Qualifier for an argument that is unused */ -# define CPL_UNUSED __attribute((__unused__)) -#else -/* TODO: add cases for other compilers */ -/** Qualifier for an argument that is unused */ -# define CPL_UNUSED -#endif - -#endif /* ndef CPL_BASE_H_INCLUDED_TWEAKED */ \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in b/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in deleted file mode 100644 index ddc7882e7..000000000 --- a/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in +++ /dev/null @@ -1,8 +0,0 @@ -prefix=@CMAKE_INSTALL_PREFIX@ - -Name: libjpeg -Version: 6b -Description: jpeg with renamed symbols -URL: https://gdal.org -Libs: -L${prefix}/lib -ljpeg -Cflags: -I${prefix}/include -DRENAME_INTERNAL_JPEG_SYMBOLS \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/portfile.cmake b/vcpkg/ports/libjpeg-turbo/portfile.cmake deleted file mode 100644 index 6428bf1e5..000000000 --- a/vcpkg/ports/libjpeg-turbo/portfile.cmake +++ /dev/null @@ -1,34 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO OSGeo/gdal - REF "v${VERSION}" # keep up to date with vcpkg-overlay/gdal version - SHA512 dfc7ccf5c1a3184fa93be762a880b7631faa4cd178cd72df8f5fd8a6296edafc56de2594617bebcb75ddf19ed4471dafcb574b22d7e9217dedfd7ea72c9247f2 - HEAD_REF master -) - -# `vcpkg clean` stumbles over one subdir -file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") - -file(REMOVE "${SOURCE_PATH}/frmts/jpeg/libjpeg/CMakeLists.txt") -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/cpl_port.h DESTINATION ${SOURCE_PATH}/frmts/jpeg/) -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/libjpeg.pc.in DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="STATIC") -else() - list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="SHARED") -endif() - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}/frmts/jpeg/libjpeg" - OPTIONS - ${LINK_OPTIONS} -) - -vcpkg_cmake_install() -vcpkg_copy_pdbs() -vcpkg_fixup_pkgconfig() - -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jpeg") -file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 28456a89f..000000000 --- a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,19 +0,0 @@ -find_path(JPEG_INCLUDE_DIRS NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) -find_library(JPEG_LIBRARY NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - JPEG - REQUIRED_VARS JPEG_LIBRARY JPEG_INCLUDE_DIRS -) - -if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) - add_library(JPEG::JPEG UNKNOWN IMPORTED) - set_target_properties(JPEG::JPEG PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") - set_target_properties(JPEG::JPEG PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${JPEG_LIBRARY}") - - set_target_properties(JPEG::JPEG PROPERTIES INTERFACE_COMPILE_OPTIONS "-DRENAME_INTERNAL_LIBJPEG_SYMBOLS") -endif() \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg.json b/vcpkg/ports/libjpeg-turbo/vcpkg.json deleted file mode 100644 index f2113622e..000000000 --- a/vcpkg/ports/libjpeg-turbo/vcpkg.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "libjpeg-turbo", - "version-semver": "3.7.0", - "description": "JPEG image codec; taken from GDAL so on iOS it has renamed symbols and does not clash with Qt JPEG; this is NOT jpeg-turbo - name used so we do not need to patch all other libraries that uses JPEG", - "homepage": "https://gdal.org", - "license": null, - "supports": "!uwp", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - }, - { - "name": "vcpkg-pkgconfig-get-modules", - "host": true - } - ] -} diff --git a/vcpkg/ports/liblzma/add_support_ios.patch b/vcpkg/ports/liblzma/add_support_ios.patch deleted file mode 100644 index 79741639b..000000000 --- a/vcpkg/ports/liblzma/add_support_ios.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 52439b3..0b5e371 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -574,6 +574,7 @@ if(HAVE_GETOPT_LONG) - - install(TARGETS xzdec - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" -+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" - COMPONENT xzdec) - - if(UNIX) -@@ -701,6 +702,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) - - install(TARGETS xz - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" -+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" - COMPONENT xz) - - if(UNIX) diff --git a/vcpkg/ports/liblzma/build-tools.patch b/vcpkg/ports/liblzma/build-tools.patch deleted file mode 100644 index 759345ef2..000000000 --- a/vcpkg/ports/liblzma/build-tools.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 03b8301..820d08e 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -584,6 +584,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config.cmake" - COMPONENT liblzma_Development) - - -+if(BUILD_TOOLS) - ############################################################################# - # getopt_long - ############################################################################# -@@ -793,6 +794,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) - endforeach() - endif() - endif() -+endif() - - - ############################################################################# diff --git a/vcpkg/ports/liblzma/fix_config_include.patch b/vcpkg/ports/liblzma/fix_config_include.patch deleted file mode 100644 index 91dc4c13b..000000000 --- a/vcpkg/ports/liblzma/fix_config_include.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 34c6aca00..7b3708ab2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -413,6 +413,7 @@ if(WIN32) - if(BUILD_SHARED_LIBS) - # Add the Windows resource file for liblzma.dll. - target_sources(liblzma PRIVATE src/liblzma/liblzma_w32res.rc) -+ target_include_directories(liblzma PRIVATE windows/vs2019) - - set_target_properties(liblzma PROPERTIES - LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" diff --git a/vcpkg/ports/liblzma/portfile.cmake b/vcpkg/ports/liblzma/portfile.cmake deleted file mode 100644 index 0fdc38dff..000000000 --- a/vcpkg/ports/liblzma/portfile.cmake +++ /dev/null @@ -1,86 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO tukaani-project/xz - REF "v${VERSION}" - SHA512 c28461123562564e030f3f733f078bc4c840e87598d9f4b718d4bca639120d8133f969c45d7bdc62f33f081d789ec0f14a1791fb7da18515682bfe3c0c7362e0 - HEAD_REF master - PATCHES - fix_config_include.patch - win_output_name.patch # Fix output name on Windows. Autotool build does not generate lib prefixed libraries on windows. - add_support_ios.patch # add install bundle info for support ios - build-tools.patch -) - -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - tools BUILD_TOOLS -) - -if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") - set(WASM_OPTIONS -DCMAKE_C_BYTE_ORDER=LITTLE_ENDIAN -DCMAKE_CXX_BYTE_ORDER=LITTLE_ENDIAN) -endif() - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${FEATURE_OPTIONS} - ${WASM_OPTIONS} - -DBUILD_TESTING=OFF - -DCREATE_XZ_SYMLINKS=OFF - -DCREATE_LZMA_SYMLINKS=OFF - -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT= # using flags from (vcpkg) toolchain - MAYBE_UNUSED_VARIABLES - CMAKE_MSVC_DEBUG_INFORMATION_FORMAT - CREATE_XZ_SYMLINKS - CREATE_LZMA_SYMLINKS -) -vcpkg_cmake_install() -vcpkg_copy_pdbs() - -set(exec_prefix "\${prefix}") -set(libdir "\${prefix}/lib") -set(includedir "\${prefix}/include") -set(PACKAGE_URL https://tukaani.org/xz/) -set(PACKAGE_VERSION 5.4.3) -if(NOT VCPKG_TARGET_IS_WINDOWS) - set(PTHREAD_CFLAGS -pthread) -endif() -set(prefix "${CURRENT_INSTALLED_DIR}") -configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/liblzma.pc" @ONLY) -if (NOT VCPKG_BUILD_TYPE) - set(prefix "${CURRENT_INSTALLED_DIR}/debug") - configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/liblzma.pc" @ONLY) -endif() -vcpkg_fixup_pkgconfig() - -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/liblzma) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "1") -else() - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "0") -endif() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/share/man" -) - -set(TOOLS xz xzdec) -foreach(_tool IN LISTS TOOLS) - if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") - list(REMOVE_ITEM TOOLS ${_tool}) - endif() -endforeach() -if(TOOLS) - vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) -endif() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") -endif() - -file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/liblzma/usage b/vcpkg/ports/liblzma/usage deleted file mode 100644 index b1461c93f..000000000 --- a/vcpkg/ports/liblzma/usage +++ /dev/null @@ -1,9 +0,0 @@ -liblzma is compatible with built-in CMake targets: - - find_package(LibLZMA REQUIRED) - target_link_libraries(main PRIVATE LibLZMA::LibLZMA) - -liblzma provides CMake targets: - - find_package(liblzma CONFIG REQUIRED) - target_link_libraries(main PRIVATE liblzma::liblzma) diff --git a/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 826cdba06..000000000 --- a/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,64 +0,0 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0057 NEW) -set(z_vcpkg_liblzma_fixup_needed 0) -if(NOT "CONFIG" IN_LIST ARGS AND NOT "NO_MODULE" IN_LIST ARGS AND NOT CMAKE_DISABLE_FIND_PACKAGE_LibLZMA) - get_filename_component(z_vcpkg_liblzma_prefix "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) - get_filename_component(z_vcpkg_liblzma_prefix "${z_vcpkg_liblzma_prefix}" DIRECTORY) - find_path(LIBLZMA_INCLUDE_DIR NAMES lzma.h PATHS "${z_vcpkg_liblzma_prefix}/include" NO_DEFAULT_PATH) - # liblzma doesn't use a debug postfix, but FindLibLZMA.cmake expects it - find_library(LIBLZMA_LIBRARY_RELEASE NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/lib" NO_DEFAULT_PATH) - find_library(LIBLZMA_LIBRARY_DEBUG NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/debug/lib" NO_DEFAULT_PATH) - unset(z_vcpkg_liblzma_prefix) - if(CMAKE_VERSION VERSION_LESS 3.16) - # Older versions of FindLibLZMA.cmake need a single lib in LIBLZMA_LIBRARY. - set(z_vcpkg_liblzma_fixup_needed 1) - set(LIBLZMA_LIBRARY "${LIBLZMA_LIBRARY_RELEASE}" CACHE INTERNAL "") - elseif(NOT TARGET LibLZMA::LibLZMA) - set(z_vcpkg_liblzma_fixup_needed 1) - endif() - # Known values, and required. Skip expensive tests. - set(LIBLZMA_HAS_AUTO_DECODER 1 CACHE INTERNAL "") - set(LIBLZMA_HAS_EASY_ENCODER 1 CACHE INTERNAL "") - set(LIBLZMA_HAS_LZMA_PRESET 1 CACHE INTERNAL "") -endif() - -_find_package(${ARGS}) - -if(z_vcpkg_liblzma_fixup_needed) - include(SelectLibraryConfigurations) - select_library_configurations(LIBLZMA) - if(NOT TARGET LibLZMA::LibLZMA) - # Backfill LibLZMA::LibLZMA to versions of cmake before 3.14 - add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED) - if(DEFINED LIBLZMA_INCLUDE_DIRS) - set_target_properties(LibLZMA::LibLZMA PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${LIBLZMA_INCLUDE_DIRS}") - endif() - set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY - IMPORTED_CONFIGURATIONS RELEASE) - set_target_properties(LibLZMA::LibLZMA PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" - IMPORTED_LOCATION_RELEASE "${LIBLZMA_LIBRARY_RELEASE}") - if(EXISTS "${LIBLZMA_LIBRARY}") - set_target_properties(LibLZMA::LibLZMA PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${LIBLZMA_LIBRARY}") - endif() - endif() - if(LIBLZMA_LIBRARY_DEBUG) - # Backfill debug variant to versions of cmake before 3.16 - set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBLZMA_LIBRARY_DEBUG}") - endif() -endif() -if(LIBLZMA_LIBRARIES AND NOT "Threads::Threads" IN_LIST LIBLZMA_LIBRARIES) - set(THREADS_PREFER_PTHREAD_FLAG TRUE) - find_package(Threads) - list(APPEND LIBLZMA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) - if(TARGET LibLZMA::LibLZMA) - set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) - endif() -endif() -unset(z_vcpkg_liblzma_fixup_needed) -cmake_policy(POP) diff --git a/vcpkg/ports/liblzma/vcpkg.json b/vcpkg/ports/liblzma/vcpkg.json deleted file mode 100644 index e9168357c..000000000 --- a/vcpkg/ports/liblzma/vcpkg.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "liblzma", - "version": "5.4.4", - "description": "Compression library with an API similar to that of zlib.", - "homepage": "https://tukaani.org/xz/", - "license": null, - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ], - "features": { - "tools": { - "description": "Build tools", - "supports": "!windows, mingw" - } - } -} diff --git a/vcpkg/ports/liblzma/win_output_name.patch b/vcpkg/ports/liblzma/win_output_name.patch deleted file mode 100644 index 9a845bdba..000000000 --- a/vcpkg/ports/liblzma/win_output_name.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0c6d4b7..62a824a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -868,8 +868,11 @@ set_target_properties(liblzma PROPERTIES - - # It's liblzma.so or liblzma.dll, not libliblzma.so or lzma.dll. - # Avoid the name lzma.dll because it would conflict with LZMA SDK. -- PREFIX "" -+ OUTPUT_NAME lzma - ) -+if(WIN32 AND NOT MINGW) -+ set_target_properties(liblzma PROPERTIES RUNTIME_OUTPUT_NAME liblzma) -+endif() - - # Create liblzma-config-version.cmake. - # diff --git a/vcpkg/ports/libpq/Makefile b/vcpkg/ports/libpq/Makefile deleted file mode 100644 index 67994f4ba..000000000 --- a/vcpkg/ports/libpq/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -subdir = . -top_builddir = . -include src/Makefile.global - -ifeq ($(LIBPQ_LIBRARY_TYPE), static) -LIBPQ_INSTALL_LIBS = install-stlib -endif - -ifeq ($(LIBPQ_LIBRARY_TYPE), shared) -ifeq ($(LIBPQ_USING_MINGW), yes) -# The import library name is the same as the static library name -EXTRA_TARGET = install-lib-static -endif -endif - -.PHONY: all -all: - $(MAKE) -C src/include - $(MAKE) -C src/common - $(MAKE) -C src/port - $(MAKE) -C src/interfaces/libpq all-$(LIBPQ_LIBRARY_TYPE)-lib - $(MAKE) -C src/interfaces/ecpg/include - $(MAKE) -C src/interfaces/ecpg/pgtypeslib - $(MAKE) -C src/interfaces/ecpg/ecpglib - $(MAKE) -C src/interfaces/ecpg/compatlib -ifeq ($(LIBPQ_ENABLE_TOOLS), yes) - $(MAKE) -C src/interfaces/ecpg/preproc - $(MAKE) -C src/fe_utils - $(MAKE) -C src/bin -else - $(MAKE) -C src/bin/pg_config -endif - -.PHONY: install-stlib -install-stlib: - $(MAKE) -C src/common install -o all - rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a' - $(MAKE) -C src/port install -o all - rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a' - -.PHONY: install -install: $(LIBPQ_INSTALL_LIBS) - $(MAKE) -C src/include install - $(MAKE) -C src/interfaces/libpq $(EXTRA_TARGET) install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib-pc install -o all -o install-lib - $(MAKE) -C src/interfaces/ecpg/include install - $(MAKE) -C src/interfaces/ecpg/pgtypeslib install - $(MAKE) -C src/interfaces/ecpg/ecpglib install - $(MAKE) -C src/interfaces/ecpg/compatlib install -ifeq ($(LIBPQ_ENABLE_TOOLS), yes) - $(MAKE) -C src/interfaces/ecpg/preproc install - $(MAKE) -C src/bin install -else - $(MAKE) -C src/bin/pg_config install -endif diff --git a/vcpkg/ports/libpq/android/unversioned_so.patch b/vcpkg/ports/libpq/android/unversioned_so.patch deleted file mode 100644 index 42096a367..000000000 --- a/vcpkg/ports/libpq/android/unversioned_so.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/Makefile.shlib b/src/Makefile.shlib -index f94d59d1c597..8ca51ca03f75 100644 ---- a/src/Makefile.shlib -+++ b/src/Makefile.shlib -@@ -183,6 +183,11 @@ endif - ifeq ($(PORTNAME), linux) - LINK.shared = $(COMPILER) -shared - ifdef soname -+ ifneq (,$(findstring linux-android,$(host_os))) -+ # Android uses unversioned shared libraries -+ shlib = $(shlib_bare) -+ soname = $(shlib_bare) -+ endif - LINK.shared += -Wl,-soname,$(soname) - endif - BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ diff --git a/vcpkg/ports/libpq/build-msvc.cmake b/vcpkg/ports/libpq/build-msvc.cmake deleted file mode 100644 index 34d969487..000000000 --- a/vcpkg/ports/libpq/build-msvc.cmake +++ /dev/null @@ -1,80 +0,0 @@ -function(build_msvc build_type source_path) - if(build_type STREQUAL "DEBUG") - set(vcpkg_configuration "Debug") - set(label "${TARGET_TRIPLET}-dbg") - set(packages_dir "${CURRENT_PACKAGES_DIR}/debug") - else() - set(vcpkg_configuration "Release") - set(label "${TARGET_TRIPLET}-rel") - set(packages_dir "${CURRENT_PACKAGES_DIR}") - endif() - - set(build_path "${CURRENT_BUILDTREES_DIR}/${label}") - file(REMOVE_RECURSE "${build_path}") - file(COPY "${source_path}/" DESTINATION "${build_path}") - - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_replace_string("${build_path}/src/include/port/win32.h" "__declspec (dllimport)" "") - endif() - vcpkg_replace_string("${build_path}/src/tools/msvc/MSBuildProject.pm" "perl " "\"${PERL}\" ") - configure_file("${CURRENT_PORT_DIR}/libpq.props.in" "${build_path}/libpq.props" @ONLY) - configure_file("${CURRENT_PORT_DIR}/vcpkg-libs.props.in" "${build_path}/vcpkg-libs.props" @ONLY) - set(config "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n\n") - foreach(var IN ITEMS VCPKG_TARGET_ARCHITECTURE VCPKG_LIBRARY_LINKAGE VCPKG_CRT_LINKAGE) - string(APPEND config "\$config->{${var}} = \"${${var}}\";\n") - endforeach() - foreach(option IN ITEMS icu lz4 nls openssl python tcl xml xslt zlib zstd) - if(option IN_LIST FEATURES) - string(APPEND config "\$config->{${option}} = \"${CURRENT_INSTALLED_DIR}\";\n") - endif() - endforeach() - if("openssl" IN_LIST FEATURES) - file(STRINGS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/openssl.pc" OPENSSL_VERSION REGEX "Version:") - string(APPEND config "\$config->{openssl_version} = '${OPENSSL_VERSION}';\n") - endif() - string(APPEND config "\$config->{python_version} = '3.${PYTHON_VERSION_MINOR}';\n") - string(APPEND config "\$config->{tcl_version} = '90';\n") - file(WRITE "${build_path}/src/tools/msvc/config.pl" "${config}") - - set(build_in_parallel "-m") - set(build_targets libpq libecpg_compat) - set(install_target core) - if(HAS_TOOLS AND NOT build_type STREQUAL "DEBUG") - set(build_in_parallel "") # mitigate winflex races - set(build_targets client) - set(install_target client) - endif() - - string(REPLACE "x86" "Win32" platform "${VCPKG_TARGET_ARCHITECTURE}") - vcpkg_get_windows_sdk(VCPKG_TARGET_PLATFORM_VERSION) - set(ENV{MSBFLAGS} "\ - /p:Platform=${platform} \ - /p:PlatformToolset=${VCPKG_PLATFORM_TOOLSET} \ - /p:VCPkgLocalAppDataDisabled=true \ - /p:UseIntelMKL=No \ - /p:WindowsTargetPlatformVersion=${VCPKG_TARGET_PLATFORM_VERSION} \ - /p:VcpkgConfiguration=${vcpkg_configuration} \ - ${build_in_parallel} \ - /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets;${build_path}/vcpkg-libs.props\" \ - /p:VcpkgTriplet=${TARGET_TRIPLET} \ - /p:VcpkgCurrentInstalledDir=\"${CURRENT_INSTALLED_DIR}\" \ - /p:ForceImportAfterCppTargets=\"${build_path}/libpq.props\" \ - ") - - message(STATUS "Building ${label}") - foreach(target IN LISTS build_targets) - string(REPLACE "client" "" target "${target}") - vcpkg_execute_required_process( - COMMAND "${PERL}" build.pl ${build_type} ${target} - WORKING_DIRECTORY "${build_path}/src/tools/msvc" - LOGNAME "build-${target}-${label}" - ) - endforeach() - - message(STATUS "Installing ${label}") - vcpkg_execute_required_process( - COMMAND "${PERL}" install.pl "${packages_dir}" ${install_target} - WORKING_DIRECTORY "${build_path}/src/tools/msvc" - LOGNAME "install-${label}" - ) -endfunction() diff --git a/vcpkg/ports/libpq/libpq.props.in b/vcpkg/ports/libpq/libpq.props.in deleted file mode 100644 index 223e528fe..000000000 --- a/vcpkg/ports/libpq/libpq.props.in +++ /dev/null @@ -1,25 +0,0 @@ - - - - - %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_DEBUG@ - - - %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG@ - - - %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ - - - - - %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_RELEASE@ - - - %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE@ - - - %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ - - - diff --git a/vcpkg/ports/libpq/portfile.cmake b/vcpkg/ports/libpq/portfile.cmake deleted file mode 100644 index 782205437..000000000 --- a/vcpkg/ports/libpq/portfile.cmake +++ /dev/null @@ -1,160 +0,0 @@ -vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.postgresql.org/pub/source/v${VERSION}/postgresql-${VERSION}.tar.bz2" - FILENAME "postgresql-${VERSION}.tar.bz2" - SHA512 3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf -) - -vcpkg_extract_source_archive( - SOURCE_PATH - ARCHIVE "${ARCHIVE}" - PATCHES - unix/installdirs.patch - unix/fix-configure.patch - unix/single-linkage.patch - unix/no-server-tools.patch - unix/mingw-install.patch - unix/python.patch - windows/macro-def.patch - windows/win_bison_flex.patch - windows/msbuild.patch - windows/spin_delay.patch - android/unversioned_so.patch -) - -file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*") -string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}") -set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") - -if("client" IN_LIST FEATURES) - set(HAS_TOOLS TRUE) -else() - set(HAS_TOOLS FALSE) -endif() - -set(required_programs PERL) -if(VCPKG_TARGET_IS_WINDOWS) - list(APPEND required_programs BISON FLEX) -endif() -foreach(program_name IN LISTS required_programs) - # Need to rename win_bison and win_flex to just bison and flex - vcpkg_find_acquire_program(${program_name}) - get_filename_component(program_dir ${${program_name}} DIRECTORY) - vcpkg_add_to_path(PREPEND "${program_dir}") -endforeach() - -vcpkg_cmake_get_vars(cmake_vars_file) -include("${cmake_vars_file}") - -if(VCPKG_DETECTED_MSVC) - if("nls" IN_LIST FEATURES) - vcpkg_acquire_msys(MSYS_ROOT PACKAGES gettext) - vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") - endif() - if("xml" IN_LIST FEATURES) - x_vcpkg_pkgconfig_get_modules( - PREFIX PC_LIBXML2 - MODULES --msvc-syntax libxml-2.0 - LIBS - ) - separate_arguments(LIBXML2_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXML2_LIBS_DEBUG}") - separate_arguments(LIBXML2_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXML2_LIBS_RELEASE}") - endif() - if("xslt" IN_LIST FEATURES) - x_vcpkg_pkgconfig_get_modules( - PREFIX PC_LIBXSLT - MODULES --msvc-syntax libxslt - LIBS - ) - separate_arguments(LIBXSLT_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXSLT_LIBS_DEBUG}") - separate_arguments(LIBXSLT_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXSLT_LIBS_RELEASE}") - endif() - - include("${CMAKE_CURRENT_LIST_DIR}/build-msvc.cmake") - if(NOT VCPKG_BUILD_TYPE) - build_msvc(DEBUG "${SOURCE_PATH}") - endif() - build_msvc(RELEASE "${SOURCE_PATH}") - - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") - endif() - - if(HAS_TOOLS) - vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") - else() - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") - endif() -else() - file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}") - - vcpkg_list(SET BUILD_OPTS) - foreach(option IN ITEMS icu lz4 nls openssl readline xml xslt zlib zstd) - if(option IN_LIST FEATURES) - list(APPEND BUILD_OPTS --with-${option}) - else() - list(APPEND BUILD_OPTS --without-${option}) - endif() - endforeach() - if("nls" IN_LIST FEATURES) - set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}") - if(VCPKG_TARGET_IS_ANDROID) - list(APPEND BUILD_OPTS [[LIBS=$LIBS -liconv]]) - endif() - endif() - if("python" IN_LIST FEATURES) - list(APPEND BUILD_OPTS --with-python=3.${PYTHON_VERSION_MINOR}) - vcpkg_find_acquire_program(PYTHON3) - list(APPEND BUILD_OPTS "PYTHON=${PYTHON3}") - endif() - if(VCPKG_TARGET_IS_ANDROID) # AND CMAKE_SYSTEM_VERSION LESS 26) - list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no) - endif() - if(VCPKG_DETECTED_CMAKE_OSX_SYSROOT) - list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") - endif() - vcpkg_configure_make( - SOURCE_PATH "${SOURCE_PATH}" - COPY_SOURCE - AUTOCONFIG - ADDITIONAL_MSYS_PACKAGES autoconf-archive - DIRECT_PACKAGES - "https://mirror.msys2.org/msys/x86_64/tzcode-2023c-1-x86_64.pkg.tar.zst" - 7550b843964744607f736a7138f10c6cd92489406a1b84ac71d9a9d8aa16bc69048aa1b24e1f49291b010347047008194c334ca9c632e17fa8245e85549e3c7a - OPTIONS - ${BUILD_OPTS} - OPTIONS_DEBUG - --enable-debug - ) - - if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(ENV{LIBPQ_LIBRARY_TYPE} shared) - else() - set(ENV{LIBPQ_LIBRARY_TYPE} static) - endif() - if(VCPKG_TARGET_IS_MINGW) - set(ENV{LIBPQ_USING_MINGW} yes) - endif() - if(HAS_TOOLS) - set(ENV{LIBPQ_ENABLE_TOOLS} yes) - endif() - vcpkg_install_make() - - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") -endif() - -vcpkg_fixup_pkgconfig() -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY) - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/doc" - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/debug/symbols" - "${CURRENT_PACKAGES_DIR}/debug/tools" - "${CURRENT_PACKAGES_DIR}/symbols" - "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" -) - -file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") diff --git a/vcpkg/ports/libpq/unix/fix-configure.patch b/vcpkg/ports/libpq/unix/fix-configure.patch deleted file mode 100644 index 29c764635..000000000 --- a/vcpkg/ports/libpq/unix/fix-configure.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 7f97248..48ff1a1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -19,7 +19,8 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros - - AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) - --m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. -+cross_compiling=yes # Avoid conftest loading shared objects -+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required. - Untested combinations of 'autoconf' and PostgreSQL versions are not - recommended. You can remove the check from 'configure.ac' but it is then - your responsibility whether the result works or not.])]) -@@ -1311,7 +1312,8 @@ if test "$enable_thread_safety" = yes; then - fi - - if test "$with_readline" = yes; then -- PGAC_CHECK_READLINE -+ PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no]) -+ LIBS="$READLINE_LIBS $LIBS" - if test x"$pgac_cv_check_readline" = x"no"; then - AC_MSG_ERROR([readline library not found - If you have readline already installed, see config.log for details on the -@@ -1321,7 +1323,7 @@ Use --without-readline to disable readline support.]) - fi - - if test "$with_zlib" = yes; then -- AC_CHECK_LIB(z, inflate, [], -+ PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"], - [AC_MSG_ERROR([zlib library not found - If you have zlib already installed, see config.log for details on the - failure. It is possible the compiler isn't looking in the proper directory. -@@ -1370,6 +1372,9 @@ if test "$with_ssl" = openssl ; then - # Minimum required OpenSSL version is 1.0.1 - AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L], - [Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.]) -+ PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) -+ PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) -+ if false ; then - if test "$PORTNAME" != "win32"; then - AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) - AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) -@@ -1377,6 +1382,7 @@ if test "$with_ssl" = openssl ; then - AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])]) - AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])]) - fi -+ fi - # Functions introduced in OpenSSL 1.0.2. LibreSSL does not have - # SSL_CTX_set_cert_cb(). - AC_CHECK_FUNCS([X509_get_signature_nid SSL_CTX_set_cert_cb]) -@@ -1403,19 +1409,23 @@ if test "$with_pam" = yes ; then - fi - - if test "$with_libxml" = yes ; then -- AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) -+ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) -+ LIBS="$LIBXML2_LIBS $LIBS" - fi - - if test "$with_libxslt" = yes ; then -- AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) -+ PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) -+ LIBS="$LIBXSLT_LIBS $LIBS" - fi - - if test "$with_lz4" = yes ; then -- AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) -+ PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) -+ LIBS="$LZ4_LIBS $LIBS" - fi - - if test "$with_zstd" = yes ; then -- AC_CHECK_LIB(zstd, ZSTD_compress, [], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) -+ PKG_CHECK_MODULES([ZSTD], [libzstd], [AC_DEFINE(HAVE_LIBZSTD,1,[Define to 1 if with zstd])], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) -+ LIBS="$ZSTD_LIBS $LIBS" - fi - - # Note: We can test for libldap_r only after we know PTHREAD_LIBS; diff --git a/vcpkg/ports/libpq/unix/installdirs.patch b/vcpkg/ports/libpq/unix/installdirs.patch deleted file mode 100644 index ae6653f90..000000000 --- a/vcpkg/ports/libpq/unix/installdirs.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/src/Makefile.global.in b/src/Makefile.global.in -index 5dacc4d..a9a797e 100644 ---- a/src/Makefile.global.in -+++ b/src/Makefile.global.in -@@ -100,14 +100,14 @@ datarootdir := @datarootdir@ - - bindir := @bindir@ - --datadir := @datadir@ -+datadir := @datadir@/postgresql - ifeq "$(findstring pgsql, $(datadir))" "" - ifeq "$(findstring postgres, $(datadir))" "" - override datadir := $(datadir)/postgresql - endif - endif - --sysconfdir := @sysconfdir@ -+sysconfdir := @sysconfdir@/postgresql - ifeq "$(findstring pgsql, $(sysconfdir))" "" - ifeq "$(findstring postgres, $(sysconfdir))" "" - override sysconfdir := $(sysconfdir)/postgresql -@@ -116,7 +116,7 @@ endif - - libdir := @libdir@ - --pkglibdir = $(libdir) -+pkglibdir = $(libdir)/postgresql - ifeq "$(findstring pgsql, $(pkglibdir))" "" - ifeq "$(findstring postgres, $(pkglibdir))" "" - override pkglibdir := $(pkglibdir)/postgresql -@@ -125,7 +125,7 @@ endif - - includedir := @includedir@ - --pkgincludedir = $(includedir) -+pkgincludedir = $(includedir)/postgresql - ifeq "$(findstring pgsql, $(pkgincludedir))" "" - ifeq "$(findstring postgres, $(pkgincludedir))" "" - override pkgincludedir := $(pkgincludedir)/postgresql -@@ -134,7 +134,7 @@ endif - - mandir := @mandir@ - --docdir := @docdir@ -+docdir := @docdir@/postgresql - ifeq "$(findstring pgsql, $(docdir))" "" - ifeq "$(findstring postgres, $(docdir))" "" - override docdir := $(docdir)/postgresql diff --git a/vcpkg/ports/libpq/unix/mingw-install.patch b/vcpkg/ports/libpq/unix/mingw-install.patch deleted file mode 100644 index ffeea023c..000000000 --- a/vcpkg/ports/libpq/unix/mingw-install.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/src/Makefile.shlib b/src/Makefile.shlib -index 16255d7..51e9ed2 100644 ---- a/src/Makefile.shlib -+++ b/src/Makefile.shlib -@@ -85,7 +85,11 @@ else - # Naming convention for dynamically loadable modules - shlib = $(NAME)$(DLSUFFIX) - endif -+ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) -+stlib = lib$(NAME).dll.a -+else - stlib = lib$(NAME).a -+endif - - ifndef soname - # additional flags for backend modules -@@ -468,6 +472,9 @@ endif - else # no soname - $(INSTALL_SHLIB) $< '$(DESTDIR)$(pkglibdir)/$(shlib)' - endif -+ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) -+ mv '$(DESTDIR)$(libdir)/$(shlib)' '$(DESTDIR)$(libdir)/../bin/$(shlib)' -+endif - - - installdirs-lib: -@@ -476,6 +483,9 @@ ifdef soname - else - $(MKDIR_P) '$(DESTDIR)$(pkglibdir)' - endif -+ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) -+ $(MKDIR_P) '$(DESTDIR)$(libdir)/../bin' -+endif - - - ## diff --git a/vcpkg/ports/libpq/unix/no-server-tools.patch b/vcpkg/ports/libpq/unix/no-server-tools.patch deleted file mode 100644 index f83682afb..000000000 --- a/vcpkg/ports/libpq/unix/no-server-tools.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/src/bin/Makefile b/src/bin/Makefile -index 7f9dde9..bc6d835 100644 ---- a/src/bin/Makefile -+++ b/src/bin/Makefile -@@ -13,29 +13,20 @@ subdir = src/bin - top_builddir = ../.. - include $(top_builddir)/src/Makefile.global - -+.NOTPARALLEL: -+# incl. https://www.postgresql.org/docs/current/reference-client.html -+# excl. https://www.postgresql.org/docs/current/reference-server.html - SUBDIRS = \ -- initdb \ - pg_amcheck \ -- pg_archivecleanup \ - pg_basebackup \ -- pg_checksums \ - pg_config \ -- pg_controldata \ -- pg_ctl \ - pg_dump \ -- pg_resetwal \ -- pg_rewind \ -- pg_test_fsync \ -- pg_test_timing \ -- pg_upgrade \ - pg_verifybackup \ -- pg_waldump \ - pgbench \ - psql \ - scripts - - ifeq ($(PORTNAME), win32) --SUBDIRS += pgevent - else - ALWAYS_SUBDIRS += pgevent - endif diff --git a/vcpkg/ports/libpq/unix/python.patch b/vcpkg/ports/libpq/unix/python.patch deleted file mode 100644 index 7d8f58d4a..000000000 --- a/vcpkg/ports/libpq/unix/python.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 7f97248992..33b6c84fc4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -891,7 +891,9 @@ AC_SUBST(with_perl) - # Optionally build Python modules (PL/Python) - # - AC_MSG_CHECKING([whether to build Python modules]) --PGAC_ARG_BOOL(with, python, no, [build Python modules (PL/Python)]) -+PGAC_ARG_OPTARG(with, python, [PYTHON_VERSION], [build Python modules (PL/Python)], -+ [], -+ [python_version=$withval]) - AC_MSG_RESULT([$with_python]) - AC_SUBST(with_python) - -@@ -1214,7 +1216,18 @@ fi - - if test "$with_python" = yes; then - PGAC_PATH_PYTHON -- PGAC_CHECK_PYTHON_EMBED_SETUP -+ python_majorversion=3 -+ PKG_CHECK_MODULES(PYTHON_EMBED, python-${python_version}-embed) -+ python_includespec="${PYTHON_EMBED_CFLAGS}" -+ python_libdir=[$(echo " ${PYTHON_EMBED_LIBS}" | sed -e 's/\( -L[^ ]*\).*/\1/' -e 's/^.* -L//')] -+ python_libspec="${PYTHON_EMBED_LIBS}" -+ python_additional_libs="" -+ AC_SUBST(python_majorversion) -+ AC_SUBST(python_version) -+ AC_SUBST(python_includespec) -+ AC_SUBST(python_libdir) -+ AC_SUBST(python_libspec) -+ AC_SUBST(python_additional_libs) - fi - - if test x"$cross_compiling" = x"yes" && test -z "$with_system_tzdata"; then diff --git a/vcpkg/ports/libpq/unix/single-linkage.patch b/vcpkg/ports/libpq/unix/single-linkage.patch deleted file mode 100644 index dd149c7d3..000000000 --- a/vcpkg/ports/libpq/unix/single-linkage.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/src/Makefile.shlib b/src/Makefile.shlib -index 551023c..16255d7 100644 ---- a/src/Makefile.shlib -+++ b/src/Makefile.shlib -@@ -260,10 +260,14 @@ endif - - .PHONY: all-lib all-static-lib all-shared-lib - -+ifndef LIBPQ_LIBRARY_TYPE - all-lib: all-shared-lib - ifdef soname - # no static library when building a dynamically loadable module - all-lib: all-static-lib -+endif -+else -+all-lib: all-$(LIBPQ_LIBRARY_TYPE)-lib - all-lib: lib$(NAME).pc - endif - -@@ -417,9 +421,13 @@ endif # PORTNAME == cygwin || PORTNAME == win32 - ## - - .PHONY: install-lib install-lib-static install-lib-shared installdirs-lib -+ifndef LIBPQ_LIBRARY_TYPE - install-lib: install-lib-shared - ifdef soname - install-lib: install-lib-static -+endif -+else -+install-lib: install-lib-$(LIBPQ_LIBRARY_TYPE) - install-lib: install-lib-pc - endif - -diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile -index 8abdb09..185461e 100644 ---- a/src/interfaces/libpq/Makefile -+++ b/src/interfaces/libpq/Makefile -@@ -115,6 +115,7 @@ backend_src = $(top_srcdir)/src/backend - # Also skip the test on platforms where libpq infrastructure may be provided - # by statically-linked libraries, as we can't expect them to honor this - # coding rule. -+ifeq ($(LIBPQ_LIBRARY_TYPE), shared) - libpq-refs-stamp: $(shlib) - ifneq ($(enable_coverage), yes) - ifeq (,$(filter aix solaris,$(PORTNAME))) -@@ -124,6 +125,10 @@ ifeq (,$(filter aix solaris,$(PORTNAME))) - endif - endif - touch $@ -+else -+.PHONY: libpq-refs-stamp -+libpq-refs-stamp: -+endif - - # Make dependencies on pg_config_paths.h visible in all builds. - fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h diff --git a/vcpkg/ports/libpq/usage b/vcpkg/ports/libpq/usage deleted file mode 100644 index 8dfcd2754..000000000 --- a/vcpkg/ports/libpq/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package libpq provides CMake integration: - - find_package(PostgreSQL REQUIRED) - target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL) diff --git a/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 6f1432570..000000000 --- a/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,72 +0,0 @@ -# Give the CMake module a little bit of help to find the debug libraries -find_library(PostgreSQL_LIBRARY_DEBUG -NAMES pq -PATHS - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" -NO_DEFAULT_PATH -) -_find_package(${ARGS}) -if(PostgreSQL_FOUND AND NOT "@VCPKG_TARGET_IS_WINDOWS@") - find_library(PostgreSQL_DL_LIBRARY NAMES dl) - if(PostgreSQL_DL_LIBRARY) - list(APPEND PostgreSQL_LIBRARIES "dl") - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") - endif() - endif() -endif() -if(PostgreSQL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") - include(SelectLibraryConfigurations) - foreach(LIB_ITEM libpgport libpgcommon pgport pgcommon) - find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE - NAMES ${LIB_ITEM} - PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH - ) - if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE) - set_property( - TARGET PostgreSQL::PostgreSQL - APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE}>" - ) - endif() - - find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG - NAMES ${LIB_ITEM} - PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH - ) - if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) - set_property( - TARGET PostgreSQL::PostgreSQL - APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG}>" - ) - endif() - - if (PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE OR PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) - select_library_configurations(PostgreSQL_${LIB_ITEM}) - list(APPEND PostgreSQL_LIBRARIES ${PostgreSQL_${LIB_ITEM}_LIBRARY}) - endif() - endforeach() - if(WIN32) - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Secur32.lib") - endif() - list(APPEND PostgreSQL_LIBRARIES Secur32.lib) - endif() - cmake_policy(PUSH) - cmake_policy(SET CMP0057 NEW) - set(Z_VCPKG_PORT_FEATURES "@FEATURES@") - if("openssl" IN_LIST Z_VCPKG_PORT_FEATURES) - find_package(OpenSSL REQUIRED) - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenSSL::SSL") - endif() - list(APPEND PostgreSQL_LIBRARIES OpenSSL::SSL) - endif() - if(WIN32) - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Wldap32.lib") - endif() - list(APPEND PostgreSQL_LIBRARIES Wldap32.lib) - endif() - unset(Z_VCPKG_PORT_FEATURES) - cmake_policy(POP) -endif() diff --git a/vcpkg/ports/libpq/vcpkg-libs.props.in b/vcpkg/ports/libpq/vcpkg-libs.props.in deleted file mode 100644 index cb7e5f92c..000000000 --- a/vcpkg/ports/libpq/vcpkg-libs.props.in +++ /dev/null @@ -1,31 +0,0 @@ - - - - @CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib; - @CURRENT_INSTALLED_DIR@/debug/lib/lz4d.lib - @CURRENT_INSTALLED_DIR@/debug/lib/intl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/debug/lib/charset.lib - @CURRENT_INSTALLED_DIR@/debug/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib - @CURRENT_INSTALLED_DIR@/debug/lib/python3@PYTHON_VERSION_MINOR@_d.lib - @CURRENT_INSTALLED_DIR@/debug/lib/tcl90g.lib - @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sg.lib - @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sgx.lib - @LIBXML2_LIBS_DEBUG@ - @LIBXSLT_LIBS_DEBUG@ - @CURRENT_INSTALLED_DIR@/debug/lib/zlibd.lib - @CURRENT_INSTALLED_DIR@/debug/lib/zstd.lib - - - @CURRENT_INSTALLED_DIR@/lib/icuin.lib;@CURRENT_INSTALLED_DIR@/lib/icuuc.lib;@CURRENT_INSTALLED_DIR@/lib/icudt.lib; - @CURRENT_INSTALLED_DIR@/lib/lz4.lib - @CURRENT_INSTALLED_DIR@/lib/intl.lib;@CURRENT_INSTALLED_DIR@/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/lib/charset.lib - @CURRENT_INSTALLED_DIR@/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib - @CURRENT_INSTALLED_DIR@/lib/python3@PYTHON_VERSION_MINOR@.lib - @CURRENT_INSTALLED_DIR@/lib/tcl90.lib - @CURRENT_INSTALLED_DIR@/lib/tcl90s.lib - @CURRENT_INSTALLED_DIR@/lib/tcl90sx.lib - @LIBXML2_LIBS_RELEASE@ - @LIBXSLT_LIBS_RELEASE@ - @CURRENT_INSTALLED_DIR@/lib/zlib.lib - @CURRENT_INSTALLED_DIR@/lib/zstd.lib - - diff --git a/vcpkg/ports/libpq/vcpkg.json b/vcpkg/ports/libpq/vcpkg.json deleted file mode 100644 index 772c1a995..000000000 --- a/vcpkg/ports/libpq/vcpkg.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "name": "libpq", - "version": "16.2", - "port-version": 1, - "description": "The official database access API of postgresql", - "homepage": "https://www.postgresql.org/", - "license": "PostgreSQL", - "supports": "!uwp", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "bonjour" - ], - "platform": "osx" - }, - { - "name": "vcpkg-cmake-get-vars", - "host": true - }, - { - "name": "vcpkg-pkgconfig-get-modules", - "host": true, - "platform": "windows & !mingw" - } - ], - "default-features": [ - "lz4", - "openssl", - "zlib" - ], - "features": { - "all": { - "description": "Build all supported features", - "dependencies": [ - { - "name": "libpq", - "features": [ - "client", - "icu", - "xml", - "xslt", - "zstd" - ] - }, - { - "name": "libpq", - "features": [ - "bonjour" - ], - "platform": "osx" - }, - { - "name": "libpq", - "features": [ - "nls" - ], - "platform": "!osx" - }, - { - "name": "libpq", - "features": [ - "readline" - ], - "platform": "!windows" - }, - { - "name": "libpq", - "features": [ - "python" - ], - "platform": "!android & !mingw" - }, - { - "name": "libpq", - "features": [ - "tcl" - ], - "platform": "windows & !mingw & !arm" - } - ] - }, - "bonjour": { - "description": "Build with Bonjour support", - "supports": "osx" - }, - "client": { - "description": "Build all client tools and libraries" - }, - "icu": { - "description": "Build with support for the ICU library", - "dependencies": [ - "icu" - ] - }, - "lz4": { - "description": "Use lz4", - "dependencies": [ - "lz4" - ] - }, - "nls": { - "description": "Native Language Support", - "supports": "!osx", - "dependencies": [ - "gettext", - { - "name": "gettext", - "host": true, - "features": [ - "tools" - ], - "platform": "!windows, mingw" - } - ] - }, - "openssl": { - "description": "support for encrypted client connections and random number generation on platforms that do not have \"/dev/urandom\" (except windows)", - "dependencies": [ - "openssl" - ] - }, - "python": { - "$supports": "!(windows & (static | mingw))", - "description": "build the PL/Python server programming language", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "client" - ] - }, - "python3" - ] - }, - "readline": { - "description": "Use readline", - "supports": "!windows, mingw", - "dependencies": [ - "readline" - ] - }, - "tcl": { - "$supports": "!(windows & (static | mingw))", - "description": "build the PL/Tcl procedural language", - "supports": "windows & !mingw", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "client" - ] - }, - "tcl" - ] - }, - "xml": { - "description": "Build with libxml", - "dependencies": [ - { - "name": "libxml2", - "default-features": false - } - ] - }, - "xslt": { - "description": "Build with libxslt", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "xml" - ] - }, - "libxslt" - ] - }, - "zlib": { - "description": "Use zlib", - "dependencies": [ - "zlib" - ] - }, - "zstd": { - "description": "Use zstd", - "dependencies": [ - "zstd" - ] - } - } -} diff --git a/vcpkg/ports/libpq/windows/macro-def.patch b/vcpkg/ports/libpq/windows/macro-def.patch deleted file mode 100644 index 1d16c1270..000000000 --- a/vcpkg/ports/libpq/windows/macro-def.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/src/include/common/checksum_helper.h b/src/include/common/checksum_helper.h -index cac7570ea..d0ca1243c 100644 ---- a/src/include/common/checksum_helper.h -+++ b/src/include/common/checksum_helper.h -@@ -33,7 +28,13 @@ - */ - typedef enum pg_checksum_type - { -+#pragma push_macro("CHECKSUM_TYPE_NONE") -+#ifdef CHECKSUM_TYPE_NONE -+// winioctl.h defines CHECKSUM_TYPE_NONE to 0 as a macro. -+#undef CHECKSUM_TYPE_NONE -+#endif - CHECKSUM_TYPE_NONE, -+#pragma pop_macro("CHECKSUM_TYPE_NONE") - CHECKSUM_TYPE_CRC32C, - CHECKSUM_TYPE_SHA224, - CHECKSUM_TYPE_SHA256, diff --git a/vcpkg/ports/libpq/windows/msbuild.patch b/vcpkg/ports/libpq/windows/msbuild.patch deleted file mode 100644 index e6c70ad09..000000000 --- a/vcpkg/ports/libpq/windows/msbuild.patch +++ /dev/null @@ -1,398 +0,0 @@ -diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm -index 05548d7..097db91 100644 ---- a/src/tools/msvc/Install.pm -+++ b/src/tools/msvc/Install.pm -@@ -53,6 +53,11 @@ sub Install - my $target = shift; - $insttype = shift; - $insttype = "all" unless ($insttype); -+ if ($insttype eq 'core') -+ { -+ $insttype = 'client'; -+ @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' ); -+ } - - # if called from vcregress, the config will be passed to us - # so no need to re-include these -@@ -89,7 +94,7 @@ sub Install - my $majorver = DetermineMajorVersion(); - print "Installing version $majorver for $conf in $target\n"; - -- my @client_dirs = ('bin', 'lib', 'share', 'symbols'); -+ my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq'); - my @all_dirs = ( - @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib', - 'share/extension', 'share/timezonesets', 'share/tsearch_data'); -@@ -117,11 +122,11 @@ sub Install - } - }, - @top_dir); -- CopySetOfFiles('config files', $sample_files, $target . '/share/'); -+ CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/'); - CopyFiles( - 'Import libraries', - $target . '/lib/', -- "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib", -+ "$conf\\", "libpgcommon\\libpgcommon.lib", - "libpgport\\libpgport.lib"); - CopyContribFiles($config, $target); - CopyIncludeFiles($target); -@@ -293,7 +298,16 @@ sub CopySolutionOutput - { - if ($1 == 1) - { -- push(@{ $install_list{'bin'} }, "exe"); -+ push(@{ $install_list{'tools\\libpq'} }, "exe"); -+ } -+ elsif ($1 == 2) -+ { -+ push(@{ $install_list{'bin'} }, "dll"); -+ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins -+ } -+ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet -+ { -+ push(@{ $install_list{'lib'} }, "lib"); - } - elsif ($1 == 2) - { -@@ -317,7 +331,16 @@ sub CopySolutionOutput - { - if ($1 eq 'Application') - { -- push(@{ $install_list{'bin'} }, "exe"); -+ push(@{ $install_list{'tools\\libpq'} }, "exe"); -+ } -+ elsif ($1 eq 'DynamicLibrary') -+ { -+ push(@{ $install_list{'bin'} }, "dll"); -+ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins -+ } -+ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet -+ { -+ push(@{ $install_list{'lib'} }, "lib"); - } - elsif ($1 eq 'DynamicLibrary') - { -@@ -350,7 +373,8 @@ sub CopySolutionOutput - || croak "Could not copy $pf.$ext\n"; - } - } -- lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb") -+ $1 ne 'DynamicLibrary' || -+ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb") - || croak "Could not copy $pf.pdb\n"; - print "."; - } -@@ -453,7 +477,7 @@ sub CopySubdirFiles - foreach my $f (split /\s+/, $flist) - { - lcopy("$subdir/$module/$f.control", -- "$target/share/extension/$f.control") -+ "$target/share/libpq/extension/$f.control") - || croak("Could not copy file $f.control in contrib $module"); - print '.'; - } -@@ -471,7 +495,7 @@ sub CopySubdirFiles - foreach my $f (split /\s+/, $flist) - { - lcopy("$subdir/$module/$f", -- "$target/share/$moduledir/" . basename($f)) -+ "$target/share/libpq/$moduledir/" . basename($f)) - || croak("Could not copy file $f in contrib $module"); - print '.'; - } -@@ -486,7 +510,7 @@ sub CopySubdirFiles - foreach my $f (split /\s+/, $flist) - { - lcopy("$subdir/$module/$f", -- "$target/share/tsearch_data/" . basename($f)) -+ "$target/share/libpq/tsearch_data/" . basename($f)) - || croak("Could not copy file $f in $subdir $module"); - print '.'; - } -@@ -549,7 +573,7 @@ sub CopySubdirFiles - if ($module eq 'spi'); - foreach my $f (split /\s+/, $flist) - { -- lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f") -+ lcopy("$subdir/$module/$f", "$target/share/libpq/doc/$moduledir/$f") - || croak("Could not copy file $f in contrib $module"); - print '.'; - } -@@ -675,7 +699,7 @@ sub GenerateNLSFiles - my $majorver = shift; - - print "Installing NLS files..."; -- EnsureDirectories($target, "share/locale"); -+ EnsureDirectories($target, "share/libpq/locale"); - my @flist; - File::Find::find( - { -@@ -697,12 +721,12 @@ sub GenerateNLSFiles - next unless /([^\/]+)\.po/; - $lang = $1; - -- EnsureDirectories($target, "share/locale/$lang", -- "share/locale/$lang/LC_MESSAGES"); -+ EnsureDirectories($target, "share/libpq/locale/$lang", -+ "share/libpq/locale/$lang/LC_MESSAGES"); - my @args = ( -- "$nlspath\\bin\\msgfmt", -+ "msgfmt", - '-o', -- "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", -+ "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", - $_); - system(@args) && croak("Could not run msgfmt on $dir\\$_"); - print "."; -diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm -index 62fec1f..ecb1b86 100644 ---- a/src/tools/msvc/MSBuildProject.pm -+++ b/src/tools/msvc/MSBuildProject.pm -@@ -80,14 +80,14 @@ EOF - print $f < - EOF -- -+ my $maybe_dll = $self->{solution}->{options}->{VCPKG_CRT_LINKAGE} eq 'dynamic' ? "DLL" : ''; - $self->WriteItemDefinitionGroup( - $f, 'Debug', - { - defs => "_DEBUG;DEBUG=1", - opt => 'Disabled', - strpool => 'false', -- runtime => 'MultiThreadedDebugDLL' -+ runtime => 'MultiThreadedDebug' . $maybe_dll - }); - $self->WriteItemDefinitionGroup( - $f, -@@ -96,7 +96,7 @@ EOF - defs => "", - opt => 'Full', - strpool => 'true', -- runtime => 'MultiThreadedDLL' -+ runtime => 'MultiThreaded' . $maybe_dll - }); - return; - } -@@ -266,6 +266,8 @@ sub WriteConfigurationPropertyGroup - ($self->{type} eq "exe") - ? 'Application' - : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary'); -+ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') -+ { $cfgtype =~ s/DynamicLibrary/StaticLibrary/; } - - print $f < -@@ -311,7 +313,9 @@ sub WriteItemDefinitionGroup - my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';'); - - my $targetmachine = -- $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64'; -+ 'Machine' . uc($self->{platform}); -+ $targetmachine =~ s/WIN32/X86/; -+ my $randomizebase = ($self->{platform} =~ /^ARM/) ? 'true' : 'false'; - my $arch = $self->{platform} eq 'Win32' ? 'x86' : 'x86_64'; - - my $includes = join ';', @{ $self->{includes} }, ""; -diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm -index 9e05eb9..8ac0a5d 100644 ---- a/src/tools/msvc/Mkvcbuild.pm -+++ b/src/tools/msvc/Mkvcbuild.pm -@@ -125,8 +125,10 @@ sub mkvcbuild - - if ($vsVersion >= '9.00') - { -+ if ($solution->{platform} !~ /^ARM/) { - push(@pgportfiles, 'pg_crc32c_sse42_choose.c'); - push(@pgportfiles, 'pg_crc32c_sse42.c'); -+ } - push(@pgportfiles, 'pg_crc32c_sb8.c'); - } - else -@@ -208,6 +210,7 @@ sub mkvcbuild - 'syncrep_gram.y'); - $postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l', - 'jsonpath_gram.y'); -+ ($config->{VCPKG_LIBRARY_LINKAGE} eq 'dynamic') && - $postgres->AddDefine('BUILDING_DLL'); - $postgres->AddLibrary('secur32.lib'); - $postgres->AddLibrary('ws2_32.lib'); -@@ -252,12 +255,13 @@ sub mkvcbuild - $pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include'); - $pltcl->AddReference($postgres); - -- for my $tclver (qw(86t 86 85 84)) -+ my $v = $solution->{options}->{tcl_version}; -+ for my $tclver ( ("${v}","${v}s","${v}sx") ) - { - my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib"; - if (-e $tcllib) - { -- $pltcl->AddLibrary($tcllib); -+ $pltcl->AddLibrary("\$(VcpkgTcl${tclver}Libs)"); - $found = 1; - last; - } -@@ -512,8 +516,7 @@ sub mkvcbuild - . "print(str(sys.version_info[0])+str(sys.version_info[1]))"; - my $prefixcmd = - qq("$solution->{options}->{python}\\python" -c "$pythonprog"); -- my $pyout = `$prefixcmd`; -- die "Could not query for python version!\n" if $?; -+ my $pyout = "$solution->{options}->{python}\n$solution->{options}->{python_version}"; - my ($pyprefix, $pyver) = split(/\r?\n/, $pyout); - - # Sometimes (always?) if python is not present, the execution -@@ -529,8 +532,8 @@ sub mkvcbuild - - my $plpython = $solution->AddProject('plpython' . $pymajorver, - 'dll', 'PLs', 'src/pl/plpython'); -- $plpython->AddIncludeDir($pyprefix . '/include'); -- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib"); -+ $plpython->AddIncludeDir($pyprefix . "/include/python$pyver"); -+ $plpython->AddLibrary('$(VcpkgPythonLibs)'); - $plpython->AddReference($postgres); - - # Add transform modules dependent on plpython -diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm -index 0507ad0..48caab9 100644 ---- a/src/tools/msvc/Project.pm -+++ b/src/tools/msvc/Project.pm -@@ -167,6 +167,11 @@ sub AddReference - } - $self->AddLibrary( - "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib"); -+ -+ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') -+ { -+ map { $self->AddLibrary($_) } @{ $ref->{libraries} }; -+ } - } - return; - } -diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm -index b6d31c3..27d89fc 100644 ---- a/src/tools/msvc/Solution.pm -+++ b/src/tools/msvc/Solution.pm -@@ -63,6 +63,11 @@ sub DeterminePlatform - my $self = shift; - - if ($^O eq "MSWin32") -+ { -+ $self->{platform} = uc($self->{options}->{VCPKG_TARGET_ARCHITECTURE}); -+ $self->{platform} =~ s/^X86$/Win32/; -+ } -+ elsif (0) - { - # Examine CL help output to determine if we are in 32 or 64-bit mode. - my $output = `cl /help 2>&1`; -@@ -124,6 +129,9 @@ sub copyFile - sub GetOpenSSLVersion - { - my $self = shift; -+ if ($self->{options}->{openssl_version} =~ /(\d+)\.(\d+)\.(\d+)/m) { -+ return ($1, $2, $3); -+ } - - # Attempt to get OpenSSL version and location. This assumes that - # openssl.exe is in the specified directory. -@@ -148,7 +156,7 @@ sub GetOpenSSLVersion - sub GenerateFiles - { - my $self = shift; -- my $bits = $self->{platform} eq 'Win32' ? 32 : 64; -+ my $bits = $self->{platform} =~ /64/ ? 64 : 32; - my $ac_init_found = 0; - my $package_name; - my $package_version; -@@ -440,7 +448,7 @@ sub GenerateFiles - USE_PAM => undef, - USE_SLICING_BY_8_CRC32C => undef, - USE_SSE42_CRC32C => undef, -- USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1, -+ USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => $self->{platform} =~ /^ARM/ ? undef : 1, - USE_SYSTEMD => undef, - USE_SYSV_SEMAPHORES => undef, - USE_SYSV_SHARED_MEMORY => undef, -@@ -725,14 +733,14 @@ sub GenerateFiles - || confess "Could not open pg_config_paths.h"; - print $o <{options}->{zlib}) - { - $proj->AddIncludeDir($self->{options}->{zlib} . '\include'); -- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib'); -+ $proj->AddLibrary('$(VcpkgZlibLibs)'); - } - if ($self->{options}->{openssl}) - { - $proj->AddIncludeDir($self->{options}->{openssl} . '\include'); -+ $proj->AddLibrary('$(VcpkgOpensslLibs)'); -+ } -+ elsif (0) -+ { - my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); - - # Starting at version 1.1.0 the OpenSSL installers have -@@ -1032,7 +1044,7 @@ sub AddProject - if ($self->{options}->{nls}) - { - $proj->AddIncludeDir($self->{options}->{nls} . '\include'); -- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib'); -+ $proj->AddLibrary('$(VcpkgNlsLibs)'); - } - if ($self->{options}->{gss}) - { -@@ -1065,6 +1077,10 @@ sub AddProject - if ($self->{options}->{icu}) - { - $proj->AddIncludeDir($self->{options}->{icu} . '\include'); -+ $proj->AddLibrary('$(VcpkgIcuLibs)'); -+ } -+ elsif (0) -+ { - if ($self->{platform} eq 'Win32') - { - $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); -@@ -1082,22 +1098,22 @@ sub AddProject - { - $proj->AddIncludeDir($self->{options}->{xml} . '\include'); - $proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2'); -- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); -+ $proj->AddLibrary('$(VcpkgXmlLibs)'); - } - if ($self->{options}->{xslt}) - { - $proj->AddIncludeDir($self->{options}->{xslt} . '\include'); -- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); -+ $proj->AddLibrary('$(VcpkgXsltLibs)'); - } - if ($self->{options}->{lz4}) - { - $proj->AddIncludeDir($self->{options}->{lz4} . '\include'); -- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib'); -+ $proj->AddLibrary('$(VcpkgLz4Libs)'); - } - if ($self->{options}->{zstd}) - { - $proj->AddIncludeDir($self->{options}->{zstd} . '\include'); -- $proj->AddLibrary($self->{options}->{zstd} . '\lib\libzstd.lib'); -+ $proj->AddLibrary('$(VcpkgZstdLibs)'); - } - if ($self->{options}->{uuid}) - { diff --git a/vcpkg/ports/libpq/windows/spin_delay.patch b/vcpkg/ports/libpq/windows/spin_delay.patch deleted file mode 100644 index 163e8e6ef..000000000 --- a/vcpkg/ports/libpq/windows/spin_delay.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h -index 4d3ffc7..658b1a1 100644 ---- a/src/include/storage/s_lock.h -+++ b/src/include/storage/s_lock.h -@@ -953,12 +953,18 @@ typedef LONG slock_t; - /* If using Visual C++ on Win64, inline assembly is unavailable. - * Use a _mm_pause intrinsic instead of rep nop. - */ --#if defined(_WIN64) -+#if defined(_M_X64) && !defined(_M_ARM64EC) - static __forceinline void - spin_delay(void) - { - _mm_pause(); - } -+#elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) -+static __forceinline void -+spin_delay(void) -+{ -+ __yield(); -+} - #else - static __forceinline void - spin_delay(void) diff --git a/vcpkg/ports/libpq/windows/win_bison_flex.patch b/vcpkg/ports/libpq/windows/win_bison_flex.patch deleted file mode 100644 index fc8230193..000000000 --- a/vcpkg/ports/libpq/windows/win_bison_flex.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl -index 25df669..373bedd 100644 ---- a/src/tools/msvc/pgbison.pl -+++ b/src/tools/msvc/pgbison.pl -@@ -13,7 +13,7 @@ use File::Basename; - - do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; - --my ($bisonver) = `bison -V`; # grab first line -+my ($bisonver) = `win_bison -V`; # grab first line - $bisonver = (split(/\s+/, $bisonver))[3]; # grab version number - - unless ($bisonver ge '2.3') -@@ -51,5 +51,5 @@ my $headerflag = ($make =~ /^$basetarg:\s+BISONFLAGS\b.*-d/m ? '-d' : ''); - - my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : ""; - --system("bison $nodep $headerflag $input -o $output"); -+system("win_bison $nodep $headerflag $input -o $output"); - exit $? >> 8; -diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl -index c308a08..0807ce7 100644 ---- a/src/tools/msvc/pgflex.pl -+++ b/src/tools/msvc/pgflex.pl -@@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning'; - - do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; - --my ($flexver) = `flex -V`; # grab first line -+my ($flexver) = `win_flex -V`; # grab first line - $flexver = (split(/\s+/, $flexver))[1]; - $flexver =~ s/[^0-9.]//g; - my @verparts = split(/\./, $flexver); -@@ -52,7 +52,7 @@ close($mf); - my $basetarg = basename($output); - my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : ''); - --system("flex $flexflags -o$output $input"); -+system("win_flex $flexflags -o$output $input"); - if ($? == 0) - { - diff --git a/vcpkg/ports/libtasn1/portfile.cmake b/vcpkg/ports/libtasn1/portfile.cmake deleted file mode 100644 index ce464c769..000000000 --- a/vcpkg/ports/libtasn1/portfile.cmake +++ /dev/null @@ -1,31 +0,0 @@ -vcpkg_download_distfile(ARCHIVE - https://ftp.gnu.org/pub/gnu/libtasn1/libtasn1-${VERSION_libtasn1}.tar.gz - - URLS "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" - "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" - FILENAME "libtasn1-${VERSION}.tar.gz" - SHA512 287f5eddfb5e21762d9f14d11997e56b953b980b2b03a97ed4cd6d37909bda1ed7d2cdff9da5d270a21d863ab7e54be6b85c05f1075ac5d8f0198997cf335ef4 -) -vcpkg_extract_source_archive(SOURCE_PATH - ARCHIVE "${ARCHIVE}" - SOURCE_BASE "v${VERSION}" -) - -string(APPEND VCPKG_C_FLAGS " -Wno-implicit-function-declaration") -string(APPEND VCPKG_CXX_FLAGS " -Wno-implicit-function-declaration") - -vcpkg_list(SET OPTIONS) -vcpkg_configure_make( - SOURCE_PATH "${SOURCE_PATH}" - DETERMINE_BUILD_TRIPLET - USE_WRAPPERS - OPTIONS - --enable-extra-encodings - --disable-doc - --disable-valgrind-tests - --disable-gcc-warnings - --disable-silent-rules - ${OPTIONS} -) -vcpkg_install_make() - diff --git a/vcpkg/ports/libtasn1/vcpkg.json b/vcpkg/ports/libtasn1/vcpkg.json deleted file mode 100644 index 7950a5cc2..000000000 --- a/vcpkg/ports/libtasn1/vcpkg.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "libtasn1", - "version": "4.19.0", - "port-version": 0, - "description": "GNU Abstract Syntax Notation One (ASN.1) and Distinguished Encoding Rules (DER) manipulation", - "homepage": "https://www.gnu.org/software/libtasn1/", - "license": null -} diff --git a/vcpkg/ports/qca-qt6/vcpkg.json b/vcpkg/ports/qca-qt6/vcpkg.json deleted file mode 100644 index ecb7027ee..000000000 --- a/vcpkg/ports/qca-qt6/vcpkg.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "qca-qt6", - "version": "2.3.9", - "description": "Qt Cryptographic Architecture (QCA).", - "homepage": "https://cgit.kde.org/qca.git/", - "dependencies": [ - "qt6", - "openssl", - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch b/vcpkg/ports/qca/0001-fix-path-for-vcpkg.patch similarity index 100% rename from vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch rename to vcpkg/ports/qca/0001-fix-path-for-vcpkg.patch diff --git a/vcpkg/ports/qca-qt6/0002-fix-build-error.patch b/vcpkg/ports/qca/0002-fix-build-error.patch similarity index 100% rename from vcpkg/ports/qca-qt6/0002-fix-build-error.patch rename to vcpkg/ports/qca/0002-fix-build-error.patch diff --git a/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch b/vcpkg/ports/qca/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch similarity index 100% rename from vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch rename to vcpkg/ports/qca/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch diff --git a/vcpkg/ports/qca-qt6/connect_fix.patch b/vcpkg/ports/qca/connect_fix.patch similarity index 100% rename from vcpkg/ports/qca-qt6/connect_fix.patch rename to vcpkg/ports/qca/connect_fix.patch diff --git a/vcpkg/ports/qca-qt6/ios.patch b/vcpkg/ports/qca/ios.patch similarity index 100% rename from vcpkg/ports/qca-qt6/ios.patch rename to vcpkg/ports/qca/ios.patch diff --git a/vcpkg/ports/qca-qt6/mk-ca-bundle.pl b/vcpkg/ports/qca/mk-ca-bundle.pl similarity index 100% rename from vcpkg/ports/qca-qt6/mk-ca-bundle.pl rename to vcpkg/ports/qca/mk-ca-bundle.pl diff --git a/vcpkg/ports/qca-qt6/portfile.cmake b/vcpkg/ports/qca/portfile.cmake similarity index 84% rename from vcpkg/ports/qca-qt6/portfile.cmake rename to vcpkg/ports/qca/portfile.cmake index 74ab67e3a..3f695104e 100644 --- a/vcpkg/ports/qca-qt6/portfile.cmake +++ b/vcpkg/ports/qca/portfile.cmake @@ -17,10 +17,10 @@ vcpkg_from_github( 0001-fix-path-for-vcpkg.patch 0002-fix-build-error.patch 0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch - ios.patch - connect_fix.patch ) +vcpkg_find_acquire_program(PKGCONFIG) + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/Qca) set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/bin/Qca) @@ -35,6 +35,7 @@ endif() # So we do it here: message(STATUS "Importing certstore") file(REMOVE "${SOURCE_PATH}/certs/rootcerts.pem") + # Using file(DOWNLOAD) to use https file(DOWNLOAD https://raw.githubusercontent.com/mozilla/gecko-dev/master/security/nss/lib/ckfw/builtins/certdata.txt "${CURRENT_BUILDTREES_DIR}/cert/certdata.txt" @@ -47,26 +48,30 @@ vcpkg_execute_required_process( ) message(STATUS "Importing certstore done") -if(VCPKG_CROSSCOMPILING) - list(APPEND QCA_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) - list(APPEND QCA_OPTIONS -DQT_ADDITIONAL_PACKAGES_PREFIX_PATH=${CURRENT_HOST_INSTALLED_DIR}) - list(APPEND QCA_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) +set(PLUGINS logger softstore wincrypto) +if("botan" IN_LIST FEATURES) + list(APPEND PLUGINS botan) +endif() +if ("gnupg" IN_LIST FEATURES) + list(APPEND PLUGINS gnupg) +endif() +if ("ossl" IN_LIST FEATURES) + list(APPEND PLUGINS ossl) endif() - -list(APPEND QCA_OPTIONS -DWITH_gnupg_PLUGIN=no) + # Configure and build vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS - -DBUILD_WITH_QT6=ON -DUSE_RELATIVE_PATHS=ON + "-DBUILD_PLUGINS=${PLUGINS}" -DBUILD_TESTS=OFF -DBUILD_TOOLS=OFF + -DBUILD_WITH_QT6=ON -DQCA_SUFFIX=OFF -DQCA_FEATURE_INSTALL_DIR=share/qca/mkspecs/features -DOSX_FRAMEWORK=OFF - -DQT6=ON - ${QCA_OPTIONS} + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" OPTIONS_DEBUG -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_DEBUG} OPTIONS_RELEASE @@ -91,5 +96,7 @@ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" ) +vcpkg_fixup_pkgconfig() + # Handle copyright -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/qca/vcpkg.json b/vcpkg/ports/qca/vcpkg.json new file mode 100644 index 000000000..fb13e41ea --- /dev/null +++ b/vcpkg/ports/qca/vcpkg.json @@ -0,0 +1,44 @@ +{ + "name": "qca", + "version": "2.3.9", + "description": "Qt Cryptographic Architecture (QCA).", + "homepage": "https://userbase.kde.org/QCA", + "dependencies": [ + { + "name": "qt5compat", + "default-features": false + }, + { + "name": "qtbase", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "botan" + ], + "features": { + "botan": { + "description": "Build with botan", + "dependencies": [ + "botan" + ] + }, + "gnupg": { + "description": "Build with gnupg" + }, + "ossl": { + "description": "Build with openssl", + "dependencies": [ + "openssl" + ] + } + } +} diff --git a/vcpkg/ports/qgis-qt6/vcpkg.json b/vcpkg/ports/qgis-qt6/vcpkg.json deleted file mode 100644 index f573e12e5..000000000 --- a/vcpkg/ports/qgis-qt6/vcpkg.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "qgis-qt6", - "version": "3.40.4", - "port-version": 0, - "homepage": "https://qgis.org", - "description": "QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)", - "dependencies": [ - "expat", - "libxml2", - "libzip", - "zlib", - "libspatialindex", - "libspatialite", - "gdal", - "exiv2", - "libpq", - "protobuf", - "proj", - "geos", - "qt6", - "qca-qt6", - "qtkeychain-qt6", - { - "name": "libtasn1", - "platform": "osx | ios" - }, - { - "name": "qt6-poly2tri", - "platform": "ios" - }, - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/qgis-qt6/applocal.ps1 b/vcpkg/ports/qgis/applocal.ps1 similarity index 100% rename from vcpkg/ports/qgis-qt6/applocal.ps1 rename to vcpkg/ports/qgis/applocal.ps1 diff --git a/vcpkg/ports/qgis-qt6/cmakelists.patch b/vcpkg/ports/qgis/cmakelists.patch similarity index 100% rename from vcpkg/ports/qgis-qt6/cmakelists.patch rename to vcpkg/ports/qgis/cmakelists.patch diff --git a/vcpkg/ports/qgis-qt6/crssync.patch b/vcpkg/ports/qgis/crssync.patch similarity index 100% rename from vcpkg/ports/qgis-qt6/crssync.patch rename to vcpkg/ports/qgis/crssync.patch diff --git a/vcpkg/ports/qgis-qt6/libxml2.patch b/vcpkg/ports/qgis/libxml2.patch similarity index 100% rename from vcpkg/ports/qgis-qt6/libxml2.patch rename to vcpkg/ports/qgis/libxml2.patch diff --git a/vcpkg/ports/qgis-qt6/portfile.cmake b/vcpkg/ports/qgis/portfile.cmake similarity index 100% rename from vcpkg/ports/qgis-qt6/portfile.cmake rename to vcpkg/ports/qgis/portfile.cmake diff --git a/vcpkg/ports/qgis/vcpkg.json b/vcpkg/ports/qgis/vcpkg.json new file mode 100644 index 000000000..ae912bdc2 --- /dev/null +++ b/vcpkg/ports/qgis/vcpkg.json @@ -0,0 +1,118 @@ +{ + "name": "qgis", + "version": "3.40.4", + "port-version": 0, + "homepage": "https://qgis.org", + "description": "QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)", + "dependencies": [ + "expat", + "libxml2", + "libzip", + "zlib", + "libspatialindex", + "libspatialite", + "gdal", + { + "name": "exiv2", + "features": [ + "xmp" + ] + }, + "libpq", + "protobuf", + "proj", + "geos", + "jhasse-poly2tri", + { + "name": "qca", + "default-features": false, + "features": [ + "ossl" + ] + }, + "qtkeychain-qt6", + { + "name": "libtasn1", + "platform": "osx | ios" + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "brotli", + "concurrent", + "doubleconversion", + { + "name": "egl", + "platform": "linux" + }, + { + "name": "egl", + "platform": "android" + }, + { + "name": "fontconfig", + "platform": "linux" + }, + "freetype", + { + "name": "gles2", + "platform": "android" + }, + { + "name": "gles3", + "platform": "ios" + }, + "gui", + "harfbuzz", + "jpeg", + "network", + "opengl", + { + "name": "openssl", + "platform": "!ios" + }, + "pcre2", + "png", + { + "name": "securetransport", + "platform": "ios" + }, + "sql", + "sql-sqlite", + "testlib", + "thread", + "widgets", + { + "name": "xcb", + "platform": "linux" + }, + { + "name": "xcb-xlib", + "platform": "linux" + }, + { + "name": "xrender", + "platform": "linux" + }, + "zstd" + ] + }, + "qtkeychain-qt6", + "qtlocation", + "qtsvg", + { + "name": "qttools", + "host": true + }, + "zlib", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qt6-poly2tri/portfile.cmake b/vcpkg/ports/qt6-poly2tri/portfile.cmake deleted file mode 100644 index edbaed6fa..000000000 --- a/vcpkg/ports/qt6-poly2tri/portfile.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# on iOS (static) Qt ships Poly2Tri ( but without headers :( ) -if(NOT VCPKG_TARGET_IS_IOS) - message(FATAL_ERROR "qt poly2tri only needed on iOS") -else() - vcpkg_download_distfile(ARCHIVE - URLS "https://download.qt.io/archive/qt/6.8/${VERSION}/submodules/qtpositioning-everywhere-src-${VERSION}.zip" - FILENAME "qtpositioning-${VERSION}.zip" - SHA512 cd216c94ef2d35e48bd9b8d7cf3d5c71f8afba379044601737e062f0de88c10a5c931a63b0f05436355ab464918400f7704908ec9c46c79eee74d790e678ae47 - ) - - vcpkg_extract_source_archive( - SOURCE_PATH - ARCHIVE "${ARCHIVE}" - SOURCE_BASE "v${VERSION}" - ) - - file(INSTALL ${SOURCE_PATH}/src/3rdparty/poly2tri DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h") -endif() diff --git a/vcpkg/ports/qt6-poly2tri/vcpkg.json b/vcpkg/ports/qt6-poly2tri/vcpkg.json deleted file mode 100644 index ee1436085..000000000 --- a/vcpkg/ports/qt6-poly2tri/vcpkg.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "qt6-poly2tri", - "version": "6.8.3", - "port-version": 0, - "description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", - "homepage": "https://www.qt.io/", - "license": null, - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/qt6/copyright b/vcpkg/ports/qt6/copyright deleted file mode 100644 index 6bf924cd1..000000000 --- a/vcpkg/ports/qt6/copyright +++ /dev/null @@ -1,175 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - - The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. - Contact: http://www.qt.io/licensing/ - - You may use, distribute and copy the Qt Toolkit under the terms of - GNU Lesser General Public License version 3, which is displayed below. - This license makes reference to the version 3 of the GNU General - Public License, which you can find in the LICENSE.GPLv3 file. - -------------------------------------------------------------------------- - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright © 2007 Free Software Foundation, Inc. -Everyone is permitted to copy and distribute verbatim copies of this -licensedocument, but changing it is not allowed. - -This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - -0. Additional Definitions. - - As used herein, “this License” refers to version 3 of the GNU Lesser -General Public License, and the “GNU GPL” refers to version 3 of the -GNU General Public License. - - “The Library” refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An “Application” is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A “Combined Work” is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the “Linked -Version”. - - The “Minimal Corresponding Source” for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The “Corresponding Application Code” for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - -1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - -2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort - to ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - -3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this - license document. - -4. Combined Works. - - You may convey a Combined Work under terms of your choice that, taken -together, effectively do not restrict modification of the portions of -the Library contained in the Combined Work and reverse engineering for -debugging such modifications, if you also do each of the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this - license document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of - this License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with - the Library. A suitable mechanism is one that (a) uses at run - time a copy of the Library already present on the user's - computer system, and (b) will operate properly with a modified - version of the Library that is interface-compatible with the - Linked Version. - - e) Provide Installation Information, but only if you would - otherwise be required to provide such information under section 6 - of the GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the Application - with a modified version of the Linked Version. (If you use option - 4d0, the Installation Information must accompany the Minimal - Corresponding Source and Corresponding Application Code. If you - use option 4d1, you must provide the Installation Information in - the manner specified by section 6 of the GNU GPL for conveying - Corresponding Source.) - -5. Combined Libraries. - - You may place library facilities that are a work based on the Library -side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities, conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of - it is a work based on the Library, and explaining where to find - the accompanying uncombined form of the same work. - -6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -as you received it specifies that a certain numbered version of the -GNU Lesser General Public License “or any later version” applies to -it, you have the option of following the terms and conditions either -of that published version or of any later version published by the -Free Software Foundation. If the Library as you received it does not -specify a version number of the GNU Lesser General Public License, -you may choose any version of the GNU Lesser General Public License -ever published by the Free Software Foundation. - -If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the Library. - diff --git a/vcpkg/ports/qt6/portfile.cmake b/vcpkg/ports/qt6/portfile.cmake deleted file mode 100644 index 6d9df585f..000000000 --- a/vcpkg/ports/qt6/portfile.cmake +++ /dev/null @@ -1,3 +0,0 @@ -SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) - -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) diff --git a/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 7f30acc45..000000000 --- a/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,196 +0,0 @@ -set(QT_MODULES - Qt6 - Qt6Designer - Qt63DAnimation - Qt63DCore - Qt63DExtras - Qt63DInput - Qt63DLogic - Qt63DQuick - Qt63DQuickAnimation - Qt63DQuickExtras - Qt63DQuickInput - Qt63DQuickRender - Qt63DQuickScene2D - Qt63DRender - Qt6AccessibilitySupport - Qt6AttributionsScannerTools - Qt6Bluetooth - Qt6Bootstrap - Qt6BundledPcre2 - Qt6BundledLibpng - Qt6BundledHarfbuzz - Qt6BundledFreetype - Qt6BuildInternals - Qt6Bundled_Clip2Tri - Qt6BundledFreetype - Qt6BundledGlslang_Glslang - Qt6BundledGlslang_Oglcompiler - Qt6BundledGlslang_Osdependent - Qt6BundledGlslang_Spirv - Qt6BundledHarfbuzz - Qt6BundledLibjpeg - Qt6BundledLibpng - Qt6BundledPcre2 - Qt6BundledResonanceAudio - Qt6BundledSpirv_Cross - Qt6Bundled_Clip2Tri - Qt6Bundled_Clipper - Qt6Bundled_Poly2Tri - Qt6BundledPcre2 - Qt6HostInfo - Qt6Linguist - Qt6QmlDomPrivate - Qt6QmlIntegration - Qt6Tools - Qt6UiPlugin - Qt6Bluetooth - Qt6BundledLibjpeg - Qt6BundledLibpng - Qt6Bundled_Clipper - Qt6Charts - Qt6ChartsQml - Qt6ClipboardSupport - Qt6Concurrent - Qt6Core - Qt6Core5Compat - Qt6DeviceDiscoverySupport - Qt6DocTools - Qt6EntryPointPrivate - Qt6EdidSupport - Qt6EglSupport - Qt6EntryPointPrivate - Qt6EventDispatcherSupport - Qt6FbSupport - Qt6FFmpegMediaPluginImplPrivate - Qt6FontDatabaseSupport - Qt6Gamepad - Qt6Gui - Qt6GraphicsSupport - Qt6Help - Qt6HostInfo - Qt6InputSupport - Qt6LabsAnimation - Qt6LabsFolderListModel - Qt6LabsQmlModels - Qt6LabsSettings - Qt6LabsSharedImage - Qt6LabsWavefrontMesh - Qt6Location - Qt6MacExtras - Qt6Multimedia - Qt6MultimediaQuick - Qt6MultimediaQuickPrivate - Qt6MultimediaWidgets - Qt6Network - Qt6Nfc - Qt6OpenGL - Qt6OpenGLExtensions - Qt6OpenGLWidgets - Qt6PacketProtocol - Qt6PacketProtocolPrivate - Qt6PlatformCompositorSupport - Qt6PngPrivate - Qt6Positioning - Qt6PositioningQuick - Qt6PrintSupport - Qt6Qml - Qt6QmlCompilerPrivate - Qt6QmlCore - Qt6QmlDebugPrivate - Qt6QmlDomPrivate - Qt6QmlIntegration - Qt6QmlLocalStorage - Qt6QmlMeta - Qt6QmlModels - Qt6QmlWorkerScript - Qt6QmlXmlListModel - Qt6Quick - Qt6Quick3DUtils - Qt6QuickControls2 - Qt6QuickControls2Impl - Qt6QuickControls2ImplPrivate - Qt6QuickDialogs2 - Qt6QuickDialogs2QuickImpl - Qt6QuickDialogs2Utils - Qt6QuickEffectsPrivate - Qt6QuickLayouts - Qt6QuickParticlesPrivate - Qt6QuickShapesPrivate - Qt6QuickTemplates2 - Qt6QuickTest - Qt6QuickWidgets - Qt6RemoteObjects - Qt6RepParser - Qt6Scxml - Qt6Sensors - Qt6SensorsQuick - Qt6SerialPort - Qt6ServiceSupport - Qt6Sql - Qt6Svg - Qt6SvgWidgets - Qt6Test - Qt6TextToSpeech - Qt6ThemeSupport - Qt6UiPlugin - Qt6UiTools - Qt6VulkanSupport - Qt6WebChannel - Qt6WebSockets - Qt6WebView - Qt6WebViewQuick - Qt6Widgets - Qt6Xml - Qt6XmlPatterns - Qt6Zlib - Qt6BundledPcre2 -) - -set(Qt6_ROOT_DIR $ENV{Qt6_DIR}/lib/cmake) - -if(EXISTS ${Qt6_ROOT_DIR}) - MESSAGE(STATUS "Using Qt6 CMAKE dir: ${Qt6_ROOT_DIR}") -else() - MESSAGE(FATAL_ERROR "Qt6 installation not found: ${Qt6_ROOT_DIR}; Do you have Qt6_DIR environment variable set?") -endif() - -foreach(MOD ${QT_MODULES}) - if(EXISTS ${Qt6_ROOT_DIR}/${MOD}) - set(${MOD}_DIR ${Qt6_ROOT_DIR}/${MOD}) - MESSAGE(STATUS "Qt6 ${MOD} found: ${Qt6_ROOT_DIR}/${MOD}") - else() - # Not all modules are on all platforms - MESSAGE(STATUS "Skipped -- Qt6 ${MOD}: ${Qt6_ROOT_DIR}/${MOD}") - endif() -endforeach() - -### HOST -# These modules are not in iOS/Android Qt, but they are needed for Qt -set(QT_HOST_MODULES - Qt6CoreTools - Qt6LinguistTools - Qt6WidgetsTools - Qt6GuiTools - Qt6QmlTools - Qt6QmlImportScanner -) - -set(Qt6_ROOT_HOST_DIR $ENV{QT_HOST_PATH}/lib/cmake) -if(EXISTS ${Qt6_ROOT_HOST_DIR}) - MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable QT_HOST_PATH ${Qt6_ROOT_HOST_DIR}") -else() - MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable Qt6_DIR; for iOS or Android you need to set QT_HOST_PATH environment variable instead.") - set(Qt6_ROOT_HOST_DIR ${Qt6_ROOT_DIR}) -endif() - -foreach(MOD ${QT_HOST_MODULES}) - if(EXISTS ${Qt6_ROOT_HOST_DIR}/${MOD}) - set(${MOD}_DIR ${Qt6_ROOT_HOST_DIR}/${MOD}) - MESSAGE(STATUS "Qt6 HOST ${MOD} found: ${Qt6_ROOT_HOST_DIR}/${MOD}") - else() - MESSAGE(STATUS "Skipped -- Qt6 HOST ${MOD} not found: ${Qt6_ROOT_HOST_DIR}/${MOD}") - endif() -endforeach() - -_find_package(${ARGS}) \ No newline at end of file diff --git a/vcpkg/ports/qt6/vcpkg.json b/vcpkg/ports/qt6/vcpkg.json deleted file mode 100644 index c26238389..000000000 --- a/vcpkg/ports/qt6/vcpkg.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "qt6", - "version-string": "6.8.3", - "description": "Qt6 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", - "homepage": "https://www.qt.io/" -} \ No newline at end of file diff --git a/vcpkg/ports/qtkeychain-qt6/portfile.cmake b/vcpkg/ports/qtkeychain-qt6/portfile.cmake index bbf95964b..25e75075f 100644 --- a/vcpkg/ports/qtkeychain-qt6/portfile.cmake +++ b/vcpkg/ports/qtkeychain-qt6/portfile.cmake @@ -8,10 +8,23 @@ vcpkg_from_github( HEAD_REF master ) -# Opportunity to build without dependency on qt5-tools/qt5-declarative -set(BUILD_TRANSLATIONS OFF) -if("translations" IN_LIST FEATURES) - set(BUILD_TRANSLATIONS ON) +if(VCPKG_CROSSCOMPILING) + list(APPEND QTKEYCHAIN_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND QTKEYCHAIN_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) + # remove when https://github.com/microsoft/vcpkg/pull/16111 is merged + if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64 AND VCPKG_TARGET_IS_WINDOWS) + list(APPEND QTKEYCHAIN_OPTIONS -DCMAKE_CROSSCOMPILING=ON -DCMAKE_SYSTEM_PROCESSOR:STRING=ARM64 -DCMAKE_SYSTEM_NAME:STRING=Windows) + endif() +endif() + +list(APPEND QTKEYCHAIN_OPTIONS -DBUILD_TEST_APPLICATION:BOOL=OFF) +list(APPEND QTKEYCHAIN_OPTIONS -DLIBSECRET_SUPPORT:BOOL=OFF) + +# FIXME: Why does build translations fail on arm64-windows? +if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) + list(APPEND QTKEYCHAIN_OPTIONS -DBUILD_TRANSLATIONS:BOOL=OFF) +else() + list(APPEND QTKEYCHAIN_OPTIONS -DBUILD_TRANSLATIONS:BOOL=ON) endif() vcpkg_cmake_configure( @@ -19,15 +32,10 @@ vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_WITH_QT6=ON - -DBUILD_TEST_APPLICATION=OFF - -DBUILD_TRANSLATIONS=${BUILD_TRANSLATIONS} - -DBUILD_TOOLS=OFF - -DWITH_nss_PLUGIN=OFF - -DWITH_pkcs11_PLUGIN=OFF - -DLIBSECRET_SUPPORT=OFF + ${QTKEYCHAIN_OPTIONS} ) - vcpkg_cmake_install() + vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Qt6Keychain PACKAGE_NAME Qt6Keychain) diff --git a/vcpkg/ports/qtkeychain-qt6/vcpkg.json b/vcpkg/ports/qtkeychain-qt6/vcpkg.json index e09581967..dd42992d0 100644 --- a/vcpkg/ports/qtkeychain-qt6/vcpkg.json +++ b/vcpkg/ports/qtkeychain-qt6/vcpkg.json @@ -2,13 +2,20 @@ "name": "qtkeychain-qt6", "version": "0.14.3", "port-version": 0, - "description": "(Unaffiliated with Qt) Platform-independent Qt5 API for storing passwords securely", + "description": "(Unaffiliated with Qt) Platform-independent Qt6 API for storing passwords securely", "homepage": "https://github.com/frankosterfeld/qtkeychain", "license": "BSD-3-Clause", "dependencies": [ { - "name": "libsecret", - "platform": "!(windows | uwp | osx | android | ios | linux)" + "name": "qtbase", + "default-features": false + }, + { + "name": "qttools", + "host": true, + "features": [ + "linguist" + ] }, { "name": "vcpkg-cmake", @@ -17,7 +24,6 @@ { "name": "vcpkg-cmake-config", "host": true - }, - "qt6" + } ] -} +} \ No newline at end of file diff --git a/vcpkg/ports/tiff/FindCMath.patch b/vcpkg/ports/tiff/FindCMath.patch deleted file mode 100644 index 70654cf80..000000000 --- a/vcpkg/ports/tiff/FindCMath.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cmake/FindCMath.cmake b/cmake/FindCMath.cmake -index ad92218..dd42aba 100644 ---- a/cmake/FindCMath.cmake -+++ b/cmake/FindCMath.cmake -@@ -31,7 +31,7 @@ include(CheckSymbolExists) - include(CheckLibraryExists) - - check_symbol_exists(pow "math.h" CMath_HAVE_LIBC_POW) --find_library(CMath_LIBRARY NAMES m) -+find_library(CMath_LIBRARY NAMES m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) - - if(NOT CMath_HAVE_LIBC_POW) - set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) diff --git a/vcpkg/ports/tiff/portfile.cmake b/vcpkg/ports/tiff/portfile.cmake deleted file mode 100644 index 01af6b41b..000000000 --- a/vcpkg/ports/tiff/portfile.cmake +++ /dev/null @@ -1,95 +0,0 @@ -vcpkg_from_gitlab( - GITLAB_URL https://gitlab.com - OUT_SOURCE_PATH SOURCE_PATH - REPO libtiff/libtiff - REF "v${VERSION}" - SHA512 859331284cd28df56c44644a355ecdd8eece19f0d5cd3e693e37c0fe37115091e46943ffbad784e84af1b39a6fd81cd196af2d4fefe86369258f89050dafaa84 - HEAD_REF master - PATCHES - FindCMath.patch -) - -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - cxx cxx - jpeg jpeg - jpeg CMAKE_REQUIRE_FIND_PACKAGE_JPEG - lzma lzma - lzma CMAKE_REQUIRE_FIND_PACKAGE_liblzma - tools tiff-tools - webp webp - webp CMAKE_REQUIRE_FIND_PACKAGE_WebP - zip zlib - zip CMAKE_REQUIRE_FIND_PACKAGE_ZLIB - zstd zstd - zstd CMAKE_REQUIRE_FIND_PACKAGE_ZSTD -) - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${FEATURE_OPTIONS} - -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON - -Dtiff-docs=OFF - -Dtiff-contrib=OFF - -Dtiff-tests=OFF - -Dlibdeflate=OFF - -Djbig=OFF # This is disabled by default due to GPL/Proprietary licensing. - -Djpeg12=OFF - -Dlerc=OFF - -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON - -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON - -DZSTD_HAVE_DECOMPRESS_STREAM=ON - -DHAVE_JPEGTURBO_DUAL_MODE_8_12=OFF - OPTIONS_DEBUG - -DCMAKE_DEBUG_POSTFIX=d # tiff sets "d" for MSVC only. - MAYBE_UNUSED_VARIABLES - ZSTD_HAVE_DECOMPRESS_STREAM -) - -vcpkg_cmake_install() - -# CMake config wasn't packaged in the past and is not yet usable now, -# cf. https://gitlab.com/libtiff/libtiff/-/merge_requests/496 -# vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tiff") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") - -set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libtiff-4.pc") -if(EXISTS "${_file}") - vcpkg_replace_string("${_file}" "-ltiff" "-ltiffd") -endif() -vcpkg_fixup_pkgconfig() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) - -if ("tools" IN_LIST FEATURES) - vcpkg_copy_tools(TOOL_NAMES - fax2ps - fax2tiff - pal2rgb - ppm2tiff - raw2tiff - tiff2bw - tiff2pdf - tiff2ps - tiff2rgba - tiffcmp - tiffcp - tiffcrop - tiffdither - tiffdump - tiffinfo - tiffmedian - tiffset - tiffsplit - AUTO_CLEAN - ) -endif() - -vcpkg_copy_pdbs() -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") diff --git a/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in deleted file mode 100644 index ff0ddc0bc..000000000 --- a/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in +++ /dev/null @@ -1,81 +0,0 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0057 NEW) -set(z_vcpkg_tiff_find_options "") -if("REQUIRED" IN_LIST ARGS) - list(APPEND z_vcpkg_tiff_find_options "REQUIRED") -endif() -if("QUIET" IN_LIST ARGS) - list(APPEND z_vcpkg_tiff_find_options "QUIET") -endif() - -_find_package(${ARGS}) - -include(SelectLibraryConfigurations) - -if(TIFF_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") - set(z_vcpkg_tiff_link_libraries "") - set(z_vcpkg_tiff_libraries "") - if("@webp@") - find_package(WebP CONFIG ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${WebP_LIBRARIES}) - endif() - if("@lzma@") - find_package(LibLZMA ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${LIBLZMA_LIBRARIES}) - endif() - if("@jpeg@") - find_package(JPEG ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${JPEG_LIBRARIES}) - endif() - if("@zstd@") - find_package(zstd CONFIG ${z_vcpkg_tiff_find_options}) - set(z_vcpkg_tiff_zstd_target_property "IMPORTED_LOCATION_") - if(TARGET zstd::libzstd_shared) - set(z_vcpkg_tiff_zstd "\$") - set(z_vcpkg_tiff_zstd_target zstd::libzstd_shared) - if(WIN32) - set(z_vcpkg_tiff_zstd_target_property "IMPORTED_IMPLIB_") - endif() - else() - set(z_vcpkg_tiff_zstd "\$") - set(z_vcpkg_tiff_zstd_target zstd::libzstd_static) - endif() - get_target_property(z_vcpkg_tiff_zstd_configs "${z_vcpkg_tiff_zstd_target}" IMPORTED_CONFIGURATIONS) - foreach(z_vcpkg_config IN LISTS z_vcpkg_tiff_zstd_configs) - get_target_property(ZSTD_LIBRARY_${z_vcpkg_config} "${z_vcpkg_tiff_zstd_target}" "${z_vcpkg_tiff_zstd_target_property}${z_vcpkg_config}") - endforeach() - select_library_configurations(ZSTD) - if(NOT TARGET ZSTD::ZSTD) - add_library(ZSTD::ZSTD INTERFACE IMPORTED) - set_property(TARGET ZSTD::ZSTD APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_zstd}) - endif() - list(APPEND z_vcpkg_tiff_libraries ${ZSTD_LIBRARIES}) - list(APPEND z_vcpkg_tiff_link_libraries ${z_vcpkg_tiff_zstd}) - unset(z_vcpkg_tiff_zstd) - unset(z_vcpkg_tiff_zstd_configs) - unset(z_vcpkg_config) - unset(z_vcpkg_tiff_zstd_target) - endif() - if("@zlib@") - find_package(ZLIB ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${ZLIB_LIBRARIES}) - endif() - if(UNIX) - list(APPEND z_vcpkg_tiff_link_libraries m) - list(APPEND z_vcpkg_tiff_libraries m) - endif() - - if(TARGET TIFF::TIFF) - set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_link_libraries}) - endif() - list(APPEND TIFF_LIBRARIES ${z_vcpkg_tiff_libraries}) - unset(z_vcpkg_tiff_link_libraries) - unset(z_vcpkg_tiff_libraries) -endif() -unset(z_vcpkg_tiff_find_options) -cmake_policy(POP) diff --git a/vcpkg/ports/tiff/vcpkg.json b/vcpkg/ports/tiff/vcpkg.json deleted file mode 100644 index 5efdd8116..000000000 --- a/vcpkg/ports/tiff/vcpkg.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "tiff", - "version": "4.5.1", - "port-version": 2, - "description": "A library that supports the manipulation of TIFF image files", - "homepage": "https://libtiff.gitlab.io/libtiff/", - "license": "libtiff", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ], - "default-features": [ - "jpeg", - "lzma", - "zip" - ], - "features": { - "cxx": { - "description": "Build C++ libtiffxx library" - }, - "jpeg": { - "description": "Support JPEG compression in TIFF image files", - "dependencies": [ - "libjpeg-turbo" - ] - }, - "lzma": { - "description": "Support LZMA compression in TIFF image files", - "dependencies": [ - "liblzma" - ] - }, - "tools": { - "description": "Build tools" - }, - "webp": { - "description": "Support WEBP compression in TIFF image files", - "dependencies": [ - "libwebp" - ] - }, - "zip": { - "description": "Support ZIP/deflate compression in TIFF image files", - "dependencies": [ - "zlib" - ] - }, - "zstd": { - "description": "Support ZSTD compression in TIFF image files", - "dependencies": [ - "zstd" - ] - } - } -} diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 72d8ebb67..ad8e6aa80 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -8,13 +8,10 @@ set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=O if(DEFINED ENV{ANDROIDAPI}) set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +else() + message(FATAL_ERROR "ANDROIDAPI not defined as env variable") endif() set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") - set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-ios.cmake b/vcpkg/triplets/arm64-ios.cmake index bdd215c5a..8acb52bc1 100644 --- a/vcpkg/triplets/arm64-ios.cmake +++ b/vcpkg/triplets/arm64-ios.cmake @@ -6,12 +6,10 @@ set(VCPKG_OSX_ARCHITECTURES arm64) if(DEFINED ENV{DEPLOYMENT_TARGET}) set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") endif() set(VCPKG_BUILD_TYPE release) set(VCPKG_CXX_FLAGS "-fvisibility=hidden") set(VCPKG_C_FLAGS "-fvisibility=hidden") - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-osx.cmake b/vcpkg/triplets/arm64-osx.cmake index cf3b7ea23..54b7f06ba 100644 --- a/vcpkg/triplets/arm64-osx.cmake +++ b/vcpkg/triplets/arm64-osx.cmake @@ -8,9 +8,10 @@ set(VCPKG_BUILD_TYPE release) if(DEFINED ENV{DEPLOYMENT_TARGET}) set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") endif() # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-linux.cmake b/vcpkg/triplets/x64-linux.cmake index f13901a97..d0ec0da65 100644 --- a/vcpkg/triplets/x64-linux.cmake +++ b/vcpkg/triplets/x64-linux.cmake @@ -5,4 +5,4 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake \ No newline at end of file +set(VCPKG_FIXUP_ELF_RPATH ON) \ No newline at end of file diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake deleted file mode 100644 index a59b40a6d..000000000 --- a/vcpkg/triplets/x64-osx.cmake +++ /dev/null @@ -1,13 +0,0 @@ -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) - -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -set(VCPKG_OSX_ARCHITECTURES x86_64) -set(VCPKG_BUILD_TYPE release) - -if(DEFINED ENV{DEPLOYMENT_TARGET}) - set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) -endif() - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-windows.cmake b/vcpkg/triplets/x64-windows.cmake index 9e31900b1..42894919c 100644 --- a/vcpkg/triplets/x64-windows.cmake +++ b/vcpkg/triplets/x64-windows.cmake @@ -1,6 +1,4 @@ set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) +set(VCPKG_CRT_LINKAGE static) +set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_BUILD_TYPE release) - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake \ No newline at end of file From 88f1a658b63446653b9e89cab9f5a6a8bf908b11 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 15:51:07 +0200 Subject: [PATCH 009/118] proj share data from vcpkg --- .gitignore | 2 + CMakeLists.txt | 11 + app/android/assets/qgis-data/proj/CH | 22 - app/android/assets/qgis-data/proj/GL27 | 23 - app/android/assets/qgis-data/proj/ITRF2000 | 24 - app/android/assets/qgis-data/proj/ITRF2008 | 94 -- app/android/assets/qgis-data/proj/ITRF2014 | 55 - app/android/assets/qgis-data/proj/ITRF2020 | 91 -- .../proj/deformation_model.schema.json | 582 -------- app/android/assets/qgis-data/proj/nad.lst | 142 -- app/android/assets/qgis-data/proj/nad27 | 810 ------------ app/android/assets/qgis-data/proj/nad83 | 745 ----------- app/android/assets/qgis-data/proj/other.extra | 53 - app/android/assets/qgis-data/proj/proj.db | Bin 9261056 -> 0 bytes app/android/assets/qgis-data/proj/proj.ini | 51 - .../qgis-data/proj/projjson.schema.json | 1174 ----------------- .../qgis-data/proj/triangulation.schema.json | 214 --- app/android/assets/qgis-data/proj/world | 214 --- .../assets/qgis-data/resources/qgis.db | Bin 23552 -> 0 bytes app/android/assets/qgis-data/resources/srs.db | Bin 4255744 -> 0 bytes cmake/FindQGIS.cmake | 6 +- 21 files changed, 16 insertions(+), 4297 deletions(-) delete mode 100644 app/android/assets/qgis-data/proj/CH delete mode 100644 app/android/assets/qgis-data/proj/GL27 delete mode 100644 app/android/assets/qgis-data/proj/ITRF2000 delete mode 100644 app/android/assets/qgis-data/proj/ITRF2008 delete mode 100644 app/android/assets/qgis-data/proj/ITRF2014 delete mode 100644 app/android/assets/qgis-data/proj/ITRF2020 delete mode 100644 app/android/assets/qgis-data/proj/deformation_model.schema.json delete mode 100644 app/android/assets/qgis-data/proj/nad.lst delete mode 100644 app/android/assets/qgis-data/proj/nad27 delete mode 100644 app/android/assets/qgis-data/proj/nad83 delete mode 100644 app/android/assets/qgis-data/proj/other.extra delete mode 100644 app/android/assets/qgis-data/proj/proj.db delete mode 100644 app/android/assets/qgis-data/proj/proj.ini delete mode 100644 app/android/assets/qgis-data/proj/projjson.schema.json delete mode 100644 app/android/assets/qgis-data/proj/triangulation.schema.json delete mode 100644 app/android/assets/qgis-data/proj/world delete mode 100644 app/android/assets/qgis-data/resources/qgis.db delete mode 100644 app/android/assets/qgis-data/resources/srs.db diff --git a/.gitignore b/.gitignore index fc8720a45..466e93fbb 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ test/temp_extra_projects/ input.pro.user* app/android/assets/qgis-data/proj_custom/ app/android/assets/qgis-data/projects/ +app/android/assets/qgis-data/proj/* +app/android/assets/qgis-data/resources/* app/android/assets/projects/ app/android/AndroidManifest.xml *.gpkg-wal diff --git a/CMakeLists.txt b/CMakeLists.txt index 146cdf12e..3dc708ef7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -341,6 +341,17 @@ if (IOS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-shorten-64-to-32") endif () +# ######################################################################################## +# RESOURCES +# ######################################################################################## +# TODO - this would need to rething the approach so the assets are in binary folder +file (COPY ${QGIS_RESOURCE_DIR}/qgis.db DESTINATION app/android/assets/qgis-data/resources/) +file (COPY ${QGIS_RESOURCE_DIR}/srs.db DESTINATION app/android/assets/qgis-data/resources/) +file (COPY ${PROJ_DIR} DESTINATION app/android/assets/qgis-data/proj + PATTERN "*.cmake" EXCLUDE + PATTERN "vcpkg*" EXCLUDE + ) + # ######################################################################################## # SUBDIRECTORIES # ######################################################################################## diff --git a/app/android/assets/qgis-data/proj/CH b/app/android/assets/qgis-data/proj/CH deleted file mode 100644 index 725328f40..000000000 --- a/app/android/assets/qgis-data/proj/CH +++ /dev/null @@ -1,22 +0,0 @@ -# This init file provides definitions for CH1903 and CH1903/LV03 -# projections using the distortion grids developed by Swisstopo. -# See: https://shop.swisstopo.admin.ch/en/products/geo_software/GIS_info -# -# You'll need to download the grids separately and put in a directory -# scanned by libproj. -# -# Note that an independent effort was made to derive an usable grid -# from the CH1903->CH1903+ grid initially available from the Swisstopo -# website. You can read about this other effort here: -# http://lists.maptools.org/pipermail/proj/2012-February/006093.html -# It may be of interest because the latter was by some reported as being -# more accurate than the former: -# http://lists.maptools.org/pipermail/proj/2012-February/006119.html -# -# This init file uses the official one -# - +origin=Swisstopo +lastupdate=2012-02-27 -# CH1903/LV03 -<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs -# CH1903 -<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <> diff --git a/app/android/assets/qgis-data/proj/GL27 b/app/android/assets/qgis-data/proj/GL27 deleted file mode 100644 index 73fa9754a..000000000 --- a/app/android/assets/qgis-data/proj/GL27 +++ /dev/null @@ -1,23 +0,0 @@ -# SCCSID @(#)GL27 1.1 93/08/25 GIE REL -# Great Lakes Grids - +lastupdate=1993-08-25 - # Lake Erie, Ontario and St. Lawrence River. - proj=omerc ellps=clrk66 k_0=0.9999 - lonc=78d00'W lat_0=44d00'N alpha=55d40' - x_0=-3950000 y_0=-3430000 - no_defs <> - # Lake Huron - proj=omerc ellps=clrk66 k_0=0.9999 - lonc=82d00'W lat_0=43d00'N alpha=350d37' - x_0=1200000 y_0=-3500000 - no_defs <> - # Lake Michigan - proj=omerc ellps=clrk66 k_0=0.9999 - lonc=87d00'W lat_0=44d00'N alpha=15d00' - x_0=-1000000 y_0=-4300000 - no_defs <> - # Lake Superior, Lake of the Woods - proj=omerc ellps=clrk66 k_0=0.9999 - lonc=88d50'0.256"W lat_0=47d12'21.554"N alpha=285d41'42.593" - x_0=9000000 y_0=-1600000 - no_defs <> diff --git a/app/android/assets/qgis-data/proj/ITRF2000 b/app/android/assets/qgis-data/proj/ITRF2000 deleted file mode 100644 index 439d19702..000000000 --- a/app/android/assets/qgis-data/proj/ITRF2000 +++ /dev/null @@ -1,24 +0,0 @@ -# ITRF2000 params are in cm/year, PJ_helmert uses m/year - +version=1.0.0 +origin=ftp://itrf.ensg.ign.fr/pub/itrf/ITRF.TP +lastupdate=2017-07-25 - -# ITRF2000 -> ITRF2005 is only defined the opposite way, so we flip the sign on all -# parameters to get the opposite transformation. Parameters from http://itrf.ign.fr/ITRF_solutions/2005/tp_05-00.php - +proj=helmert +x=-0.0001 +y=0.0008 +z=0.0058 +s=-0.0004 +dx=0.0002 +dy=-0.0001 +dz=0.0018 +ds=-0.00008 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector - - +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector - - +proj=helmert +x=0.0067 +y=0.0061 +z=-0.0185 +s=0.00155 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1997.0 +convention=position_vector - - +proj=helmert +x=0.0127 +y=0.0065 +z=-0.0209 +s=0.00195 +rx=-0.00039 +ry=0.00080 +rz=-0.00114 +dx=-0.0029 +dy=-0.0002 +dz=-0.0006 +ds=0.00001 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=1988.0 +convention=position_vector - - +proj=helmert +x=0.0147 +y=0.0135 +z=-0.0139 +s=0.00075 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector - - +proj=helmert +x=0.0267 +y=0.0275 +z=-0.0199 +s=0.00215 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector - - +proj=helmert +x=0.0247 +y=0.0235 +z=-0.0359 +s=0.00245 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector - - +proj=helmert +x=0.0297 +y=0.0475 +z=-0.0739 +s=0.00585 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector - - +proj=helmert +x=0.0247 +y=0.0115 +z=-0.0979 +s=0.00895 +rx=0.0001 +rz=-0.00018 +dy=-0.0006 +dz=-0.0014 +ds=0.00001 +drz=0.00002 +t_epoch=1988.0 +convention=position_vector diff --git a/app/android/assets/qgis-data/proj/ITRF2008 b/app/android/assets/qgis-data/proj/ITRF2008 deleted file mode 100644 index bd5f7cee5..000000000 --- a/app/android/assets/qgis-data/proj/ITRF2008 +++ /dev/null @@ -1,94 +0,0 @@ -# ITRF2008 params are in mm/year, PJ_helmert uses m/year - +version=1.0.0 +origin=http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2008_ITRFs.txt +lastupdate=2017-07-26 - - +proj=helmert +x=-0.002 +y=-0.0009 +z=-0.0047 +s=0.00094 +dx=0.0003 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=-0.0019 +y=-0.0017 +z=-0.0105 +s=0.00134 +dx=0.0001 +dy=0.0001 +dz=-0.0018 +ds=0.00008 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0048 +y=0.0026 +z=-0.0332 +s=0.00292 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=-0.024 +y=0.0024 +z=-0.00386 +s=0.00341 +rx=-0.00171 +ry=-0.00148 +rz=-0.0003 +dx=-0.0028 +dy=-0.0001 +dz=-0.0024 +ds=0.00009 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0128 +y=0.0046 +z=-0.0412 +s=0.00221 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0248 +y=0.0186 +z=-0.0472 +s=0.00361 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0228 +y=0.0146 +z=-0.0632 +s=0.00391 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0278 +y=0.0386 +z=-0.1012 +s=0.00731 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - +proj=helmert +x=0.0228 +y=0.0026 +z=-0.1252 +s=0.01041 +rz=0.00006 +dx=0.0001 +dy=-0.0005 +dz=-0.0032 +ds=0.00009 +drz=0.00002 +t_epoch=2000.0 +convention=position_vector - - -# ITRF2008 Plate Motion Model parameters -# -# As described in -# -# Altamimi, Z., L. Métivier, and X. Collilieux (2012), ITRF2008 plate motion model, -# J. Geophys. Res., 117, B07402, doi:10.1029/2011JB008930. - - - +proj=helmert +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector - - +proj=helmert +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector - - +proj=helmert +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector - - +proj=helmert +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector - - +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector - - +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector - - +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector - - +proj=helmert +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector - - +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector - - +proj=helmert +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector - - +proj=helmert +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector - - +proj=helmert +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector - - +proj=helmert +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector - - +proj=helmert +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector - - -# Plate names suffixed by _T (for Translation) that includes the translation -# rates +dx=0.00041 +dy=0.00022 +dz=0.00041 given by Table 2 of the ITRF2008 plate motion model -# paper - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector - - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector diff --git a/app/android/assets/qgis-data/proj/ITRF2014 b/app/android/assets/qgis-data/proj/ITRF2014 deleted file mode 100644 index e16fb88cf..000000000 --- a/app/android/assets/qgis-data/proj/ITRF2014 +++ /dev/null @@ -1,55 +0,0 @@ -# ITRF2014 params are in mm/year, PJ_helmert uses m/year - +version=1.0.0 +origin=http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2014_ITRFs.txt +lastupdate=2017-07-26 - - +proj=helmert +x=0.0016 +y=0.0019 +z=0.0024 +s=-0.00002 +dz=-0.0001 +ds=0.00003 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0026 +y=0.001 +z=-0.0023 +s=0.00092 +dx=0.0003 +dz=-0.0001 +ds=0.00003 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0007 +y=0.0012 +z=-0.0261 +s=0.00212 +dx=0.0001 +dy=0.0001 +dz=-0.0019 +ds=0.00011 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +d=0.0038 +rz=0.00026 +dx0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=-0.0504 +y=0.0033 +z=-0.0602 +s=0.00429 +rx=-0.00281 +ry=-0.00338 +rz=0.0004 +dx=-0.0028 +dy=-0.0001 +dz=-0.0025 +ds=0.00012 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0154 +y=0.0015 +z=-0.0708 +s=0.00309 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0274 +y=0.0155 +z=-0.0768 +s=0.00449 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0254 +y=0.0115 +z=-0.0928 +s=0.00479 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0304 +y=0.0355 +z=-0.1308 +s=0.00819 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - - +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector - -# ITRF2014 Plate Motion Model parameters -# -# As described in -# -# Z. Altamimi et al, 2017, ITRF2014 plate motion model, -# doi: 10.1093/gji/ggx136 - - +proj=helmert +drx=-0.000248 +dry=-0.000324 +drz=0.000675 +convention=position_vector - - +proj=helmert +drx=0.001154 +dry=-0.000136 +drz=0.001444 +convention=position_vector - - +proj=helmert +drx=0.001510 +dry=0.001182 +drz=0.001215 +convention=position_vector - - +proj=helmert +drx=-0.000085 +dry=-0.000531 +drz=0.000770 +convention=position_vector - - +proj=helmert +drx=0.001154 +dry=-0.000005 +drz=0.001454 +convention=position_vector - - +proj=helmert +drx=-0.000333 +dry=-0.001544 +drz=0.001623 +convention=position_vector - - +proj=helmert +drx=0.000024 +dry=-0.000694 +drz=-0.000063 +convention=position_vector - - +proj=helmert +drx=0.000099 +dry=-0.000614 +drz=0.000733 +convention=position_vector - - +proj=helmert +drx=-0.000409 +dry=0.001047 +drz=-0.002169 +convention=position_vector - - +proj=helmert +drx=-0.000270 +dry=-0.000301 +drz=-0.000140 +convention=position_vector - - +proj=helmert +drx=-0.000121 +dry=-0.000794 +drz=0.000884 +convention=position_vector diff --git a/app/android/assets/qgis-data/proj/ITRF2020 b/app/android/assets/qgis-data/proj/ITRF2020 deleted file mode 100644 index 45aaa5687..000000000 --- a/app/android/assets/qgis-data/proj/ITRF2020 +++ /dev/null @@ -1,91 +0,0 @@ -# ITRF2020 params are in mm/year, PJ_helmert uses m/year - -# Generated with generate_itrf2020.py from EPSG database - - +proj=helmert +x=-0.0014 +y=-0.0009 +z=0.0014 +s=-0.00042 +dy=-0.0001 +dz=0.0002 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0002 +y=0.001 +z=0.0033 +s=-0.00029 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0027 +y=0.0001 +z=-0.0014 +s=0.00065 +dx=0.0003 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=-0.0002 +y=0.0008 +z=-0.0342 +s=0.00225 +dx=0.0001 +dz=-0.0017 +ds=0.00011 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=-0.0658 +y=0.0019 +z=-0.0713 +rx=-0.00336 +ry=-0.00433 +rz=0.00075 +s=0.00447 +dx=-0.0028 +dy=-0.0002 +dz=-0.0023 +drx=-0.00011 +dry=-0.00019 +drz=7e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0145 +y=-0.0019 +z=-0.0859 +rz=0.00036 +s=0.00327 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0265 +y=0.0121 +z=-0.0919 +rz=0.00036 +s=0.00467 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0245 +y=0.0081 +z=-0.1079 +rz=0.00036 +s=0.00497 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0295 +y=0.0321 +z=-0.1459 +rz=0.00036 +s=0.00837 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - - +proj=helmert +x=0.0245 +y=-0.0039 +z=-0.1699 +rx=0.0001 +rz=0.00036 +s=0.01147 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector - -# ITRF2020 Plate Motion Model parameters -# -# As described in https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2023GL106373 -# (and also in https://itrf.ign.fr/docs/solutions/itrf2020/ITRF2020-PMM.dat, but with -# different units) - - +proj=helmert +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector - - +proj=helmert +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector - - +proj=helmert +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector - - +proj=helmert +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector - - +proj=helmert +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector - - +proj=helmert +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector - - +proj=helmert +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector - - +proj=helmert +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector - - +proj=helmert +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector - - +proj=helmert +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector - - +proj=helmert +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector - - +proj=helmert +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector - - +proj=helmert +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector - -# Plate names suffixed by _T (for Translation) that includes the translation -# rates +dx=0.00037 +dy=0.00035 +dz=0.00074 given by Table 2 of the ITRF2020 plate motion model -# paper - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector - - +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector diff --git a/app/android/assets/qgis-data/proj/deformation_model.schema.json b/app/android/assets/qgis-data/proj/deformation_model.schema.json deleted file mode 100644 index d7a6d162c..000000000 --- a/app/android/assets/qgis-data/proj/deformation_model.schema.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "description": "Schema for deformation models", - "type": "object", - "properties": { - "file_type": { - "type": "string", - "enum": [ - "deformation_model_master_file" - ], - "description": "File type. Always \"deformation_model_master_file\"" - }, - "format_version": { - "type": "string", - "enum": [ - "1.0" - ] - }, - "name": { - "type": "string", - "description": "A brief descriptive name of the deformation model" - }, - "version": { - "type": "string", - "description": "A string identifying the version of the deformation model. The format for specifying version will be defined by the agency responsible for the deformation model" - }, - "publication_date": { - "$ref": "#/definitions/datetime", - "description": "The date on which this version of the deformation model was published (or possibly the date on which it takes effect?)" - }, - "license": { - "type": "string", - "description": "License under which the model is published" - }, - "description": { - "type": "string", - "description": "A text description of the model" - }, - "authority": { - "type": "object", - "description": "Basic information about the agency responsible for the data set", - "properties": { - "name": { - "type": "string", - "description": "The name of the agency" - }, - "url": { - "type": "string", - "description": "The url of the agency website", - "format": "uri" - }, - "address": { - "type": "string", - "description": "The postal address of the agency" - }, - "email": { - "type": "string", - "description": "An email contact address for the agency", - "format": "email" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "links": { - "type": "array", - "description": "Links to related information", - "items": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "The URL holding the information", - "format": "uri" - }, - "rel": { - "type": "string", - "description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the deformation model is built.\n- \"metadata\": ISO 19115 XML metadata regarding the deformation model." - }, - "type": { - "type": "string", - "description": "MIME type" - }, - "title": { - "type": "string", - "description": "Description of the link" - } - }, - "required": [ - "href" - ], - "additionalProperties": false - } - }, - "source_crs": { - "$ref": "#/definitions/crs", - "description": "The coordinate reference system to which the deformation model applies" - }, - "target_crs": { - "$ref": "#/definitions/crs", - "description": "For a time dependent coordinate transformation the coordinate reference system resulting from applying the deformation" - }, - "definition_crs": { - "$ref": "#/definitions/crs", - "description": "The coordinate reference system used to define the component spatial models. This proposal only supports using the same value for the source and definition coordinate reference system." - }, - "reference_epoch": { - "$ref": "#/definitions/datetime", - "description": "A nominal reference epoch of the deformation model. This is not necessarily used to calculate the deformation model - each component defines its own time function." - }, - "uncertainty_reference_epoch": { - "$ref": "#/definitions/datetime", - "description": "The uncertainties of the deformation model are calculated in terms of this epoch. This is described below in the Time functions section." - }, - "horizontal_offset_unit": { - "type": "string", - "enum": [ - "metre", - "degree" - ] - }, - "vertical_offset_unit": { - "type": "string", - "enum": [ - "metre" - ] - }, - "horizontal_uncertainty_type": { - "type": "string", - "enum": [ - "circular 95% confidence limit" - ] - }, - "horizontal_uncertainty_unit": { - "type": "string", - "enum": [ - "metre" - ] - }, - "vertical_uncertainty_type": { - "type": "string", - "enum": [ - "95% confidence limit" - ] - }, - "vertical_uncertainty_unit": { - "type": "string", - "enum": [ - "metre" - ] - }, - "horizontal_offset_method": { - "type": "string", - "description": "Defines how the horizontal offsets are applied to geographic coordinates", - "enum": [ - "addition", - "geocentric" - ] - }, - "extent": { - "$ref": "#/definitions/extent", - "description": "Defines the region within which the deformation model is defined. It cannot be calculated outside this region. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" - }, - "time_extent": { - "type": "object", - "description": "Defines the range of times for which the model is valid, specified by a first and a last value. The deformation model is undefined for dates outside this range.", - "properties": { - "first": { - "$ref": "#/definitions/datetime" - }, - "last": { - "$ref": "#/definitions/datetime" - } - }, - "required": [ - "first", - "last" - ], - "additionalProperties": false - }, - "components": { - "type": "array", - "items": { - "$ref": "#/definitions/component" - } - } - }, - "required": [ - "file_type", - "format_version", - "source_crs", - "target_crs", - "definition_crs", - "extent", - "time_extent", - "components" - ], - "additionalProperties": false, - "definitions": { - "component": { - "type": "object", - "definition": "A component describes an aspect of the deformation, such as glacial isostatic adjustment, secular deformation, earthquakes, etc.", - "properties": { - "description": { - "type": "string", - "description": "A text description of this component of the model" - }, - "extent": { - "$ref": "#/definitions/extent", - "description": "The region within the component is defined. Outside this region the component evaluates to 0. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" - }, - "displacement_type": { - "type": "string", - "description": "The displacement parameters defined by the model. The \"none\" option allows for a component which defines uncertainty with different grids to those defining displacement", - "enum": [ - "none", - "horizontal", - "vertical", - "3d" - ] - }, - "uncertainty_type": { - "type": "string", - "description": "The uncertainty parameters defined by the model", - "enum": [ - "none", - "horizontal", - "vertical", - "3d" - ] - }, - "horizontal_uncertainty": { - "type": "number", - "description": "The horizontal uncertainty to use if it is not defined explicitly in the spatial model" - }, - "vertical_uncertainty": { - "type": "number", - "description": "The vertical uncertainty to use if it is not defined explicitly in the spatial model" - }, - "spatial_model": { - "type": "object", - "description": "Defines the spatial model", - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of the spatial model data file. Initially it is proposed that only GeoTIFF is supported", - "enum": [ - "GeoTIFF" - ] - }, - "interpolation_method": { - "type": "string", - "description": "Interpolation method", - "enum": [ - "bilinear", - "geocentric_bilinear" - ] - }, - "filename": { - "type": "string", - "description": "Specifies location of the spatial model GeoTIFF file relative to this JSON file" - }, - "md5_checksum": { - "type": "string", - "description": "A hex encoded MD5 checksum of the grid file that can be used to validate that it is the correct version of the file" - } - }, - "required": [ - "type", - "interpolation_method", - "filename" - ], - "additionalProperties": false - }, - "time_function": { - "$ref": "#/definitions/time_function" - } - }, - "required": [ - "description", - "extent", - "displacement_type", - "spatial_model", - "time_function" - ], - "additionalProperties": false - }, - "crs": { - "type": "string", - "pattern": "^[a-zA-Z]+:[a-zA-Z0-9]+$" - }, - "datetime": { - "type": "string", - "format": "date-time", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" - }, - "extent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bbox" - ] - }, - "parameters": { - "type": "object", - "properties": { - "bbox": { - "type": "array", - "minItems": 4, - "maxItems": 4, - "items": { - "type": "number" - } - } - } - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - }, - "time_function": { - "description": "Function describing a multiplicative factor to apply to the spatial_model depending on the time", - "oneOf": [ - { - "$ref": "#/definitions/time_function_constant" - }, - { - "$ref": "#/definitions/time_function_velocity" - }, - { - "$ref": "#/definitions/time_function_step" - }, - { - "$ref": "#/definitions/time_function_reverse_step" - }, - { - "$ref": "#/definitions/time_function_piecewise" - }, - { - "$ref": "#/definitions/time_function_exponential" - } - ] - }, - "time_function_constant": { - "description": "The valuation of this function is 1 at any epoch", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "constant" - ] - }, - "parameters": { - "type": "object", - "properties": { - }, - "additionalProperties": false - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "time_function_velocity": { - "description": "The valuation of this function is 0 at reference_epoch, and proportional to the time difference to it at other times", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "velocity" - ] - }, - "parameters": { - "type": "object", - "properties": { - "reference_epoch": { - "$ref": "#/definitions/datetime" - } - }, - "required": [ - "reference_epoch" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - }, - "time_function_step": { - "description": "The valuation of this function is 0 before step_epoch, and 1 starting from it", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "step" - ] - }, - "parameters": { - "type": "object", - "properties": { - "step_epoch": { - "$ref": "#/definitions/datetime" - } - }, - "required": [ - "step_epoch" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - }, - "time_function_reverse_step": { - "description": "The valuation of this function is 1 before step_epoch, and 0 starting from it", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "reverse_step" - ] - }, - "parameters": { - "type": "object", - "properties": { - "step_epoch": { - "$ref": "#/definitions/datetime" - } - }, - "required": [ - "step_epoch" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - }, - "time_function_piecewise": { - "description": "Piecewise time function", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "piecewise" - ] - }, - "parameters": { - "type": "object", - "properties": { - "before_first": { - "type": "string", - "description": "Defines the behaviour of the function before the first defined epoch", - "enum": [ - "zero", - "constant", - "linear" - ] - }, - "after_last": { - "type": "string", - "description": "Defines the behaviour of the function after the last defined epoch", - "enum": [ - "zero", - "constant", - "linear" - ] - }, - "model": { - "type": "array", - "description": "A sorted array data points each defined by two elements, \"epoch\" defines the date/time of the data point, and \"scale_factor\" is the corresponding function value. The array is sorted in order of increasing epoch. Note: where the time function includes a step it is represented by two consecutive data points with the same epoch. The first defines the scale factor that applies before the epoch and the second the scale factor that applies after the epoch", - "items": { - "type": "object", - "properties": { - "epoch": { - "$ref": "#/definitions/datetime" - }, - "scale_factor": { - "type": "number" - } - }, - "required": [ - "epoch", - "scale_factor" - ], - "additionalProperties": false - }, - "minItems": 2 - } - }, - "required": [ - "before_first", - "after_last", - "model" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - }, - "time_function_exponential": { - "description": "The valuation of this function is an exponential function with a time-based relaxation constant", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "exponential" - ] - }, - "parameters": { - "type": "object", - "properties": { - "reference_epoch": { - "$ref": "#/definitions/datetime", - "description": "The date/time at which the exponential decay starts" - }, - "end_epoch": { - "$ref": "#/definitions/datetime", - "description": "The date/time at which the exponential decay ends (optional)" - }, - "relaxation_constant": { - "type": "number", - "description": "Relaxation constant in years" - }, - "before_scale_factor": { - "type": "number", - "description": "The scale factor that applies before the reference epoch" - }, - "initial_scale_factor": { - "type": "number", - "description": "The initial scale factor" - }, - "final_scale_factor": { - "type": "number", - "description": "The scale factor the exponential function approaches" - } - }, - "required": [ - "reference_epoch", - "relaxation_constant", - "before_scale_factor", - "initial_scale_factor", - "final_scale_factor" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - } - } -} \ No newline at end of file diff --git a/app/android/assets/qgis-data/proj/nad.lst b/app/android/assets/qgis-data/proj/nad.lst deleted file mode 100644 index cc4277220..000000000 --- a/app/android/assets/qgis-data/proj/nad.lst +++ /dev/null @@ -1,142 +0,0 @@ - Listing of State Plane North American Datum Zones - - NGS zone number - State and zone 1927 1983 - -Alabama east .................. 101 101 -Alabama west .................. 102 102 -Alaska zone no. 1 ............. 5001 5001 -Alaska zone no. 2 ............. 5002 5002 -Alaska zone no. 3 ............. 5003 5003 -Alaska zone no. 4 ............. 5004 5004 -Alaska zone no. 5 ............. 5005 5005 -Alaska zone no. 6 ............. 5006 5006 -Alaska zone no. 7 ............. 5007 5007 -Alaska zone no. 8 ............. 5008 5008 -Alaska zone no. 9 ............. 5009 5009 -Alaska zone no. 10 ............ 5010 5010 -American Samoa ................ 5300 -Arizona central ............... 202 202 -Arizona east .................. 201 201 -Arizona west .................. 203 203 -Arkansas north ................ 301 301 -Arkansas south ................ 302 302 -California I .................. 401 401 -California II ................. 402 402 -California III ................ 403 403 -California IV ................. 404 404 -California V .................. 405 405 -California VI ................. 406 406 -California VII ................ 407 -Colorado central .............. 502 502 -Colorado north ................ 501 501 -Colorado south ................ 503 503 -Connecticut ................... 600 600 -Delaware ...................... 700 700 -Florida east .................. 901 901 -Florida north ................. 903 903 -Florida west .................. 902 902 -Georgia east .................. 1001 1001 -Georgia west .................. 1002 1002 -Guam Island ................... 5400 -Hawaii 1 ...................... 5101 5101 -Hawaii 2 ...................... 5102 5102 -Hawaii 3 ...................... 5103 5103 -Hawaii 4 ...................... 5104 5104 -Hawaii 5 ...................... 5105 5105 -Idaho central ................. 1102 1102 -Idaho east .................... 1101 1101 -Idaho west .................... 1103 1103 -Illinois east ................. 1201 1201 -Illinois west ................. 1202 1202 -Indiana east .................. 1301 1301 -Indiana west .................. 1302 1302 -Iowa north .................... 1401 1401 -Iowa south .................... 1402 1402 -Kansas north .................. 1501 1501 -Kansas south .................. 1502 1502 -Kentucky north ................ 1601 1601 -Kentucky south ................ 1602 1602 -Louisiana north ............... 1701 1701 -Louisiana offshore ............ 1703 1703 -Louisiana south ............... 1702 1702 -Maine east .................... 1801 1801 -Maine west .................... 1802 1802 -Maryland ...................... 1900 1900 -Massachusetts island .......... 2002 2002 -Massachusetts mainland ........ 2001 2001 -Michigan central/l ............ 2112 2112 current -Michigan central/m ............ 2102 old -Michigan east ................. 2101 old -Michigan north ................ 2111 2111 current -Michigan south ................ 2113 2113 current -Michigan west ................. 2103 old -Minnesota central ............. 2202 2202 -Minnesota north ............... 2201 2201 -Minnesota south ............... 2203 2203 -Mississippi east .............. 2301 2301 -Mississippi west .............. 2302 2302 -Missouri central .............. 2402 2402 -Missouri east ................. 2401 2401 -Missouri west ................. 2403 2403 -Montana ....................... 2500 -Montana central ............... 2502 -Montana north ................. 2501 -Montana south ................. 2503 -Nebraska ...................... 2600 -Nebraska north ................ 2601 -Nebraska south ................ 2602 -Nevada central ................ 2702 2702 -Nevada east ................... 2701 2701 -Nevada west ................... 2703 2703 -New hampshire ................. 2800 2800 -New jersey .................... 2900 2900 -New mexico central ............ 3002 3002 -New mexico east ............... 3001 3001 -New mexico west ............... 3003 3003 -New york central .............. 3102 3102 -New york east ................. 3101 3101 -New york long island .......... 3104 3104 -New york west ................. 3103 3103 -North carolina ................ 3200 3200 -North dakota north ............ 3301 3301 -North dakota south ............ 3302 3302 -Ohio north .................... 3401 3401 -Ohio south .................... 3402 3402 -Oklahoma north ................ 3501 3501 -Oklahoma south ................ 3502 3502 -Oregon north .................. 3601 3601 -Oregon south .................. 3602 3602 -Pennsylvania north ............ 3701 3701 -Pennsylvania south ............ 3702 3702 -Puerto Rico, Virgin Islands ... 5201 5200 -Rhode Island .................. 3800 3800 -South Carolina ................ 3900 -South Carolina north .......... 3901 -South Carolina south .......... 3902 -South Dakota north ............ 4001 4001 -South Dakota south ............ 4002 4002 -Tennessee ..................... 4100 4100 -Texas central ................. 4203 4203 -Texas north ................... 4201 4201 -Texas north central ........... 4202 4202 -Texas south ................... 4205 4205 -Texas south central ........... 4204 4204 -Utah central .................. 4302 4302 -Utah north .................... 4301 4301 -Utah south .................... 4303 4303 -Vermont ....................... 4400 4400 -Virgin Islands, St. Croix ..... 5202 -Virginia north ................ 4501 4501 -Virginia south ................ 4502 4502 -Washington north .............. 4601 4601 -Washington south .............. 4602 4602 -West Virginia north ........... 4701 4701 -West Virginia south ........... 4702 4702 -Wisconsin central ............. 4802 4802 -Wisconsin north ............... 4801 4801 -Wisconsin south ............... 4803 4803 -Wyoming east .................. 4901 4901 -Wyoming east central .......... 4902 4902 -Wyoming west .................. 4904 4904 -Wyoming west central .......... 4903 4903 diff --git a/app/android/assets/qgis-data/proj/nad27 b/app/android/assets/qgis-data/proj/nad27 deleted file mode 100644 index c5e439621..000000000 --- a/app/android/assets/qgis-data/proj/nad27 +++ /dev/null @@ -1,810 +0,0 @@ -# SCCSID @(#)nad27 4.1 92/12/20 GIE -# proj +init files for: -# -# State Plane Coordinate Systems, -# North American Datum 1927 - - +lastupdate=1992-12-20 -# 101: alabama east: nad27 -<101> proj=tmerc datum=NAD27 -lon_0=-85d50 lat_0=30d30 k=.99996 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 102: alabama west: nad27 -<102> proj=tmerc datum=NAD27 -lon_0=-87d30 lat_0=30 k=.9999333333333333 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5010: alaska zone no. 10: nad27 -<5010> proj=lcc datum=NAD27 -lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 -x_0=914401.8288036576 y_0=0 -no_defs <> - -# 5300: american samoa: nad27 -<5300> proj=lcc datum=NAD27 -lon_0=-170 lat_1=-14d16 lat_2=-14d16 lat_0=-14d16 -x_0=152400.3048006096 y_0=95169.31165862332 -no_defs <> - -# 201: arizona east: nad27 -<201> proj=tmerc datum=NAD27 -lon_0=-110d10 lat_0=31 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 202: arizona central: nad27 -<202> proj=tmerc datum=NAD27 -lon_0=-111d55 lat_0=31 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 203: arizona west: nad27 -<203> proj=tmerc datum=NAD27 -lon_0=-113d45 lat_0=31 k=.9999333333333333 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 301: arkansas north: nad27 -<301> proj=lcc datum=NAD27 -lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 302: arkansas south: nad27 -<302> proj=lcc datum=NAD27 -lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 401: california i: nad27 -<401> proj=lcc datum=NAD27 -lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 402: california ii: nad27 -<402> proj=lcc datum=NAD27 -lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 403: california iii: nad27 -<403> proj=lcc datum=NAD27 -lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 404: california iv: nad27 -<404> proj=lcc datum=NAD27 -lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 405: california v: nad27 -<405> proj=lcc datum=NAD27 -lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 406: california vi: nad27 -<406> proj=lcc datum=NAD27 -lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 407: california vii: nad27 -<407> proj=lcc datum=NAD27 -lon_0=-118d20 lat_1=34d25 lat_2=33d52 lat_0=34d8 -x_0=1276106.450596901 y_0=1268253.006858014 -no_defs <> - -# 501: colorado north: nad27 -<501> proj=lcc datum=NAD27 -lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 502: colorado central: nad27 -<502> proj=lcc datum=NAD27 -lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 503: colorado south: nad27 -<503> proj=lcc datum=NAD27 -lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 600: connecticut ---: nad27 -<600> proj=lcc datum=NAD27 -lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 -x_0=182880.3657607315 y_0=0 -no_defs <> - -# 700: delaware ---: nad27 -<700> proj=tmerc datum=NAD27 -lon_0=-75d25 lat_0=38 k=.999995 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 901: florida east: nad27 -<901> proj=tmerc datum=NAD27 -lon_0=-81 lat_0=24d20 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 902: florida west: nad27 -<902> proj=tmerc datum=NAD27 -lon_0=-82 lat_0=24d20 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 903: florida north: nad27 -<903> proj=lcc datum=NAD27 -lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1001: georgia east: nad27 -<1001> proj=tmerc datum=NAD27 -lon_0=-82d10 lat_0=30 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1002: georgia west: nad27 -<1002> proj=tmerc datum=NAD27 -lon_0=-84d10 lat_0=30 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5101: hawaii 1: nad27 -<5101> proj=tmerc datum=NAD27 -lon_0=-155d30 lat_0=18d50 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5102: hawaii 2: nad27 -<5102> proj=tmerc datum=NAD27 -lon_0=-156d40 lat_0=20d20 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5103: hawaii 3: nad27 -<5103> proj=tmerc datum=NAD27 -lon_0=-158 lat_0=21d10 k=.99999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5104: hawaii 4: nad27 -<5104> proj=tmerc datum=NAD27 -lon_0=-159d30 lat_0=21d50 k=.99999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5105: hawaii 5: nad27 -<5105> proj=tmerc datum=NAD27 -lon_0=-160d10 lat_0=21d40 k=1 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1101: idaho east: nad27 -<1101> proj=tmerc datum=NAD27 -lon_0=-112d10 lat_0=41d40 k=.9999473684210526 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1102: idaho central: nad27 -<1102> proj=tmerc datum=NAD27 -lon_0=-114 lat_0=41d40 k=.9999473684210526 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1103: idaho west: nad27 -<1103> proj=tmerc datum=NAD27 -lon_0=-115d45 lat_0=41d40 k=.9999333333333333 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1201: illinois east: nad27 -<1201> proj=tmerc datum=NAD27 -lon_0=-88d20 lat_0=36d40 k=.999975 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1202: illinois west: nad27 -<1202> proj=tmerc datum=NAD27 -lon_0=-90d10 lat_0=36d40 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1301: indiana east: nad27 -<1301> proj=tmerc datum=NAD27 -lon_0=-85d40 lat_0=37d30 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1302: indiana west: nad27 -<1302> proj=tmerc datum=NAD27 -lon_0=-87d5 lat_0=37d30 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1401: iowa north: nad27 -<1401> proj=lcc datum=NAD27 -lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1402: iowa south: nad27 -<1402> proj=lcc datum=NAD27 -lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1501: kansas north: nad27 -<1501> proj=lcc datum=NAD27 -lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1502: kansas south: nad27 -<1502> proj=lcc datum=NAD27 -lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1601: kentucky north: nad27 -<1601> proj=lcc datum=NAD27 -lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1602: kentucky south: nad27 -<1602> proj=lcc datum=NAD27 -lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1701: louisiana north: nad27 -<1701> proj=lcc datum=NAD27 -lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1702: louisiana south: nad27 -<1702> proj=lcc datum=NAD27 -lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1703: louisiana offshore: nad27 -<1703> proj=lcc datum=NAD27 -lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 1801: maine east: nad27 -<1801> proj=tmerc datum=NAD27 -lon_0=-68d30 lat_0=43d50 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1802: maine west: nad27 -<1802> proj=tmerc datum=NAD27 -lon_0=-70d10 lat_0=42d50 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 1900: maryland ---: nad27 -<1900> proj=lcc datum=NAD27 -lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d50 -x_0=243840.4876809754 y_0=0 -no_defs <> - -# 2001: massachusetts mainland: nad27 -<2001> proj=lcc datum=NAD27 -lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 -x_0=182880.3657607315 y_0=0 -no_defs <> - -# 2002: massachusetts island: nad27 -<2002> proj=lcc datum=NAD27 -lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 -x_0=60960.12192024384 y_0=0 -no_defs <> - -# 2101: michigan east: nad27 -<2101> proj=tmerc datum=NAD27 -lon_0=-83d40 lat_0=41d30 k=.9999428571428571 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2102: michigan central/m: nad27 -<2102> proj=tmerc datum=NAD27 -lon_0=-85d45 lat_0=41d30 k=.9999090909090909 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2103: michigan west: nad27 -<2103> proj=tmerc datum=NAD27 -lon_0=-88d45 lat_0=41d30 k=.9999090909090909 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2111: michigan north: nad27 -<2111> proj=lcc a=6378450.047 es=.006768657997291094 -lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2112: michigan central/l: nad27 -<2112> proj=lcc a=6378450.047 es=.006768657997291094 -lon_0=-84d20 lat_1=45d42 lat_2=44d11 lat_0=43d19 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2113: michigan south: nad27 -<2113> proj=lcc a=6378450.047 es=.006768657997291094 -lon_0=-84d20 lat_1=43d40 lat_2=42d6 lat_0=41d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2201: minnesota north: nad27 -<2201> proj=lcc datum=NAD27 -lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2202: minnesota central: nad27 -<2202> proj=lcc datum=NAD27 -lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2203: minnesota south: nad27 -<2203> proj=lcc datum=NAD27 -lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2301: mississippi east: nad27 -<2301> proj=tmerc datum=NAD27 -lon_0=-88d50 lat_0=29d40 k=.99996 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2302: mississippi west: nad27 -<2302> proj=tmerc datum=NAD27 -lon_0=-90d20 lat_0=30d30 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2401: missouri east: nad27 -<2401> proj=tmerc datum=NAD27 -lon_0=-90d30 lat_0=35d50 k=.9999333333333333 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2402: missouri central: nad27 -<2402> proj=tmerc datum=NAD27 -lon_0=-92d30 lat_0=35d50 k=.9999333333333333 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2403: missouri west: nad27 -<2403> proj=tmerc datum=NAD27 -lon_0=-94d30 lat_0=36d10 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2501: montana north: nad27 -<2501> proj=lcc datum=NAD27 -lon_0=-109d30 lat_1=48d43 lat_2=47d51 lat_0=47 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2502: montana central: nad27 -<2502> proj=lcc datum=NAD27 -lon_0=-109d30 lat_1=47d53 lat_2=46d27 lat_0=45d50 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2503: montana south: nad27 -<2503> proj=lcc datum=NAD27 -lon_0=-109d30 lat_1=46d24 lat_2=44d52 lat_0=44 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2601: nebraska north: nad27 -<2601> proj=lcc datum=NAD27 -lon_0=-100 lat_1=42d49 lat_2=41d51 lat_0=41d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2602: nebraska south: nad27 -<2602> proj=lcc datum=NAD27 -lon_0=-99d30 lat_1=41d43 lat_2=40d17 lat_0=39d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 2701: nevada east: nad27 -<2701> proj=tmerc datum=NAD27 -lon_0=-115d35 lat_0=34d45 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2702: nevada central: nad27 -<2702> proj=tmerc datum=NAD27 -lon_0=-116d40 lat_0=34d45 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2703: nevada west: nad27 -<2703> proj=tmerc datum=NAD27 -lon_0=-118d35 lat_0=34d45 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2800: new hampshire ---: nad27 -<2800> proj=tmerc datum=NAD27 -lon_0=-71d40 lat_0=42d30 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 2900: new jersey ---: nad27 -<2900> proj=tmerc datum=NAD27 -lon_0=-74d40 lat_0=38d50 k=.999975 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3001: new mexico east: nad27 -<3001> proj=tmerc datum=NAD27 -lon_0=-104d20 lat_0=31 k=.9999090909090909 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3002: new mexico central: nad27 -<3002> proj=tmerc datum=NAD27 -lon_0=-106d15 lat_0=31 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3003: new mexico west: nad27 -<3003> proj=tmerc datum=NAD27 -lon_0=-107d50 lat_0=31 k=.9999166666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3101: new york east: nad27 -<3101> proj=tmerc datum=NAD27 -lon_0=-74d20 lat_0=40 k=.9999666666666667 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3102: new york central: nad27 -<3102> proj=tmerc datum=NAD27 -lon_0=-76d35 lat_0=40 k=.9999375 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3103: new york west: nad27 -<3103> proj=tmerc datum=NAD27 -lon_0=-78d35 lat_0=40 k=.9999375 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3104: new york long island: nad27 -<3104> proj=lcc datum=NAD27 -lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d30 -x_0=609601.2192024384 y_0=30480.06096012192 -no_defs <> - -# 3200: north carolina ---: nad27 -<3200> proj=lcc datum=NAD27 -lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3301: north dakota north: nad27 -<3301> proj=lcc datum=NAD27 -lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3302: north dakota south: nad27 -<3302> proj=lcc datum=NAD27 -lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3401: ohio north: nad27 -<3401> proj=lcc datum=NAD27 -lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3402: ohio south: nad27 -<3402> proj=lcc datum=NAD27 -lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3501: oklahoma north: nad27 -<3501> proj=lcc datum=NAD27 -lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3502: oklahoma south: nad27 -<3502> proj=lcc datum=NAD27 -lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3601: oregon north: nad27 -<3601> proj=lcc datum=NAD27 -lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3602: oregon south: nad27 -<3602> proj=lcc datum=NAD27 -lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3701: pennsylvania north: nad27 -<3701> proj=lcc datum=NAD27 -lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3702: pennsylvania south: nad27 -<3702> proj=lcc datum=NAD27 -lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3800: rhode island ---: nad27 -<3800> proj=tmerc datum=NAD27 -lon_0=-71d30 lat_0=41d5 k=.99999375 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 3901: south carolina north: nad27 -<3901> proj=lcc datum=NAD27 -lon_0=-81 lat_1=34d58 lat_2=33d46 lat_0=33 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 3902: south carolina south: nad27 -<3902> proj=lcc datum=NAD27 -lon_0=-81 lat_1=33d40 lat_2=32d20 lat_0=31d50 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4001: south dakota north: nad27 -<4001> proj=lcc datum=NAD27 -lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4002: south dakota south: nad27 -<4002> proj=lcc datum=NAD27 -lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4100: tennessee ---: nad27 -<4100> proj=lcc datum=NAD27 -lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d40 -x_0=609601.2192024384 y_0=30480.06096012192 -no_defs <> - -# 4201: texas north: nad27 -<4201> proj=lcc datum=NAD27 -lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4202: texas north central: nad27 -<4202> proj=lcc datum=NAD27 -lon_0=-97d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4203: texas central: nad27 -<4203> proj=lcc datum=NAD27 -lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4204: texas south central: nad27 -<4204> proj=lcc datum=NAD27 -lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4205: texas south: nad27 -<4205> proj=lcc datum=NAD27 -lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4301: utah north: nad27 -<4301> proj=lcc datum=NAD27 -lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4302: utah central: nad27 -<4302> proj=lcc datum=NAD27 -lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4303: utah south: nad27 -<4303> proj=lcc datum=NAD27 -lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4400: vermont ---: nad27 -<4400> proj=tmerc datum=NAD27 -lon_0=-72d30 lat_0=42d30 k=.9999642857142857 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 4501: virginia north: nad27 -<4501> proj=lcc datum=NAD27 -lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4502: virginia south: nad27 -<4502> proj=lcc datum=NAD27 -lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4601: washington north: nad27 -<4601> proj=lcc datum=NAD27 -lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4602: washington south: nad27 -<4602> proj=lcc datum=NAD27 -lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4701: west virginia north: nad27 -<4701> proj=lcc datum=NAD27 -lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4702: west virginia south: nad27 -<4702> proj=lcc datum=NAD27 -lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4801: wisconsin north: nad27 -<4801> proj=lcc datum=NAD27 -lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4802: wisconsin central: nad27 -<4802> proj=lcc datum=NAD27 -lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4803: wisconsin south: nad27 -<4803> proj=lcc datum=NAD27 -lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 -x_0=609601.2192024384 y_0=0 -no_defs <> - -# 4901: wyoming east: nad27 -<4901> proj=tmerc datum=NAD27 -lon_0=-105d10 lat_0=40d40 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 4902: wyoming east central: nad27 -<4902> proj=tmerc datum=NAD27 -lon_0=-107d20 lat_0=40d40 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 4903: wyoming west central: nad27 -<4903> proj=tmerc datum=NAD27 -lon_0=-108d45 lat_0=40d40 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 4904: wyoming west: nad27 -<4904> proj=tmerc datum=NAD27 -lon_0=-110d5 lat_0=40d40 k=.9999411764705882 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5001: alaska zone no. 1: nad27 -<5001> proj=omerc datum=NAD27 -k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 -x_0=818585.5672270928 y_0=575219.2451072642 -no_defs <> - -# 5002: alaska zone no. 2: nad27 -<5002> proj=tmerc datum=NAD27 -lon_0=-142 lat_0=54 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5003: alaska zone no. 3: nad27 -<5003> proj=tmerc datum=NAD27 -lon_0=-146 lat_0=54 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5004: alaska zone no. 4: nad27 -<5004> proj=tmerc datum=NAD27 -lon_0=-150 lat_0=54 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5005: alaska zone no. 5: nad27 -<5005> proj=tmerc datum=NAD27 -lon_0=-154 lat_0=54 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5006: alaska zone no. 6: nad27 -<5006> proj=tmerc datum=NAD27 -lon_0=-158 lat_0=54 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5007: alaska zone no. 7: nad27 -<5007> proj=tmerc datum=NAD27 -lon_0=-162 lat_0=54 k=.9999 -x_0=213360.4267208534 y_0=0 -no_defs <> - -# 5008: alaska zone no. 8: nad27 -<5008> proj=tmerc datum=NAD27 -lon_0=-166 lat_0=54 k=.9999 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5009: alaska zone no. 9: nad27 -<5009> proj=tmerc datum=NAD27 -lon_0=-170 lat_0=54 k=.9999 -x_0=182880.3657607315 y_0=0 -no_defs <> - -# 5201: puerto rico and virgin islands: nad27 -<5201> proj=lcc datum=NAD27 -lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 -x_0=152400.3048006096 y_0=0 -no_defs <> - -# 5202: virgin islands st. croix: nad27 -<5202> proj=lcc datum=NAD27 -lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 -x_0=152400.3048006096 y_0=30480.06096012192 -no_defs <> - -# 5400: guam island: nad27 -<5400> proj=poly datum=NAD27 -x_0=50000 y_0=50000 lon_0=144d44'55.50254 lat_0=13d28'20.87887 -no_defs <> - diff --git a/app/android/assets/qgis-data/proj/nad83 b/app/android/assets/qgis-data/proj/nad83 deleted file mode 100644 index 1b65f5196..000000000 --- a/app/android/assets/qgis-data/proj/nad83 +++ /dev/null @@ -1,745 +0,0 @@ -# SCCSID @(#)nad83 4.1 92/12/20 GIE -# proj +init files for: -# -# State Plane Coordinate Systems, -# North American Datum 1983 - - +lastupdate=1992-12-20 -# 101: alabama east: nad83 -<101> proj=tmerc datum=NAD83 -lon_0=-85d50 lat_0=30d30 k=.99996 -x_0=200000 y_0=0 -no_defs <> - -# 102: alabama west: nad83 -<102> proj=tmerc datum=NAD83 -lon_0=-87d30 lat_0=30 k=.9999333333333333 -x_0=600000 y_0=0 -no_defs <> - -# 5010: alaska zone no. 10: nad83 -<5010> proj=lcc datum=NAD83 -lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 -x_0=1000000 y_0=0 -no_defs <> - -# 201: arizona east: nad83 -<201> proj=tmerc datum=NAD83 -lon_0=-110d10 lat_0=31 k=.9999 -x_0=213360 y_0=0 -no_defs <> - -# 202: arizona central: nad83 -<202> proj=tmerc datum=NAD83 -lon_0=-111d55 lat_0=31 k=.9999 -x_0=213360 y_0=0 -no_defs <> - -# 203: arizona west: nad83 -<203> proj=tmerc datum=NAD83 -lon_0=-113d45 lat_0=31 k=.9999333333333333 -x_0=213360 y_0=0 -no_defs <> - -# 301: arkansas north: nad83 -<301> proj=lcc datum=NAD83 -lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 -x_0=400000 y_0=0 -no_defs <> - -# 302: arkansas south: nad83 -<302> proj=lcc datum=NAD83 -lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 -x_0=400000 y_0=400000 -no_defs <> - -# 401: california i: nad83 -<401> proj=lcc datum=NAD83 -lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 -x_0=2000000 y_0=500000 -no_defs <> - -# 402: california ii: nad83 -<402> proj=lcc datum=NAD83 -lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 -x_0=2000000 y_0=500000 -no_defs <> - -# 403: california iii: nad83 -<403> proj=lcc datum=NAD83 -lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 -x_0=2000000 y_0=500000 -no_defs <> - -# 404: california iv: nad83 -<404> proj=lcc datum=NAD83 -lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 -x_0=2000000 y_0=500000 -no_defs <> - -# 405: california v: nad83 -<405> proj=lcc datum=NAD83 -lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 -x_0=2000000 y_0=500000 -no_defs <> - -# 406: california vi: nad83 -<406> proj=lcc datum=NAD83 -lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 -x_0=2000000 y_0=500000 -no_defs <> - -# 501: colorado north: nad83 -<501> proj=lcc datum=NAD83 -lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 -x_0=914401.8289 y_0=304800.6096 -no_defs <> - -# 502: colorado central: nad83 -<502> proj=lcc datum=NAD83 -lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 -x_0=914401.8289 y_0=304800.6096 -no_defs <> - -# 503: colorado south: nad83 -<503> proj=lcc datum=NAD83 -lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 -x_0=914401.8289 y_0=304800.6096 -no_defs <> - -# 600: connecticut ---: nad83 -<600> proj=lcc datum=NAD83 -lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 -x_0=304800.6096 y_0=152400.3048 -no_defs <> - -# 700: delaware ---: nad83 -<700> proj=tmerc datum=NAD83 -lon_0=-75d25 lat_0=38 k=.999995 -x_0=200000 y_0=0 -no_defs <> - -# 901: florida east: nad83 -<901> proj=tmerc datum=NAD83 -lon_0=-81 lat_0=24d20 k=.9999411764705882 -x_0=200000 y_0=0 -no_defs <> - -# 902: florida west: nad83 -<902> proj=tmerc datum=NAD83 -lon_0=-82 lat_0=24d20 k=.9999411764705882 -x_0=200000 y_0=0 -no_defs <> - -# 903: florida north: nad83 -<903> proj=lcc datum=NAD83 -lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 -x_0=600000 y_0=0 -no_defs <> - -# 1001: georgia east: nad83 -<1001> proj=tmerc datum=NAD83 -lon_0=-82d10 lat_0=30 k=.9999 -x_0=200000 y_0=0 -no_defs <> - -# 1002: georgia west: nad83 -<1002> proj=tmerc datum=NAD83 -lon_0=-84d10 lat_0=30 k=.9999 -x_0=700000 y_0=0 -no_defs <> - -# 5101: hawaii 1: nad83 -<5101> proj=tmerc datum=NAD83 -lon_0=-155d30 lat_0=18d50 k=.9999666666666667 -x_0=500000 y_0=0 -no_defs <> - -# 5102: hawaii 2: nad83 -<5102> proj=tmerc datum=NAD83 -lon_0=-156d40 lat_0=20d20 k=.9999666666666667 -x_0=500000 y_0=0 -no_defs <> - -# 5103: hawaii 3: nad83 -<5103> proj=tmerc datum=NAD83 -lon_0=-158 lat_0=21d10 k=.99999 -x_0=500000 y_0=0 -no_defs <> - -# 5104: hawaii 4: nad83 -<5104> proj=tmerc datum=NAD83 -lon_0=-159d30 lat_0=21d50 k=.99999 -x_0=500000 y_0=0 -no_defs <> - -# 5105: hawaii 5: nad83 -<5105> proj=tmerc datum=NAD83 -lon_0=-160d10 lat_0=21d40 k=1 -x_0=500000 y_0=0 -no_defs <> - -# 1101: idaho east: nad83 -<1101> proj=tmerc datum=NAD83 -lon_0=-112d10 lat_0=41d40 k=.9999473684210526 -x_0=200000 y_0=0 -no_defs <> - -# 1102: idaho central: nad83 -<1102> proj=tmerc datum=NAD83 -lon_0=-114 lat_0=41d40 k=.9999473684210526 -x_0=500000 y_0=0 -no_defs <> - -# 1103: idaho west: nad83 -<1103> proj=tmerc datum=NAD83 -lon_0=-115d45 lat_0=41d40 k=.9999333333333333 -x_0=800000 y_0=0 -no_defs <> - -# 1201: illinois east: nad83 -<1201> proj=tmerc datum=NAD83 -lon_0=-88d20 lat_0=36d40 k=.999975 -x_0=300000 y_0=0 -no_defs <> - -# 1202: illinois west: nad83 -<1202> proj=tmerc datum=NAD83 -lon_0=-90d10 lat_0=36d40 k=.9999411764705882 -x_0=700000 y_0=0 -no_defs <> - -# 1301: indiana east: nad83 -<1301> proj=tmerc datum=NAD83 -lon_0=-85d40 lat_0=37d30 k=.9999666666666667 -x_0=100000 y_0=250000 -no_defs <> - -# 1302: indiana west: nad83 -<1302> proj=tmerc datum=NAD83 -lon_0=-87d5 lat_0=37d30 k=.9999666666666667 -x_0=900000 y_0=250000 -no_defs <> - -# 1401: iowa north: nad83 -<1401> proj=lcc datum=NAD83 -lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 -x_0=1500000 y_0=1000000 -no_defs <> - -# 1402: iowa south: nad83 -<1402> proj=lcc datum=NAD83 -lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 -x_0=500000 y_0=0 -no_defs <> - -# 1501: kansas north: nad83 -<1501> proj=lcc datum=NAD83 -lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 -x_0=400000 y_0=0 -no_defs <> - -# 1502: kansas south: nad83 -<1502> proj=lcc datum=NAD83 -lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 -x_0=400000 y_0=400000 -no_defs <> - -# 1601: kentucky north: nad83 -<1601> proj=lcc datum=NAD83 -lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 -x_0=500000 y_0=0 -no_defs <> - -# 1602: kentucky south: nad83 -<1602> proj=lcc datum=NAD83 -lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 -x_0=500000 y_0=500000 -no_defs <> - -# 1701: louisiana north: nad83 -<1701> proj=lcc datum=NAD83 -lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d30 -x_0=1000000 y_0=0 -no_defs <> - -# 1702: louisiana south: nad83 -<1702> proj=lcc datum=NAD83 -lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d30 -x_0=1000000 y_0=0 -no_defs <> - -# 1703: louisiana offshore: nad83 -<1703> proj=lcc datum=NAD83 -lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d30 -x_0=1000000 y_0=0 -no_defs <> - -# 1801: maine east: nad83 -<1801> proj=tmerc datum=NAD83 -lon_0=-68d30 lat_0=43d40 k=.9999 -x_0=300000 y_0=0 -no_defs <> - -# 1802: maine west: nad83 -<1802> proj=tmerc datum=NAD83 -lon_0=-70d10 lat_0=42d50 k=.9999666666666667 -x_0=900000 y_0=0 -no_defs <> - -# 1900: maryland ---: nad83 -<1900> proj=lcc datum=NAD83 -lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d40 -x_0=400000 y_0=0 -no_defs <> - -# 2001: massachusetts mainland: nad83 -<2001> proj=lcc datum=NAD83 -lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 -x_0=200000 y_0=750000 -no_defs <> - -# 2002: massachusetts island: nad83 -<2002> proj=lcc datum=NAD83 -lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 -x_0=500000 y_0=0 -no_defs <> - -# 2111: michigan north: nad83 -<2111> proj=lcc datum=NAD83 -lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 -x_0=8000000 y_0=0 -no_defs <> - -# 2112: michigan central/l: nad83 -<2112> proj=lcc datum=NAD83 -lon_0=-84d22 lat_1=45d42 lat_2=44d11 lat_0=43d19 -x_0=6000000 y_0=0 -no_defs <> - -# 2113: michigan south: nad83 -<2113> proj=lcc datum=NAD83 -lon_0=-84d22 lat_1=43d40 lat_2=42d6 lat_0=41d30 -x_0=4000000 y_0=0 -no_defs <> - -# 2201: minnesota north: nad83 -<2201> proj=lcc datum=NAD83 -lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 -x_0=800000 y_0=100000 -no_defs <> - -# 2202: minnesota central: nad83 -<2202> proj=lcc datum=NAD83 -lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 -x_0=800000 y_0=100000 -no_defs <> - -# 2203: minnesota south: nad83 -<2203> proj=lcc datum=NAD83 -lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 -x_0=800000 y_0=100000 -no_defs <> - -# 2301: mississippi east: nad83 -<2301> proj=tmerc datum=NAD83 -lon_0=-88d50 lat_0=29d30 k=.99995 -x_0=300000 y_0=0 -no_defs <> - -# 2302: mississippi west: nad83 -<2302> proj=tmerc datum=NAD83 -lon_0=-90d20 lat_0=29d30 k=.99995 -x_0=700000 y_0=0 -no_defs <> - -# 2401: missouri east: nad83 -<2401> proj=tmerc datum=NAD83 -lon_0=-90d30 lat_0=35d50 k=.9999333333333333 -x_0=250000 y_0=0 -no_defs <> - -# 2402: missouri central: nad83 -<2402> proj=tmerc datum=NAD83 -lon_0=-92d30 lat_0=35d50 k=.9999333333333333 -x_0=500000 y_0=0 -no_defs <> - -# 2403: missouri west: nad83 -<2403> proj=tmerc datum=NAD83 -lon_0=-94d30 lat_0=36d10 k=.9999411764705882 -x_0=850000 y_0=0 -no_defs <> - -# 2500: montana: nad83 -<2500> proj=lcc datum=NAD83 -lon_0=-109d30 lat_1=49 lat_2=45 lat_0=44d15 -x_0=600000 y_0=0 -no_defs <> - -# 2600: nebraska: nad83 -<2600> proj=lcc datum=NAD83 -lon_0=-100 lat_1=43 lat_2=40 lat_0=39d50 -x_0=500000 y_0=0 -no_defs <> - -# 2701: nevada east: nad83 -<2701> proj=tmerc datum=NAD83 -lon_0=-115d35 lat_0=34d45 k=.9999 -x_0=200000 y_0=8000000 -no_defs <> - -# 2702: nevada central: nad83 -<2702> proj=tmerc datum=NAD83 -lon_0=-116d40 lat_0=34d45 k=.9999 -x_0=500000 y_0=6000000 -no_defs <> - -# 2703: nevada west: nad83 -<2703> proj=tmerc datum=NAD83 -lon_0=-118d35 lat_0=34d45 k=.9999 -x_0=800000 y_0=4000000 -no_defs <> - -# 2800: new hampshire ---: nad83 -<2800> proj=tmerc datum=NAD83 -lon_0=-71d40 lat_0=42d30 k=.9999666666666667 -x_0=300000 y_0=0 -no_defs <> - -# 2900: new jersey ---: nad83 -<2900> proj=tmerc datum=NAD83 -lon_0=-74d30 lat_0=38d50 k=.9999 -x_0=150000 y_0=0 -no_defs <> - -# 3001: new mexico east: nad83 -<3001> proj=tmerc datum=NAD83 -lon_0=-104d20 lat_0=31 k=.9999090909090909 -x_0=165000 y_0=0 -no_defs <> - -# 3002: new mexico central: nad83 -<3002> proj=tmerc datum=NAD83 -lon_0=-106d15 lat_0=31 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 3003: new mexico west: nad83 -<3003> proj=tmerc datum=NAD83 -lon_0=-107d50 lat_0=31 k=.9999166666666667 -x_0=830000 y_0=0 -no_defs <> - -# 3101: new york east: nad83 -<3101> proj=tmerc datum=NAD83 -lon_0=-74d30 lat_0=38d50 k=.9999 -x_0=150000 y_0=0 -no_defs <> - -# 3102: new york central: nad83 -<3102> proj=tmerc datum=NAD83 -lon_0=-76d35 lat_0=40 k=.9999375 -x_0=250000 y_0=0 -no_defs <> - -# 3103: new york west: nad83 -<3103> proj=tmerc datum=NAD83 -lon_0=-78d35 lat_0=40 k=.9999375 -x_0=350000 y_0=0 -no_defs <> - -# 3104: new york long island: nad83 -<3104> proj=lcc datum=NAD83 -lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d10 -x_0=300000 y_0=0 -no_defs <> - -# 3200: north carolina ---: nad83 -<3200> proj=lcc datum=NAD83 -lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 -x_0=609601.22 y_0=0 -no_defs <> - -# 3301: north dakota north: nad83 -<3301> proj=lcc datum=NAD83 -lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 -x_0=600000 y_0=0 -no_defs <> - -# 3302: north dakota south: nad83 -<3302> proj=lcc datum=NAD83 -lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 -x_0=600000 y_0=0 -no_defs <> - -# 3401: ohio north: nad83 -<3401> proj=lcc datum=NAD83 -lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 -x_0=600000 y_0=0 -no_defs <> - -# 3402: ohio south: nad83 -<3402> proj=lcc datum=NAD83 -lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 -x_0=600000 y_0=0 -no_defs <> - -# 3501: oklahoma north: nad83 -<3501> proj=lcc datum=NAD83 -lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 -x_0=600000 y_0=0 -no_defs <> - -# 3502: oklahoma south: nad83 -<3502> proj=lcc datum=NAD83 -lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 -x_0=600000 y_0=0 -no_defs <> - -# 3601: oregon north: nad83 -<3601> proj=lcc datum=NAD83 -lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 -x_0=2500000 y_0=0 -no_defs <> - -# 3602: oregon south: nad83 -<3602> proj=lcc datum=NAD83 -lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 -x_0=1500000 y_0=0 -no_defs <> - -# 3701: pennsylvania north: nad83 -<3701> proj=lcc datum=NAD83 -lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 -x_0=600000 y_0=0 -no_defs <> - -# 3702: pennsylvania south: nad83 -<3702> proj=lcc datum=NAD83 -lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 -x_0=600000 y_0=0 -no_defs <> - -# 3800: rhode island ---: nad83 -<3800> proj=tmerc datum=NAD83 -lon_0=-71d30 lat_0=41d5 k=.99999375 -x_0=100000 y_0=0 -no_defs <> - -# 3900: south carolina: nad83 -<3900> proj=lcc datum=NAD83 -lon_0=-81 lat_1=34d50 lat_2=32d30 lat_0=31d50 -x_0=609600 y_0=0 -no_defs <> - -# 4001: south dakota north: nad83 -<4001> proj=lcc datum=NAD83 -lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 -x_0=600000 y_0=0 -no_defs <> - -# 4002: south dakota south: nad83 -<4002> proj=lcc datum=NAD83 -lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 -x_0=600000 y_0=0 -no_defs <> - -# 4100: tennessee ---: nad83 -<4100> proj=lcc datum=NAD83 -lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d20 -x_0=600000 y_0=0 -no_defs <> - -# 4201: texas north: nad83 -<4201> proj=lcc datum=NAD83 -lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 -x_0=200000 y_0=1000000 -no_defs <> - -# 4202: texas north central: nad83 -<4202> proj=lcc datum=NAD83 -lon_0=-98d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 -x_0=600000 y_0=2000000 -no_defs <> - -# 4203: texas central: nad83 -<4203> proj=lcc datum=NAD83 -lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 -x_0=700000 y_0=3000000 -no_defs <> - -# 4204: texas south central: nad83 -<4204> proj=lcc datum=NAD83 -lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 -x_0=600000 y_0=4000000 -no_defs <> - -# 4205: texas south: nad83 -<4205> proj=lcc datum=NAD83 -lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 -x_0=300000 y_0=5000000 -no_defs <> - -# 4301: utah north: nad83 -<4301> proj=lcc datum=NAD83 -lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 -x_0=500000 y_0=1000000 -no_defs <> - -# 4302: utah central: nad83 -<4302> proj=lcc datum=NAD83 -lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 -x_0=500000 y_0=2000000 -no_defs <> - -# 4303: utah south: nad83 -<4303> proj=lcc datum=NAD83 -lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 -x_0=500000 y_0=3000000 -no_defs <> - -# 4400: vermont ---: nad83 -<4400> proj=tmerc datum=NAD83 -lon_0=-72d30 lat_0=42d30 k=.9999642857142857 -x_0=500000 y_0=0 -no_defs <> - -# 4501: virginia north: nad83 -<4501> proj=lcc datum=NAD83 -lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 -x_0=3500000 y_0=2000000 -no_defs <> - -# 4502: virginia south: nad83 -<4502> proj=lcc datum=NAD83 -lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 -x_0=3500000 y_0=1000000 -no_defs <> - -# 4601: washington north: nad83 -<4601> proj=lcc datum=NAD83 -lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 -x_0=500000 y_0=0 -no_defs <> - -# 4602: washington south: nad83 -<4602> proj=lcc datum=NAD83 -lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 -x_0=500000 y_0=0 -no_defs <> - -# 4701: west virginia north: nad83 -<4701> proj=lcc datum=NAD83 -lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 -x_0=600000 y_0=0 -no_defs <> - -# 4702: west virginia south: nad83 -<4702> proj=lcc datum=NAD83 -lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 -x_0=600000 y_0=0 -no_defs <> - -# 4801: wisconsin north: nad83 -<4801> proj=lcc datum=NAD83 -lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 -x_0=600000 y_0=0 -no_defs <> - -# 4802: wisconsin central: nad83 -<4802> proj=lcc datum=NAD83 -lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 -x_0=600000 y_0=0 -no_defs <> - -# 4803: wisconsin south: nad83 -<4803> proj=lcc datum=NAD83 -lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 -x_0=600000 y_0=0 -no_defs <> - -# 4901: wyoming east: nad83 -<4901> proj=tmerc datum=NAD83 -lon_0=-105d10 lat_0=40d30 k=.9999375 -x_0=200000 y_0=0 -no_defs <> - -# 4902: wyoming east central: nad83 -<4902> proj=tmerc datum=NAD83 -lon_0=-107d20 lat_0=40d30 k=.9999375 -x_0=400000 y_0=100000 -no_defs <> - -# 4903: wyoming west central: nad83 -<4903> proj=tmerc datum=NAD83 -lon_0=-108d45 lat_0=40d30 k=.9999375 -x_0=600000 y_0=0 -no_defs <> - -# 4904: wyoming west: nad83 -<4904> proj=tmerc datum=NAD83 -lon_0=-110d5 lat_0=40d30 k=.9999375 -x_0=800000 y_0=100000 -no_defs <> - -# 5001: alaska zone no. 1: nad83 -<5001> proj=omerc datum=NAD83 -k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 -x_0=818676.7344011233 y_0=575097.6888751927 -no_defs <> - -# 5002: alaska zone no. 2: nad83 -<5002> proj=tmerc datum=NAD83 -lon_0=-142 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5003: alaska zone no. 3: nad83 -<5003> proj=tmerc datum=NAD83 -lon_0=-146 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5004: alaska zone no. 4: nad83 -<5004> proj=tmerc datum=NAD83 -lon_0=-150 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5005: alaska zone no. 5: nad83 -<5005> proj=tmerc datum=NAD83 -lon_0=-154 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5006: alaska zone no. 6: nad83 -<5006> proj=tmerc datum=NAD83 -lon_0=-158 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5007: alaska zone no. 7: nad83 -<5007> proj=tmerc datum=NAD83 -lon_0=-162 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5008: alaska zone no. 8: nad83 -<5008> proj=tmerc datum=NAD83 -lon_0=-166 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5009: alaska zone no. 9: nad83 -<5009> proj=tmerc datum=NAD83 -lon_0=-170 lat_0=54 k=.9999 -x_0=500000 y_0=0 -no_defs <> - -# 5200: puerto rico and virgin islands: nad83 -<5200> proj=lcc datum=NAD83 -lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 -x_0=200000 y_0=200000 -no_defs <> - diff --git a/app/android/assets/qgis-data/proj/other.extra b/app/android/assets/qgis-data/proj/other.extra deleted file mode 100644 index 4b5797e9a..000000000 --- a/app/android/assets/qgis-data/proj/other.extra +++ /dev/null @@ -1,53 +0,0 @@ -## NAD83 / BC Albers (this has been superseded but is kept for compatibility) -<42102> +proj=aea +ellps=GRS80 +lat_0=45 +lon_0=-126.0 +lat_1=50.0 +lat_2=58.5 +x_0=1000000.0 +y_0=0 +datum=NAD83 +units=m no_defs <> - - -# -# OGC-defined extended codes (41000--41999) -# see http://www.digitalearth.gov/wmt/auto.html -# -# WGS84 / Simple Mercator -<41001> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> -# -# CubeWerx-defined extended codes (42100--42199) -# -# WGS 84 / LCC Canada -<42101> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=-8000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> -#EPSG:42102,"PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS_1980\",6378137,298.257222101]],PRIMEM[\"Greenwich\",0],UNIT[\"Decimal_Degree\",0.0174532925199433]],PROJECTION[\"Albers_conic_equal_area\"],PARAMETER[\"central_meridian\",-126.0],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"standard_parallel_1\",50.0],PARAMETER[\"standard_parallel_2\",58.5],PARAMETER[\"false_easting\",1000000.0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]" -# WGS 84 / LCC USA -<42103> +proj=lcc +lat_1=33 +lat_2=45 +lat_0=0 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS72 +datum=WGS84 +units=m +no_defs no_defs <> -# NAD83 / MTM zone 8 Québec -<42104> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> -# WGS84 / Merc NorthAm -<42105> +proj=merc +lat_ts=0 +lon_0=-96 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> -# WGS84 / Lambert Azim Mozambique -<42106> +proj=laea +lat_0=5 +lon_0=20 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +datum=WGS84 +units=m +no_defs no_defs <> -# -# CubeWerx-customer definitions (42300--42399) -# -# NAD27 / Polar Stereographic / CM=-98 -<42301> +proj=stere +lat_0=90 +lon_0=-98 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> -# JapanOrtho.09 09 -<42302> +proj=tmerc +lat_0=36 +lon_0=139.833333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> -# NAD83 / Albers NorthAm -<42303> +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> -# NAD83 / NRCan LCC Canada -<42304> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> -# France_II -<42305> +proj=lcc +lat_1=45.898918964419 +lat_2=47.696014502038 +lat_0=46.8 +lon_0=2.337229166666667 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.999904194 +pm=2.337229166666667 +units=m +no_defs no_defs <> -# NAD83/QC_LCC -<42306> +proj=lcc +lat_1=46 +lat_2=60 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> -# NAD83 / Texas Central - feet -<42307> +proj=lcc +lat_1=31.8833333333333 +lat_2=30.1166666666667 +lat_0=29.6666666666667 +lon_0=-100.333333333333 +x_0=700000.0000000001 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> -# NAD27 / California Albers -<42308> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> -# NAD 83 / LCC Canada AVHRR-2 -<42309> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> -# WGS84+GRS80 / Mercator -<42310> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=GRS80 +datum=WGS84 +units=m +no_defs no_defs <> -# NAD83 / LCC Statcan -<42311> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666700000001 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> -# -# Funny epsgish code for google mercator - you should really use EPSG:3857 -# -<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs <> diff --git a/app/android/assets/qgis-data/proj/proj.db b/app/android/assets/qgis-data/proj/proj.db deleted file mode 100644 index a6eeae97f16aed37bde1dd13aa44d457d346f375..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9261056 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

c7U;c;;k`&t@A@2i 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
pZ+0$x5Ht34>986cdle)&j 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
i(%ij^`YAI^vEC92*=-+qt% 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%0AM{sJ7_ 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%0DtEJdem|ZI~b>7waPG%N&c;_9plbFRF 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

vwqYx_U^6yhBYwsPtjACI5kKI2e1~uG4Zg-# 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%0DX z;Gf86;LmyXK+SoJ-2WeJSZ472-V^oYxF2($?w;p*-SsoqkDS{f3((?t#nEg3#{Ogb zei@HtoRLwHz9apH^d;$rwCmCuY#-Y$wv|}7Sbt(IwmfY))sky|*xYCKnC>>MFjK?9|b8VezApx%K?SH2AnCA3TG6W}#V9#>zXlHSDy z3M4V8T*{9Qm*1~gf>ykaeVNnoe+N|$h8BmKn*XEfLD;I{YMU%KRmMCGQ9Mre~deXDt37xJ;z~>oW#|_P`YEM znq&->Dy)$#CBdrJQxmER(Qz92r#D<`wZfT$mu5HM7YUqC(r?*{LLc4&FQbMi| z0;Q!Arhgy5&?;%zHux6o3P@&i~LPZ z4IyuBySJ{Ry`$L=r$S}f*l!dp55j|qslypUmhg;WXBqPDqjn4tB`puGBpgLb!fe=i zjy3G12|L)92V<_RJfVvJ0Xtqno*#^2&hR8|cF|EB2fOik&Xxz^X4tUIr4Ue z>rSFk(f&P-BZSUzqVP;VzowGnovBF zW*&oZocY|anNCice2TI%TD)jHF|Ztz1+qJ{B9KOFd|Rr;4GHz+8x|6=E2(}_)Xq&i zcIV1@3&p22?x$lQqQtAold^kmg8u*48axXO9#w+wrhtz~Q#v zY7b_7lJU!o;`CS3FHA2?dopb>Ez@?Vt;6~y)c)64-i5pWBJ-Q(wdSDNWV*}L2i5;C z7%wy)Zur=6t><@=oBy%@&&YE0bR=(d$A8|!gqz7-qf%O=!4RCYo6;d@dVp5z??3&8H3nfDo zN@6;^NIW616kj$%Nhoy2w=l()qBX@pE@g=}yO^@?5a|b`#zKhG?+%fE<;4n}aq4#m zIzox72DOfm9;O`x$}7e*=RZcNJeAxc_zE{^TdENqYZOHt&W}mVej>ZuDpXaXbG;p; zZa&l#BVP{$fyZZqoR85(3ngC`ND_LyS>VDVTFr>w_bAkP;Z?hg=bdOGtwFiK={ECF z_9$OeQA#(#or$NALE1ao8X&pT4vjXWiO*t`jr+o*Qmc;SZ=MwDDsklzH{^`QK8mU( zdXy-BlDW1WKRSNB$|9}$I zWbz%O+uK@#@D#j#0NT>^j`ulSiPB9L6-O&X6Es5s@`cuMJqTClpUQybpt%;K?G25! z6=cIEf2oJin|@C@<=Z6fY|^$7rFI+-phA6ow6)`kr;WSWlJ|{fW@l$-XJ%)tkXIbq z9vlteYH_5=sp??71K&hsS&!ih;Dx1`#r0|n`2keUjX3B934|X2_rLH92Ug+2f$y23 zyb#%i2E-(bUib<1B`ye9kQ#ZH)*g3HoAY2Lb)!pCvZQVv`T?YM!#%tevYV7p#S!&p za(AY^?MU0eax+nod2Cg@0rIj`=_d~02L!<0?yKl5f1~{V^6B#9;p3U z5q{NZOZn(o0bsz z(ZlHczghFDrsBDZZ&sXB(NnR!{Jrw0%C9YtmbaBJD|@%>$7R=-Z7;Kx<&{2DdR^&A z>2alHC4VY;q~uE_+e(Zj#l z;i&VhkIj2*vx4U9ipGJd)R%4IWPm(dhX zHAmtjV@eQ@Iu;-{NFc`jlj~85z?}*|zf=!{Et0{LEn~<3`G&<(| z+aZfz0eDRv3|}o79%+fh#}wdJ(~J&x1f$cT!R;&xRWxWtR*u4eYfD~vGCAsH9i0%fBk z)104_SFx~<%%>k2l|2FxFnUTV-=_I7(lizT#-Sgf2UnHT6Ef^<>vTaS0Gh@!niauj zpO1xCO3&L+Q*dlJ5SwI&me5l%=nbHFVQVlj#Evdr2fSM+;oX3{ue$|Btk|(dG*N+$ zRv*yBP+v$-+_ny%-pGzCptVVVD{NoQ5N$&x64~+j^!U%Tf_om?XrqX^0>V0)xYJvp zC+-l}svtyKnz+-tTASg@KSNv|tt?O7=&$gSSML>vMM49px_wzl{@Ee*(d zZ)XQ<=)tG(gB5V7+)r!3%`lkjfP|MIG~Z+eqVnJL-1T+0LeXa$<;wq~1-I9yFa?$W zq6N37D-;btZ!#9*KUae&u8@eL-|O$77fj{r^zU|~Q4D&o)4bp0^7J(uS$0lB>0NsJXln|LO@;_V+2LEMHCz2w zcdL>D-$HE-)o-?Uy132!&WmP+%t=4qeqGdbSHIESs=P6rLc@JsDsI%4SNRU55~^Pl z#F$w^@6sszt+lV)Z!@qg*i0$K>Q~!5FcC1_3j0$pJ@^%Vuti~T4`otU|5Yq^?T3UG zV2J`g-IP|TewkbrP5s0s6X>DiMLksg7onJT>Swy>XZ|eoKuY~gC;iNyguAk-pYc)V zQuQDCQgi4L;IRS&y!2B20}){>Yg$!x(DJ(vT4}VfliW^A&hJ`W{=RMlyFF=b)X!Hv zFIsDqKr+T!)sroK-B7=V7Dw$$3eT#zzoU;`?b_wkdZ_x0Cm4oI0;mbXS~c3G6jfF2 z(C;J&TLp{25_)J`dtWoyK4y04VoGf1pV1r-2Zuu8hNiLj@G#(_uw85CQEZ!kif=0@ zZoLvWDkzJo;sl?fdeG)mKr7axLm+HL3M|%A6joHYJzfCIZZg`u;)9QvPE39pyX9J>`qaUM;)7?A)^MvK6JTl-^hR#nNr17JT;qZpjrT!zGTAvf@7# zKU#cwaiG{-oL}_2q6dn;P;^RBUEv3Xj~8B9ct)WUY6ZSna6`dF!N!8x{D0;@n}1jS z`T70%_WXIeS9IUkU9B6_ousSM{zdyR+#v94SLVHw_f+1Md0X>V=Kd}BKBytMId^T& zM>#*pxhf}=b28Ktcun(I#jmNeKc(FkzvuM#H7gj(+8{mh-M%&$sldM>dgMD@-O4Zr z>5*^yyfBirc(whMx?KDgwAw}4%+L#hStA3KjlTHJ9=M(wg2O0`SCIYyWhyLsUS?FV zrovm)4=nl(Z(HDHEg7$^B&G#D{@45uq!|AeCDx0cla9yc5I&w((nijrbzPD0WPoc9 zj*UQ92bMK`cF^!{QNu4f#ub3Ha~Rr(_%jsYP?3N3c%bd2AFTHW&@Z{7@m=tEjBA00 zzY6XQZI2ax(JA@GI^h>vLeQrt6b*$(6%h41;4zQnv9+?_<2=#8U?>t(c(R+?To$bn ze$WdnfxbWr&upR@zPc6IpfIqD+EW*;;(^DwzMzt`NZU!z{Yn8H%yC9|eKh*D!gw^b z%FOaow%Wq?T}^$>R$)s_T2(;#KZQaaT!P-W8+#6ni$o_B>jo<44j~&)bA4gyFc5J3kT3Qzk>~G!kp}lNKm!)jGj=>p>R+Il95c#JiDJ#O-Jp6r zqw(>8g6~zk>v&Ki?V=K?`C(f)290OozhDH;|3r8?g3#iP{;A53Pk?8=l4qYx{VctR zD?g?M>-OfpZU<{4>Q1Ex-UhY?gp+89Reow!)!fQ^^O%uk^s4$sM_?opgS}7bXt9wp zt7~qN^svWeWtbmmqaV4MbjQI>NtJ)4l~RH=H+cg)Ba>iX!g!V~RUUetZ)}FDXrL98 zhcl|-2A>DD2r;uJTa}w;-mjn!Q2pA1ezb1M{7LC#o3?_8CUe(WOGXkc;_Eb!!G zP<@a2H3O|FzO)&lBBAgIstXEBnYG=k^pq`Lb74;)8VCorhY)HCD`W$`LcWL|h$8>J zMPY@krz!bDXBc(&3_{Z>)PxEiQ#i_2HPF9ufe+d~5h@hs<5+t5`M$se>Z-1I0I6C> z6MY_Z@r_4Am}n&~9YdL+HRpEh1Z_G-_-aycMb^_lG2;ov1|U?3RIpJ&QtD`xo!}4e zh_MQKbuFy~&k+v!O54sF8lBHO)w~7|Mvt|35g2%XO zB^-^5a14)H@{8a1^un=}-IcY&#T8G(`Ts|nikm97S6C{_%U>#gp!^HvrS3JFt(9y6Q$|b{tQ|$gBQ}sE;!vr>fpHccGzos+qpGd8+1-X zDyOfry9JypltrjBQ76E)x1lIYCQllv)wkw{&`SxbW5PyYU`0!}hSJAtp5TWw3Qf0) z65G}Pa0N!jpy>zFP6`oQ-BLd*_q?Eww zr@O$=0%f zNiD3^-*+p!^K}cTDO~-45M^oTVnc1Z`SkGnMKeiZ#^+JWVb%UNxF8mcgoZHRri6pD zxM}OkshxP$yUsp^6QHh?I>)Sft*MP=L?I<|tG?q3#=+m9uzqxurL^i%_ZYNlgCq>r zOQX|L6TIq?jsOV6*f?uj=<;a5--fXsxY-MhG?|&pr2#+O6ATBVp<&jx)8$Yyzv>}y z)`U41?BdWwn}w~R7S*Z;TcBa}B%I2^unDpcX!p~YKhO~f?}CeR3YMn!-;{8!y1#88 zv`Yc%|Iu@DpBFsl(Lsfw|Dw5ZFXT6X|4V7?KPe~ps=J9K8yp-o4+}R;hM=t)!|ww6 z7rvEziXN-|2eqnJeF3FTDY>ivN;7V{-S2FGWDA4B-u3~_kIk)qBO1(Lt9^&&aVt{Q zJ|=Rm{g58$L8p9npstvv>14l?>re=5YTu;%Wvh*}nqnD_;p+{iKppHRa1ooCj#nsMwDJxVb;9ujCH((L;Zpldv(weBV7h95OwC^H zQ$3qua{$P!zS2I`2JVXy(S1?-7*b|ja7SQ#0<7gRsF*!Fq$E+875J zprSu-33^2P5RKq{eUR>=ObusN(_&F z7oX^q0&d@@PIO2A$!BJd7~21#gphmJ8yHkb3Dkb48F+ZQ$V2Wsneq@bZZTmWWm$2z zCATJvjox*&_fx{d-6|c;aPoeNIb6G^uUpZ|(cViB-H3-O#OSs6&`7Le;vqOlPu$6s zZ&8p}T+`-9+q!~Ixs96n74c+#4I4Fio#NbzNioevGI}vd-*}zIA|?YZ$ttLPol>qV zqH@4e;^-uv73+8>5Iq-Fv>SFs9ZnUb?5e5?nktUUOBpAql6;ppsi|18gifZF4zJ=U z%9j7q--=?V2G(lRUPIZ}%YT9LOk0CELIUAmFjGOd7!-8N)s*46{O21X$2&F|nMS92 zh13Y`*Qh18{HCr>uhI^6B~8E$B>1bOo3Eh9UWYtW%F_R38iA_;0R;z%_A4}POHme3 zUFYy{Y!vjRg1*0)nxf@Z9f8RyFmzxEur|2%OO!fYUWu?)(tHC@pPLSc0FUII(PDm(Qa#6=zeNSXR>#7!QoVo{A4I3Z#9O(!Wc!eubno z?IdLpEm^zKgJjge)d~BM0-LwfPp!dE0gKZ;bq2-5C96@UB-ACNm#;PiC*gtSys%U>;jxcvO`j`Etam&@)h`+Qkf+0mu% zmhLURs&o{x|L2#yTJmVg7fQC2tSiwJKUaKnaisVJs1NvL(bYxqqOPLlh3^&q5OV*c zko#W&@&9iWL<^eoKg|DT{^|J|-M4g2+PAg0X-|XG{txnYJtmy{_eJ%y@hR_X1xWycXxDj`TJX;QFv=lzZbP8N8b)Z&7XdB zmt`n086U^lS^Wls!Q2OcAQ@i-RL~0E#Na>>^ucH(xV<0Fu4Z*$tp>Aw6M%*51|rye z54h;U$X|dUT2(@{nQiR=ahVjN&eQDeM{86yETdO|<>a}i^)xr(6qU?j0Z;o4dMgys zU@*&rdokJY&1g4m1k9F7smyIbM{I*iA`N<*y#qi&Dy%pKIqu$WcT0aun=f-J!GP?y z8ZGut00x%>L|_^>>=)n%L3G+w!ZX`!TG;g`W;I0LBMET!^e*Jvml=m&Sq5cJa>>~}$rTF4oL zq=0_^PDn``SGj0;Hb8i-8-5C|7>Nx1y9+Wx;EWhlDTM+^hvPH=33r`DIs6D8I^niM zAl#3_I?+Ky1BjAc9kZr{BWn;PF1o*a`{@Kq?} zl?NMpZgn2f*4H(Ix!>O!fDmn{pV$HN-$7uny#o9Sc{nFuc+92nSkn3?&)DD@eDy7_ z2yr#%x+Xqo(vO27z#^-j|4DQ>Ts(+JeccCV7o;8mMgBP_PMJ{{>IM5G4_}rMhBgZ6 zkqVDto(TA4$a@4dY!2z~x37a?`0||q^dw*^?2UFZ4brh2X%fo7w^jinpgoiL?tYmhd`mF6_R?Ay1jY;8MdZQ$1!q_AV*rls zR5)iM`yn~!yZoo@r|8QEx>UOjaA^TJkl^ zozSd}s?*btxI}Lh+DBQlS+|~kq)B`P(1s58v?Z)-fEkwF_4IL&5(;A#9O>(*q4f_p z`CVwNp7w0$!jxfMf32qjoPXd&Gn(p|(PQ-JYdjsW{8EhG4uU4VKU04ixoK0^+B0Qb zui&K9jZ!}9dN*Lh|9}!t1}N87y}h|zAwfwOpiWoyw&r#KOX%aUgyPIi-8Py)D+ZW? zz02aqAKUy^6p(&PK6 zqiWrS!tY2^Ug@X&RG_r(izzZ*=?A;1_(|Ot_@5JUQt1aeDVffM$LJeic`uzF8@~fVEMwbry=IAFZ~mo_uESTRdP?s zKuLA+Q^jW$Hx&JE(G^84h5snLr*N=vVZjgKPXDp_f6Tuuzft#&?si>|cE9!(ttapO zyc_a1=6;lWbFMFEf6hZWV>z{&XEo}TGM#g7h1J9LO=K`E;t@LqdueB=}jjMGkz~SA7c!kf% zf+N7<+v;h~?to&nTKvRnNgh!4ntj2Ez*xU8FcOGvk4$FHGcZ1pcfn|}_5e(<7e$z; zP6)EqP5oU?SC<<1hX52BMgvgkNoucA0#wbpQUGbUAv~crfhfg>BuJkh>XPX7YTX1j zi-RFvp9Bg8KeHm-u$_)KZh{mH7N-|%q&Th4?7lXyf zz-~~2?E)TWE?(HJV=(I({vMlTg{!mMuVzUJl3+A3!nH056nTj=$5H@kXPh#7kMTx! zg@Y;<6rtF}YR7tSrw{p^ko}!GY8af=Vr3Kv)F$tM{#h*!6~}U(PKN`t4lj1Wt-ID6 z+z}d#^tXY729}UYCxpRZ)HBL*4XhlGTcsd^E;7-+qrIyE5_HIF>+JV;LiaOu+yjVK zW=B}%b;5;kb%3l^yA`=7u{%-F<14*Rm$MToauqBSTyfBm4 z%`eR4G6)mFJZ7OcAcc;Bb`*h@&8}&+Gtic9gsm9p%toi_X^-CCC1{Z&aB98Qc88S# zwpakBGIC%ArN#hTgn?zHAuSBBg#s|OLTj~{8DKR6FtsjKtHsCws}_K%m0PRDzyPZf zfT<7;epg{dqf!8-dN$3B=Xmb|9++y+vDM55mF5e;ROnekrkP#q^VM2oeg&7-$~8^~a+?*|ur5Q64IAr!QMlrnW26-1TI%ptTG$EOK=wcrdE zI69YsFP~t`u;KVF90_r#Ubc1HP z+EcWpd5`3c<#D;c%KcpKF*(1^naSCpc}er-)E)q-XMnNS!l*c-L*>FZ7;N~ECo?9; zlRor1kIkg7S33_DBQot}Ajc#i?KYEokS26yhFW~0Aa0j{G(gXB^)Ss0%rm4gtv0iI znD}fj!!sm>X|o#D!?gAS?GQT?X-CyaVL{u?{dGN%a~%soH62+0YEn9^tid_bwY9;a zU$5321Lm_?7sCXW8gmS(dw|6n)j^NHy+NI6$HQ_kGd$#<>?gTz{UrBIE#GV=Mz0L| zTXABOO7#kBkKK$0&^`&Ys@U2Htyas)ASIoWSlHe`Z+JVDhztv1xEKkm*P+O1e@ie( zN-#loCx}kYwO2zHY~B{>^V?E9-|O#>#iLWfo&CcC5J=9%K)wdIsq@;TK>AYv84tqV z5fgGC@xxa!=Y!AicTv<%lGVn5IvtX2(5(;EpzO@)^EBwwr#{icVq5Cz@se#=*VR3Bi@wac#TVRR7;;;}OHEPj6vGx69ww?Q!}Wx;uN-&`RK0?Tr1>N#OOnv4eWO3ik0Jv5Q*f_xAB9 zLK@T}py(&p~>^|NK@DQykC)H{-+B~q#@Ig>mW}a>+QKxR{ zgR>LUDAVUH-EdzFPe6m}!>&!iLEuipQ;VG0!uZIblRZw;Rbluf+0VKgT-}})uqLxO z@*2$yYE1wP!BXKM;88PL*|;cp)txPR6>fi`L5STcQ{|1_Zcm>Y4}B6Vc5glzV7Z)7 zVmb4vOtRm~?9C^2H>1QhwQAB}Vz>DdyS5_Ut5!f}Hlh*1CuFtS2eObMwGfWp22D&; z@o>dhMQ!=>Q?Ev69h}8mRQQy?A-igGJkmjxKzzaHh~w z@LIu@1t;de4Do-v?hm>z=}g*}wC8Kr=lv${oV@znU*?{bYs`5y=f<4PIpvz~!%qnR z7%Sx_gg$Up#S~%DG3wcU;>Pw)e`lW)OaV1cX#&n-VD{}B+B^fQXWM9IP3!C1Jbv{A znr#e5*CC8l3XQ>NWry|5W+QW< z;~EOAB^$5?2JF=oSaUXD^$ggrQD9A3fHgT7uvbxF4cUOTGhn|;fz@XN*2aLnQVv${ z$Of#H0s9pR*k%vZ?8pYJg#r6z3T!rVYhstf6%<%&HrSdNY%iz4X0sej>?*sA0-Mcp zFtMxbQVOgw8z!);>=FtrEC-bat-)wySJ}lZShc&d(a5f{izu+!tTLmGajbu-+q1bv ztwROqHZjMk3tim}1jo#+EV2z4EzFVhi~a`WXy`u`z3NS;s|BgYaUz*P`Grm&To+Q2 z-ol%JdIhdsfMKby<}slLvXxgNXSd+7IN#%G&YU;_C4)W$=cryOpz~aCUuPIn-~JI>?JTtg<1y$|_Cxb(3BM3%=k?}#EBLZ(}@~MYtI0fb`8NdUt z^xn@yo0gIOcJw0N6jK{$H0mA95#@6b^@XWd;XNP%YG-ZDv%#`c@340m7=PMlu?W_o z9KHG}70Zxd=CCsW&yoUEO{&Aj0Nf=7sP-TNx1tz;JEZ_sYYPRRRpyPv^fVgOEw03BAfYXpk;F$cpqe=t;gN-@~k6zNHPMpi9*3aOVd3`w=n*;$WC z6hl%i9Cn;ifj2n8lXfPCq*^NMMs)ty!^QiGhadx>ru>QWsq(dDFP2?e)>Qg(=|!bY zC2yD9RMK6N2j~BZ;%ZQm`QZfAUB3kJ9~2Hv=Ak=d}s& z0KAZQex4qB_k9sO059fT0X_S2GqqG9jo$LXd9wBM6n(&15pQfQHB0yD%re@Os)Z-`>$OwVDh@#!CBnHii}4zGaQxXTaU(F!fIv2m0%v z-6v}Fsdkl`3?^n8ekOoD0H{VLp8Zo|oMsIZ%v1*EPl$&yYnXbQiAflLnoyqwLwPd` zT&WDAKL(&sCpTL}!P#zR5d9JOq4khgp?>ChMBy?HW2-*}(Ex`r8=zR;At->(r#O5h zSj9iY0T8`48=y%{ZCeFm^e`;5_n*NrSn_?U2} z<)ehEb+^&N0^LIcRgI~|h!&0v)9=$j)tVzlGrM7buiNkJRL@AGo>9O5)9vYTLg2-g z&4MAup@B{P`K|y}oe)Ar9o9SW-*6ipniG4~)?G1}^kzomdM)p@jj%ij@eI{xOrwpplOAXVYf!B>3*z|(MxWo0 zjA`WKfKt6G#owg2FgK#^L*PIn)Oa}r+rVOHz}@SD>}iz(CV(?qkY@wO&IJ*>rwKBh z<3jRG^#XTHaR7I83F z2=5{~ydz2H*57uAU|SEU6+{J{{!IaxYFI{QjrEbXU=5isl#YExfF-zi@rQ2L-nlY%W-q|Cju4<%jaCbWiK9 z)%EHswZGQhq&-8sI`8?sZ@^6eGyK4(|32lwCx-)&&ArTlvbh&S-AG@{W@iW7-*s4h z5D??Y2M#VWccI1w;K>BFuy_!S>vlW!W&@N6Sqvp3g@=3l+)i-rk;ceouCA@a&7tq8 z=ZrRZZW){`gy(vkt!+JRRx5cDdb-w;Z|LXXl1}wfTnmaI3!|J)y#fEPU+6b0$I*gr z&@I~{{+7R|%L}2PzGkP-4F* zhi;#DJ3F}MUJm}^_BM6)!i{t((+zru9)RGIW`tkRavod{(9ymFWYz6;`kG}Az+GeT zWG>t+`Bjh0Y*+kMH`n3hP2BlB%;+0`L0$YuZE0V9r_H4z)dRxqZMRwF`OO*hQK2>y9)^=dDv!`bI@Se05U0m z03<0n-pUv8gQu}-)zhoJwb$9IH=tMW9i*5heD!$o=^|F1-Yrg>Ed{gDAAMLxJ@p`U zHXDU8y8A6voSt51v%}cYOb8^M>Fdy!peTF0+}sAVmOz!Xb;DOQqfs{MvQwp)K_uSp z_Yz>x!pZODvhowrr4r)+9n}QiRq7V%iGR>D@v>G$6BnnT&G?KL}fp zz0A&eJrqR1tj*ovadtR;%sSH}{{_uEyS>Ao1lIw*8RWbJ9gInK(`s06rxqW2&TdbF zlE9&;(xaLrM@#lT^duZp>|_$rI}Z9-NC2drL<V{1gJ77go!wBmo&1G^jn&!F z+0sT)YcX#Irc2Nh+6)Q*=jx#9ac7s?>Ers`pszqrbLf&6T<3PVxt4CH*NqCj+vIQ! zMhje!UUs&KpwN^=_&-+%D#F*`uxxPH>u3KB8obc}nn7aJpe?W&X$JfTDD8F2S0)s| zfO(K?h)tc{UG;(9WCZWfA=ss?Ig9f>bAwPu&LW3t$pP}lS5u7x4%P?y1EVH4YaLtv^q4I@Zf zzy$@z0?`Ha>*P%kxLJ~|gB>m)u>}>LgCaPPNTptEEbRT}UqQ&MH7i&abpEf_L^Tx~ z%FizQLz%nu?vm$AHWq)OXm3$Y;YkH&XZ9NB90i$Dqo$HZ8(&nMp+Q3%yzm=Eb54a#I|9%*MkF{Ox2zj4yu7j5K zBS|VT(M9N^mj6y9n$XL&gm9+-&J&2oVh!!lIBFfdD*|Yn4Bf$rvA`hoZxsfC{_!_> z+D%|UBW`emPIz@b!5f;}|}%Tto@i=i721_{eklVEhDBEbkpSvd)|)FdoRNy6i`+YSZ^%hHfw zPe}qCkmV#;Q@gR&NurXj(a zk_7Mv$w|D}3$Mk7_HB%yWQL0JpcX-G)9J3~WWY8K3?HBwbd z66`-aC~KiAH3?9>B880vJxeJPOsPqzOi4ohMM`U-6wJKMWl1w{cC&U~S7ahS7Kn0v zp%|F8p%^h-yJErkP^7^dgm$cxkto7Kt3j`|G80aMos!Yn1K6zGnZ%|5y_3DrMrWBT z5)V)A-C;MXd3k=Y#0iTKw~hj$4l&cxY~kXD%tEi@sIH~JMeFP>npbt zBbeu3-p?;T7`Xi{C2j`nuT{crIy>C-z_)hHH<@Tw=VHFW3(dE`c%fMn`fp+)#Ni5I za5jqt<+I73cN!bl45NP-HC`0=^quw-`1e!EcOZ)YzWJB`KG}-D<5^j7lT1lf{+j=o z=md-{4rVd&YfFYUKFgK=sVO)%0?m}Tj==Z;bg4zoHqrE!d}$$vwT%dk+IVBz3D5rc zjb}b9L3FBd-ftuCpLf%LOTL?KY~6!-B>8SfW81|vk-LgsnZQHHvO24H&E4c9IsZSX zsn}WmgYt&5^Gn|^9W41}iL?0YMRykdwXnV5o`TZ+9l9Cq#d%ld-k5WTCS?_WajO2) z?-G;XL2xGw$#sv_fG9z%8kkqy)WI(>E4Wm_oj~e*fp;J>Sug*HJO<-jWSHv})}+<9 zp7TRr@yQT02_+4O$994?9ELJT!6D>R2*kKrad<76Nrhwg{&CFpk~)IaT0fwR5<+;;bc;QQ{&omFiBF>z?A!S`IT>C z+iE3`V$oV2Cp55jL_`r;nl#%)OOv&jD*k~`G^#+ccsAVfmz+cRb-=iNjBqokz^!OD z-15pAm2qnVzHOOKiregmvkx~%qGLlSOb{9hLCfgyBW777ocekNm(JT);Igm&7U z(a;D8Vqg-)5!L-9u?S>7;GhEpAE4teL@B^@;7~6VC@CGr606l=_DK!r+2ROcFnc_S zeicM~kd}z7aOY5*1vz7QN^!KothZZnq$P&9f*CXvoC=ObCQ#>TLa$aey{ll(B&Vv` zm*WlI$klpOaUPm!a)(Cl)mPJ zhtQ=82sNcdC}jxZ;30I00z%G|2&Ifnr9@~A$j~}UhEj+-R)G~43kdNCNQ?`Abd)N| zDd}uY?^!~QW@t3OZSUB#mica1QkKxb+Ov`$6AKk&U6gu3sbYX+(}u=@VQ5jzIVZ>9 zjHH09L4wQFO_C4O(!cERO8&A7zvmCKbh!MXKMhEjwe5Zie=leoYP~4$_fE4F~ zZr+3F6^D?=5a2aDM^{OHeQJ+?A0|-p-Sle7haHWsJ@f!2ly!izo0@YOq8JE%A-p^u zMZvL)5QV@oL&b17LO_U3H%PD<*e&^>;3q7uDAvr^JfMHh7A4v%oqKQRU( zfCK*gUKoO~I^-3A7(~OmToql!)$EnF9fmP3*3DkHm z^r;Pg&3zJKQhTITP14pRNfyTekz{eCA?eNoAn9}vz2g)0DnxHn4;YQ%k&!?+o}W{kK$iFKq_231p3BT{5PAQ?2+Q_J8(2Oxq05J6j_ zS}uZu9u(&Xzax`W?GKKD_Jfm&vi@s|Zx2m!&R9TM@RCo<#m*sQCkSF!a$@V#8(+Uf zB4PuLTl|C1{`oDOLB)&W@Sf*ReyPx~=2bk7?CB$oulbMqzxN()A>So7VFkZfPGVXG zU)2>DO|9Vh73L3xcg9n!F8+CnL<1iyOp-Ws@?U$Huh04YS_#=o>U|1G z^3sYU?W|S$gX04sm^gf%gnqt(?ST{%2=sBS(C#l2+ow;{1m#Z)fX7#U3|s{Bkg zjm5{~lgi|h$0-7Zpsz5Inhig^+&A-RdKaWl6dfOrY7wcBrE|jg_?j^M{n`(j?Ui zX3}g_+tpE>#**4krV_&slBk@v;r{|D#) zCpG1DWtW$}Qd(DXM)3(nn+q>42vuMRIkPBu7E8H>eWq*C~<>_QOT9v4hS+ z%1pA=)BGAu^I==fhC@d4-)Nc-+j7<)GMZndX+CW0dHpr$-?eJB_RLYRo>wN$MjI7% zR1|z__#i2|YZkoR;c{^vsL>S&@9YaiA$&ZEBdz>bDAJ5ZxZ}~tL{OfT>p(f?@;hXB zheKE50uvKs5T_-#;vjk*gP=A_ZVN=wRkKNOpKylbEPDO1;O!=x7at2DI~6%KPBpG# z_y8G+jIP_!xbXq}rG#HfA(1vPwoJC9!G$@*vPr_67hC}#x-S@o8*f5r#5ok1fU56Y z=ip=n5-w4Wh*?HK;|5~8NRXL&Me<>qB#w{`dPk!kCy|oFKlyH#Gw;#slQCnmGoRJC zzyH1Chqe-jL49HnCi=w0(MgL$BqPP8zXf$jPm?=-a6q08;meJ1S8<0h>(Z1&6FNha zxPw)1GS-vv_~~#Q<(Y!zfu03EKzd>jGM_`?5!MJH(>Q=lqI7vYId8qnVGi+T2zftq zY(sT!q9U<5Db6@fAx@jjNr%0U^T)(OS~wFsN{puN;CN&*2)PB&@)s;)AuTo;jpMqK z83!)7{E6llqA|{1e@B}KNDYBR1D&DpU?e&biIO~eNXUr5%8A4VL%}fI1Wo=jcoHCo zAutw$KReOlk=_ZgnV^%gOkVzisU@tM(wryxH2tRJ!;Y6EAC#o~1d#4F9Pqf_+a{FdUBU z9GeQDC@ZGGABlrhBPm6{k;L7_C=m#E<JpPc;d?`)yVLKHbcgSeIgr@nhoeCX?jOL4J zn$3qxhuIGq%@@%$n+_MvwnIkqmuQ-ehl^(GA*1<1nr6e{qS23BroY5I63!2}jX+CUvyY7(9 z^LsSShfQy&q%h>`G0}t@0yCW<<7Eu%jTDEE7?)}qvE5AHWYrn z;P(6n;14L^(G#1_(Ntnrq`XT)SE-jx*5hte98(_DK1>RTPn3n-corB_T& zbC&MgEasUuyAP#TOipvQsZYq|t8Sj>QS*E#y<&2jv(0@{PjdxD^P%*L$!X3u`3aSX zIG(y8nRbURX^)`Fz^KAk6tefA^3o)?F?dEC?VUpM-5R`+l4$OLEJ+ss0pF9V9Ztr* z(3iC%g+qMxq{Ma{*T)5*uwKOx?{r92zDK+WkJugU9Fz6ff z2KaA1*U4ufLY*N}uNdbg26s#b!$T-QJ`kLo4hA7d!=!)wUN_D-HJFU>c6~}(HRnnw zm)V9CvB}yKiFGgm7MDD_pO)6QB(!4g&q8NvWXat$GEJEw+km7+L>A9ZT4di;kd|!m z%~X&?-VTExSrVck&5rLI1mDd;5Ts0)o4F7f%}F6LTGI;A*{Wq|15Aqn*Le}`5H{ff zpDb`ZyYh8HW^WkE_CcBlqExa{NYNKQp@)xi%a(Lw|Fd+ek>V}EWCRpZR68Q%J=7(ts`bTuqiE-KY=Wjc#Lz7LD~%tLa+G@h8bTdVb&B$<0S$;-N;7%b~Lu!Mn~p% zVE}xB5qXcRJD5cDX4gNDO4g*He-JE1g_yCD5NiUUG9)!YuC})9#JeOp}&Im530@@qvy$~+t9z~_rP!12yX6gvV2B5yXP)$Xay#wvK zg!`{T5`^mkS{?@WaBFVkF29DPQj=^MnU0aLU8v!{8K^YSRI&t0sQfyi6755gFjQ_o zm_*tHB5}S4q(Edwq(TY=iT~fLDX%Fzy7br*TX9p7xA2sL!Thjpr}n(O%W|*Hxm9y- zMad`S=%2;8eGO#@84sV8pKb74{SkIGP4wY2^Rtb9t0#IDP4wZj^Ro?qt0#ITP4wY2 z^s|kBt0%gaCi+muQRJtaYy;rxi9VVp`cMW^1?Cm>WMyzCi?JMWZ7O)Q&03#n&`u4 zk!5>JO+C>|Xrd3FMV9R~HT6U)4F z$^9^QEa%TTeVQL@8Y?1lPe7s&++|C#KMH$8X1%Xcb#qrB8i9NFQXdp{xDZFoKx3bm zDaeZdF1Y69T`peu?Ka}BNfZMnE7V|elNWAOLHm_-xIBd_8eyjK6{}=ir8;hixS(Dz zE7jm~W5;M5!WQ5WONY&q%OBbF+W8W0Wrj^YV6#vSHaE0F4c#;|bUrYp?nBjhsFs!M zJ%LzyOcEY+|4TI{s%7Q6<^UA!OOMMobSLyo)wq>RCTc6Pf)N8{T^(<9THov5f5 z+$)>nOREz|^6O|DT9#mb?G#W=Y&Vtvg@lKZE4`)!_H2vs0Q^pNcT;o$S55e%A-KyLhEi?V&kZd(9b%!;uFzyW z3fPW;WQ_&5Np!b+1o}Z?m-j>juCK1=dQn9Zd>7c?(d>}dx^Fy6bL{88^E9s1oUH8F zv+UB5yDpa2YD3kmx3%uO5A$89FQ0VZBid?5k{=VJ;OB-Ih}@f>mdJ>l$ZY9rhik0? zD7hNoh60mNmk%K(geZX02LFn{lXxP8Z2~AAy5Au4;VV%}1vir)6G5Q#i_s{f8dJ-Q zYN_OdVmK=~gJ_^+LT7q`Oy^96!i0)KEXXfeLqp!k5Q)9DN1>Sdc4&(W5l66eCP&c~ zWRP08Z4X6oy8CU869mUrg3{?D-$qFG`iPNK{Rb?<4Nm2Jg@KgDa=A5J<&%0SLmov z45Wu?snyX=1dKPEk{=UOpqbW%RB&~W;(EG zP_sOj8nll|gZ6(A;{%Y3dJ5xYu8TT!8`Us4i7ps!Lqf4FF;^w+(yOD+|EAeo);N8m zUX8JTOIL6l48+OUXmBj8iT%^8PR+#?F*yHsYs!CDzNu_)+4|D!OXruITl`^hsOY7l zV+%JHY|3xdJ)}J+uP68J+~S;J7&^$c2$fg3K)V8!|saq;&(fpJ7voLd};^ zsOC3-66K&UOcXlSfHjQ=WAg>R8zS1U4Qu>Bb1~uZW{;1RS)kHoXQlF@WwM(*g@Lnm3S1Oh)bdPcV02EId0@|g0GXzwRd7D0M z4&07^j8`du<9GIbcj5c#a9mKX{q7l``-cQalK4dJ=c#b4X^n)3;!$9+KaShfu1SO3 zp56;6%d8gh@!F~dFMT#Gj#d4;?V|5ZoWJciaEQuxS9EI6d#4`H& zeb->VrZ_)27p&-gELrAy<``H3^)su{3J_-+BbyKrUn}_z&FHQFQ+Xz-_nl&8RB3`7qtsRYWi6 z9gST~8LnN6-{vXBgrBAT%08a(Z6K7#?@S7S65WDi61sl~O-use;3U@xUI3`!CeV+a zUg&5BMc<~NrdtpdITXfVMn!`o(36j^^A_6)eZ6^y5l(F}tvAMWw>03h*Ize1`b^*JhZeAvm^ljYft*4Wys4 z^LG6KCJkf4Z#@}drFzP4_XnaAvmx^(`Ye>$l&KD_-R2LB&!%&l=;D=`;i7uFZUtP1 zqVWlCBZxHUp7g=t>@*?RL6@it_+ZvV-#fD>Zga`4wf4muXA2CC3%V zi+)ykNx>KL&(@7~APoncA5m z7#kP~;%IoWB{(`Bh=vEy&A>DPZekFS>kT5`vn!vCs%| zZ@{0!*z*A%ai|@X(wfj*BjGKW6KsnN%D$KITQ!AuWkjLnAXE62LrCGB8Bu6H$P`|Z zJ%w9AO50*dD}B~uTJ@JxMm^DuRRaorf~^jh5~DliRmBy9oW?Xk&PIg_4@v@B^QUc? z{(AIUJK}$x|Cm6{(NDz3V$n2DXDw7;;u;M=^1?V@Rv9#tLK)p(;U5#69>dHjNwyW~ zHtVIh6}>i(e4MF7+98hkF0!0@C!8XPcKBj4pu+^vxH?Z1oSM_2!O{BUyM}=PZeJp4 zM*^xq5(LBL!Xd~^P8w;WsP=QP(i92*&qPsYP(qMP4O6~AGvz=yVIcVwY2&JgiW6Gk zgeN^Gu*C^4L_97yxKd#taY5~TH0QO-vGr8EIB2oYnUleHVn}>G?JAM8;e4JA5;>T~ zQMy0In!#6`k%%Do%VLTkffclYxoVAV!^{2Bd5d!R;imh=#i( zG4S7m?a>v1<`0}7ni+xHh|gmIHxgE7Yq~L2f!nY~;Egm5ap96rU`hP!g`|g)cT7;0 zTheSwxB$&wj3!orBAWQ4pa&&r22nBj;Mf?rtx+-x+aDl_DenQ=v*}qnY%`@H=o3vo zy=N10cgft>JN9%l-q~FZKiGq*CcDj9A`z`XM86s$hMFSL!O@Xu5S&_2(?3&6x|y@{ zl;&29l0ZrK76nSs0axZ{-X))ovyy}*J_pOLH-U46@Wwg&d<=RAz47Q!goBd)633<3 zuK~?R(uLU^h)zS;%`+B&RtykpaG}4-?rqx~Rx70YpfVWV05A!g7Gy#36MDad;wjB7 zl26ln{EJ!o{Ve@wJR_UQBs&tQGebipsddD&42UBZLh*$t-+olJejKlvonU&02Bkg1 z`M(J=D%pWCeFleF&-Vkv35aleo9m$GYTzCTfy08#k)zUxQ~#|opqK<+ya_L0Uq3F# zUR*~q5(xIE$uUe$6HS!Vc%V^lL---o&%wNrU^{THB-mvi6fz1L0C{@kubDqr@J5+3cuZXNq(6GtARaz ziweH=`yc;H@}10za~7Y!HQ8380gb91aW2(g1j*N=n|ni|1-R}vB)KjiSDh=U;|liV1b0d0K3=O&CnpwYuPst5LTG1>v~ z+!H%((FRN%&vQY9jv>S(KNeTCK>a_DrhIi-W9g~Izb^V#(UQUo3f?Z*n!h){9y$Q* z(>n6Ln)^=9ZWxsM-;5trhNf1(~e-kI2VNkmkgTJdDcJE1Wsd06PAmIZxaUFKOfp3UIG6o=efU;_F-XaPs zK(juGT8}{#6z%J%;a~F4&<(rW%eEre2XP zQ*kOryJ#X|8O5tN#ll@UAM><39*cz(tt9kk!9cnGNRONk>gH8-i@V+BG2)H9r1aS%@pn*V#~SXqwIbioEc zq;9%*XN}`Z`E-lsS1OUjn;BFb3dG=Qff_#UKO<`-7Xy-X=tEpLpy0*b0dIH<3;IIA zNidVZ(b{0*40>CGnN2$2-71Y+*?>&Oxd#d4=C@%{#QO}jq!m!hm!XFD8?(cJSfi8? zF(&6(h8Yp+vC=7EWjCh6iqbCsF|4#oSf%6@@tKqT4H+VtWsf9KsXua-N?|k5!j-ep zd5V+sha=Nmb8rH>iYcrDa%Tba4_kM&=d?&>G9lH~1Z}eW3jTbQWFv_#%(^OT{@DXT zBhiVUYU1|e7{91xRY&G=Y^x{?G5YAC<}f0o)pke@LI7edf=kRiV5 zF}NKA5UdD{K>lSgG%`Ag;091-#=!`DALNrRF&k^Te;7$3G(0Zx%f;Yv!S@7g!yeOtbgEgdt)NOw$4Oz{J)`x<#3@f1NDs zfZ37_krg75hS`aPAtI5&xdyW+i$ zGJluLZ#SXdtdOueNhYp?HUiW&<{^F>Z$+z2WM7!QXg(WwkZLu%?& za3?n$41!uhp{C%O@erKqAl8Y_d{H<$w!kVwr#VTzKoof*%~8!}lU%ad3u3hcd%7!4 z=pQCr&^B-Fe`txpX2;+0+Q#W9*muWWFT8@kBMmYMgVupE`3~>U6!$MmISWj}#!*c% zIL=V^W0>m#4#CY&t|%$l~a} z98E}Se~8QU$v?VV^>&+;Y$O{IHMQ}^F4ylbwEg5pENoJ<`soL0ru9?Bhx4-ewjfNfIQhOlsH zdZsp6KKaYvqIcN%>!rf-?{@!r`;(jw^O0Zvn){?&mAXK8NLhSv*8h@OxN1I9xEeZy zOkF$+Q|G`=m6@o@cB=odq%N9;sdHeb%8aS9o$5c#RD35t_4eO12X?B=m@3<;R54Zk zPF0g$Qk`>Pr^+mFC*P_5!;!n{S-3g}cB;&{D%+|4!%W4&`qb;+H3yiQnWZXYs?>~{ z?M#Kw|C;ADh$Iz{x259oC*Hitn8*7`EQy?UGH3GlzRTgs zIS5SdPsL>YC;haOF_Yz~oEb~#N1E3%PC{#-lmSZ!&jz|T=hHJmQ-rt z$l1~O^tX(aZtJ`hqDx!8qNyP6Xu^$Oa=O5gWJYxD4aT`(`P$4TAs1b+7dkZ$Ug5m2 zOCqgPFG@a4H+DXN!_t!Pb~O6fsC3Te?i=wKUiWGe4{+o&bG(?H$u{()5|ihG<(nCk ze-dCndG zl}$~&Cb9G=81gu~laU!ygJCXMLsmWbhvdh8|JO?|{rLGwiI_}9B_H5K${g|eiwHz5 z?#d}CkZC>3$UgjheHP5!j-FIv?p&~jGGne^6>~MO&+yztkJX-aAj~}@6?5l;HIx~1 z&FYx@(|;c{$ql7q?p&~jGGi_dIS7ZOS=EB(o}DQqmo|oGcLRRI5&~ey})Ga5yNEcCK4q$Lmppw>Wv4B$Jp1a z#N#6;W?;!mj^n>MXmT7x2q^J*E}Wb)Qx^F8o@zO!PEH4+D{voiB_7X(gHvWaem^TY zrVdUA!sEdda%?zqHa+>_l#LN6?|Dnwl=U&3KJy`ltLVu}d!!pzA9OMe^7|;{X53DQhlyx%k4OV+)?ikLs%O9?spO`PUpg|EqFX zD4%CVFO!0^V27e)nH%QB8n#+2dV}0q(EZaVuU;~GF%}IXOH(90mlrION=82HXk_cm z?8>1QZ}T1ezMlnir&BR^E*PwtF_+xH$&|U8e?BR*qD1B@>cq5?JC%yLbHP&0jJf+i zFOlQvSw)x5YdH|^##3>3F4(9Uau?g-f{{8qcd3LHk-Li70BQGg?961WQ&WTK$Z>Ri zC>7n=w{!Vj)C2M&#uP;tn0w?nx=6}7uXSf1NX6YF$2F+I5|pujCHL5OQ^>A*d+D51+&yx9gE&_zbLN(h zrx0EB%*9Sg1+{BBa$JMms`Nt6Tdy88$^Bd^$vtxRwByt<_ZLG4O>)mp!Q45KrIp#1 zCNq3zwHN5@EOAFuuNFR=in&M5j#jKra;dbe17Yr2shE4@Y-sPQV=k4Cm1HiegIby*vdv`*EqqFkC9 zjC10co6%hZ&An2=oZYEPU9n2K{XighXW>W~P~-Ea{a_B}gW+ z0iVAx1}gOgCf91n&< z=kO6q#ji(`u%->YLjR{VsA2W4Kj4WWp`L*~y?*-UC+Y-ndhXDLO?ccp_}Srto219U z5$F7y?(;zlIXt8uxb(Gz>b}#%t*Y}yqSMgGC|TEB zkE(w|lcyn6;W{!r92yM4430zJQL)N9U-lhX4t1fEV*--So@k1p@fb8+6f<6gM7Q$G6yc^rIpcWo@aymZCj2XjGlA{~BI%jYz2F^+ZpR^{2rX(?0NO-_L()zgu#7$Na6CN1 zwT8|J#G$x*G!E75#kPAGfbbxyfS>&15H|n~?V7!~Un2P-Tp^$D2;i{Wt@T77`w$C2 zA1^4o|ACfD>B)Pbam$L+zW@HTRl+1$yA!8o|Euop$a+t15G5rJkaW-4JHV&wW|DESAe*`~874grzJP`rPdlQ?I z8Xl7`yof}L0#I=rQ0McvHM=6%PSofGHdE+HBWiTiU{+zXMQR*68t@%EfKJlv zjzDU_kWjOgzyS1~a|faT5_LC(o_9{ay8*qe=TJwLvA|Bu5iRcTP%CfKDq)Xo+VS`G z1Eu;qTz>4G#H8vMmU$>U}APdgpkl?uCZw!Rw@`teh=I8ncbqHPQF9L z6l^Z-BjtAZ$;urewDFr*j_FDa1)9<1-7(Vu3+2=V)zer;m#EJ14!-nZ)ZYr}4sU1- z?3obkD_mU&T3$ur>`0ok;-)=FO$A_ggAS>vA=p$|t}a={or%BW8RcAFH2v1= zeZR)v9fMw>oA0Xp&JRxh?3?5}VA(g-%s;mDm-;iGe@P!BtP~Gu{;})7b~w%a|5sug z2(vqu`C?r%-5CvzM4%l}BnmBvKriARQ*~J9*CX=<&!^R9vy$CI?8BtEQIYLHn6;MM zhS5LFY+=btrCgl6+(o~Ce<2>nPabtF)jUDg0J2kWPmBVUBioZyif3{x>8zQ$WSFP2 zIX)bZHh2R=QP?F3r3#`hA=_f3$!7LuLb9NxTGlWm6W4}FYi#q&6MvG@>YS%5-D~{u zDMTpIE8l_Z7@+nxOzjqtTG?vGeeS3wy`+z)wkfb37IP+Knhgg|=AP5Hi8@WB_Vy?5 z@+_56t4Txct%*XI+YMAxPx0W*&h4U?d$&iyq6#K`Ew~z(u+s1^6Ky(BE%_jG1!%vr z5B~|TQK9=8@ctW#HGmD>m0X+v5Il3#Jpmot5NIv7b>N^@TKM|I zdm}`H3rnKwk9XU*oWBaAK)xGxZdl^)|K8M(q-Z&pYftq4@|`=x@3a-$$OpjnmMm^k zT#ud>y!pvuw$`~(kHx09+Nf)-o0jzc?}l5+ToOi3{T4Hbe3({9XWikF4A@0S`UlsG zR_M)Hgr&Z$$Y4u@X-?co&nUn3Q3?Mt&LPg-`iOMJot4aQ1wp>lNn$CTZqoPP>c5iU!`<4=67GUHXZA1A{J38a}`k)V3Uis~&3CS%)$*`r|# znG?Aq8L77Y4^MogApM9ElPQ1^Eagvl4BlH?<2-_zh@i)x)rUE@6vCVwdvlaHK@Pjg{bI+?o7 zD>7Mq9ZQUWlDar@Ha=Y7M71DOsgno7<1eNVO@dM#8J_;%D*mUHW7Pn@jk8@8jZ^O?K&!%_~A@%=X6wd#p z1$XCnY2VHJYOY=LV)-qfu;afvbh7Y+?p9QT;0K)x_eL`FgUYkV*=zljAC$T`lJtXS z!Q8K>V(whH2$>mkZ2 zoPc9FIDV+$-?}D+wb#dRev_crYq`WI~U(G!s=PJz`8h1r+`L|LWz;SjI$<-2bqQrL)Ko%dw$)=0i zUGc&AWXj~I<=l@}TvL0Ngv5b8-IdL?`W-Jzz8iMdKXS%1|9d=6tl}FZk2uZ0c<>4# zJs5jCv=upK{8W8nEo5<7lu~>#vI;q68zFglGB6T^wAd7RT&s4p-SzJA(rOHV>a%h0 z@~igBQGN8szmTB?IjD}Z8x|IycqTy(y=p6XL{|Z#>rx`Bz|b~VU@Vjh$KoYV-4fk4 zA;D*0kH7Lw?Vc^<4lZ%n4LkMb()Ge+PU0vUaUOHSmL?&SpJ!*@D?FC#0857&EL)r6 z=o0IAAUu+ip+_}L7i_snnyL;A^_=#<-+W&$Apns5-eMn(tSPp@vo5!kpod;?@Q)t5(WaE=a0Si-?vHwtiz2Te(BA51KwvvoN7lJ|8ehS z6Sw@PSo}^~QS>2?Ct~XHDVeH}Y1q;P3HE_7B;<~brR3`BB|ok9RN%$OAMya(8+Ctt zyMhR;`!~m|D92m--#V?1#}AFxR`5#>FR0XMkqUC^c1Fj8;ZRCE=ew+@ByJ+N z!INBl;j!Nw_vhzjcp7eg`;O0j{378QdWGe*-uJmTWfGyS(0z}LNUTmf`wCobc18mr ztf`jNQRW{^KDXKxm3#;3n_v6)AAkNA>Haq2G)-M_{l_n^B$%Ps zBtK^gA#LB0I1^_$6Qr$mz;?+pwFha!ljo>0Z2y#=-5EQLe=YH|&Pu@G!bKWY*(<91M&lZ{p!=%IJ>TU|=W!ca4Kw z1HSen0fn=|9S#GZfXQb+W73q8ZQ&mH`qo!&UycXx8Qul*d*FmE2_H<@i7A(Xz>Vr$ zU=Cq~%^MmV4UIsqt;=t;!F@t>0}tgqV-7DxueI^U=G*AB?5RDyrQ&@HB6HJ??gDhJ zy%i%vzT460W;z=0T7KR+cnGURw@VHtNbx$R!)rJBco!$Ek)MtDGJeT*`{V zoh*hT_tkJ4hQH59Fjc0gr5p(I+%2Q1~a{)cADhO!ZWu-^0k?7atkQ`hx4F7Isv2?+rkgdt!7HkLfa zvgC;a#s*=`2FaFfVOcVg}CCd+&RC z>pn^ENovXW|EKw=*0XG%b%CP*Q?nU_{Kca=ch{1}UE#GL`g* zr~bATCJfe!p{!E0o4KWF;PGi^YWb9Y zoA+jr-=sc7xng~rMzoaK(?^Iab9r-6;_j0p?r$Mr4Uf3bDQaV)cP3Op)A6 zsl+WWEcw4vu;GvThB0y>+FTh3QNh_shcv*Z@$t&z%%(;gtjw{?d2wUo5_Bma-Nh3E z@QRu%gBLiyHw_kmBhSqf@4=e!n)%#DcOCm8N(aW7?{rwBp9Ca%8K>{K1^lkUJ zET@-97RwdQEeshaHTvVO^0nfaH@xQx~5x1^`1SyS&$jZayZd~0$_QcL2M z3BM$?#orM3U0k!~)SS)O|BU8~zaA)Nwo+`cz-Hk;N!-0FYlizgKCrzI`goDAYu7f} zJ?++hw+F^cJ#OOJ!s;Tu5sjb*wrvRZY#LQnh)2Sh;Djs_N6q}M zXZ8@4t;2Cfp{$!n;e7iVcOSTQGTDVAU)%BKH@7Ure~WM!xIX5H_YZCTiT4Z=AwM2i zd+CFNe3;C|XBei9bK&Y5kpxJDFkJVS0J(X-8`e~U7mm4v+_qIHx*Tw{BO!Imfjeg7 z^oo~0OyYqC;I_S0Vt)2-yk`)*r>=W7>9G`a%el$us{f z0J=g6ZLO%u)IJH;_0W}^zp*)-r_+A5I5Gmy7qCt?+*}Pb%jI&81uWu@uub} z238brDw2cED}Amla;M)kzTwwRZ5`JL!ED-b#CGj-yk`LBjz>NeE2`pG_oj%FBI#c; zV4^&eJeXj+#B#97;%kREP)1y}-{0PT@?L&hE>QE2*Q~tWdz}ExIcsN@KXtp20D)dX zpO$aRy4G_uIeCmeJ(7VEFDbMhEi%K+9UB|^FZtqeHM4f?CY?u1Q2 zaLBCk6pn`p(N8OhdJjN7VYqL0;T0HwfEl>;u}j!x8?42edEK=)O}v!Jh@ej==4i;& zo(@|q`LjhK@p=Td+125Jogy;QP_Qrcsu?YO|J63Sa^3#%6Krk)th%(n?AhIaKOrD` z1!-7tRqspRzwkQuEHNjUyumrA5?KmUKwY=O;qHcQC-S0j<%!=<`ECvV{Q;upUwTWz z60)!^K-BU#?qx%0mZwq;aKD!5&6`{o* zc9$%;6M8Ou{GO>-NXY8lH^Ah&E9!+F7FwDo0E-_4IF3y?#w06PY_5j zNGnmyq~@R~McM|7zU&T{JH~GKj-NIKPw@9ICkX6606N!v z$_Se|V5BvP7(W%R%c>Sg3d*s+>Z?!xbM>@Oi2K1FDof*yX~%wl1P}C1bKxhSw7;58 zTpadLP0Lwzo#;@dy+JW`~_ha%@lZ@3uex{tO;SK+R{1&d=ZRXWlai0j&4D zCSWm8v*623*Er9tC4iw<@UTdNjj&yjmRgDSuh>1Z5r9ei>Fx1%U404bi^(PH;%Nuom#dWb2O^$w_ z4DYMHZvEl3y0Ju~up+wr^!S#_%x?s+7T?@zKWO=Zg9~7tW_)Al<)8n}Jp*HUJ$dIZ z0Fuh{o)QEsZ?c2&cS5uxqnsw3{@~i0Y99|O;QikRPI+S+DQ&VAN_T>NNzFxm4l01u zka*q!P~qG&D2ot@A!c7upxV-8bvd?Ko$^-yNZm;8RV(-^9zcDm|B4%W_(B0<`r$j^ z+>?NoJ@>`gA54XPvV2fe34%I*ArMtwk5c5cc_}Oul#i%K$M`;<{^uL`EelY>>B#;{ zJH4Mr=T6h>8_zyy`Tj)?C@A2)@n&0KpBAG>O{<(-83ESQXi^cl{>cFLRBT@p>922J{%_{Vu47&0xCJlhsn z`Heov6xVg>IRl#Unhs6&r`fiwSF@I8KAc&eF_ivtdPCaI)IX_f6x5pU`5pKo%t)PY_BXmH=)+I6_C` zm|5PfW5YrNUDc3>-CSDV62)66f~JY`Vy&eO{d$`3@)-WRs!U-%07I%9oY%s6-xxsF z>BL9%m~WT+>^6J5*6g%FB}v-?3zp&P3vjS7a2wHUzK`U~2#*IwmmeX%r5R=*^zu+(s_x7_=nt;bfvybH%D97 zzOby!pf4{kswgSecJ|NFE^A*{UTj29^!iG80#~4LTeize!jz_!hz|KZrurwu4Y1CW zF^Pz1^~Uk7s!Q zDX!G^?fcgWq>HkN-}FPu?ioA(gn#?AS^h16|2kO(28UXV|E7@mOI4SW%yAUZj&Ef8 zZ3we{*t43Z^KS!OkC){&#Z+x%apjB?TmuAZ2Vxeucq%M@mm0-l5A^Xk+R5ER4ixp^ z*oF1COm#EFszuIFHFj>_M2h9CHj!QN?so$2?XrBP;JzU&+@-t*Z5zhLI#ENJUM27$ zY-Kr3Io0bKY^&|Aj>2l6#}y`X!@Z_}m1^lsi*0nnTQo1^uXi22n$+M~=1zcvyL9d@ ze83q~VNT^g^VJ2sVbMU!bR|A#6i|<=+)22MUh})+4iT4I=SSz++Y@ks zSPzpa{ZX{nYCghCoG=25M)06LHOzAzu0O~++O_wHc?(K=eR$_u_7)O<7ofdHmd_Nl z+d`o&Ww8>kEDG3)SWMUrK1OzY;Hni|zi#5t=8}ro&847iXV9ixGb2H`Oo<|65vG)} zPsN~f=U8&P3>DLKKy{4fN=?qR?8>ZVnX59q>Hf5vQeRB@A?1jq2NNv`-uRQ__QD7L zhyVNoAa?RTF@^pE4EaFgCr7>@-MC52>*UHmt0z6d>B1ozgl>rL2P zjPvPnU!FCdv?h&7c)1uXOCnNZse%`hF4#&THIbueP*-14T2We3R8nGKvM(j& zMtzB~sMt^`%Dz-6iOXU_-a}3;rnZg#RPZ&v4Thx56C(?*=R$JC{$-9Cn<%`kN0 zf$6AlZdxl3H&SDdX`NITkrsc>TLH-$P6=^H$|)f?6-kK- zDp%vqsKJfu&S2e2ED3iCI0Z}Lor^(BnS)RsZv4e?uMkt69C+Iqyf?^poYwNk9|bOf zSw3xo)<_WBA;M3NZM`!1Ng1akwo-)_JvGt?7!Bgn#>rq%jyV~O8esIO+uDn6Q0~=Q z`XGSr3NM%{SLodl=CSsFBh{@d?S1?eT&85BX43(<-H@FTW0W^@^sIpK27L5H7|XeJ zJ)tp{vQvd$rwY-TV=!8b7A0RR_t>`tPz+=<3(ekc-c6*z@8>L6>e^8QWaO|*%5Q~7 z-E-nc7%$eflP|xa3rVRSyWH_~gv49QSv5{x1n5!=Z+-{D6dzmeuyS8f6m2(yX&tO5 zf(lwVHnJ>S_bXr{X;}}dzn*jNX){Q3bZDlo160kNspPPfV`>)-RVg2pctBCWkjlsO zoXMIaHBV@=by-cB?HRk$|B%*|`c~?y6ld~K(pO16iSH*iC)|@TEq)~KT+I_XrvG6Y zAjqG_cQ^Cq*+qJl%^!kfV` zEwDpBNe@kHFq30N10z~PvA&pn4-IzcEr0PBDM^=CmK$|wu%H8{(5-!aP6sSbfWnVg zYwg#1+wpjh(+U#^9@rfQBa`}hWyQsFU_%%wlN^T#lJCPRpXt6CI1&?ycsPUnV)M{! z-gju7a8uxTk@-`M9e2F&Ti_kX_%!sZCe2>uu=l&Hy|8zwutZyH)h>g5f>@!TZ?knP z{8t&HZCXnyX;4;?;h$kFSzt24eYz#l4%Tr)SeS3@3nyK?Lp83|qFrWbtgX@3 znJsltV|8?B4Motdinhuj7-nFlkZ--32at{TH35_nCH!3HR}95i87T1PG(Hq$=O80b zA)rVCS~Mu3#TXeV8k}yM6$|f-9`rZ!2lnVbEl5*uWO(pfMUG))fpet<23RGt%nGDEZOVr;GDA zgQl9R#fiTmQ?=yTHgjomQ>$eLX$Zu+kD0ZbjW2K~js&MeICNPn#ltz3hO^j_Fd8Jj zZ;(coXrr4vkzXQXyPJ`y&lI(T2kQ@>_;zEz)j3SOLcOd~;txRzT7wIp7$t`c3nFQT z)8W=&GJA;+J4bW@sX2O2{09dG`b7d$!kjJv2vuLeB*taWJdFP~<4B4+dk9z~da&!W zN34wbW{i7Kiu_$<$6Fv4axgO7?(Xe_&6dz^hGqzf{dZ{_?CuUU@(L3rov=axO%K+? zvR(V2+tZ^hShAwwILl%k_6dsE9||}P6feP8uIG6Pz2GLG1~|?^fIl7Z3-I`aw->G3 z@f69Cj_)D}xEC0 z0;Y-vorfuyN?2H-CZ!qyg496K?*-g8^&kbt@lNoSn2SRUZY{9qHS9c2MYxI8MyxBK z8&P6`fsuP@d7StOZ~yyf0V9uuHtMP!pYxBTu(cXc%8##;4gJB4_!j|L9N5wch{4Q% z1GPA^q@h1FX+@2rf0&G$xqUA967(qAr39)PR;zho^1sHSFVPlYG4SG(#M&WK^#T0b zFu;sG5+F;SA*oGi%UsohKle3y&F|FQ$G6j68yI_;o>Kw)|Ced9Ps#dQRz73^Zb|=7 zx;gFi)HhP6r#O;tPWm~iF>zx;etc8hO!!!ce|Q?6mnsoiTtO^HqSrgn))OnN*Kcw- zdze;if;#8SRTLYQBr{pbSUf|bq|e6`Ax<8m(w>az+O7B*bGAjDnt?TcBhyh$)9;q^ zS6NpT(}!SoJBwMh)7swCX}5#BO37i?Llc`7f(p0C(GM~BfE~4u3;k5Qa~n64110oD z+BUG~$Q1irj()VT8}=RAJuV!;!zMxUmt5|C`#deYYQaUeFfKB{pc7bU(um3g$)oF! zpy|IS=iPr{AD>2M%CW)UpXIj%^dHB0d@N)fu1U91h$PZ~fU}B(rz*_iPT7YM!H16Z zLq_HS>jw$zMMoUJrLg{1DOQ$#w2f|9i#HMuM?(@SjnR|@6XmqX2*fpy-`GF~uULaf z>FQ<#0%eIwsY66MIf1w(H0h-Bp~l6D0AG=kAR^;80IJl*e}d(|JOy!HqkGT_JNUaG z@y0B6*Xm2P(CiC~fV!Y*3H{=L>aUd?PTT0Jr^QYTQflMgdF8_AF;EPD;@C?(Ni^EE z@ef4#&-Uv9<|Q=aB?t4lG?+`EkaK~u}1t7Echch5suhrmh z&-PaU$ZbkMK8FUf0b-;MZL_tfu(`kA*E?v%fU}mPwq9a6M%$>(lQW*nz2YhX;Ow2A z5?UJp@O4T6Kbr=)UR&$4`C#;@u+|DoVEVwf!l1LBJ5@|BM2r7P^u^h}+~$YhA^pIt zn6USWGoX9F-^tJ%Z3tYh1oX3LpciXv>>aR)b%nLh(cu*md=#Gx{O4F}wCZ)5a7!hH zz2}pGdfPZwQqaPv8YNJlNrBp^U1lE)=Pb5O5no$?&Z3ma?1kbCxV`^i!7T@HTa|!& z1_j(ot-06kEv$u|K}~MxC?{kNCLC?+#QXUX-1&dlcpup&%nAp4;U@z(o8?e(AWx^j zU4fTLx}DBKGl~@;i4jt&+a&j1AiyPkcya9Q;tb$jkFZi*1_ZY#A^2$&z{|BY;KjE) zoZ4!qud_1@dcP$uDIu^6{(0!)`>^;k^bTAB%7EQ*hY5dsw!av_Ciz>DNyR!_x@lq3 zsT8owv~5;!8l7%8rZcPf>h$7PHQQ)g8toiTJ^KqYDO|7se>!r2K!{%RyELahzmI`< zAwX=EB{T)%Qz#IZYAp`8Z%B)xr$YRF+&wP@ACne)Z-F6)wtZsNLKTz1rJxMGHM@+X z4ERL=J}Dm12u_J1_3<%wuLw0=#K3#30(BR0DQt# z4EeDmB5%|waL{JvLUM_b;iJ%^98+P}i z7`M&g>R{6XqGFG-$XQ=pA&r-W#1@3craJ7X5)X-$n{}BqK|gfu$d>CcIT>9D5pq-O z(mk8_6enN%mG+WMdXz>9aR>zc%L=C9Sa%=-4C#@w0r=b|A1QNgfG=d$4E$ z`0b5CWUMcS)kjgtk+2G+{(iB=wvDbEgE7HO_6MK|E@livI?Ss9>^ z=>Z{`q!OSagBl5LB7K0-(v28_{dRfwQ_REtEM8#i`?W3h_8uk*h(;zoI{8ypdoDhP zA_*2+vTNg};tzfmNCG9Hj_Od~G;KMGkq9)BvP4!Q1nwp=toO-MPAVKq(x*{CH=qv? zZhT`=1@f^~k$l`M#nSABJv|N^N`6E^UlbcDUZaY7i*m9_$M7loLS#Eow!KY>l-v`7 zeqvcEHY)KmqkyzXkpx6%q#R^rlOkEUTYzh|-Pz-UMcmO)B++#@X@!Y(5|;x7*x`wY zpg7~-i~?;XB61g*BtM%Y|=;`iCpO`t6kRxHKO^sPOMbS3`|OTMd4l3*9)|YQY76bhR`rxQ99Y z3Vj*r1qo3d7ewu(@th6UThFBBwx{^UG?ANf7}8`WJcZ3HljVtf9xr^IHrtQZ4bMJa z0aD)xkm}W;6onlwW*>l#dT7?8c3uT;)DECs9yv-0*X_h8=@=V();{ufWDDrcx?M?> zRE!*>zGiT8L&IU=VpymE%?Ujar_)(RM(aYcOj~R31Ots%UN^crU~!%m_w_=1Z~veh zC;~V3L4F#ye!-uDzf95_aETXC33birw088S8*WR3ERmxF-G=~k3(OKLc!YifK0#U_ zzR&KRhw1Eab;7TA`#kM-0g+8LDCsJ=9oshAx|`;{9sAIqb-%~d3?V+4)>XSQ6wvxB z8Ct8Aq|&0;QJQxN{C|(uvU1%Ea=k>6Tz|>X8h7WoJsnUqb6N+jaP^*yXp=7M-=1jK zCcyPt%tbo^&DbnXiX(?&=4)r=-5i!^BXZX%674VK$*oqpVRwGa^oV-tj)2^9(v7pm zCD^*MX)~q^Q%-4r&QKfFA{24x0?jM}3?>q;vH##jNa27yOn7T4zy)3p8*pWGZ4(^dm+#Gwrnw~qw4 zsb!bYp^XHy=yB~s2D1)pubeYm8lE$YD9KDq$?#vK=q+c=D zJ`muhmTSV>LQJ*lF_Yukt~hWb=I`QGNn@!L?1$n4PZBo1--3pd@eXc0l-cXkGR2HK>O~(bz;UI%5(c8tOcRP3U_2UPjBa+snY|aDXZRs}fIZ$t+LhgKH?yOY zovDIb8r$9AFgl>+8v3l-t$32!HmrpkhF!2f9{xJ{Nz|L|gOzh0t)W*t=;-f;pKSDc ztahi?=Ie(abZKqyak%OYhO&x#weW2_?7xCuZnzKH(_t0u;jQYsVeau$~CiA%; z-;j7Lj`Em}7r|haIq|9W+?~1TC*khGUw&M4X5fy_{YLqzcx$#80q5sig_j+MA*N*l{(0v?cfmbLq89P6+ z0|mNB+?2*hG)L=Eu_KSPzogw)&e6i8UZ})r&yAy#TBSy*C_XG5_8Rr1mQ!paK2U6J zy9AmnxW}HWA*8PHSO+^%G`iF}h(|aJn_(^pw2F*;hvx^7^% zO_p;gK%J|Eb3d`TSz(BYngT9Y;WgKsNnzXLuz9E8I}zI?H`2+n4PDHuQ^K}GeALwP zOyo32fS4T5MqHre8kN|VN&g98=IJS{ce;l=3N7t$+mRdxBhPe3s^3(*O|&!8MmzsU zB^?|81s1Ll;TNWNjUuD+qb$AEidFDbXQb4Qz?!J1x14WS9&o0er_I=JCMPj~v^= z^KKF8xdaT(noZ%E4e$W=pe=5KC>humcCHfw;J4xxc>v#vuv5voGGU(6RI460InJT| z{~2-330Y$@u1Q~%)}DGwN^a7viSy$hi)+q4EvBLW|HWTE;sxW}q{LX{W)WGbw+`F; z`|X8j4MY$4#f7adm^Gagz5<`E71cW(QA}s*K!kCLR&pHx5ri3-0g4| zTA<#$4HhiGm1A<+={KBZqdAk3DjG_Sgxv*(11F0jx@Qx*%LPu<RPQ7r znTxF+j{}xyKv3z0-Ve0WOLaVNEDu^w{9pNk)lZ4d8hG6&(+W3|O-QmDSn-HL?nIW} zu6B2O4+JC$O~cbvQwJ6s~mi$(PHGk(;*2w211O-Q$u**Xwyg zjs!aFUda(eWWGR$Ci2lTL{=-%!4t2MkvM{&T?LWlBpG)^C~1+-J&Mp6-M}kXbgm>j z*hA%3g|(iEXs;o;b0E-cyH@;6kpL-fw#^+cz)h{xh--A}F_YyQT0Nv>h$Qz&1~Z3E z-kMg1moF5st%g=KeogF1Ahu;)cAbGNstQr0SDs@zLWrD7zEz4UbP=E?$G4F|P-*KF zMMmQYZuLHFH6Y&$_awq4FE9L4NmEk4Kf@NGHO|`2vBGhS#GsRs+NT$M` zmcWE>RaDCx8=CNH1ueM$A1T?@8Nf~t+`&4y*SI6nEl%J@5ZX3S$l({-b1h)-lWWC?OO^$OTikDvG<`d)=gPTMW(uHl^j(#WHpD3e}eyd3(YU7Qi1pO0P zv+#3EikDvGPL(IOTCqAj(@PPMTUNT2_ZGlSNNA_jVz^fYCg_^r4nPN8uJy+7e7<0j zZe%7vwW*~ghNuOX@Z(%WXl1wug>V!vc6gm45U?$5oG}}*{GcE#=FGixj`Er{<&Uu|f1!Cmuq?Gg`+@wf-Q zJ;PePv9wrghrRH9UN_vo4eJuDPUfaNxF!#+P~h#>BMKE=VvlaN_iCMRA6~x?_6Wi{ z23XYK^T2XAxMQyiI$sxRiyyfeeqD#Q)9UovVJ#nQ+d(t>3$=xCnR01SxzW%oh>EMO zLkH&ff8d=Cn`z!s$z=e1k967uvXg~b!H2)412RA0M;Ff&(l$n7(Go}%UV1UvxXjvR z#jQlkEcNKhUi8am;O$EJKGQsH+1>v>p4>rv4*E|1fT?W{<`({=tYfyJX9w>>}-TFX+Io~&mMRTzT{&4N=C zAvPmG6piK`^Alv#6I(f3wP)8j*TrXxh*Eg+rt1aUs?!(puQu;8PuQZ*y)jjfe{43; zcre%*xlQ({}gYzvTpyQ9wd`_ech?$f!t&ix?I` zOLI@)NXJOal~(A9%m(gqc>?KnY!U)jU#&t}Il;0%B(tS)4^PG>fnCgJ&c5ip7Y8;G zBf!XP)y3b<-txiUy8<$MmkQOdWwjhy=GqO08C{hYL)BkeCRY7*y7u24zm_KvaF92g z)D$<5+{8dMA0kS{folz+fTD!LQ?-rb~_3bSIqTH#1D5(rl zYPubLeRjA2G}c5ZDG_S7`r{t<#4lbhB+9e-``_PO&3lIJVZwrjWAHPUD4#9A3#tQG z5(1!CAjSl*!q-o1C+MSBAjzkb{gbx($RR@t|90h(-)a&= zw1N98Gt_QSu^yYg#H~^6+agTEPKyD4x2f3TRZkFH0jA9D?CXY#?XcVyFGERqF)rUm z9VT0)@1PV$s6E?7(+Yn4Hx?pBu;c=5Aos1fIHGI>u#%9QIGlw|Zci74Q`C%t!4O{N z{xGEW;%|Z6*n$OYAbp2-*hN{O_RV-WO|K*YFq=&PxX|i1?76B5Wej?Q(8$-|-IDwY zGt}9r9l(#`A z+rVWkr~WrvRiYKAUlb42BeyW@r8y&r&J~Krrb;MuRx8nmX;Dc%on__O0d!WjK-a+1 z8TI3LflRw?PC1RO|E;>-wY$Z|e(;s3HLe-Y? zq+0P3xZGkw=_M}rkeqf7ue}aQLSUO%4L17x`8trIztSqDIrpA6gEUHp2;dYifywn6`!4NEVUbkxes$cEptft0?o zRo;bkQmYlG!!$BdPii@-_HTe{Z3Wks%@%0J#|sLzI84SB&)hi-rR{9=PZ#I#LLs3x zQXl`zrIS$npQZUslYK$fbcp}^(i2jDhb91$1{1RrO5<0~rBNy9ZWgIOT&0!*4ZHN4=-^d9i3AF$#M`1{2$? zC{wpkj@W8N>hMh0ML=vh$yT1&SU_mqJSaEMY%qkEqZ5V_lG%7rN0-z3g~HDGDoHHkwB;Ll?_;!7ZMiVW^MwyR5x3u8|=;$M!HRxl2R_ z#E80eH~icNqIQiUb!3#KwpyV&Jf}Zv)Kgndwo&{)R#U6VJ`UgicSri`X@}Bgq&BB` zl6NP~NVq5d^|RR5Gbd6c14^s0^>SNscmE7D8)_4??~H*}le7 zHEuGk>*pnLWf{rR*q6E{k{PT}^*^+SO;I~xvlu;Q3|zJ!88;#fxla{rtw6f5RUL#WM?_#oHng8m%S~ zT54G)_Hk4oCCe+Nmv-eYWsvH#yV_;9*r>TRotnyi_!HP{#b0-ej#>6!Cfs;wSS(Y# z_+yC(JGCqmd2bQmCd)a+s~nGGaO<`^;i7VS-*>4B$E}7|aJA9W2vdAxnp(qR9J>Ec z(RCS(Lgdu)P2{shfLiqUwwR!{!qF$cqopLgTqdGD*VjT*{Y&7yEhn>b++f8Gz1xhZ*>4^zg<4X>=+vMsxg` zotCV>Oj^-fb^5&<%c_pYDvA^ThPb(huHmb#j4`;&V;Va-x))}jXM8k_KQdeS)M)P8 zG)ly1YP7^Cni`FO4(9Y9uQ)ya?Kq4$J2mR>_S~#}Y%h6+ha>58@oYrSrIbkP%s&`n zz_g6r+aDN>qzXo5WmwA%!<&l_2!_Uddc~3_F#>@}zzMKofAZbDXUGw$KYxGS_4pa% zJDO)-(h|>(AFg%u3Aqde^EbHC}qpJOFt;(eou6L$OXGgd+_@+VLK$J|Neneut!+&AP%5;GZLhO7fJ5&=Op zOTJzG=NpJW&&tT~3n`o2f74=u=&(YqqsoZPZjId68G_WheO)k;6hcIzv>pLL8*r}b zC95xC?ED}tX;9$!Y2{HEQ$|GMzuiwH0lnsTRh=QwAKBQ>D%ie~`YCa$_!+A|(k?&o=Wp(;$Ilr3VNQ8r z^ksNRo{cD%kXK|V5;F-A&)%!2hv^G*;`pU|HeuWu2{C<^eE*lpXWv7fsW35rXX#-b z?sV9l9U(*{n%*fZA`K<0HeG+j4;Y1jiFy2QUtM?T1Ku-aV)F0x+;JOz#)`;{gPS$G z#<}q`Rz&h1GF%Sp9mq2kCgx>1lEh3#7&kQ<1j+c|(Q9EW93#)jh&eug{@amgk(U^P zn7!S2D;K-MgX*VN#Kcd%GyUqNb9Z5^0wQwp3$Me5FWxgGA|*c_yuy#4u_7|H>1MHr zR1NX>->A?cf0Lm|tR$pD?5IXSkE97Voxk_M0AE6?*1fU(81O^LGl){&idS^s&2MLW z2de+)XqITQ|DE-(%vUm=OusYj+SEU#oRxe+Qh#E5f;+x9ZUcNfoPWyAab60mS$v(a ziq9QX*Orz%33?P_vp&?`8wUL5dQ$+Hm+IBaI( z&EpaZS4WX?*z%HCdU)J}+yW_@qAfMVK+*EGsf{1>A&HQ5TbO=qzACUzk&y_~^TQv5 z6aO@k62Av1FrVy35>X%?ZG(gVxTA)1B6*2a3dBkt3_`_9@W-2s@)`We8!G8Q zz(o9vRSPHKfs^gz8P1o|7i7rVt#jj?8Yud1$xAGm7l-UH;> zNG2QydJ0I65^)SA(4DH#h7?LCL^Hl;-O>7|x8;-Ee#>eBYWW*!)1BM{093gW*#%S6LmL3gBm+y{0^)8+qfIqPUlHz|9FQ#02 z?(Z+bKgI50Oum;G7)EE96AS*q854X`7{ehV1^ZTHICB3*B}I$`qeQ$!H3CAIHQlG3 zJ!z}JBR73`;j|OZ`}JZXEXqwv?)wZiEY`tc=v@dJvKgakQdr5Te|*ZpoAwt9CF3#L zAmW0l_xv;ke~vXN$KEOl*~}9P4L7hGKh=~L{z)fD%;ZD7n==A(r1v+z?f7#Ikp=V$ zI~RW*es6E~gREUac`(M&WRC}eU#UEW zWKMMme+WZPS@FPv^0B3u8am|*yK~=Vs3BTVN{d5Ej4??Yt6x!?FhbmN)~=+Cse^p+ zlv%i4&->J!ZH}j>8MPZ2!|&# zbYJR#tKFTPvlk;dEG-kup-H?G9n3l2i?trpkGOxx)m!x9hB{*Q8KrIdY3&$THB3$* zD~E#-dcS!rJz#N@(+am61hZqMWigS&Gw+(XX7F|%`alx1xSs-%#Qe}%lL`6^Nzy(i zAt5V?Q)(o5axLI4ilCEx2%mmrg_Qah1&@)}Hb88^kvWL_YgW*S)#o_dIz( zygxSK@l!YAXY6tKc3(GA9{3p}0H%K@H*qemAI+px(e|v$rA8*o;H$2ath7v&3#(U; ztz!t|$?(-m9D5yBfJ>BAv-8F>DAu7>|4ysJ6XM9jjVYaOk2d0c{|J2UwutJ#UR-@Q z3Dg2?e>Og|@m|7WP76+d%5#dD&-UbmF?^1j$E}AnF4G}28<*$mlxzym8zWDTSRMLO zQ8lVwJvFEoihO4~;i)AXo+AQ-dxYq{baJOYhapL=&&3%?nrBj463vJ=;J8i!70%>0 z1H$oMVfL!TV=zjbaLi6VJDWtoj7~5oj_yQK#FvmNVX92|H4ND_a>PnDN`&cBQ@wg( zm_BMs2q;6=U+Cu5<#fvXEc3EhVz@ym1T_aG(TsTmvO!y)_YAaI?)Y3J8%JDs?}>tI zI#RwV5QxQ2L19I?SY*;D5i_w6=TFts!JJ?_?aS9{Nm~#r7PeQt6Mkx0j0r@nilSgQ zFM}ZlSQHO;R|#Eb#3IY_^?O9qveMz-d%*YI&-sjWC{MAcvD6S>Q9>7x zm;@Q>FDXfgJB=?J=D2H5o*M`oR@leEip<#UJ6%=~Vcjvjg;ShOj5)G4V4DINK>8M;od2c#BS*|+L+orsK#aJi{OTDy|3u^fy+ZDEXx8tGAIu^bBkFcd0prTQ zx{i%Xn0=`5mOHMg=r`o)SYp`w;L133bzO_Y?qQSc_+~$<9xacO9_4Q+_}^b$7dXMi zk7xbmyn~q1>AgdbUmqmi1!^!TKjb)_p?W6gZ5K>YWlYC+6KLYU>Yxr8< zq}@L`;fm4tT!EC#e7`sW2IlZHR*^(1CHb;6iItR;iIavAP$Vn==rr*Z?w0cRKFO^i zohCXJEp}5miU{v*rK*y$Xgc%(?@0a4tqBicx04;vHYaBsdL%HG3(81M{9njWL>%r> z2~r--QxhPF`hYL~Z`bkv?j43 z!5nXdZ~l+|?V2QVWka`%FJKrI%lUN zE!&f6p8n3Lcv#9j@tbX>#??$+b0iVyz`rOwG#%#A=nylp6t^s>p+cHB_se;QNMOoH zgIUx2Iof=|NQ2^0+&m*o1*@;m+Rk12Ox3BCvG7;x_Myy1HpYPUL{?3q-Flb*Q~99= z{JB6#b4qdC=@m=yGu9Kq4R_2M05!8el`<5GnP`Z-)kx@(e9=vhbyemOX+W=#INHHm zjY6hCny4|2OfPp{1w)UO9(!+}-RiWX9th?Nd8(AeWYn_mEN;O|KuTT^2gA7M<-_kP zNS%(6lFYXR{Z683e&oJ4C<|%&BhbA%5owGS(?O5N<`J} z`UohJSUMhcKJcZa>f{NW6<4tmBu~#$q}w_OOOZp!NHiT&) z{=2uz1u`HP$Xs&BF?Q+BqUsVj7dDXNi;fCwM#IAoF$4| z*o-PSAHs#Zq<}S-p~niJH$-u>A|`I?6DUUPZp>9Ou=R#07QV5m{+?tn%CRQ^29-q~sQz=fwo*T`2uqcv!Bc$L^# zwO4!Pgg^s)fKho!G{=eLdb;JPjlw3dSsQ+ptX@F({Qds-f51OGd)KkRsCA0Up!H!f zDrRDQxTcRHVbhp#FMM#{T+-Lctg$>LmH7%`mESs#Z5ao-Q3}V%tY-*i) zKgpg3q_zd-d#~cx@{xKeSd(NXZLVxMxJeKWn)B8^#B=wRx3t#MC=oOH6y=d3po2Mk z&NFL2Z`TqLK(8?P9rw>)KfbN&GDa+vH!apM#HjID2VnvtM1nD@TV)$D3RY9yx$F18 zd+iArg@9;W@jcqg#CwJ<&t7lmcla428cDYZixx@#@892SJ{^B#wu;H9YB_4eOguzG z5)shCbm-yh(_X%40!E(E8m5mc55D^5zfU92l&^KmGqVJ7JAJ)2N2qjTEJ`?aS4`XR z$S-`K4Vs>p!O-vi_c2;TWUzSr`JE-AQ1FW{#P-g7RGWPsw9>1V5tAHAVkIN&cGErG-ASJ9swo^F?;o$o1E^vtVg(_w_s`MRyTM)S@M)J? z+vjMTebDM@?R5|*uFc_c*=<(1<_V`H<(;_7C?%bOI&qzDpGWJp_gOtwDC%!>yX;r(5fVztV0mLIe&ZIO;0IfhtJ#5wuR!$(g6lsm9D%hf%jmwF1&gkl@{&7k7$6etf=MaMFa|I2f zq3dG{84d<1;!@N9m0=|CaId$rVVOn-9AP+1g&?YnLjrM91OaV9^%uYV_~tas3bstO z4|x`B=_)<@J&6A|XtJKnyfWjY^ue^=lv|R%Nn8-WD{iZ1L-to(E=0vwDsr~146&Dj zh4#3;-rz2NS#dNCHB0ci%l8icp=UWJ8ZpYC(w-}TEu!L~|EXu6RybXt(k4zhQPNE= zY;{!L$F@?ICNa`gWyPWnr3ffu`t|iK=bW+iZK4g(E96uJ-Hy8|AXGnIk&d@86j@>) zwECdgagMgh>T>kE2i@&B!(!>S+uXxla1~f^<6Kt!-!RVo-5#)@{~POkp?JX%+|NqA zcyNM$>$Ud@L^t2_GmQ<%HTfN_JnS``@Q6)G4PGa(OQkbj$OGktSnZqY4| zl?cw8g`WZ6wE#I)DT+Mf_0oHvIPj$RKsdd=JL7x>_K>G+2hpZM$r?8I0uzrm}_)YT$Gfzj7Eu=38<(f z837$khyHlpmJj~kMMMC-f&=8?ZD-SsOa?pJqo_5ii6KS*~1tPOYrUHHJiaMp1hEJcEiI6xWs-8OL_$}{kIchSFPo^=N#q`a}IYTf1{BKM) z-N-ROBC8@1S|T73s!J}lc3OwSkeu6p)_H)WXWw+4J>$=}Fyn zvp{;{*FF~@&1{HUbK=(pq({Z5*(!!oO>URR%>|^f5*)oqaOyRhcg#-|2nn-Cyq69g ztHP5vUH>beFy_?n8=(nvCVs{W&d-lkJvruC{BD{K_y5NgXtKY6{{NRVo=JZo?Juwa zaCh-ZX5tmg+`d|7h>}l?Sj{D8XI~YV3=Wv@ zRGR2aUwXrjwF1$Z{(-c!NSMjU0i9zG94xMXhWm;W9MVbCAxDx}oh5^)`K&Gif~4)Z zV)Yo?GX7br>fzrLGI9hEgudR5Z88!Qq&+|oZ#QJ*``MllSt*H$lUI-KC|r#Z3rI=4 zcmY0AFf$F4)7u16G9fe6+$Or^PuY$)n>dTP4b~B3Fmy%#Owl9zMeR56GMWR2Zunq-;$y@a4G702v>}OE&vo|@e}r-UGp3y<5RQbjdftVY zs9TeMRfe2O-AJcJtVBaE+RPIHCCnMRnsd+l9f_=2(fFXu|5?FVA7B!x+03(nA%_LL zkl#|VZw|Dyep=GF5B{qM?qrqSOklNt9~cgCZb#{*3u{uGqDgkr4i7<9QRgy z+oBuF1!A#X;FKzFrCY-i!_gl4e#0_-G+okwJ=t^NDc4RVMZX4XDXbH)pFE`nRtjhE!ES)oO=7-S1z-X{xZg*m^JO& zyAp1?n}`gG|Ho?`(tSy(sO3)Q3}ZQr0D3lk}gY+Qf?zUP(AAeq-EC zns0NK!$-M){&LvZJvU3P{)b2Q;06Bx4ge=tHrczntxoH(RlCemuU%SGgTR=9ha2*J zCgZ*_6>pw%DhBNw^qN0lTJ;+KdET=@lW_{%yVvc-&xj}tndT)ysQUsLE+o&k@g#>+n$FH*dagjP<$y2;jG9C6qRqP7z;0Ib^El zeJ&LI3jzLxO5isvcJxAv(j8-9o`>eDq$b1g|k&u;8cF45I#DN=%+NDBp zIYGf+QNS&3@NGe@np7Dn-~4p_+7XhDVU^%=iV`dxMxHfMIV{u_k{g5Mi98#io~eY$ zb8GF+ZU+_S1^bdOf2-Za7mOy}n?ch8qZHT$Cx@@G4MJc;lennb0h)vgtnt9^OXmDk z!GjN!$PmYFRxB#_iJuLb=4-{zHG= z5Q{A$Cmxi;H{0y$=ms+$OwkpaJF**k$bMb+46dvcvwqMtd#Cu>kjXGAekKom5dc3Q zpFxhuL4luT@p%U9!&-Nzw$arAa|}zZy*9h2AJL6RzZu}2i?3)&4S0QN=qpTTfE=TaUx>q(v1HiO zHN4H+550J(EnQny2VdKq4sW-;Lu(t>cDV;2Y1Ipj=vt563)30634NKNqzvI`DApGj z!hglWNSX(~&9w3exR$l=O5QU&{+fvgTHev(w~YI1dhS`wAM#8&Lg`|JN~4aD#S#=D zGkbd~LIGBbMunyA z!OzeUuLL?l*sLRqZpNQ6zYgWqwJcexMdcW41m<><^$W}mtT|8B+*ZREWf zG*wc3SEC7QVEnld2A{$-#UmsA0{78p;(51tuC${(p09Nw|^ofh$qP-=sp0wER=<4p* zE?5LTzJ0jf$pX5v8~!rd;(b} zA{&t8Qo|!RFT?DwUk379T3)6vFD)(tDef)OE^`AE{oN3-!heASfqta4cxG{FQ3Z?kT#grlzyJ#(;lOcib`bVzyQ>R$fHd+- z9LTZ<*i^Y0e;EIIqL6K-)*r;r>{Va<@@mGB#YX%&#%=`ikLY23SKzIG3IM570%YS# z53(2}-5~<7VpI%_&9v%E@iPGM*Eepsb>H8@0x%!B{Yn5_yb=awfqqsPo~01+SPG1m zJro#!Y3cfY^W?B#oD4AX(ix#S-C%L_^f*YkEu!K4ePUREhFbA6M8hw)&wTLAu;5e7 zaCqlN6{K$L^7c8ML-DD{XOi$T%gzstbKPY5EiS-MV{dURNT zO$ERTm7I;5C068mSbM0j6`90zvY9Ls#Loc4Up5^zCi8)?Ks*vaoXUY1ns(I^NO8e)-g_7Pa_MVV2&lYbNJ3>(m$eB~Y zEHyp(>uo1|BcN@oM3WAh3~P{6N%n@3kZj0Qc9u9Klb4AF05r+ra-ecwQGlMe48@5M zD)cisT-y0FUhe++!GG|{HehPoER~E3N!feIv_MiGmxZ3h|0SC2%B&+YK2Lu-?aI_& zQvq4j$@lOJTiBHWXfu&~`gNhIEl=>xB zCn!UYL)+ki_}fryC`MdieQL}hHW*%i<~y*zkEj*$40U;A|7F6Br0mFOLd`3$;U8nN zx|KdA2=F7TQiioln84LGxSbuH4!g6%8wPkAEx4G%0~vu=^3S(F5cEZBKHkg+&v{F_OK)3KYhLHYa06O9gh6$ai#tn(7a6nssP?B^8rXKNW zeKt7?EaCQ=2p7?7e%GRN_mQ_a$|QxdFhQ%Taksm@+D5Mvc{HJEw|Xi}U43&W{&Ott zzWDW<>4z#N;Abp=LaCduMZ*AyVs+wig$dxInr=}4{k>KNK(1}0>6eM?2d^p!0_6Dh z>;YCRehX`myYCr*d}3%4u9w&%E5u3<6!z8Dkg{DpoHGs(r9z#i>xe>=zHX zBPhS$dj43l7m?0ru8OGmkj$_4xZRL-3{Aj|62px&U&53x)3*d6V4z^**MbZZV;-gq z&Z`E)<{k|Hl&pVR>~0_k3fXS7hzxVM0Mc7fFvezybrMGB z;sreT8B?aVjgIHdlrtKK52$%ugX`;?wT~0Zp;uTmx#*O0-%XzW5Aw{<=^Pfu@$p=# z0h~86$dA%N)*CDI=vPJpZsKl+#{|;JC+#Faswjw@$18|b{N@TGwO32r7fcD}Xt>+= z5yB8UsV367JR+6<=7>}?BPfwJPu(09BAvq{QrT~gNao;@BR1@he9+66Zb3|GwDNPBAw4xpsLL@)R4U;z9FujSo<9r?m)b?uJVTXEGp{oGC z!+(%yhx-RjZ#PJDv@$=#u;bZFm`8NVB+Ps0HK9}=_?y>RlKp*aRtnjGcG^@Y z(Ga%NMa2BqP0zji1fQ78w1jx*HNT5|?RNuyT|EK(IClbnMZs?cgCEAJ5E_^vN@Y-U zxR~|?w+notPPe;XfM*F=>&o>kD93Sh10~Y-LfE9`wvYdiFkNWWQJsx83cTUKHy*A;17z0elvb~%ShdB4%J4E+La zm)+fk8WRwVY@4SU15D2R0BKMnZw5^*Y2p}T$kei4lF|$W73eqRZx8sN{>8xBnl;S1 z70pz)T025}&JonDC-h+XMmEQhRSNDAa<^ zejN_CaQ6x{Z2)?tDT-(vJM;h*K=X!u9yB)fYg;W^ruVoLzC(I@W;9~Sv6>c1tfOso z-CnW40lL4eKmV`G7GMT5mdRI)-!Z!7yE6#xv;3WaZygn18T~TlL|~8A-(a2Zz{L)F-@B}%14!a?RNs6OXTsS@bv@^u=%0@QAQAvy6G`F9Y>j z=s>EJJIUBV6c|n3Np_&5gQefz*A2cQI!iNx8! zmaRpz3I_c$Z2{;#=;=c<7uXLIzC{+T7j^!%!q4FO2KX7&J_rttqZf6LqO2BJbIc)HE~n1N^f{n>uyXj=nl z7pp+KSRvZQ@@SLAFzV1oT~>;U981xi?vR7*2(!qs;bIszx#Crx&>;mFx21gvNlnt@ ztr^Ge!#|-@o?u?m0-dR7;ZN8R;X7izh1`r^Qrc__`Ld%CMuhW6HZu_FkYBH)M0p&n zorIPga2HlUV=B6XHEd9ypjngft8HBN7OPKAo3bWE6jM%VT#D*|PUziM03`LY-?*!` zUMOe~6VcOH*~idRam8ry5}ynH=Yjst&;^gp*)$T4ZJN7*?2)0%qc%fJphHo2j^>~6 zny^17D|>R*oJ?=VpVAJb8B$M6elB@J(#*uJgw}X3{s>3S-`H0PFYZb!gtf_IM|?u7 zizP-zSZ06N2$flv8!W7}7aLT*-dI_pZGeVnugwPr4r_n0wP>+|a)Hkxquf|yfgdO- zDa4=j;+}4B#siidKE`xo!!QBc{&6lP4V{#Oy{qwXkNFWI$ zpVV4hXkRdQbC=k151DEgh_Ch7#+KcP*pg9MB(u-@dyrwI$t;#$ffm8=7d*tsY>n0F z0M5A}FMSc zniTGka%xk+u!2QqPY*~bC>_i&n4;l; zfGuXy)4R&S-OoEoaL)K)7V9El1BSUY^I$`p!B7aDnTk$bLt9I=1%6I^>X=VTj@=xR2ICHLLtC4t%-JP9|b_XQIq&|)oUEc-th7t-2$^k0#Qf+PXN_?u&FGP=E z^bw*Nu#=rIUI>hV-_+-^Vv`J`g+i+tfs~o2CpWeFlaD3h#bX{4wa5J}AZnW$ksE;- zD0-1vo#}~K?P|@PQ1-HFtF2zBeleNbRy3yw?LYv&wzRaa22FB8t;vm(@|_+xnlaQH z3ybyeAHfd~8|V98!N8q^fg2z*d*sdF+q~}#y}*03ZCvwC{FXWIfiYIV>M=j+^llZk z3So(qsW416E+K}6oDpCJv83f_ETA7J16wWlFR@3*RBaUd1-8-E7m0NfiryEm&3Jz- zhLw$$4n0odBk{?9)b9kq&D(`u9e0%AE38@Y3pOv>JC{M>2G(?VwX5u1@QUGv+$DgE zWEQz$OaZf`f)w_wU^O8U0Iwd+tV)F!LCRrygxJ%8B<)o+EW6)4^Tw@wEX_xP;4R&= z2|r^n#lpDew*BN8u<8-N12A6KBZo2T0PryGWa@m)gTvi`Awd|#j9*+3l{Ae?OPaO! zNSV7~6)hCL|3T}Eg50z@Gxe1=?}VQ)icHyod=2Q1`g;N0tsJ@{tw}+5Wr#X;aLg;p z#BN^*hN~%9o4!oSe9Z97YAMR;Ib$_rH8q;-f~;AYRT*{Z?P=cB3sNpgzANd0#DfXn z!sfr}aSJsyIny|~7JcO(0*W~}iV02w_Pw|tAV;Eu6_ECB=r9K5)Y}VsDJ(f5nw?h` zmZ4T7LKQ70zFI63w$Y7}BZHK{qK~zIxE>RTQ37U-lxPo+;Xm`+0rO_r5;*8)G3M<- zFb7QR9)6vlxxbu;Y>?u?ABDjJ4_l0;jX{${Y;0{R90o&3i!445 z=MW5T$P`x@sSFk{_Q>SsZ>x5E&OZ(2Tu=(D-#dmp^KYOqmhASjt$kpPh$f z7>recXxu6LFh0Zrcg5!)AaAh|+k{W7NWHOVSIp4O40=tD{`PLzq!HF(t&~Kx!Ff3s zL&xMCMmI`&7{EvWPtuX|zn_Ue$DC5r4=KB6?EDiJ|7naiHy5VO43tV{`Bwuo>+mTR zVJlNO*KVR?E8$}$S*5OskE)PlYUB(b6P?67>#*h>RKmxNEN1o&IA$G%wGJz^0-&pZ zAR`pk`3%=wG5QE|B+#$D@pQ4(Mw(amRnJ&b>S8r-D)4ma++CQ@3{M{xJj0rI1C6Hw zhZu`7u{j$;V=m>dl7_NK5EhM#{W_jGw|)vv0i&JB$;)~=bFaPkxU<4QBCLWj)132?4aVpP{rah7sZNluvIrYQnc zMdmbaEL#wA0fKf}rcyl2wG4u_c9+8~=z$Eu*l@iiHdjLRs(EwtL^q=|`{ca)FC_S| zXI9`DA(jUk1vdk}OJo^J!FP=;zEY-=?c?F8;3%LOSIIaab=-yI;vyueVZkj1)q6@w}+HEUN`U0sm)3e+&PA+&OZLhs2` zeQ3k659mYUuFt9svWyS6%5j<01av zqsca8Ey&!QF_3g7UEl0NGyfEN?=$?dFtK8pk{G+dmO`Vp8^{hZZOH>Nl`wd8>x$F{?xd9M38zn9e_0Z zAFm?a^lVa3sBV#eKux{NF|{`c=2FHg2`i(3@XRq-&UNIN22QPiD`3epq?`kUzoO_N zCxhh*htob>h|+ok4*Os@$JJm|=meQ)zUW3tIv%Osceh@8;@KEO)}G4N;QZ}?GS7~3 zD9d@$6bYtOuiM`ZNcwsdc(+>^B>8!QLfDGZ1&igvu&V~6!f2Aem)CZN zND1FsosuDBr{HW7A;v#5%fA*dT}Sh9<=E*6iK&>U2IfBc@RC5xX;p?`;6(Cp)A{=W zH#g=YmQv2;V}(}i=618VIh@eGg05XG#3nU77KZB@vHFNoF*;qu$%*CfeUgixu?I5| zYGZ8upVhn*Q%fIw=Sma9Q8f44N;9W&j&4_QtflN!;v_|atf*x_?hsQ~0k);#mIpsd zUCzh%ov31>y$O8Vb@@1+-s?GWAPfXTH@04aAG+ahG3H>gqLEihm;D;DyGydBmMtJx~g0y z+l$XEsxO=@sLzki`RSbbc>}q(<-D2Go_%rFqglsf?#j5{_1C#=@J3gZw1Mq#Qo7Ti zFWsqytP^;9{iKmErP`f`ZiR)y>m&|7t?>{0=rA9~!LAo#Pvd)p+MQ@4Kus(5Bud&9 z9M$QeCMEyjelnr~<`JX{`p&s(OU}!#@P_e!(MBQz^q>6iYz^q7U2vxpgxBgpuX1l2 z+6U9VA}NE-O{F!RW7PzAefQgL4cMy_VjKiW(vBz9=)v~5+3PaK4bgA@u*?{}@f|%3tM$-Vx_yu`4@PLiwZZ2m=(o$0)ByA+ ztOvs9_t0SGTw>SClpW(=v7+K8{MtLd!Y`^&$EjOxEe%>pQ@-Q0(i~v z1CI$~@LivHjX_GlFC8%IR@1=w3N7FbZrG?oCPjm7#OW3j^owQuLS3L1^oj*b-uS1$ zF3~&PJkBk4A-mqR^^AB?sD}DU6N_1lOB?`0o{hO6hq);BJO%vR7}j6S$XY;jVG7 z^Y7E^Zym%xhhB;)I+M}T-`n2&`q8xMf^kR7%>q+1h)IR6_L{fD^inOv)$VR6HzpmI zDYD1TV!8i_pn2bQ2fBp1pV|Q(OOpwNJx7QQg`B$KfUhbG_ye&wby(4){mWiV>MO1jCm1ab^tNIV?2wU4D>%P<|FXK<#tpi zLXDQSKzfe;5A0~|*yL-hLE!1GrU5dvf^OLg?ZqWc0e2)gfX$Dv;Rw$G%?U6op#tc} zw=BXoDl+$iP8FhChx%a>FeKN>+51Anu=)r*3;1vsw5Cve?RNWM90d$XG1~BIYm8>e z`s&&mHqnNm3Q=$g60O%oV;%GvX%yOX?9#3~cqADn45PBqLRc0Z2P&VX>lQ#P0ls7^ ze^c@w2O$#%tIGo8l&Un;qi-Id;elyt9{AWLKRivSqMw_64`P5RGhYq#67(!OhQ1ah zB~CkS&uu6Mjyt}Q%DFXe^voVwqO&R7xKREq-MwSyUDoTBc#XRy)DLAMva4eVu(qe= zah+WfxNFTR_$fmZxqjz8$Wx5|O#J_2Tpg~tZ6y~J|ET!gMg4{UD2x>r6-?&une*#8 ztMjhS%gx=B^Xr_|+1F+lXN5C=ow+*WTKItcFSZ>t!dbB%q6{z)COrsh0dItbS*bND zRn;bGR3byuNY7bdaum!t5c?5QWHSM7IxLDK-AyB8nOrX{xFfsy`p7&iD7Au?=n(w6 zZ;0&nBQ0fN9A44q2X_tE(Sim6CBvHcyP^AfAg}^_{~#1zW|HMy>&A~U1xJ5&4%$By&^)#Fpy>+0)p2Qu z3A9%w(CQOmZP%mK(wU-sp zDs6df&kUjKB?+dwgp|B&CMo%%0$L(UUZm>v>7(S|70~P{dCm+`@&yT|+VUEEb+JpC zZ#kVZ`Md&J0wt?XqnJ+6o|8bUNr<)gssW^wnT)I=;M9c`ShrIbe^Wq9gtd8xAexRf z*B%E&h)cf`zmohPXk^iawKNCZQi?=vcIn7W{c*#||HB*e1=w8+XB6jmpYO z_Y%cLu5YZXDMQ1gD-Z@F27Kijm@}fhud$(~n!3`Fz2H-TCmm+v1Br1&3>)yxz|$Uv z-#}acUU;>F9Cs13ZGMAiXSR*&HtyL3Z}y0-;P@_TJJ8V{Wl_fj>XisoU2abxI){gO zvnk)qW5CXIJ`GYvpoe7cB6&(b(|Yb0ps5vxJPo>ik)XePlfN$rLkGxtv+KxXX|D^x zU>g#5bC{q&mXYR4y08jaA^BhZwD4C+WTVd?;s4@|_(v#-Z2lnKzi0d{X#|9IR(i}U z_&;dIZTP>K_zy;x!x7h(i=IKESV8GNI^}6A8F@t4I2%lDjZ$ve+ErCgS(AB3n65Ue za`E`=320k&cA^oDVP&=1R^Ov+d=*;bc8ou0wMACTM-E6 z1;tP8(cxVg;G1!5$3Y%=Ba6Na{eNu`7kNel|4Kdl_3j-I5{1zZJlajj?*X`l*+`JM z(n7xGcXzlykB}N@FU+GH#L#X;E|wAhf3C~xn!B=Or1++ylEU_alk<-J8x_hKqOO5q4mCA%O^3~i_ zBf6em&=TIxV^uU}5m^*-J3RWluXb-VSDP_~;d6DCg6;GZd>@_bNp~NiRz+Q&NXMQ0 zlO~8L4Eg&5kwLdc(UGqeJa$xQrMsLAV%XtQ%#_vN^1u1d|Q* z{>eXt5jkxkh^LRjbe-^c5Ms4dQ@HDxO@cr&!=RJ{Z2Us*$prEoy8tKAJ!DU&jQlA@ zDKiaXD}bdoM9(!@O5moWG7(Zkq$s4Fon%AARubT$vyaDv&`t*fd@IR({pPYR=!Aty zL2N7+j7E$QV+Tflxjj9b+~W|`@sGe@9GXDb4dWLBG=@ap1p%P)>c;B2`ijQ72AswM zp(98g!U|{Dz&>QmY=pPf)ZBM_Rn_8}+R}~4aoHOQ7C_~+z4zPaeBg~I5GTwi!Jnyc zj(OV@l{D_1k2ClF#eHTfv*Tra%CKctFC91r5Y~9$gC@d|@2q5kfh!bZim>_ZFnTFc zz9Bp|KnAw@ntV9(NCBbCya4|{pNv4g}XZ(9Du(B_GUOV z2~+EhiG`jX+^`=$H5!_LL$FtRAnCt86uJLPkRfun!T3O+R^Q-Q zxNp$Cq_om{vD6Ja8DPdU8I>u9{^PzCFaPMaD^BB3-y82*uzcs6C(u})O2XYnUW9z6 zbil0njLkvqs7v!0%F@!TNSTE%wKr{m5ljweK++G1v*;RYAgLiufW-GD(T^MMmUUro z{9P~+64GKEN`%p4-hVxFLDw%{xtU|n0q>hX{tGN9{uzBO<_1iZ$8t10YKMt0`FcA> z#(j--XOV@mPB9{WSi($oL!FEn;r&T4)On3O39mOkN0C8?OFpd5M6b|DN>O zZrDaiUpp`tFw}Zr55bV7mJ?ke3lEa{n8Ur0&(d5VzW&f&BEXQw1{nwqjbUo6qutl+ zuBrE|AS%&QvmAuGsuHHBjY0k`JW9ue_Atk=1(wvqQV5Vy5a+QzPwP0)B_E|7qxfv5OE#?=Y+fgWE`UOn33B(Hnbah^xQBPoyOfs zDmEM-F?Un0$&|J6;3$dGn?u^jpC$^RYiwvVXsDrPrfg8*8uw*3V)PR7Slasy?g?C& zZ-m=h8(zZKm~GU#!HZAXy>2G&(h%OOy1F_m>z%SH{gBL}b&WEM;`@@Y=K4~3Qfu$M zPh*p}u+x@5zxS`lJOB$3SMW&i{%8Ez{$20Ag}#Qudtz*!1L3`5>!#L?9>-Q5`;>x< zS{WDgjSLxtAL$E_0#XnpP3l{(DU``T^IwSP^BD5Y`PsFk_KL@l@0j2BK~*QcpkZ_` z2=Ce`VhDvdk!wvA{Y4#3%{|@jO`#!w80H?r28R$-G3*@-_MxB{+}6Rx4(@}3 zY0}@=Jje}~##9>I#_sOEfU)rb6;SDU_afL-8lv3K!g1))(2|%hPfr!>FZsUOwyvit zHHL>bZr$jqWjXi8>dGo^swoldsX#bX&ZY6?ImK@HhE1Mjo|+1%Of>2ozyyH=TtBhM zs%tBkli(QHxqv!nxqC}jj~fdMNLfIC5WHGkltHqEl@$QX@Gx2_!~RM8x7ESBR)OY$ z&%pl>9g76vkHViMOE$tV{#$0SMTA!Q(3eH80_RI-k-=@mW^kynoOBGEO&s*fei07!#4bAEijq*_t2#mOUR#x zV}kkQX{dx?p`cn3LTUi@dMgu)4SyQ?b96nNVp+71D3TOUQENcRridjwh%szz7g^vT zouw+lS(YNvDAhCup5`phDN!vwZgB4- zemgjsb~pk5GJTQ)fR1MmZ%zPU*Ss?RiKSXQ(_LP{|QIIVv|LfV6Ym z9!iEtT78rH#P{t)ID~1WDwF4)|4S6`%P$AG(`wECV+55FdP~W z4ML@45+L2q_;CdQ8N#?yielZB0LYGU|46934Fdmrg5&n+G}y8sf>)3;wmcaC4q5;w zXUon60PpgX9*L>JsX@4DZS)Z%{z7MXT?SwdSYTQgzMUf4kPys0uwWE=BJ80wa9XeS z6d>TtUD9h!$4Y5^B47vijfRHzh3)WZK)N~|NJ$u!lltUn?MMJ=3s@PW$=S5&#xyP> z0_dM)HYGSw!JpXM@dFY?#6Xmh$G(>&tE9G9#0*o%zP$6+K5*^BbY~t5Vfiv%dhOh& zf?vV+mBo%k*U?&BW3dzd1P^H2;R7|i*`}bgHa4Z^+H<(T6-MNPGD2#Vcotnp1n*6P zl?}?isor~EON_$uYEYRoS~=VyG)bM1KZ-;X z>jQ|5`F=~$B)k?^(z{~WK{Ui7~%X=%8p5yq6DK-EInGwIUsYC(B&$4+@^ zxH&6;DNg*3GUq3G%l;%OEe%g_k`$MQo82A4Nn#nG77UT@pj2`i)= z<{#;YB$eM-uY~RKeTmimN`a7ti4%{$jKZTov-C<2B^-GKJ)gU)4pJ9*lPxH7p2b=8 zkDlf(=O~~bQc$3jsNnk&qrlr)q1GrB;Y&i3DW00y0p9-{`1r>ln$Y`vwzhhzo$`bEIT;^y3QHJoO@fm3YF7H*KVYjSzp7ABc)kqJ z@19$K@lgUwO6u-g`==isPhX49gL{Rx?W1_$1G?AnAn7`48U3~c*2j{oqtibOea%ob zG8G(#eLbWM6pKN9P&Yxoe9`ITvD8oF_v{k+JN{YvWcU1+4^k-bjRR)KPpky!bW(IU z^=#Xs$6A}3c5F{$btLZ&?=&&WhT(&*W09AxFv~mqH<^rBEonF5TqcJLY$9g!z2! zW5E&d(amOMu!L%uCDf2!!!!X=XUDp3z$2IpsTM}(iM@WV&s=dHJ+<=_ej=q4)*t2* z(#qF#PMC(VaBb>{hBxWEKIg2-A;dj6B zmxFKQQ@WBzFq_`haE7^br7U_9XdiCFCF)#D`)Iu5(-Sx_Jpj*P zA{__scP0UHk3V8K)C#SQn`iBe1n*Bx0O(oPHpAxSC4-{i64ibH5l1rfDdl(SqXy1G9tHjC?$3NlkjmYtd zD~~hF(plKRH}4lYzumLx4t!r(bSY?9I!?*5xh<1My#y9N;e%W#Y|4cWBAE39gUnzH zL(jg*XkgfFMoYcGu12P065)OAksFp?S@~W1T5J)Z;>4(g3KR+9 z0re$X`HO$vym1{wlbr6Cr=L=BQ6-y*_(mICtS3;Hj(OK#CUfd|yZ{-3PfSjD*MC^f zHBEZgE5+_pzWi4gXRQ3>^&Fn|`%Y+l^Ulwe&|=fFH1z0?dIo*H&WoqnrxZk~75?;{ zHke{9q~7(K$XkA5W7_-tu2*UvySA6Z#(?+NZ#}<$K_kn`rGbqHTSA*AoChJRq#2#&JF=$6r5izheYkS~3C^vw@k%7Pfke*@mP9>3|_u}f%&SlIy* zhxB|1!QXdg^A0CNPaav#zjXH#_aR&?v+} zU|Qr*@Z2%z@-U_tEHT^j%1HO!U)+_MO9rx zZGBZmMaAw>`0YmW+s5S$mDTWunhIDKRM}XEzob~C!LdEw7BA{-#0NE=hwkE@4D)G; z5&j8`{d@cQy!8__T1ll~uQ4G#ReiN=zO%O`5ulDn88N-_WC`Inb9a65rK`V6g@rtp4tQUG;qtFX zp1YI277GAE)*LudgAlaK4B{aJPzoO34Zi%y?!Zw0VKv9BZ&fh{gMZU7s?2XB1{E>B zHie<#9rA&+^*=S!%DZ9JzkmApdp?ZlVt1mqbYjDUUwr8r?lmE_PEku9O_e=F?A-&F zqQWq`bS;A1aA-cNy{GB0BA9%if?8q=q=DM@0IX<)8408QURZ-c222qYr-D~wAVPx; z^2X}9UyOUppU5ogxaUmnwW;_o`hI7QXQo!{e(%>`yylH3N`H>;D?30M&DT=z0&y&1 zTi|TU)JF&>iWmVa@Yoe6V{2#tOi-9Mkl4Lw7rh3`U1H{xhi)ixTA2BwM9AslpMlcKi`sXG}CDYo!?gW=oV5AYPDR3VS0R1cTM zwg82yV-p&+V|W9=wNpP0%iHufCl_=zuu_Bn`9h?Vg>@Y20l1ArW!FoYjh1h~J*%R$JdH z&y4DgXFiiKXzl&a(|`W6=k;rOEO_4vzZG%~()sM^gr5G>J-H(Ub8;OPy|GWJ$WUs& z=sS~OLs$I$FEVK2gm2<$H7OmRYjn*gM?OvGlQXB@`_}j7yyxXyysn`9?Klv&t|+eS zlCB)VK(j8N#cvo64h!X*cCz8%^uTEOfP2V4Vcs6bEcy|M!a$e;!u}9$fs&}*fxu`5 z_0a3Fd}cR1C4&rUdvR@brIS@(EJi1WbW_Y3Wcl{;EJJ^eodC$`afF=LCFJm#g6Y7I zvhywZ{$>$BDJCiO_;JoW|CaD$dNI?1oHTZ*NytepE22kE5irk*(LI`L%y5FFYi#kW zUB1qqO2@-}*ryadQ>CN|={u9?nf1ytvfg`N!LZ@Ewt6O~|CR9mufENTkT0hvGvoRZ zHZ}x~`jO1z<;f8SBCOePoSu2MeMcI3k@g*%ntI@K3N}2Ibeu$NInZT+?B*qcWXa+! zO|6?Yd7LL{jL#{+sHJJ_tv0kV9N-S>%yM)XkLP3Vh96Ec;q6drekQ#g*U6(_rhMD5T~yd%-!TV(sin<lfshp&z`e6?~2@? zHQBud)_p4rSb(Q2=jD@n4iIJgTlG!hsgIg?~F6@4KzAw*}($Fl7$w!AJ=l z3vS{Nqt>2HIID=jZJ1CTo_f7!`sLUF*=LjU{lJN9@qH|;X4*{T#nOS*t<0i|k_2+O z6NtY94AtU9W$cYxq; zH^aI`e|Q`cAzB1C`?hRM0`g8d3PA#wZ+`O!7t+CW2FUks;z2IYVplIt$!vCl;cqp8 z(;gTa1(2IVP(cPJg%;vA&I`QR#a}t1i(xptOaYg4UCy2hg$q&P9CfpqnOmFFt z+>r$8(>1FHUUp?}yyWpt0qW-%R>_N{1B-9*riDNuU{!Rg=R-U@lffEx#}5eqXArpLfoNa+}YhX#JBIBAog!8s|UwCKB8 zx{rLmbiY+;-VP^OgYhX#O{+g~C%K6`3C7Z~X={5&2O`_J%zRjvT7b|}E*_7cp>Xzu z*XPEs=H55y^^(N%Yxi@nP5HWCDP3=rXtT(!ulu_{JM){HU%>Y*i#j++KKaO!FTP_A zGCw>;dVkqL$SCJkwiFROHyRVO5Jq$Kz+tlgoxC zyv--c@tH|)6ND%rPQe{cpMk-Rqgq7U@y2yFunUN8x>E*o`~nUZfH|%znCAI1b!=cJ zg?d_kwquTK^)L${Ho z*c~JRur3gu3JiqC$(~`&;8?4o#6Lv1g7lIRh9Jw--1@IkjVx+!^u8N;mOe?P`wib- zhRe5o*7au<$=LC6htZBnnyEnkSo0rDuBHov7**o6oyra9x{;HsiFl1t7C9NOQ#g2P z;pbfxR`OW7f59=#rUjJW&UWG;tQKV~&_!lEMNEpL0Fp1YZf)hSrzbz!yRTsGJm~-5 z<0?6^cwtd}VRON{{LjpJYR=NUNbdJ?-<5M__6=Eo%36^*l@W67nY$VpD&2=zCIn_0 zqs^vzLX6-864=m89M`_k1mij(+elZOZXJW4hkzY@Ly-`RJ@?a094WLLC5!wZ(+kmO zelR=O)-Yfg7vd1+m!`WzaagUVvbMguv7+8nKP)h^w|)Jyf7tTbOpZT#y^9Y1xxeef zv`~lM(9B+p8QmVABuDaj6=0s4%|KCMsnX z#p3lYgiezVVEOMwA5_XfU;jtNTOau?O>UJ%$%5%dCr;|mHo=H$&|Y-QvDQc3v@S^? z;0)znA>_+Ar*8vZE9SCH(djd#-MMG|(@oGNKA1Rsu_Y`!}S&D8_^J}0d5 z<4zJtBwNQ5Lf)Aa@SiGul!RSwIQR0S6Cl3+jz<{c9Y;Zbv|(%n{tJhpa~*1F-Evf8 z!?q+by0c4ks6L`=#TnmD0I_j5ltsy;9gh=KKfD1#M=+M!4q)GwBw?5Zva?Be`>i|9 zUG%jC0H55;VvHDQ_Bi3~A8znN*a#|>Z7`fPaCG`dVQ4>_PGDUDCAS`P%jX4%AESX> zYOfB|y?7pDidsPN8Yd|J!Ft$i0&$^)yu3asFW*37D*r+tEU>fIKf45PJsZ_mx2%$Z zT?Js*IzjY9?V+Lm-9ac8gLMEpW^RXx0EwC7%pNp;B$%uJ_|#vpZrg-e3@J8@xf#q2 z0JEcr^MmcAwy8g9#JN2wwy)61VeY3M+(ctMdX-&${L2h-QkT5K36ng~IyoGINhEqy zx1QRS7}KZ6+wcCTUJQ77#C%n9SXWpq31 z%uF#?C*YyO%gCmPaj@=TSxK3C8v9%G4_S(yqC7_XlVik4J+vTC!mNb?Cyd-GB8sI+)Jbpl0>Z^cD{+0nHMgncf}#fszgzJ2 z{9EUom$yCVSJ_u)4Q75VV-kKj%m1QV0M8LC9Aw1}@F$Fb2{Dzj_meGPWQcfQFwz&2 ziqd>R*kA^ZWD~Tl3=p%#TF#k$4#7(49&ghlvBG`VBhlEdx}o@)SJrI{uf%t-*M_~T z9{$&+qT@cv(So#ty|F%P=VpA3-kN(UuJOCir9a13LNKH|wudN6Gx;L_N#fqW5{eFL6 z#aIO9VnLj71^ZZJ1?)Qnx2(Eyyt2}>g2r0V8Y=Z8q8M6xzmGVgj7}Srsf-#uTf`DA zx8(=Cd_;a2Yz{%_2pU8C#zwLEhx`FEz^1nTjmNhrd$A|HEyR8na*~i^B`@9gaRite z)#g$|vH4^L(7QQymPv06c_pOxfR5g{-Y4i!gVOAi?-Uxl_^t{Kk<$>6fDU0aw4c6! z2%n!tu)-f_NJ`G-@A50lrOPnc=GAJnq71b9S zCX4ENL8p!Gqha9IZSIbZJ)1hVw31mlY(-RLxtqenO=yJn*GlL|re(;DjW8_09T^Ob z4MC+Dthfx5jp(r9NzhPyZ%Qv6!)dFbVoQJkYhpW1X-}@*{W=1Wo#JVrpL{H3>Klen(s-#-e7dyiNrq0r0YByPfo(`_?gR_XO91cNA`6>r)J}$v4SwhBBv>d3> zaI#^J!=^~s{1RdpzFmSBR-%#H-&lfEjI!VO>x9L0!fX5aXljL zmb3qp-sV!-xJU&Nj`?AMjEKakZ%=g^{Gcgr(4wJ5DJcRpd_&3mC+CL)Ye9+ZNLYL> z8`JZ4bo7w6MPL6pW6;vt?_Tfk+e3!IHG^*k*9r9rz&i`>W*baNYLR_N`(AdN)Yq^% zAd%p}2z)PWJr0ccd!d@o*h5IXJ=!NmtaS2~-2e#ek(mgE$^Iy|qYyv3(bv*Yy#&(O z&;<+M1ecR(p&M@`UkAUU?_38pyk%tNtF=iPe-D31`YQhY@N;wb##(7y3cdY|9AMkL zT_3%uoK})k-tLWWKj{6^<_bMGO{FsWglG)%7`mgFtiWrdC+(xxgzYm zDiWcOBiAB|4ud+;LSInwD%Ahq;wpZz=+8w>g|`$uT2KQ!0H2wYowqo*Hs|8(zh`gE zIydw3jF&Suxo(+z0zx!P4^cAkvsUN#2}nlh@b+7FR!6^oFqB~2gIBGy>W!cNq+BFI zGEymyp*sO!)Rwr}!FVPIqrwV?^l89EeDkrsNk-OTfoa7SN z8BgGZ5C*tt52p{vvCnh&?@cWN8e&Ni473k^q7EQNJy{s|_x} zU_YeZTRK@wfx#3ABI_48hU4CGy3?E9ClmZ{CcWxNUb*O!@^f@A0NRcAw*{V!lu|&y z&Un~>H?h@Ol}7r9j^8q_$!+sg_v4g^{Mw{<%}&`8H^X<#^I#{oq!!O<9b2G^b@eR$ znsnlXD#_y{1!Sn*20RY$cJ`u^2t>eSpDILxf41@cG1g4WD zPlChUmfqn=u$W%R7SR&&>Zc7RMU`Z6D*5w2~KYBWV|yF!53a!WGsl2Tj`-VUI6t4=%F$ZFYhjGbFxVB-W-z1dcRd+MFvu8TOf z?Tv4F1a$=W8j;i24&1Pc+H(oz^hh|^VzhrHR<=9XkIfSiUgpuA7F2q46RVs~(8F|w z1sXyH50<+?V^TMfI?fQ>SAhY*wWb1{2b9B9uh+v;3d z2+DaH8>*p>VuV(|QRbA2DK_~b-w$sk0k@9k9(aFsbveG1rot=SouQEdvx9(*vw<0B zA@=~(KaY@zT5tp$D>g_t0y~yqPJut-uBvOi@Ak^Z#jP;cMj4BP)dgcC!BO%~5u^&3 ze#nQ}p*Duh0>-IcK{7q3g7B`8etf^GBOd}!ctAG%d(@uz`xN{CMNS%$| zo46+={(1Bfm%r~n_?kh158XtoIu#1!$`mkeBa{QJF#IV63UrT-f*r%G7?JPFrjr7d z_uXDwKV1~)ASi_`W-Uqw2Z(}C&LR;)9CJd}zjJv)j4z`8E~7)?`7~a(?7$p*rDS8o zEc;^$bbx;TFc#d*hEkdVO5Ci-LVSBvM~Nd}|N4c`@|4(pEngEgU{N9siFh^zN_2rv zf(hEQL5HfEX_p8c9TX`c5}{lUJFffzl0}h-JR%Xr+})5|GyNe2Iy4VLHfZm*vH zOIkyR?ek>X5IUSV_O7mNykctne?gs14sMfk1t3!to)0FCQ|Y$J3BT_{6I{WRWgI_oGj)EPIG2rW6jqUzJ5q z21;@nI*Xikl)TT9C)>I4dN5O?g+8p}7|id9V49R5$2J{_L%^mU%(DTTjy&Y|8!UsV z*@Qw-<)j+PRKj=4f}V0lx2TrZCe;UA3z_RNBt1nz2O^>h)! z)Jz&eZ2KeG8&2CB3|k_3+`v*yX%OOt6bP}2G_m>nW?UkOzgji@Ax+I5gzZP+ZOv&b za#N$$*5}2p&vds>PIwMZ3vA z4)LI#+`3eYJNm(g&gO|B1rID@q;Xw8mjW@Mt!Y-Y6WC2P(;iG~(j>sQZ;)*%txzm2 zK8R#t!L-~1hhR4SEd@Gkg0fSnI-PNO06J88rt6k4&8BN)TNUKtR5A+|9Z9nSS(9%$ zD)$kd4*BoDojwImFfTKD#DPqrqmJNol;m53gKasD7$05sY6|3N9`r+JAhci1JVnU8 zJ#FDlQ$wj9#Z8D<>%u;+c}rjkzQ*o}oD45die+Sx@4b)`&s(wKoMb(qd5kVf^`}O`ELpg(nWfF+}mMM&1~FaAhosACbb5S zsO@ARwXGnu$^fXj_guK>%L!P;ywnb46Kc%ks9}k#T_EPo6sXY@7#a$U2jOAn2RUNcVw@N=e55KN`CPBt5Q zzbFZUvj0R1y;w9z!@+qy1sZJi?}MI-*;7Z=b<=Ioc|R%}(Qq|%%k^c%uueVxk_IvU zodPjnV-3`8%nmU~P;v(DX(a#iAfPb)PvQtieeNyfiYAjW!FSQ6Mbd&HRjx&gLI zno~(YjLYP7B9RP5O-XSWD>9j7Z!}^4P-DWrmI5)r#|aO?0`vcOFYG&>2Q{^Yr-kg~ zDAi1+sY*UoI&er5@y`^9(6cuT_ccy9o%tJkTAhFM#=ctDck`{4Dz1a@#D%H>TF%iRTbft$LgllNgQ2 zW?7F?Tc5oDpl2*R4#L5<@``hQSOY>^pq~st<{A;)5wmyRQ(5g1`V!LWefBNP?b;U2 zJ(=f6`ZJ*D_pvGqMTi&+Pu5TH3l2p;VknX)3B!OdsrY^RQB+xDpvV{sq?v|u0Unn| z>tL+low9`?uKMxq%zOG~W2-vVru%)3@LK%9yG^`36&nP+?clbm=;s-Mc~oN844GDAw$0EvZ`?4dRG75ZQ(Y}Eske5% za*4g&%aMRoOFf^re&Tq1jVVmT@GX!3m13AYmJZOLflGfEod;!ao?>%qnT2dL>Qp&i zdC)iHk3cFJn~E{U(m=k>D9o$F@5UOg(%!dsanA^J%JhXiHhh|0t|nklMwgR%JOs?5 zJ^o||Sly0&n9-w5m$6+7oxQ*@0;|t#Zf&WS*Vy#8Rst}FB*HC zfR%n5-3I61jC1voPJ)(``hf8K^4^wU51r}ChAf*qoO%XfuGLTg zTG!Y#L*saB=PSpfQzZ?xw8|@=0XFKj$+^*~xlJ^&z|Lhpg`+)=``#!s;;D2;GeiZC zR@X%d34T9m*kID4Z^1u_!|wQP+>;5f_Z~Um3ZSo-n^p8X)Bx_^M2CqG={m?&NkX`5 zCK*e14+ayD*sHFoc2e)jsI`bY-gtcLW%7jqmq@1EE)28O8ldywgl}@6)epCTBmX*j zCLFm(cVs~TktOiRRexbeCL6c90+T_Qv&`8h>a6eTG-h1zZ4P&OQVxb-N;VElZEWz6t@EvYYieL@YE5NDRc)1fc)5FH z-Y8Ei*pcsf@TgK63#NDA zh~_mIt^MD-7hLzbN&KvFPdASob?^KBekqT=?``_*zeXEReHVQVNdHUR47(QXa0!1Z zd*_pnRdjaw31;BBuB@zd^EYD880;wrD+df3yv)%iB0a^s!=YifXN6}487?cBAb3r) zOnGm7bIUDrJd6H@&`}H!mUyh>@)sNNHFh%b#<2MKQODEr%C~HQ`QKxGd%%h#9SqiO zN&cQO)5P1PUJ3DSr^_-o;cZg%3akKqNY1a=s@I<%C?KvspGdTr7|8(-sAw#0v+RE< zxc+c!^oB5^r^;gQZ2}sY2iny)G&k5^#2P= zMqTf6b-RlGT6kvuFY_zrT$p!l?mfAgIh(Uj%?f7TmGR$tO@kooc~u=vjUYQoWP= z&#=+A$y=N1hFimKQtt{R$)I18)@-OnowJ4-Lu9H4O zLzG%HDnxhcR)q&Ay{$R2;+=ZWv$XV6_IuFCq(e$21!5gs@OhSh1PPo#qz)UU^o&^t zl+sRBwFCGf3t)>*f+QVgT`eoCQ)L|%;IPQX{2@Q-n z8rEQ$G>cvMvOFtp$k@m}a_DW1BX~$W>h$-Q&LR z`2smuq%}p$OYp0VtAgsLG|=2-qt&1=L5pe^W@hEdXyCN-0XWO zO30&;`*u7KwW2}54#zxlhRD<4C^Kf5_=ms%lFNmsEpvXtdf|i|{WT{{$EiF78tMli zIbEYtajdBo>#YnJL6@2NIs__cT^Pq}N-E}aFq$+FVbo~S6lFmRW2^?Qm!0xZX-lUH zjw@a-<-cOA(is{H!j3+OL3Hol4T}e*k>gtj!JLGpspqgYukdVR_f~85Qz$qD<7oR~ zaaDMqd+!*mvyB8IFo4!9)T*s+bi!#yh^(*ue_&%sid2v723cv1VFK17w)K;S?BB42 z1S33xq@*Pw?s6hRFzVS5KJ|OuONiLHJ)Zi?sxmj&a*@Hn&~CKonmW6T-_|yIYRf&a zGZc1b_Jb$xrn|i1qoZLzY#AmtU^w89P*cUgb0b6G)dnD7p%yYpt%t z0dcKC^IZ};EZIWkX#l@EMc`FgnDnYLW0Tc!4E)z6;4SG8fIme8ypF?FZl2U|y$$gD z0rU2&IT7>lfYvI#4E8eNHWQ#0>UFYRl}`RJ<&?gXzK3L-lIE9FJ;t?I<|OT#Pe@Z9 zGEa@;*lh@>#&1(k`>Ls68GKaOWzqK~zmP=2jVOeJ0z4=>*cF0;5msTtYvp<;V+;*} zOPO*PAamnc3~kY@XlmPZRl(eP*AcGwxk^fl3yRJzj1=6J|K^;xVEbQH?#`Ucvwxp` zQdS@{oG}h>Iqd(UlgUNK2>heStOzm8n*~mZMW#9(#Orcb+e+jcenR6~L7p&Ase)OP z@1lH09*w$B$2G4j44yMj&Q~Pqn9h+iWiVaqXXJ`OkT=cQ+rBP0oj}d2^1i9lJ|+a6 zn7o}UQeDcDs#nyCVVUZdw$PqD9n-gMwOmIr{v}SPCcNz$IcvK?NefTCTSsmO>rGKT zuGnnRIYGgemQ{;nLl#(7VM}1uJ5fn+XSBK39IQ8`ux}D!=NXm!HM87I%WN9xRmK8l zQy9<&`f6adHI_Y;h}kIg-6HfBs|m0tWfzq-CN(T%19US0-LcB7__Q&TEmLAey9qQ6 zGHn|2!&PJkTUa$XwsBYo5(8-}FF~CDy)rM6NRd)-YnTCIs+4Tu+Of^SA=;?L5@UMB(9NC+BD@Ey$THUdPtgQ-=G4i2`7P{+x^TD1o=gA|A5L|Y%1 z-EVTD3(G$B42|MRHKih{NUhEpy4r6Wr(uQ5(8&Hs#NRgvUe)Mm#N81AwllKBa`3CR zx;hQNyo}RN23Lxd_5&F{rrg!E|`85Z)*=uLQjd0o`zp89sN=D z=&dz!N)(R%4W;%^-21e@@Z8%Gsb$ed!pNu_CADZn_KH7r3G_zynIk%{AtmT_gj0wF z&@058GN7j%yB|Sc7A2k{-8q*c=+9_C7s!?Xcn#`RG{cRmki%@Z5P{zVz|;MNh-m2q zssU7SmC1GCeTn%jtxV&cGHZ?BiD;(o1XOBXC#QR%#`I`~&&-@6`LJo}E`h@?PVEAw zDY*A_`PnH6fAM7THpTJIFcLPGT9nQjC&mnX<$E(1uL1^){yg7qc`4D5ZlZtqQzt?oi?j5*% z7t5~^{{HmB(Vma<{H-l5i8?;#GR-+nnrP4IWW{X4bGl{O)}B+V{G*Nqq=c}YLC6H6 ztfu1ZD55lw9wt#PRvq0Y9Wo)g7p>PCZkAJv7w19 zAzATblX*r)0+Gb6hF^Tfe@__iE@obt86 zq?GML^k!kks_#g6t@ATy;rA_zodReJa%eN~#P7L=*EqBp(^9&E2HJRiJqtx$fH+pv z#SmA{;R-sFE|Mb~5R5(WYj8ilz`YMbg159qh51 zFC&QGzDRZe0Ex{q!X~`yDpe+IkIAlH3P_BO!2QO}4v<6_FF7HMvf_sd4ihDEfI*z7 z{lg}HhMP!@xcz493ih_`a1b_H@dM?&qRh#`GB|M>sjI^#H?{|NnkrrKkaBQdSTx5@ zV>pKQFf+XE>C1u5X>A2^xQ@-mbmf;h9c!P)NpMf7cLL}+TC?buLtjzKPjuN50VTNejTSKhpKKtK_rAPZcjMYAyUk!7uY)%ilET zra4)8$LH4MY|OqT>!GYAnQa+gaJ@bEOuPtFeTce6iLq{28^@>WN8B_SdplVg3-dI> zLr!Hbqj>4<&8uI!{ce0sa>+&4Yym*nsuL1B2p^UqRHTHFN&-@`Vu-(?6kTg=W9Ml6 zp$w$SR6H|D5Ekh?zZ8>wPPc$o#TeTYKcs7pzGthLn__SdcT{f6FPLy(j@qkov^wH4Xo2CWHWaGUm^^X0>94{Feo zNxWIM6m?9_Z;1yr)vorGPLjfjPI>xcDUs92q_R_*l}b@^2i7}KZJy6>3?R4K-_Twy zHBw_cgBs#Ry$FEh3VAH?vXOnyH9U|!$MIL79!_UmBf{wznOF00nhcW^$P|gLN9GxT zOgRH>`7{DXshZku@^x<*$C%Q_bM>-rOv6+6Hpk`5dR&-A$$LoRY+U1b%tfd7wv%dP zdc2hz1MFPL(pE46$zTLln(vfz0ML^AsQem~q#PxepJ?kc#EaahY;aJpMqzIhVYhL9 zT8JVPj0+LP-j?sRliF3ppixKMddfGU9+Wo|ZM>d7;HPHk+DpVwm9H{>>VmzVqz%fB zovPCqY~*d5C(~p+ep-+G+JuKcEAP{qWg8+_Rly-w>0AZX1VPGF{@OTQ0;XEd0ilJ` z+m1D+JP{xU(4>Uv^xWjsm#%zFfLT$ShA6bD601Y8xBY%O?g)W^(iDMrjPPFx!0RPp zMN)*XtCve#0A@ux^pXI2Y%b^jJNMjX+5sl{|9P&Dx#k{UvZnazqW=`_D*SxGJ^7E% zd2>!?-j>{5IoD=Cll5HY3z;<;2jFef`!6~QB1Y%#TKBv4lX@@JOfWryb9XI*tL7HW z-F0F;8+@))`P%WjN6>{iN!Y>VMHAGHNG~GH+X|WK&24@GGRWVcL2V z{?y1;{hA8DMKoUMk|SP4GK9hvV%Pva4uEq}0v+^1x}^G6f#1v-@OHLgO**cI_in`w zzJs#}V7Rdo2A%Z!=F1VFiA*$xmI z2{R%YCjbL#{bf7xS|NgN3Kznx=bzLB#E24!k-C!rK3e9QqJUJ0@bTi20L0W-To0mS z6qbu1nhb6a-F(QTN+}LSu2ET#K`$j2`mkH8daQh zJ|#O`bhA!}`hi8XCbJC-SN&BzAI~P*BRc8XVNxI+(OGU;xF!nb9s<4awJrNMQ!m^QU>~Z{Sc=gu) zbqnku2^dC(X(2Iucv~)zH5sHDAC(;_lKgq~?cMJ$Ms7%07eFeVoVbd$UtpBq6c`za z>>C>Qj|9bnRMl0ibz&fx5eZ_7ih%lm^#vs(6{s*t!_wmz_)0tKSyRcb~McSO+fyan(Q{g&ah2Nqb`Fobdpc>>__*Gm3{0dF<4#@#BwzKg-x7a#v-O+;X zr3dhJhXVsJb*a-o+#3jw8tm3F0(%FcZ(K={lcAm5d^JyPb$v~RTQgK@1oj$2cXL0P z^u)deQt-oMA7TU-7aFrY>GU-m9))|7$XBN3@!;OXVHhRaPxmacqrkq;fv|t?Af)y? zM#$f!vqj1B#XcDSwxqqIxlEid)pED08P1$1>%a*indWV~QC6HbyF#SpD3Ud*p^2BN z1a=-Pr)E%x&-lX?KT(`Jq?9R8EF$KJaxIL7Gw=s zCV9H)HHEwe#xf)9Kt72F*`ko3<5I-3S4He3k9ixAold{0dD393JwyJ%&~Q?t!ihO) zFqW6dglJTVYleK6%G=msGMaKn+1#h+0AtZWAdk8Dv&CrdR>iqqJU z7oY&pM7Ok3scGdi5L%{QtdR-#effMy!@j_M$mXn0)Au#s?KbF|NQ{yaNF@e@Efu2K z@Fdw8OKWRVB+z$6pe^$7f|LNoDmo!vsi0jCZEPu+2W)_~#7cJjG-dFUyq$B#o5Uau zDfT)g&(x_|IhbjniNWWOB6kWgn3%`Hm8Bf5pERI5Ciz~?MvIp}CF$OX3$&IWImms*$0kS92+cKM4&Cz?79NB57Hd_?HGH2aqb zpP2Rk0R6jN-*?SzE!k3hWzpk>e<=84L1X@gIalWW2I~L&a&FH4M%LFe@6Pxxyy+eK z59bJKt8OiY0Gw{oss6K!PHd5~IXX&ryVRv)sp)3D>XzW8IO|o)UvzHpqO6zU;)>I( zjJBi?QM|>I8>3|SlP8N%)j45Q!=zA8Hhwh%O|R4m?O70P|i8Up5+3zoZkfrrwE;u_! zcI()74F4J7>{P8M#Xvfh3~SMy0{%V)aGqBQqRoJm3WTI)RFwjvrl=kp z$Vv8%rm!RtvqSlQ4su(VQ`HixMu36qisrBZeXWRe34RUIr#R461tB0^E94rER|Oip zMn&*#4p3>byTmYdxZkH7fXFuwcybw4M;;US;YeGKwJr>l-^QB`aZkds(y$PFt3mRAZF9{>ZJ68llG|Dv2kI z*N1SHm=|WIj;MwdxQ~&1}#&n`)f=s+AD@^)nKIFUTD+QfVX;O z;@J?&s{2F9k)%o01a&{tot}3E)l^nvI;kvmwUyM9(DpTTz-60Cbjd_y{OL3cQukGX z+KFz>RLQ222uk-AQrc(}tL`sFvfZJ=ZxKz9w&aLckPLt;#IOO}X@s-x9D(1=GB{gZ zn2w~aJx`XF@!OD540pummEQn&)gmQ1lHbK#FY;kCbnc)^2NPCx8!4^KvnJxUq@a71 z2tR;+r=rFU<5|#+1#`>5|KH*&$u2&!XhGqgf;;lx$gi0*oOe@RQEo*}IQy=wyEDI? znUm2DZ%XN3Gy)fcw(!j6;%;2b=)c1cO~@kyqman67+33(r(vJ3;HV8L2)9gan1`bT z)u2lEMuh{6N*G#3Vbl_?hC^#-=Gh&(fIDp>>bI$(d0mpr+ZLBk1kfv=wGr7`6ME@( zu!BBdhTb9=uW6DaT}7~i3S*}$R~o+0IBk0{JP=G?pi!5O)umh9(Q}zBjbMB!hOjmU zUOVtKaxP;x%N=xl`1|Fp+l==Ib)IJI>(PMFPzh3lp_Y?&uZ8Y%kv`mvt+1{5Qy=!;4f9imYd zJr+)PvgOj?!4jU%yPX}2FcnhcFv3RfX=A`gGr&fNwOe3WKWW09Z!yeo8}$#msky;h zR3h&n(ggP_e%hllCSelzv1)3xNu5U}U6E$oGTI7Zis z*8SnMiLd_m$Vmy+XNqj3vJBu~VJ#aKM52k>G8JSb)t#+>%7UBcptLwg@{v}{EDNh7wmvQQk^&jJN(z9Fc} zi@00Q9fM*#A8bb425T6%Hg`3z=xoNiFaO@XL%}|*a3fo?&m9Yf!4YtehQ|W1fziJ= z0M&YdNFY3pZ=o@iGYKL}$KK6JtQ0<2)d`jDLTURXUy~r$eOY5)M)1J-4i5Yk@xVqM zVsnU=?hTm-_O<$wo|x>8gla>7WGoyYE5?PG(cwFSvnHS0@DTbh!GUA5a=x(v} zV!4}CT9Vg0Mn(hS5u`IP%kGd-fC&|sqvBdz0WF$Mq%t>nRR_t}rnq;;WwjL9%gnhg zg%AHab921|9DSLdm~Le10v0DM-Lo$;8W=VdKSN!_&7pI8j%Dh7dMxv4!Q5=9|6l1U zSzr9=qRR@eDDdZ3=lw7Dk=$c*db97$`a|Z68Lwv)x>nBJh1laBqTS>&A0P;Us5Vm# zD! zV%?eR(kUBgyI8)cBucky{LQv6r&yBcSWcg?_*o~XRrNC@r`NivV3Nnufp2YNfsm-v zIlPUJS_evCz9x_~RjPpJ6zQ`upNQE<=kTV;bH9+l<>idv!c2ZAmlZ`W0B%KoY~Zc| zxVcr*$u-2!CAcj~5ui@W?J8$OC{vLDJ=C$~V9N}11M!oCZ7hbtMnp5z!fSHTRw<)5 z`jCHu4qXI;W*{8wcaK50iQ69`mQ4>eeRc-|qZRHpab_cHBWVlt2gpvt{=jaCMB>hH zk^rX7BQ^C>ndr$V2~^2TiHl~XtqEdLH^?`GzSuEVZD9+U(|SO>soqqhF|Sy}mPP7W zC=>;3$%UeeWV;T+kdMlD1WamE};Ynb9m7aAr(0wkVxc7tZP4U9NwlW#kc^GIz&RKeUWkpKUP ztKl)t>&Z0$hVQ!-inT7=g@W}!e6?nTB?{)f&php?|ZX_+lw2Nb)u2z7m zwFipUNl!mepHqOUu?Om$8N$?O6`(KywMa|8kr@K&Dg~%2drZ;x8mHuo)x-VfiJl<_ z%}~{-4;VRHd8GoCr(-uXrW0kcE;Jg1W$)d+L&0+)TyBQbmW=zuK|iEio61P*I*iY7 zFTvZsvB6VYw%py?x2CGD0aCA36%EjRJ-V%DxqD;Z8c#z*y{ECEf=u#**DCPzTghYT zo<<}B^+JZ?XWt@6Erz|Lo~jE^{O2dR_l;;?3+d#~7wY)UuVADaewGR0_k`Ebw>yja zb}FWWcj_9eYbZL6Byo#kLiEN@J0QC$L|Z8%u{5jU2Bg(+ zi-FBTT5Q=V)SWtP@zICbaPAt7wR#D$_FkD6wOA87{#a@~R%44OgUhVzj>_Yy5~A>~ zo_$2I*3v|X+C}gr{R{U6+@Wv~3QPS%Ly-5zz%Hp`fUGtbaS28sQrtHb z@Q2;y?!6({3)~CuCT}vnvc03nO++COrse{RI3Q(=OkjN1qq3ba!M|ZrSZHAQHY~_w zBEh+j+F$^QPM4{i2e89t!-7cB)k$)mQhipGXct4?I9Vx51& z9}Lps&{`v{Dp09*H~vEvMIDgdcz>2G0@&@hz{vB9`9u6@S#+reM!c@nvE?fu-y|!>>q#`p0Qt^=M(O(osLCqkf989s|^u zx7{U_rVPfSRy<4yJ$Vm7h6J5~TTNuh63UQEflP=$d24mJb0#?=grt(2gD|P&tbAL6 zPzXkOYY#@hvl|u7QBS2H$jr>*waxh3n>gJw;awk>HTp!Am*aAz&}I0-WpCXqV_*TM;5lV}k`wmGw6?@R>%};YfTmcp7ROYAayQ z&oCxEYU^vOJdG7qweDf+a?eDqr@TVmkOuf>u4WzqR?QP4p@)q(*5p`LLazxFArLk3jzX3=1`+n<(357zj-=a|z^+le!0IVCIt17t55LkvUj);9bDv zjR&l@GW61HA{hDPgsUF#4F{lM&_Ckt@ehamZWdhM1f4)VBm1CWdZim0soa~wp>qO# zq-Ht-F?7Fs2P`2Yr4U{I5$G^n>GqAXK)ic$O>HIl2ek~V-22v4x_ie)-C=)!a16T8 zLhd2xGaDU)y&|v=fQIhfYux1xRrneB5Y}&R9fUWx`G=ra39Hk{Us~g?_Ec3tKEDp~ z7o<$Wy|KLqinm902gAb=_qcxuN-^L|+cqwDPrwZSK{tf`10y7F*YBPPLMPh@3Hb-Z zZvW5#{N>R>_!NPSD6hR^P|Fb+4D?f5qysgFKfZjkJS(vGZL0LIz;|eapMtWF?L>+k zLDV+NN^**Pf0`*0N{1q#-8UK?g0Lr{KQIbSrmP^?qycmq5(-QO!XfOq6e*Y#wXT~{ z=2AuN0h~&G08>bkLb9G_3$kg<<4_v(6IZ4X_7nOI9NmQOLFiEE4FpDz3;VVJ}5y#dN;N04Yk#EtP+OBT)a(qmkO4bwsT+Y5{G67bpU~{G4JV{Z+ZN$NJ6HU zTvx1Uq0bLgf*72YgjPT`PLJNlZV=j#P1>4G)8+pNwW!`E~*Y zzg$OskYxudfMTaPqS*I%idj{~$tsxMG1BEZ6ncp>=DjIT2~Z{iXh%wD>D2-B`qE`Z zRKlX$z$qKnO;SN+h(3a7sCZuxXs6$ zQL~QW9qUXn4XpJzd>wjj zI|TI12kzOy_3~PbgFgvcfO5~T7Z>cM&BP>j5r>A}_?Aadpt#qF z#J+amhEevKRcBzwuqa!+GD61V zTa+R!XxN3Vj!Ry zChp=Y*J*Kgw;acVw#ZVM6YX*5oa=rr<1Td%W_mCucRv$^2xV>KaUJGbR+BNGr*oVL znEOTn33qa@*<;QNT*uoFlA1G~A{proV2o~W_74SNIu#l6idqhG>oYH{HPv;Z=j<(# zi`T~EXK13t-uvZUwJ_3I!Q~Ws$+x>7KwL6qhu&HIz`N;du|^4lk_D#0pfUbk#vr8s zX9I(^5(d>c`$srdn(+FrS5fE7RD?AJ)K%G{PCz2Zd_OhBR$@LVO_&YTNkKNBDzp~~ zsB5}RzBeWpa&Jh5-JA>TPi$}o^%ApzGbz;7v`9_sXqM{guU9gl>G|^=V$iw3{@4bC zP|`6Q7?grfO?S#nHGTny60l5^TNv($`SSge0`q|&=48goL2CW>P6JxThUY-9jNdT) z87}AS-nC}GBePOyowyOz+BQ$dCTvoR$gfR$*X&dfC^kQ`@(EJ^U+n5|l{{1YouaD? z_Z4i)U!M1J?kzd*&t8+2nQ=4xDz$&HvjFcQn$k8d6_#bPo{D(?GsAlq&|~XoFfGS%G~|7ijX@LMHqB1THsyU&zVHLjz4rY1G+Vxud@HNH zSsL382;RdXSh$23szn6trJw?)jq?Ul3c**S_yXiX!sJG~lvW6G&=;=#6pD;Dtr6_GcKn%*r2r zOwWuPN1i%KM!mX)6Wf$To_Y8L(BmFRoMb2i->7 z($L~aF|M^ZA_FtFzV(m0C}xn81}sDoW@2mX4aLRV%Z3bc%ItRrqWb-Vp;=9gd4QLw z8Emjpi=zE|>RNvWiaaE(^svu1Aa;>XV}QA37BCrrtXg#iHZ3f)futZnbM3uT_>m`Rs8^iV=Ae zT0*cU!uYCyTXXB@ET!M8t7PBJd$$}d9KVA@B={dn-U>EF&zC=>AFry+S4)mBW3k4@ zz=V4z6!*J3Ls0eH5t&Vox7uTj?_+^kZ;OJIacb+)%NznMG1cR3L22hJou}qz-@_?p z7MP83wvU7`L3p`)%h=FiVr@2SrvP1|iMWJgsNQ(b6}o#}ovh}8i_1)Al5Z$AY@d@r z3Ryuyiuf^hd6@W_W%CeFB$|g3ir$kNiprq!_5*J`!Lg8mA~&FjH=nJ0R?tx#3%zJ4 zDnsyQ(?SINNETwV7hx4RY0G6OQQT|9LR3tkyx18w7z)@2FpV3M!_eP340Q!2NuBbn zidm&3W@4Y+uBT;$5#(%M{nG7sBQ}gevz7-h`jy@VBfG)&IKt2iDu!lT&}1W8LefR@ zMW*GT1b!G1G-qt|yo#h*6}3u9)FcckHyy!{Z|7Cz4+(7KKEImqn?}&q0fx?yO@7qd zmhv{FjoPEnF${IV+E@}gqsG!Z(Fm=Am?Vvc7?y#$j|vu%_Q-l_!h?vS)`B>&FM;*B z1TdMP5YIp&%00#8-waF!Vb~!251Z&_RcBS1evuItS=0Gr_(wyC6dk?s?H9|h5uW?> z!qJ|O3p{7*+TvP6J*MogzrSiQHJf4yn38TlEvDQ^Y>t_VSdQ^N0dz9Y>#%6 zh7aIiwoMRwg`sH@U$g!ua`oCRb>;nmfiUb$YWI&tBIO&xV*}79jB3JD=^KiWw$Cxh zDUxkr}^F}KLf*fPNTt7z)C$Bs7-pQtUD9)5MT_V56xr@p3D z|4YP7ZNob74B{}-4qtH!um$2t{lcLTsQ3I z6lg$xGdAS6#gXe)4r2n6j7n`8N3S@-5$0ajmg~_#a8%Wp2uC&59FFR%X9-79r#N~! zIu|;<=>Bp`hS26meP?tZqaaZ>D%!TSi;6}~We@p##%K}lZ;KqQU8pGz+H`&93N}g@ znENHiK%Mfk36!VG7N|=(2tnIvwtOZ4>ctr8)^3kgYb4G_-JJ3pJvT9-N>knFzq4-` zrP!2HSjhkrOr~G>vfg*SUPJvo4SYSUKO5q!rslBYtGde4&!7SiC%!(!vl{-)yr#@A zX1npZtgT*%7ABNL)kZtzD<;#|)NUkSs*}VWJR~VFJp~S=@OkF|eZmCDQ)dg%m(m63 zxo9&;;HoH$jJNJ}+n-RMul~yp7_m`T=N<@z2C7@gB}IO!Y9T9U2^{YBF=!YZfhpV@ zVGfXcK|PH0a5slwLp4m~h8Mc`!oo#dwAe-0q4WnLec|9Fm?oQwv)dFnEl&Upfs68X$!pd3wn%)JN+TIr?Ih~fZs<( z2|%Wd9i|#56r3D`FaB#982ZYV*7ohK8{b(N`pag(kk1K*KGE8UJu zGh~o~nJNVw{t<^y^c_HB!NQ#S6Nkf0hC>_|;w*>u4jw?kCH?J3yHqvSqjoe4q!0h_ ziDzFmTAoydxoIAX4o$b37hfKk?LB* z^Jg)o1<0f{I5K_>_XLu2%5G#x&Z*nMZR`JwT>o*EJW@PWw6NfB`M1tFEw3`?U)f)U z-G6oPi~nc;VI^d;7HUy7W-u1n8kmGBO0!x@T2oamHO4ifwxgpx8JomUy-bNYdRLu? zB;`10(z|lLe9g#7N!-qM>bvOp;bk~-gKgPHdHVm@yAt@eilhG|-*-5Ya_7Y%Attf0 zZVM7($8n4yaS}TRS0S=3J0iAaBs-3wrIEr_C=?0>3bdr9g>rmcEwrV4{Q{+wj}{7q zLTRCea+GqELZMKO=9}G>^!7=+Pu{1MWb@ViRY-bIFEjt0ot>GTnbm^0+Vs+6r!cU~ z^R@tBm{cK`ip|zd?fRf{5U!3=FX|pZgj^n78_*pIVA>Nc!ncReH-(lBZyaw53X3Y8v60U|diJVYCh= z?+Ii-6hoB+AH%TtB!L_>-Uy>8bG~r1C7aTzDLh+mrmzIlLQP#PT2dC3WMRXPSQuRk zP#F}gF`)W51{GOalk%jd;?|!dr3_~2_GHAi-mZhRr8)Tqn7{M!sGBvU6SI9$27@m@nHSF?iZ+ltx?_qD!mxv%;exFGTu9RfvhQgkEQR-2rnSX>>` z5bYhU@owKa>cI%@1@Tdx=x}rtf~Ptaqk{zCbaluRfSv6af#FfKhu|B4Cf)&mxDICv zpi@1e={NKbw}A#pa*CG!BxTrG8U%+OHCewQ#Snmc*wydH>tXe>z6jtpsI`M3&_)mI z<;9gTS&!Ev<}eITO`-owbX&-p2&=iqQogWNiS&uOSPRASH#fT7zo4OPZ)Z( z=T$X0q5GsxpJHi9eF6%g@p7MG_Wm2dyLDcQ(u z+l40sh0@j}$WrDWbduO7dBNgXm*|iqdY>h|aFwM%Mz7~NUw1&bk{0U~DG7K<%QR5BN{?nlN0Yj)quOt<{{K{Lhad-qhGk2Y$CePOKW@hD9%A_@dO}K%?;^G)= z8v;-Yns?XPnPMEWHbc8FOIBJC$YDecQ}>O|Xz{=L^4Ak#e&Vhq1;E5HEK0^Ozk-*% zv(~)q2g!JC-NnMN6;*RRK(dcxN!!h>*5nc|Hio+JtBD=u!Wf1rhlQkf{HDx~a_WI0 zptIv;gls#A)Em>b&SNKW6^VaWMwkRFd&*F7B{fmiwtoYgL9fOc&7lZ?{ z^6HHyHkIP}SgD=0p(rI~R}+<5{OW5**69kNnE6X8XW5LWFr7}d^}EzWg=V}A7oqt|yjw}#cLwhH)jfYd{9QZ|%L&IOB)*F} zz~W5@p5Ef!KN-BdnjHXMl7Ge6eA9!sEM;pPHZ8F-JSH7@1W0`R2D`_QF4{p!+$rWknHN8$k%SAJ+ZYGpODh4e;0yG8Ds!47KzU#;MwZS^Wh|RPdpkF$EU@c?0)v_ z`aHAFKBYPu_h8yENY0Ci_4LA7D>wI%!xk3e5&(Jv#?@6U)EiG&p=4>69xS~Tlyi3- z@X}Y?H#70tKN&-$;8XGPLTFKcz}$dk(JAN0=AF1;&D3L+&y^5>N{Y*}fI9i<NmppY*WG3RZE=&%UK~Kla z&q(SjI+?W*#cSz(fTZ9fo~in^aUVT`d0iO+!K9Uu;V$TRyjt&L94q0OlvxoIIux&s zt&A+R7?AB9gRCPsp63J#n=`J-VhI!rFjMiQ&yC#-$BF^i@*|SN86V0YA;XBGApq@~OL~&OwG1JN>D<}-ICKDNu+h4cw zf~65&qVoWCgDl&)KBVlGgW>`k_eb*@0!Ti6o)Pu}fAn0|Dx7)*9cq%05J-evyp2+M z^&g@Be@LnNapjp6N0Ct<|q;GHUu=WG#%z zMxmm=i(1CQ=&)Vro~yP%Bajd}xoip*xNU;swo^rl+rGkMsFz&|7*znX-e^0mB)9`W zw8w?MZ4gX>x<_b-&^*-2-!;-wT`l17<~?Sl3(-;jzF6~b&j?&4AFYd-vvp(md__gt(Ki5<|> z+*951?lsPLsqgxgpRd6maUNjpK;mPh9_W~xl(%C@$6+V+!aYiof$~`O zgqAgGcU$Y~F12Mww0>!=Ppn-1mVLSxcJbtxhum>U?=+W~}L9exA z%_|;$YDvKr7vX>IV*K6KUF&}H*GSXEgVcB9&22S5s(!z}gZge;^D&Wkw(RxLlhk)- z#E;Pi^*WL!iR}GgU{DPV_aSp_LLC_kjReE~a04h>ls5^d z@sb3~ESyehO9VpWQtDm#YxtwviEZ7r0ez+WZhW$(kT?NCZ#~Do;-dg|I_*mXTYIO6 z9k1O@4(Mnbhn>v#Jk`aN zq)C1>1H6sdTQU7JzHa-N$h zr*ywqp5nL{=pM{GGo+>D}-fj7t)^Wi@rw!0qDum8WohP<0w>LI6 zP9boFdoF#SW`c(eYEj!Jgw2heEz6r63yx{&>a3eW@N5LxStTMnHze^P525doC%1NY zbx&)AzMI4c4q4I~7Jr&=oIHr7id41XD zvVBTdmi(*4S^Qk_-bK3#KPkMa;N^m^S|7HKSZ=VaRW8WH{n!6CBCf;#H`YpbDlKlp zI{aap37({h`=-C_?&xZ7=~kzh>n`k@K9s}<45!c`MceJmXQYNGDYQHPN0S^^%UGqOD_=o(%YG-?=cPh1K z7uGdDOX7ovkobK1ZzPOOIGiy>7JlLRbf3lo4;OJA{L}7@ZC!0Eyi>_i6xPA_(oFEM z5to^t#8y6(Y&SK|I}nzcA8Rb|a1oCT{-~>~Wd%Ax!8V1KC*l2?dvsjz&=Fsu?(S;u zn%>dDA0{~9p&~9bKj>=jZ1vjer&JtFSZ40halu1JT+`gy)xM&AN|`mnn&u9T1s*Qq zbLn3)-%qN^7I=KFFUb9(c%z&*m4GgMTuW@_B@3 z^9u;)5k+BX`8~x04;gXo^6Z)u>%CJcNlI9|{4T)(4;Ars`* z4;}H<>WQxQH7ll2Kty=8dOXem50eg9!P|va@ZYRzY42>Q*Md+}B#w4GtmLajR`SP^ z8R20hzHU9brfZsKll?lu0S^`Nxb&~+Lt3YZ)Ck8!UPTdma$qh8nR(IjnxmBcl%)z} z|Ie=aM&+lKMHN-$Gs_MxdB0?H@gIsii|#LS7T#ERK*2=?iZyI`)pCOJYh`IoIOge# zpDTQ^cCN6q6J`6c4mu`>u93o9DEUZxx;L)&s1qmVB8?aamzXQ@)3Z;^S2SYmTw+Ae zJvWQYg&Hw7E-@G82$>5sVj8)`oMWDtxuA<@TA^fWrWN;Q!4*`xGE*$>xQy!PFDHoc za%tJ~r5q7+eu9`LJ~0zHBIdjVF&;iKxXym=#fYR@!Kp1YOy?$u;U8bVXDCO=oRc7i zf4KV|+{+;c$ef)ZhOdD4_;Q5Ijs!7$1-$2^91#;u5W`o%d)DWOm`H*cz5?EZTR#fR zOmse&(i~*S-Xua)-nt>3sZV69>NBu)8oRJfPE-|5D=;bmL2#>&9f8F}9 zUrms`ZJXMuETax4QMEXG~6c_^327|rO zk7q&!*8QOn@ID$;p$Tv;b$=}ZAl3qu;I0Ky=%W1sI;{iWrz@L{i1WQj?c))spc93Gq?lX4KHdmy7PNE2<5(9dOwgva)zMY;Yg7{2Ugy%*l1dx4 zd}^Z}{Erc9Y)29G;p`X{B7sao#$UDOU|QA^X+36NJ}pZ32p_MdmLA3%s3C0TMFIaN z>rp}hslOnPT-;6ls;2Py_G8-lU-E6-XKgMKH)3tpk^TS6mFickPpJBJ)zZqlD(6*P zRZ&rXR@pmceWlNo9$WI?C5^?`7tbpCGGzY;3;tZN9pNz8~++5ivI=h;i^8 zd2+M?(T~}bnHw}>_>O#ij*$7DMhxGPKP*SYd{-le@5s-|5i!?m#PAjIfjJ`PI~p;3 zM}B6Gi21fg3||A+~+D(>F9?_!{_6IU?pNjTpWL zel|zMT&WSm*TB1TM9dW$F?6#xca(A3||BPGDpZ!OUoQ{^ka1i3}u;)Np*W<58Lu13e(5|+RbZ_tX z4ZuXv<^e$NI-b^e!jGN4kEq$xdAzhtvTq{(IyDxF|rgd7?|4!cdFG?9kIv9(qwOcP7+?wLL; zXhN7CGD4`)Btq7-kBapZQBC)+ zTjg-A=;-X|gEKz@u*Zis_7XbYfi{xRwkg^*b-3zO|F&NL2ppCHJEK0x5k@WaYda3H){9ff_xz-SP* zT^IC+f}qd558Tm)sDZ}DZg^XV9_mxW@H^P!K+?|DS0=+A^I)5!8|UBPNr;nhH1Ghy zWWE01>xTnd;k*VwZB1~{7lIDsu=N~2-9*I=q0tD=??SJ&z7wh8?4jO6IPbA%XPvju zioc7g)`2jqUI+WHGES~xh_Z4{8*!g?`T)Uj`Dq4Sn&Ip0bFp(Y?hBB9)9_)5mqjf zSfx13ZkGm;!`>tlBAxlEgQ)Yl7w~6&_~r1V@Jo7edddhQr%8y|&qN-x+pb|{YjVoO z>N{L{=k1d;rBo{Ns>HOY+U zDfk%2_(r)7E9<3lw9{`4uyT4$YVwrD&gszGwY#ynG!6g_UhIX>PTqQ?4J<8^bY&LjIVwEaRHVq<&U8+5x3&H5b>8VHL zXs2HrK_uT4chIJ|N2(^jfGbYFIA4x-`jrt@(oAuO&J=gZ)K0n>nogYVS;5dw;HQ?s zX0c$H`tuGo%2trI8c%>+SBe1azM(_@RvBx0hO5cEcZAP=9Qa1IH2JwcG0PtZ^f3Hob- zAQzvYfgBR_T7n=apCGypb}~f^naI#z5(GK;1f7&agkDV$WakqkTEm?QLa!tUvhfMR z`9E@Y=w33g2i$VK;MP^Dt%>%6z2F6-nZsJSlpoS_3crs>aIaaQ;?J3eC;w=~dKSWy zO&b$wFE+1CcVy4;T&#X)V__v8o_yX2D{0|Lk4=Nf;gA_}(|5JdiPOV>dqIjgJ!b@w z{P3j5sbOXFO2rB%7R8md4y&Ksx|4yGxH$d62rFsfNsmW^$l;KgZK&@{qJ!w>(>5_6 zBDt%!Nh#(s^!uZKZv>HC#f;)fO^uXtk{X@lEAq?EQy5T*OVhIkP`RW{G}xtL44<1H0d}Kf{HbQ_|CUzy>%u86=?+Vo$s0)%21(35a0R6 z%Xi#*5^{CLXIX(p5MP^%)?Q~aWLAwJzBU)Fzs`gpOM)OfKTIlGgPjRMibfD$Q)5>* zH!^he9*rQrrWUQm&H$mK|E&?k*VLl**qIRYsYVcAQ;XJQXF|{?8bN$bEn1hI2|*ug z1o1WX?%ZkWqd(FJ;%n+hb4bv?G=lh=`jlC!R&ximxO21uNQ}V^)H;PXv`el);@cM#J ztj}A120zHnU-V#{Ref+GFo+{KxTu{|T)T7;JKBYISM2UK_C=CeWvA+Hp*$To27rw* z(lTHKn(zj;q0(4gTL5*dZ*UB1ab;Egb1T`Itt5ot!H(C`g=_>cJPt#6Y&1N!{J^6t z8N)&!+x5yE9vuH$dbj~RjfU_v((u5}C@R0swe)aH*O~A{L~E~?&M~gN?nc|lXjJ00 z*Edjl$$ahg41MSbZ`x`#cBw(!rCKe$n{T@b*IrZWoG?YR6I$HG*W$wU*O^dsh(;0L zdK0d}&V-_aHH!G=n{XX=CKMf{QN*|3gln-gq3A%3BEA79T#uazMF(gU@hv#vn(Ry{ z+FzrHZ^8-JWoJUsei}u5Z(F!Fo1#cKxc)hfBEGw=TWqr­<}#8=s(HQJdVG&4bv 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%0Ao4CVMg-eB%G@l7yvvLc!M2Xl zoduEaC>Rl3OsCArg2;Cij0m=7l-XGj`Hq4S!Nqh+JPRV@+g2;Cij0i5K zQ##EPg{>Jz1Y0x8u~`uLj)D=v){GL%f+)8cur;I1%7Q4j8L%~@%*=u)w;8ZCqs+*H zD7P7~HKRncAj)k9Y|SXgWI>eM4A`1c{*wh!ZZlwOMmahQqTFV{){JtLd7`j2!)iF# zno*9-f+)8cur;F`kp)q1Ghk~*IXnxZ+-AVmjB;2OM7hm?tr_LeEQoTO0b4W5^el*S zn*m!h%Cszqa+?8LGs@H~h;o|&TQf>W7DTztEC*|kcJoAjKFXTRc>vgE9w@gMaFkLx z#5_=LFz14)Uh5#xAg)uL-or{qO$AeT(}Dw?fwcU9Mf6k2wdN`#WBCobD*J zzi(e*ud#h&TW4#w{$ah*dZ^WH+4TQu{SUkZU?jW3R6dY#qC)68=+HP8?Lb{_8YuJ} zY^+5)P?wnniaSuuLbL<5-ZW6?H<*Q+K_0F%4HUW!W+B=;y3{OC+&f|xqP?TFrh!7I z!GLJ*=n~UFq0eAIw0Cr|X`s+$Fd*7Hy2vb0+&f~xO`w!7G!2wn3fw!oz%&rF6ts7= z#w<|WJ7P&jdq=BH13^ncdq?M+2Ffi3?j5Z%3l#T`Sd#AorM%KK5VRDuceKJZ5VRDu zceLCz5VRDucXXavptyI$^6(Cjhs#U@K}$hRo$5}#0hXTQ^!P&uG$^HNRfqnfi_)jMB|8M%v@lEmV ztURLhDq-()-V?neJg<8edrI6Nx>veuTwlA^x+XY(abDwWb6Ol597j6#w7+d%XFtro zo9(~03v8`6pY<{8Y1V4Xua=FL<3igk@@tLCt1Wd66~)6Q)U~w?C)fGaC%O~8(OHRb zeXOUyH%cFw%w4Uzc5`SG9ln1Zxr4M(cnDN^MTgOn=O)37 z@o1P$pQvw{Gh^5z0P>PCgf%uE@-TqBXbfTPi-$Y}ATJn0ilyXi2axBDA*>bgmOKa` z&ly8l!{H$hfbxA-gw*xUiT3nG`@;0~D=95U0>U#o1Xx3c9U(tft2~`fh?ANT4Ns5t z^`~1f^!IV3jy8#P^eL>@spdm}113C)5sgt`!mmL8M4G-kIwMM=i(wMh0R7`w55JGL z79TU)Tcz#hu}j6nAqN5smNeZGH|JjSMBs2jyE*rmCW^Z`EFaNs&L;Cj z&}NFjnrfqYB4{&@0OH-IiN(SWC`)w#Al_x32-*xfs(Gh*B4{(CD#+knEDqjxbi~M0 zmi!~!`r8bi+DBf&F+4M97(0r0fISpUEN?fz5!eNi^PKLfaDV6C;GXRs=K92Sh3hESZq8SoYn-jlkmD7{ z#g4-qyVzg1Uqn0tJKJ8cooAbD^H?9Zo?@-E{Ak%2+734NGyl`Uqw;vMX88NYoKgohz!TFx(KGljx7)6=unffRbZC!M5xmTmtM-#}HpAjS^cBJ}l8Y zCp~mA=|6ZW&9`R4=9}sKY^Pz2b=MmhlC206Oc{;>o}WzYYT}7>k?b zHM7qr10u17@tFy@W-a;x6pNyZ&`C+r=fDuJE(N8f=rd49Ju+fathX<=D7`$3P6t`( zmemuYbLaJS#d~8CU`P$A5Vc~3aHRw0M`z)sf8qUd$KrEBxlR@qZUqK7AOU4x;TGWz zGS)Ec>GB!9(Y`s+^t2aF8$;4wE~eckY9omr@@k|cE%*WCyERQ3@9Rqp^u}TRD_8~E zkwpiflXV3vWh0b-br>k~3RcKQDF4U+l92ekc{&Lh2^fFtGoT#@$<0XlE1l8P6YJCM zW=B5>{E2_+A#^fy^b^32KlC85qaOXZ+#rXh^0N^q5{>tup=;E?a!Xf! zN+`Q0P&q3 z0+wg~%b-SlD-_3-=oK2VNd ziTa6&1v-T=@&=&(5~$&~M_vzX{~}G@GmF*%R0l^k0R87!k80t_dN5XemZtCSj`t+u zeXtQ6^gaN5sslh49P}Q@zfaNtv!Y#izIM<_;PW3NwN96K(23ylA0YrV{si#(4@LEa z=z?fG&h`MM?YpYI0pJ6DfV6d2H3R_O*9R1*&vvTz0)Y4Q0n(OT)t&(Gu0BB8uB+Mu z)ZuqTKvOKy+evm(Q5!gDSD=3z>tP}80uu0+s2@*ul;dQw3mfr>jlh66F#siC#N9yu z2G*kljJOL7fv=1DhFCYLhw?;!_?L41_w68R=~@_0N=gor}J9?k@F7rmAnF)_p9m zlTYgZk;g?}L`+j8%BBS2VaN7QZ68is#VYkD3lXULP=3zFH(5l81#p|t@GC7ybX*Q zk2pptdP~R{wqk4)A$%{SXUm%a(||EX*1Q3-re4GdeUhFzuLE<&VUF50>0$m0Fm)JX zl&aT2!yGGOk{y+vC9eVpO|6KiPmnd?%>MYy0p0Yx0$OEFIz@{jqCKCUIWJEl>zL`n zI>vXf4k$w{ehJuAt%EY`DPEMHVfR&~fzpGM^wReNV2v?mmFlsc2dqkCR*4?#Il!tg zW)lwf*GiDX)v7QFqTB*pY>m3XsQZZ~GTfq%vPl1l41Vgy`DRY1$ z#aE0u$sRz4JP{$SmN}rRSA7k1<@0y>ckN3?? z^z@Moh4Z<}??IItsfW->N9A|Gj)U|da7JDEEf{Y`q#@Mdiq#IXFu=)K1~9{oFxZ-N zW!IZ;SQ;iu{OCQM{RzFC9R?Ufbs5->p|Y#Rcc92H&X9^n0O0@~0<@vxVc;C!KaCLU zolE@V>GiYXXt31SPn1sWk9Og*EdLv{j(vezr&gB#1-`xy(8FYx{|UAu!lJq(woosg zwER*~5%<=W>-99{Yvq-yZwSKZWx^%Ej=d0o=7O#r7lYi`Qx}t75y~&BCc{9LI1KEO zE?52feKBcgs=NqH0CyL~Y{q7^{aW?{pzLNqfwiLSc~B>J6)A09iCHlnFL;>?=ywtI zQ+i{adYww?SfJk->Y@FmwV*rLDNR48n>gP{h%fA6OWs!F|0^vgSwhEzb_>1`ToSAa z{1~_^5D)C>f62epU+eqTcZ2UJU!L-$a;j40{l$Byx7$0!^P1-z&p7wL?)%&e+@r|8 z|611+m(#h~nQ)dles`)o&|_>M40Q19nM*)*2O%p`m=E)P@kovW(RS2^+7;=rjD8&y5ZF$ zfcgv_HFFyB>fu0rx{jK840-i1pgv7U&D@2&dZXB=`Y0s!2>vvdG|K8oIEGQlfUWL6dDx5ql8 zz0vTnNzpmc-u|fC2edR!Y&@J+qSdq#y`uh%YzGsW0Zq--AK{U*Jf|wH-5FTke@IIM zy+7rUXn(Xf+!F1Nld~P&q(;YCxDBhoF8b}~VK@A zI~q`bAG?>lZR+b~tuJ}{X}UPY*I8Uv`@ll=I6aa!ozP<`z^ZwAEH<;iZr5rraHk~F zNNF=|J)=AT)uW3tw8{-UGjm0hIPcc8$pt{&Iv_)foM4GHM+6N{rB!RBwRp7yEcIps z1XuPl#18C;14t?{GQtLCVqGGFn_27StQB|`I`t`BqJa0m+5%Se$0C|Br|Mr|RSa=h z{$!y219EDXJ`Fdqs=vViJTsl5O}=$tTe%=ZzVAXE`5`_@`+Eeu_Xi>+c zL4+BsUXp$Rp#SKAQuctlQ}r|Gca9c8OwX@Ra1Q+hP)8Y{Qg%tLtm?-WvgG=Yxa2xA z4Fv*4^>XWb&_IsR!5Qrn>-ZL!beIk*>7hjB_dhV09V&CUAX2?d`eri8 z^CQGOpRP;Fki4&fS<`f3MhW~1%$}!;BrUuV*UB$JnRTS;)zCmLI#4f%z5u9peUwqE zJ_nwSwsaI9V22a;8R!NM(ZO&fCO5cGfjzA{AcJ=M323)d(l8+2PA|hhCX41BxcGlE zrv%YYzO&gEq(wBl6P8~N<|`xwzee5v?+xu7d@Xoka9VKZz-xgE1JeRK`=9o&^iS~z zeUFpq|61iwWxKLi8K-!>PkUF8-TxfV^PUx+i5|uMu)D{-o9l7ca#yP>mqh=sbhbF{ zjz=6PJ8JF!*tgoxvA5gzvb|$lZ#&jjYO`9OCGP^ntc8}pEl*l52t6YO0u+;mH(YFZ zkF`&4Y-=1}Ss5-Y4;QjE^%`|fo##`3*53{^j}B@|!zHrjHlTTAP*Z}wvjJ!x9@JEX z3+O^2m$&U!pm}IeQx-0kHMaoG_CZZ4`p(Tj^WdPS7=7m^pm|_WQ-r>AV*x3j{lxOw zmeO=Y=(2~;fQ@BDFj^GcPwOaIERCxV*LBYzaqv_|b0X(f_4k$>(9>;I`?gq^#D9L5|Ic^p|)&L{gE(rPw`COfhn6vMr#)ol6-m@Z=@+kyA*9_oQ1S7^*l^pc0fxP@?W zMf+d|=N+j2UW=CSn_3#{%1cP3)WF=B_}sSu*q;K>F@ufm9p#1Lak1{$JpTKof_y(F z2Q%Wk+dC>s!V|k=;aRc1aBI9rNQFq*SJ#NUCN{N{7OT}n@J5O9eV7~!Vt0yNv^E)T znphv6Ox{5!JDhOzsSbh?xdWmm*Vl)K&1J(5^=h!VrP4YuslGkgQZk!C+f8*)jwkco zmIjdxpxV+pVQavv=8$hgTWp|*xI@SzbS34aOo@9#`xo_pW)6kgpF#1-xT0tg36)0KdvDktwa^6}+;LugLV=ZOte0;X>cd?Ih&9pVXjOFR28v z{%|CI+(4|GCZn`~2No6brVOE`T+l&U@f@)g-_%M_iGf)pEfml}$#t`0-SJqsHPKBv zh4%hfZ!FQ-8=cn`pQ(ZzR`qAzUh2=55P;s;8tdD;7d)^@5c1Nvv&>Y3}-}p;>l8*n%q(l zd&FHSKoOb_OUBjB1w>m?$$z}0h_8gZP;C%6Q?6oJ&@wP*AUq*HU+7Tz^W%9ttB9Jf zgwHe2_>~>eu4pt|TEc(7l>hurRQm*zR-b*Vh1F?z*<7@lDhto3gv8 zh;OGkRC*yW{L=dNrZTmo(ou$(5*WU=X&_3Pb7EkgYIuo(;X!6NsBf2yCp#H*g3_7j z7mN^kyZ{3Tjh7Yp#o~xzA}X{x05BI}jKLzT8f_|Em>f8a?O-EM0OZF7=>Tj21NcEr zSVI6sYH`+etLOdr*&+-1y;;r5F}HwmeD&mb-wd_Kuc#~tllN8Czo=UZ>SohGCvoqO zQ)3NP`EGO7pF0dwf42BQH*`MB&g7bEuxbf|2kkLxE&%#fdU~N&Fg>_=$+uERUs%aE z3Z`ETzQ00GFKo~;{rNz@Tu)yve}5IwpQooUmi6ZW{W3kh&?zwcmjV5`dU{ZP=N>_N z!$o3mxKz})_Qrc=#=?!WNL2nTH9laJIQEBGfYETZKIN`df3gkK$Zx<6-{d7OR{+OX$O758shQPvaGNIErIV)Jq2mTekE6o=xBVge0{ckYTjX_s z!)<$5U$ZW^PPE#{=d=4GJLddumW9b(v`Ad@6-}AZO^2aKtaoO#KhaAwaJBlA&A3O; zm%C2Ci^51hVFp7xuF>=5iM!vKW)qo@#=`aOMFj-~Frsl(MDT&q0`@x$Aesj&Jx!w~ z17qw49JNQ5AkD&rkPc0LTPkA=(n2$2R76+{v9wsBTuuceOa=y6AR*0uCU2H6%k=## zX2RfJYX=Ej=$o$|#t-Y&l*-@10P|1M9d%%vf%MPDj<)s+b*|eHDJ~s9v1M4}$QIU%G1tsh zslgQ)cyA(K67NFN15DPYr6k3JV|p1sCQ+|x&064D{zc5Y>^wq!bC45Bei zHEZR@>HC?Fevu%;2u(woYSziUmhUHSxfRpakzAt0^%9L~svS~J2D(CVp!;!hb9+9W z_fL-Yt3E5OAZhqY9`&NOpa_Z|Cd9gl*M_W()s@O5QUfBP&DvOCWxnLz3QLO&g+B%i~-m(*zVtzMac0#>JL;bi|kV4kc7#0{k^sO#HnB6eI zrNDy!=>mkR!~iG^^qVxmU>=k*$Mv~tPUKNQ%Z^~B`E^@t(VW@D$vB7P0vTZVY}9_Qyy_<}9^8 zsB5eXHxBeB=Ft^z?%isNS=(;O6J~2{lzbB)h})VYa7k~;1+$|!rZ=^d_qNEl>jwJN ztGvlY2;n+1QueCH`;z@U&3HCV_*DJ9W%p^MZ%QQlCT7g*#wZ={Ywi-7Muy!Dgv|YS z5SubfkF}Iz?OI4oJU}$@wYCo8>M9MZ@!nHtqVA-MSJa>N_kq>ft5i`mN>8(SH2KOt z;#XdwngaDJ(l_n}-*{R0#)VznBK)*K<^po?q<0NBQ-v@C`mCR0H$t87?J~0_NA#RDtq~S+)t}@l&a_ zd{Hsln!X!oo*dK^qV@k>>iYj+%UPDty`edwA;G7E3xgGb9|E@rIss!}#uIa8E=PSAjy3{(w>ajdbK8?-+_#4N^XH%Db z8Q*c12@dGv)XH2Nmgm#{hH0wTdva|40GSLGsy^(&e@I32ZdB!Y)Hf5kUY<|;>!(F~ z2BIm7IkH&XVWe~S|>>hkaTAt9h)vK zszlPAfV5VURv_t)Kw2Y7%aL>kAU#-;mLX{nNUJ5Ox^R_pH~^$olC%U#fm_-?Mv@jI zsSkX$Qj!)SsRE=Gk`&e^Fq`m~OHx>yJm9Nk>C!@2o7}SB)nD4$)=pQGtzGeM^}acB zE{p|iuyxI9+6tT1pX2`p`Vw7z2`yn>{}0d?>+0!xQd?WH?}Ian{vusHU5g3&zrgnk zb@g;1Cg}eZHc^?&tzhuJ*pi}Qr4?-ZLcI=+<>Ew|3v8y*uKwQCC2u17M>iw}qTNx_ z8`4d!y2kP01<7YC*wpJ7ss#sk{lt~m)KZtXou{XAs8#-N;cNN1-Or z&Mc2MyYc7BPHum`AtvdHfw-lz@5Mh-4>vAB_TAW{Es|YJKsSGo9*73MLVM1U=eqt8 zdYJJfEI=Q1wmfM2hc`9URjRY*abzR2fK@YANL$nt)xRvqlKO`wHRO_$zL~@wMK&i= zlWs86W~7(oSSA0^BxzcFW~XraC5MS#l%u))2i7$;l&M3tCMqkVdC#n#O|5qR6S;t(NA(4z254Rj9A5tYk_m3F)6J;o!8iA98tCrp zA}gBW0@Z6p!V1WARy*`VznM2lP59W^!bUT7wfOgmM9CeZj7hLBZlBSV~lljppAb>-P~Ajd?v|=_UPP%nw~Os#+CN3 znnR0P#kOrJu{sCj>|T?a8t5(ww`MLa(H@80x7NBQ~`W&qk-<+3*KME7++qIxir;A{HVXZaj`mW5RX4F)o0O<#G82 zfb<(7lP-30-xPW1ZLa*#T=}hFquG~CrFr{klFK&$n1W$OmND3^pkjJOSbKkz21=__ z?#^)gqQ3sv-1OQ|ezUs%ud&>332hIZ9cm8#5xg-N4-OB!9ymL2R3PmCz<-s0rhh-* zN4~3lGkyCiZz*e(sY;&rS??0>c(2FvlxLYI;t9H+bD!+4b9-GcxGr)X?K;5uwev3L z@yKK_6G12%}yOgZ%0 z>+9OW6C=~Z?X88C`9*X@&Si4}>JO|h0X^{`BcpI!~Lrz0)jqvkQ~ zRX}?h((-+(roB?$clDn-zM)i&RGZivJ&vvkXeqOl?yvqHc?f**6!b;DFV?#`jd3^Y_dyx8utAr5DVl#QCH8eso3{HERg>MT|KKM z{P)iVmF##uJ=-+nle%6-2MR)Q!2DBai&VQC~MXOVZS64rl(A}4hZ`sp|GdRgqH$guOt-qa+z=~5FRH9 zg&u?nF9E`Nl2GVAnDAmCOh`hZ?_k1J9B_Tf>%VWX|fUsK<3dl2|>*{Uyg+E$K|R%IDl&1(+WB2+TX=OWz~g{x(`n}$HIa# zVP%*@&%ca4ehQfdMa5YVJM~UvO=ObOPZp$eh`&tr_Oz>iS2M2K~ z+XqLfJa!OgZ{h3+^M1`#4>D91=F_;4RJ=f`pgvC})gtu_tQJlpG4&Ae?I>3Bd$)N^ zy_dWJ>p!NM921HTgom}YPf>k#zw>?I#5Ekbw@&7SE%q^cr`SF&`6|MqlIm!@1?O?+OLtF{!!I5T;k}RhsIRrTA zj^N88X}sQn7FsARAST|golQ>$aZgeAe91Y&NK0F?X4Ay5g7K=qM?n0CpPfr5g=z?3 zjWTjIXq4K4^rRiBid`s-Fw}sWl|Zi@Lznf!K*RJafL=R!F6)KyhUw7+PCIWd>xI6Y z>Cp^GJ8v%O1+Nv8qZyEP#$1vM{W_DQ8IX3aT#^g(0wzBjbnn`E@}wM`UuB`*EjhzU z_r8+Fri!cEbEzP|kC-hoaM z+DRUEF9fe_{tp0KOaWDgcbH8D?^G?!=~92zE(NtHB93#ZT3o^xBOB^!?g0A9dV0Pb zHT~@%LCu2+qPI<%%%QC`K`4hNnF2~V#DGh|B5PvGEiDY6ssU`|WZ^fF%Yegc0$J9n zn*ch>yt7nFPPG|(LI`=9kMCpQ4(_+Ip#?`!w%sJyCNNbdjN)%%8bt@jA;o}PC+myyW-u=@k| zRqmPY{mD&$*SR`f!<=6@Z*tCYj&ywE*x*Pw3hdw8@3i;XOKd;eHrW=~Dy+X-@3Wp@ zttK}BZ2LdH0Z4rYLgLw=`4DgbbQG257qP_^?b>sg1E3ekw?lbhei3W5y!<#Ie-OzF z%aQwG9*{o(<;D4h{B{a6J^|$0ki4KWzmN^{yzxCiem|6#<`>9WHy6maLV00+ft+>S zK)waY+e<6*%c$9c=VlI&-v{NT`K4@C%%^=ekZ*?aqWn_X_&AW?i{vGh`K8Pu!GFCA z$nSyjviuS`=R1LX6Om|CsdmmKz;|37ggkIS90*iM}hoyC?~y*T&uemam}2j#`6vzi9v*Ft$= zeyQBvrvmvkNUrvEw8982t^>%ghVpXM*R=!rRZw18#@+C-KMAmU~ zZ&L~6=O8(5?-f9PHj)>RrI7sfav)y}S?EkX< zZ}H}O-tb)MiF*p^3xLPC_i=sfy51Fc9q9bVxq-X|Fv9VjV0RO)eo7CHtXqX#`9_dV^Ho*C1L*8Mk1r6Y=tp6Wf06!jS zfE|Gaf9nIdd5{Lk1AxEu0o;a$Khr z`1Owl09W1l$pLabfSidQkcq$Q1LRC}0l+W%067yKU}xs%=4fA(o|92SP{q2)yR7mK zrFAg}Abv7J@K!Jcc_3sbn|9%d&B7dxKQ@!=4SPD(&`)~)I{DX*i27BwBFLMr{$Brw zu+PQhKP3PAG`Y6VBQbslCltO1*F_0C(m5)o<^teo{Z76vN>H-vqAmcNYu}3DW#n=- za!FaQ8q+Inu+nMfu)BrKV^fU(CBwFidq(I5hMhfJpI9i>K60<|GcR*|00qgmpDYjdX zf$&6fn;X5cFJ-u}Gu%q$Ux7ydDcKSykCV{r;HK!`2zLkrfIz=b8vDpYW$IbldXfdR z;yr4h9}DmcCyphJu#$P7?oHNqq3Hn!^2m*L1Uix!AitAKPAQ9yd)ns2a!~Q! zNwEfl8>f?LrRE~%4k*{32jp)9`LxoM{A|?*?d!{c{4FFeAxkMXT%XCwQPA9*NM1~q z6HI;@Cr4YxgJ;PH(>{$%=(QQw$($T*84sQx=j4TCJ;1(x0w+gX#)Id?IXTJsLMC6x z$x+bUYas1YOUsf4cMd0C408TeC?`43=DUkI`B^~z3X+$UB@2#jBx>b;CXl}j<)q-) z*U#X-eg=@ggyh9!Z-Zss>74v@Ab%0cNx8GHpUTNk1M(M;yr?W$ZBF6jrvmx&P)@21 z`}#?o{1hO64#^A4lC|zcPJS|wKMUog*0HZ2&&f{$@@J5|fNT%2oL|JrPXzL(p`0vY z+1D3v@)LmkDIo74ZX>XtcRY|k3FXA^!%fY#O1lWipFnceal?i*ngg1AA&@@~<;3$s z=W&9MdjXI?2IZv5aLWSi>+^y9Q6wijYQRlAKvvJSsp&YIQ9c6Y#8E3}UB9~jUu9Wh z4^0bMgBwZg|6b(w|MLUW13UR&_OJ4{`$N8`eP{b3K9{mtIaxW_`twYT#<=Q`(M&Yc}^JFaqcIY!xkw%==?Z?CrfWZP^z(RQ%S zX1(8fhIPEvZ+XeGBy@9X>2I;fCu9QE{5qWsz4g()dFrgEoy_`#TiQ0!sz}2yBDcsh z{6JN6^CY4lAMY7FH_Iw9o7(K5>YMfg$}vF6S`V*u$TQ49Wm7{$JHyr-BcCM;r1TIB z+HXg01)r@L6q7rrqjRuwgS;dOln*MKW3$L>tZL{eVRXm)FyuCQF%>8qgpdo^$;u8( zZ9Q`Qu@0RQvPjv@CM3d}b|>_TDt9YCV06$orqF+oL@((BCDWU8I9%)gSW7!$8{8 z(=v?K{MG7DcFeEz8eme|E7Srd^*9fDEb4b)Qre@`GE6e*YB^vzkoGh+%b0o+Lr*T^ zBoW}?MZc;)L9dYZMzx4ZH>7N~Fo?3^PJ5=BWe0CaGGA5+--Jjh&0;^@qtB{$o|AN&7(T_;7oE8M(o>*$Qvg8G+}ha&zqtCKK^1b z=V zO`kEPUcs$r^IkSbFj}Pl zW-wIck=s=1T^^+FcMZ@^QuB(_oXk5|tyGbBL4C+2-cfT`L>x_!fE4*!V_${9|qfRlz%1eP3pPT|#gYRp$(QXmUWiU+|bD2SHW9@^MVHk-XtWZ) zu1e<*&YPVv=bnz&9IMFPe?I$@_OtDcc8BdL+e%xL^&jgdYmfCn%X^k}p^WGL!TfhY z>OchqeSwhfVQp#d9j{(^mS&g)kDCFaX`eV zXVE4^=g#Zvij&u-@Y}uBdjU?r$eGwpCWr~LST}ffwR%s$>C@rR#iWisdkFJI)=l+_ zoVwmQFQ@KGc zVftM_ooDZb59)R62Se-(OknSX4)IRhsYkM@J28X5l4}^fMKZD;tgH@6*QTd|N<(9S zv^8BiXz_rWaQ4+uC1{~jGWbz1RP{+eDoAn5v=*`tOke6q`HF;-(|NRx)Z78I5u_E? z;!Jxx7{Vrt^D@@1kwb8mngHf?t@;5hxtbX$>29GRZ{*_D!h(EqGUMX=Izhs*Kx(%v+-7RP7Q#8gGJBLi3q+Y#QktKx%BwY!gqSAw{)_)L??dEw}R+ z3EZa;s84lu(-Xbjv-Ev_H-mnDTuZd8cLDV#Q_l#v1TF6zHESXdfoXnSbF`QAGHT$e z7zrq>6Y^+eR1I1ujMW7Qt&su1YdC>gU4Y;XXMk(Tet9T1I8cD8$HGZugR7uG9djl{ z=SIo3tRz4C$@Q%1dziF)imXxh|I00FETKn2r-rJ7KLb_EX+fE>Sv^koPI#0T}D~)3eDl&okWpj{6dKtJ_c3|0lT$oL@TEJ3E{{ z#}-GgV_*9l_9gbQw(o4$+os!s)@|1L)}bWke+{?q4}Jw>4SNH7SWA1G`g~rw>R?x| zq3(^&O0eNiT5{)Iq?UTsi=c~OZ($q2Xj7to1V$OYpM0%oU<2#2phfc0mH7#3@X+$>{(#gwI+CyVcUUW*JK72=^6G6Fzjj*Jjt*J zfnir=1{LZV_B1f;N)tTEum=F>3PVu(X#v(v47(e2gqO>plw*ahRMMRg3|756=m;;% z1e4NsBrs{c0fo&jbxhg~n6xevOfu;RklmLeN}P0lgB~9?o1~lGTCe;RmVj|Tq=tjqB9b7HC7=+ z1__}GIaO*o*Q^Knv-I@*VocMo13t$y&0n0h8VrPIh#AR-{YnBT$-}ndG_GdI#gz-HR?Omh>^r!dxqt=4n z=~JX9kCDN?c2or*e4rHb=$-EwrV{aI+ zj7qWUeUM|XXM&}hRQ0(0;9KCofMT@&uI1E@pvQmB7?o~Lz8{$LsxHGQf2wx?=DcEz zlFade9_nS8VXzOZ3KltnMG$} zFcL+}mjEcF=ZsO3ISs&^XZ0EC2qH~XVEL{xy)(_ZXw3gxv+E^qXWx z136#2APOR;wI=#1SP5>_$E2Gv{7aC(cguQmsH7)0lN=Qq&>Qrsz#T||y9`N^F^j>( z_D+P*Hnxq{OjR$FjdORzvJ-G)eNLIgvof`x9013anE5cOwyXR973%)~w$O>8F~Q%0 z_XHOPivwQ=t`8g?*vevRFIRaoz;$?9Je`UI}WmcX1|`i`nRL)Mcdi72J0Wzjn+7c0C?9p z0zfXa;68FTsbRp8*uwbCL|A8)TJ*U*ZUw`bq!T2{s$uo6^0*b;+X$3i_C=@5Jx_25 zCg>j{(5%@@?sM2=)0(Y?gONco!st|j(NDycn>gxU+3g#&WTNRDjMT=2kL6iS;9qmdbn`}A;m;je~eN5<(sX5@Tu zeB_Vhhp|%o^7$aezbCJCrKev={3q#pxX=W4Ze@#F2KBGXV`|{HR7f^!&E(VxdHb`j zu`b+3-kyuo35LU`%C%d})&R(_x{$_!-o(5ZtpN!RvKrKYUvwdL{iNxTB^$*Y$6?L~ zw*0J%VOK*?NG}HgGmXGcx{x{=-$NmN9Au?D$^?GYg^Y{!(wEw`x9#U~pcNoVKd{P` z4BMboviExc;rdI#Yo=iy0=9eyFsX3>LAHZB`)#te8zqHqn^!#yV)_3k z$aNFJ01wFvy1+M6$l-$t#2pb=TgzzeSN5(Q)LB&uMG$+PKqa30O2bG zLNTph9AV7AfbgXOfkjC1gnyLKZI)8YDodyfAL1;7)^*30iwi}WpV=kITw%`-O7JRTx4?**Y90Ez+mOva{ zZ6oRdWSVGdtynp2$C^#hpOG@V@ zVB*(;AnJOgk374oW6WQ2R}_pGa3n*Dz=VCW3}9WmVU!fB@YVZ)TH0&|m~L9x3&6BV z8A!O>*GvPkX~BtRfRbs?gH}C3kHnvDl$QX1f>lXVCX{5*Y+%rMnPPaKgqBM~fVZa6 z7$uqG0!7y#Glbji@a#eBM*je{s@@DR-Lz8iv17JE9hZS*RI93f2d34T0ZOJ_El=2j zV`b8m-dHD@$*1y5u2a8(BCItANydx?#?Q?X4BG)zqyjw>Kfs}i^aH3!qcg$M zO)5rnxKV&YHs%gX^v*H#c7F%vaQPWnl0gyR(Hdz0nXF!VYwXeb9?Vk@GKZARYXPhg z1}q~t{Qp3H4bQ-m3~C0IeV73x!^-MgFohnP87G-F8MrwQ#2jtI*C4Xbw28$3-(d;O z3GEhqHMlHT7x*`DZy*uK_kZeN??2kVE4lywEMJB4opPmen4)+e@b-HT^1S6);~DS% z*L{ckNcXO;XI!Vcs-3?%?{*&N9Od}Raf2g9&i=n=UuQqez7yH|KhHMN=Cp3No@A}G z{A{@+bNoNJ6d?IeU@o&E(VBG z4G^G;o&^x67$86mJrf{KHb8(1dImt8WPkwm^K^hX(EtIe=V_pNo?w6w-eb_J=T^Wt z-hd&zlAtlR0LCJjF?~^DuDY+Gj@jws&zNaoinP#}p%?8nW-4GU&}Y%%TASfWc6ETX z%{OLAjCQakJOCK+zL|-hzIYFN8*YBAw@-gJzVdf4E$KIc8m)P&ePCMBmywp9(#r3F zQN2c()CvkLR;sWOj!Br{Nrrs~JcT^~MA}PuTAW0U zr(V{OP|E;nZYC65p;w*@)&|`G6(u(u_jHo?Ck?$R)gG`mn3EYNrEnN9YqlZBux`15 zS@Fy`$*iGZb>1a&#NyN0La26u)p=(oSh`6Sj{uX7HJ}*glM|Q}%LJ25dRX4&4bB3T zSnpgCc__(`1}$!;EH~ILW+PP<*!d35$OMv{JJk;028$YD(om03yqCU1Bs?Kq*-o>Gt+MGOnKj>l?(p#xfSlbgBcD(Go#eOr zPaNe^YQ{OjSjH0c7^?xv&@{S{POb|nCXC+LvEjKSCTLc;u!!6Zz~QL0@n8YR_R$_S zg)1xvxN3lV#2l^!;Hm)bVRN`bfEy!p4lM5;qBxTCrgDu%%QYS>fLN|=&j1qhO9NE{ z(1V#kLQZL*Dgb&Q6G+G-4TSP&8v)S=@66>9eg6*T(ft`fX?eszD37*g0*QIVKq!y4 zWCDqK#6V+&PK6c!ed8MH==~d`$&+8ba|g(~0Q9ddv~wYGC~40>uBEMc3FuTdC-vm1 zBcV?z;$1{J3speP8u>oz;Jp(%+S)7C-X!J0EEaqjmr&_dKza|53O)=by;6=d4Q@(F z>w6O<(d3fzditWdc5gFPMwZE;vB8a!QoG-r^`1<4E?Ah~-Ew%7dQq+VkYasTw7-kI zu&(XQ)W>^g4#fLu8PHB|jrudEN&Pu~sC*lC@UGNd@2%t}^np%NVjU5!|E0q~4!h|c z`4{g@g=4aXa`K$6e9QZ%>h~kd0tNmCJ{3wwSBH*OUdy7awCA?i9fTXWRcK(**JJZ zstzY-K;e=?+HzR!XEk>Pm?>T_em+%mc@Hf6a1D4^K6ssuobRzT`I(^IT&p85O)Nfs` zr{{+a&HnSi_b=1a^ZlNtUk3E+_4K^cThpHl^y~EW!eC1;?W|b}M(azdp7fW-{T%Hs z#~co3X=@=sw})e(!vN@#bdYi1#z2RHBwY+aQm@7U(?O4LQ4(O(pHX?q@j!l|AlK>1 zn0ygf4_`p#!tqJNvSI$6F^7XVkTn@ldZnZx4+F^6`bfj_(vXLO1fQP)nO<@lYC5Px zt7Mcx88T4G@#^}&+OpIVS`r#dPXBKR#)JC=UJG0n=n9PX|Kh*L-{U{P_nL3DZ@O))PBQ3vJ9t=H2KAiefO2XOmQ=tv&@D<8WP3)SQ ziwnn3WZS)LI!LE6oHXnL*$p?vN)P zR6y;~w`Lo##+?pHS~JZcS@(n7aixP;qKq(Gfj!Q2Ou3djMxZV7C?7%()VBA>dSi)l zR!?X-<+Q7%6?skAhNdfqkoXvFMX~yxioq*I?A~(*ZBwDOO99lzKSnz&BeZ<5M&%$V zYYW!wpv>tiSUQ!oNbzyCkVSx&R%A%Nb^|@5(oC&gE~KBik^aq&TFIrKLC*uwf3kzJ z4u-e%902`0J7}?F>Dj=e^Opc+#V@}M%^S!{9lYio{L>VRw~MjB6}Q1ZOtFf%G&0sC zkjCEy7OOaN8hI8g*-5}(H+aU{=%M@IufS{Y^MrwL$MFN<_AdJHRjKMk8(g~!tEXjZ zx@zu{N15PH9n%}i*!EBnb2b$gabAPqH>xuDHBkO2D+^g|UQIPj`6W>PK$MjR-~3MZ zo8QYy;hRkPCD^C=T%H$4xGPySehYjFR-x=@Hm!HTVheQhrJaq@;AU zbX^qu1Vo5^oSL?PXRo$&;N=EjC355Jc6WFs$5pUboh&$DNmh(uO$-%g)9M3_-Zl%SV*@WB4^5T z(cmjdVg0}iayDt8m)d!^`ZI^B#;+_VV^^Utn+(1zsMHlUyGVi8tpF>{m)g4%^J8i# zQDG(BU|@fbh4pqh)~kj@&I11G7r9xc=)3Pz_nO7osy6A&2i@579H%Xs80b#!0O&yu z0-HC_agaK4AH+QJoO_=J(l=)WNY=9)sh&LLJ|oth(W2p?X*|Pm>IP<#!)N4%7q+*d zZ_qGdn#cUQPe+<2lKw)!pw6dt<#kq2at#ZOOm!P%{S4Pgdn=*GEj5hs z{{}B6F97Twcsp=mU|L`w|JTF=aJoN2P62%6+u&Q|t5SYdZd2wcL%kn*mw6|7ZR93^ z0nbSHNA9)mHup}hH(gh_rn^GUmz)O%O{>EOD zBxlm&v*LZ^UbFsi{i5!8&n)s7qI$NxeO?!tF%MTWk97{A=hfdszX&Wg3mv@5#1J~j zV%MUCey%2IsS?xjV_RcWeO*gsDL-fz@h>(z!W7+qY-=$l2)vh!>0ya&|gE z|N2vOczAL`?E(3ndhN~dQ{-VWv@Ru{IIg~K3VMN@8bRO7 z);Ooi!(!;t6sN9Ny=vDK=yZ7z5n7u9CEajnyYmcr$rZY!X@Gehs*^xsKnEN4SLuNGfDS%Y%RqT)hwzeX zC3ZzvSiNwpPgqmX9+NGSLQCXDV~8EZBL!tlV2g{;lBu$%>YP+vXAjl4$D-khGfDL! z&!qK|TB!Q`I(wt@x=4E(JmEQC%_*%Zt`#QUERW7kqc+yHH|DEBPT{8R1bGj8Frzid zdLg2gK^E&mpdq0#fN_>CgKiyCJGg!&R0#?ToM%gg-OGi3k;)96BG|&_c-o=1I6h*~c&1YG@35bprMciCL`_e`^SRvHPj{%&!PK*qsV@S;!*^L#Npe_ar zE9uMb8CHZL+T}*h5-KQbv`rF)I0RDRjcgvl)c*=Iai$*6smDdT=aA=)*r>xQ5GQXs z7RVd*vp)FByRz>yLNTH?YzP{%Q?*Pvg0&Iqr+=| z(tfsmtnCwW4j^I6w|-^4(b{P}fZPdqW!m~*{Hr{y<}T50ftc9QHomfmbe5@1E#xDw za?encTeA`n&e13Eu~!;l1t6TQPvE1kG{SN~SgcRrOUOOGK01qBvQA#`AZ|q=tH{&&+y!k-k%AJw6a{52 zoy^oK@{%aGudS)Ql?3|o+9JVjdb@1R1&5Qdc7ZU~=Jup!9^4JNG$tq(CO0FJ12c0I zWSZU{Q%~l0%CkN;G0N?hcZ+k`c|u|oizwD^Gct;Wss_=#x$1F3>KIoax}f*zaM#z+ zoMp>}o9XYz%0o`BdWMh^{p)5y0g)MXac zR_JPXmd{z`PNiBQ3XC5-Rd*_zUlFhBD4G&F3t_uARVR0l(w-xhcAKzomvL*F8_u+? z>17~^hX_e5)=gqA(6Xy9li5?GtIYvgcGYE4Td1oI0d0$5bAhflD6gJ#BfM6>HUxll zGB4Gy41OSO=B4Gj2K#_?5-%;&l`23wk(ZY0O1(fjftQx(No56czQ zAyo@nRDqZlbx2i$7S$l8MIF)@L5pe-)1nTklGmaRiAhn1q+ZFGs(kwO2X#p0ycBgv z?5n6lD&wW7Lt;|YA(iq{)FCk`>X1r!De91z6m>|&yi~tJp$sAl3Fjt-DnQdtEVnVZS8cIs0~ zgKd{Bx-L*>D>)y@%lq7X5zrdzjm{yH(E0Jc81c#x*BqVa@RSc^FKX^ck<5ah zNr^7KgyhKsWzHf}FH=)#STET${BU{wpJNf$|I8=GumAs2*Z-xKYb~KIq4}Z0;Mc+H zgENAA1zr!V4zvUm|6^qLzsC26Z=-LX?;zzUW zeG?0BCan!euGW(^OF?NPZ8y}ple<*?y>=U*Jz$PjB+y5U8CXTR1gizF_2q6h1uKzYV;#V5aYSNkF^PB#n7XdE1@ESt%Al-iCJ~jU zqDDkSL>06EPXqE5Ig0pwI`h&s=% z0FYCxA?oxBa?*@E*&3qmFqX0Nf358-Tj16}H~IfR>EG&~;QNbjyKj!qL3jT{c@w-J zdN1-W@#c9R^&IZ0b${u;%6*V~wChFJ39d%xkMsgS)cKp-H*?R;otN|PoGWueId;b_ zj)NV6><6+pWC!if*tgpE&Uz#3_^c_mkLW`g{HRY?|1HbP3>-0C-*IK3o19b-i4s5s{0I$v* zs2z<0_(uS|Ds!NAWD4MQ0C;8QKF!m-?v=JSSGMoXxBR?u zMMPNsc-2#Qp+4ePYegpGX7-WbYXHaT*M$<@&G}Q+d81;Z6IBNjs{j?l)Z8!*U{+gDfE(r$$&UPm0` z;QS>WM|W5e^|Kmq-c8F<=lxZH^G;fhI^C}XoVU|*)LDK7;JlTVqfYM20q4!M9Ci1z z3~=5^%TYHyOTmrp3!R;f^O#F3i^WK;H#%Sakvv9n)>*)2_O#|0W_~#d&0T=@RAw~w zah)y91VDQ{Gn#I~7P>tQXpdz^Q!gkR_5rjLT+3YL&JUf}JLAs!++TAa%RMP~|J>0z@8(>Q z6U~|A__t#R`TVyyeA%yLpP#)Zdk^~;_FL?m?KACJS&wJ^E^Ahn&Gty(G5T!sM|BJz z^<2Uqhhnye2St+iLB7#Dll>MsGDbbCj^0tJq|QqhhZ679G*1xQL`OE4=1FlIegmX$ zNxFtJY3a9}l(wg&XWg%EQ%7B}C_1>7Qm4^-06ZD>aD<+7;<0r!HEFcxuIZyLQeA;Y zoi7Ph(h-b7J%qeTAfyY+$VX>FoEY3stYqQRgjQ(%CqfIU}W}FKy(=sI!^q ztc!r?xjcuanF?P^eN*W}`Tqivsf;lxNu>|v{}V|52WYGGq5Oa7LiKpv=Krip zirZvO7s~$@2>zrBsy*l%Ao!yysCJ;Qf#46SpxS@_4g|kf1=a5Jl^Tqc|4CAi-j=9n zp?5aI{aY%=w^ugrt#qP~)pa%ht>miQ6ds6FEQ`duQ@N`c!C_;+MO;??o4_LVy8djC z>Bd|f>UIL)vl#<*dvgJt2!Ib|3e<1U1@I97d@y66Zig;_69DjmjDfmMx&S^5fcIw% z)a}y+a327?FH@j?t1f^K0pN~|fx6u~2hR2b;Jq0GbsKh};e!BpPo}`hI>$nxVIBb9 zoiR{%2`)5z008gG7^sev*&g*F&-^2fJ)pq( zymOngA@|$d>vO}oyXAbAb92s6PL1Oy$Ni2Y9kU!Z@(0+I-C+ODez|?E{Wn?fXI+&w znAMmSu)S-$KJa|f5McgC6~*=Lp^NJ+IAO_BN{K~hTq>l-aj)PQwiRf&4M=R$NN7x) zQsQ4g;&_dO*tOou=u+ZVAaR^VLStr@68``a$EGA?Dk$wYZc&3m3XW`lg2R%1L$?)!_h=uhp*aPEp+$3frua~ta*2ie zWhe|Ymx@NyECAQnb{CMlf+hpOT>5L!Ip(CK6Hly|1O5&^-yIjUND^Z!vLdf z%Oarl%#>`h!W6+a-APvzcScHZX}=gdG8-PBePl&_3EF7-!dN`QbB|Bs89{;c2%bi0 z)R$_?-hz6)baLRDG?*Y2RH~-Zf@xMHed|dIxOOO*YC^GSN=e%nOe9k>prx8eg7yK0 zt1|(CMwXPl0i||HZ2gv41sRjsl)#bti6Ny+K_2^i)IDHUsWGGID_Ia)7OMV@1=WC{ ztze@XEsKB}RR992L#ojR)R?TVRILUT`q3)u)C-3DBt68k-;TNmj67hERc+k`pCC36uV2`and@KO=zPx2mApeFAFS$fy^2#J(-`toBmV%O}-y|H~M0}YI^_g zzPw{7`=5uh|DERTq!@q~J!g8Bd5YX`x-W7sbC-kd$f{3pQY*1gqC|sgqn)@n3 z;l54bZpzD`3-13TI#Ui9E6PXTG!T~{oAZB*E41u+y$I6buN zrf&2K_g67ZF?#oarL2a^6y~eP(89%*6oWRhX8daREi4GNcD6Kz_+uc{PAMORDIvZt z@>wRIpAlyLSG8Xi`Y2<`u>K+Rs(OuR!7mIm>wBH3sLwngI#m@tT_?&ZI4t zH4|0Azu7knzEk^5!9V0Tn|h;t5!P1vY?`{Ff5SCLly9vmx@Hp;eY1(v=vQrxoh{An zy3V34dBNvgfgjaoEBI0s)pr&lioW`VDq1~RQ{VEdKd3o!3O-ug5o&4dWYxwJUpB^j zBJ}=Df4D*{OJbURhbcX87>IvpCayJ03h^Nz{x>sm(em1_4+8NI%*4f3St}j~;_sV@ z*Rb*mLrZ~Bej^b7tC@JUB0d1b-!l^zyB@9bF?H8d@MdE?JT$E9X!0c!J}ZqF;2rH3 zbyh2QrH%6b3=UH2_3;bnFG~5uERXHYt<9^r;%Bno`H!;S1up`{U!Fq={5M6zmg3I| zabR|NDHQ3U<<3(2RUr**OwYB3+NrOyRI750V_jFYH&?viSuXp$x@HzUC3Yi;jQEt$ zDcm0!s_393SMg{p!DHfL`4vg=3!YHd%z`I5ij+tT5qa?oo&ZMHN0VE#dEt00k}$H0 z_T#CI3wDAEd~j~((uM5CU@}Whx~ey_fs#`7=%fp_^GdiL*cKnqNv|ZyA@c3hKBFOp z9|2SC{W{_0B-~Bgn8m%ZZmLSC!nHt!`*f5ggHbc#D}nG1y>OhK!Wm4yA;POp>iR$!aze7h^Jlr29X(arxx-TfWT`x>~%bxJiU~feK zfQxLoE5LMjn;t;p1%3K*P;~T-c2VyzEsl7!T&liuS8%gVdOobI zOF&uwq?2n2-5v4} z!sJVy+>3*5;|DiKyVe_?=NV7?p6aRG+0nsIf#NJ*_=+yGn>fP0u(T;uNt-iPCOohy zUk-UZ@WqpNi^6-@-wn3`*z*~|w2n;@_AdZ?E+d%Mt4YFc1+Zr`f@xivB=pofIwP3YnMrE)4S+qB5lrjJBw;t}Vtqu{crqz|v;oGwmJH3#OfnX!dxXNfRQqnqVhzo^ExV~Z-ol#~x3|uOR+|E!Z1%i={?T3dhl z9(Gd|*xwDuf~n!Orq-(Zsm!6& z_^7+?6$;)9^Z8?(h2RuYcq+&6Hw=5jbe7$aeES?=W;1OHPf_!)7oME*$IQ^TlRsNo zxJ@;o6rN`uKy-!{huB$y{cA@7`<;Ig`(3yW zNJh1ii<=fTB_u_psFaKV$zHAG95cyoAlajpYzvuuvr9cY7aqKrtTY?KmHfa)r?)EB z?Zki6k3ffmmv}Y*4HB3X9%w;QZ-fQs0Nolb=Al&?94GmRP8=seeJtnm36&(-?p4|s z-sL=YI-Q?A3;7iw=se%^(mghg7dp(DGs@-3?FLbxMzIR>Y zTJCZ>?{XgC%*wqwcVW&qIcMk0bA0c(*0Ivz$-XDMH+!`Gar=q(g?4Y⋙fSR%R91 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�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

kiH4A}|NlV7l^G{x^kuBbsL1eTxY9pO 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�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

0G?Wzv67y*BtB413F|gXH6?{?Ez-srPmqlWt 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
iD?Oo`GSx2kq=K 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

uUD)R-D-CS4_XI1r&XZC$k3S}wVbe}XyGfO6u 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

s6yvMvWf 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Μ%ed|i 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 E|JETRS89 transformation, this is EPSG:2393 (\"KKJ / Finland Uniform Coordinate System\"). The input coordinates are assumed to be passed in the \"normalized for visualisation\" / \"GIS friendly\" order, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." - }, - "output_crs": { - "$ref": "#/definitions/crs", - "description": "String identifying the CRS of target coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:3067 (\"ETRS89 / TM35FIN(E,N)\"). The output coordinates will be returned in the \"normalized for visualisation\" / \"GIS friendly\" order, that is easting, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." - }, - "transformed_components": { - "type": "array", - "description": "Specify which component of the coordinates are transformed. Either \"horizontal\", \"vertical\" or both", - "minItems": 1, - "maxItems": 2, - "items": { - "type": "string", - "enum": [ - "horizontal", - "vertical" - ] - } - }, - "vertices_columns": { - "type": "array", - "description": "Specify the name of the columns of the rows in the \"vertices\" array. There must be exactly as many elements in \"vertices_columns\" as in a row of \"vertices\". The following names have a special meaning: \"source_x\", \"source_y\", \"target_x\", \"target_y\", \"source_z\", \"target_z\" and \"offset_z\". \"source_x\" and \"source_y\" are compulsory. \"source_x\" is for the source longitude (in degree) or easting. \"source_y\" is for the source latitude (in degree) or northing. \"target_x\" and \"target_y\" are compulsory when \"horizontal\" is specified in \"transformed_components\". (\"source_z\" and \"target_z\") or \"offset_z\" are compulsory when \"vertical\" is specified in \"transformed_components\".", - "minItems": 3, - "items": { - "type": "string" - } - }, - "triangles_columns": { - "type": "array", - "description": "Specify the name of the columns of the rows in the \"triangles\" array. There must be exactly as many elements in \"triangles_columns\" as in a row of \"triangles\". The following names have a special meaning: \"idx_vertex1\", \"idx_vertex2\", \"idx_vertex3\". They are compulsory.", - "minItems": 3, - "items": { - "type": "string" - } - }, - "vertices": { - "type": "array", - "description": "an array whose items are themselves arrays with as many columns as described in \"vertices_columns\"", - "items": { - "type": "array" - } - }, - "triangles": { - "type": "array", - "description": "an array whose items are themselves arrays with as many columns as described in \"triangles_columns\". The value of the \"idx_vertexN\" columns must be indices (between 0 and len(\"vertices\"-1) of items of the \"vertices\" array", - "items": { - "type": "array" - } - } - }, - "required": [ - "file_type", - "format_version", - "transformed_components", - "vertices_columns", - "triangles_columns", - "vertices", - "triangles" - ], - "additionalProperties": false, - "definitions": { - "crs": { - "type": "string" - }, - "datetime": { - "type": "string", - "format": "date-time", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" - }, - "extent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bbox" - ] - }, - "name" : { - "type": "string", - "description": "Name of the extent (e.g. \"Finland - mainland south of 66°N\")" - }, - "parameters": { - "type": "object", - "properties": { - "bbox": { - "type": "array", - "minItems": 4, - "maxItems": 4, - "items": { - "type": "number" - } - } - } - } - }, - "required": [ - "type", - "parameters" - ], - "additionalProperties": false - } - } -} diff --git a/app/android/assets/qgis-data/proj/world b/app/android/assets/qgis-data/proj/world deleted file mode 100644 index 9119eed8c..000000000 --- a/app/android/assets/qgis-data/proj/world +++ /dev/null @@ -1,214 +0,0 @@ -# SCCSID @(#)world 1.2 95/08/05 GIE REL -# proj +init files for various non-U.S. coordinate systems. -# - +lastupdate=2016-12-12 - - # Swiss Coordinate System - +proj=somerc +lat_0=46d57'8.660"N +lon_0=7d26'22.500"E - +ellps=bessel +x_0=600000 +y_0=200000 - +k_0=1. no_defs <> - # Laborde grid for Madagascar - proj=labrd ellps=intl lon_0=46d26'13.95E lat_0=18d54S - azi=18d54 k_0=.9995 x_0=400000 y_0=800000 - no_defs <> - # New Zealand Map Grid (NZMG) - proj=nzmg # Projection unique to N.Z. so all factors fixed - no_defs <> -# Secondary grids DMA TM8358.1, p. 4.3 - # British West Indies - proj=tmerc ellps=clrk80 lon_0=62W - x_0=400000 k_0=0.9995 - no_defs <> - # Costa Rica Norte - proj=lcc ellps=clrk66 lat_1=10d28N lon_0=84d20W - x_0=500000 y_0=217820.522 k_0=0.99995696 - no_defs <> - # Costa Rica Sud - proj=lcc ellps=clrk66 lat_1=9dN lon_0=83d40W - x_0=500000 y_0=327987.436 k_0=0.99995696 - no_defs <> - # Cuba Norte - proj=lcc ellps=clrk66 lat_1=22d21N lon_0=81dW - x_0=500000 y_0=280296.016 k_0=0.99993602 - no_defs <> - # Cuba Sud - proj=lcc ellps=clrk66 lat_1=20d43'N lon_0=76d50'W - x_0=500000 y_0=229126.939 k_0=0.99994848 - no_defs <> - # Dominican Republic - proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W - x_0=500000 y_0=277063.657 k_0=0.99991102 - no_defs <> - # Egypt - proj=tmerc ellps=intl lon_0=25d30'E x_0=300000 k_0=0.99985 - no_defs <> - # Egypt - proj=tmerc ellps=intl lon_0=28d30'E x_0=300000 k_0=0.99985 - no_defs <> - # Egypt - proj=tmerc ellps=intl lon_0=31d30'E x_0=300000 k_0=0.99985 - no_defs <> - # Egypt - proj=tmerc ellps=intl lon_0=34d30'E x_0=300000 k_0=0.99985 - no_defs <> - # Egypt - proj=tmerc ellps=intl lon_0=37d30'E x_0=300000 k_0=0.99985 - no_defs <> - # El Salvador - proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=89dW - x_0=500000 y_0=295809.184 k_0=0.99996704 - no_defs <> - # Guatemala Norte - proj=lcc ellps=clrk66 lat_1=16d49'N lon_0=90d20'W - x_0=500000 y_0=292209.579 k_0=0.99992226 - no_defs <> - # Guatemala Sud - proj=lcc ellps=clrk66 lat_1=14d54'N lon_0=90d20'W - x_0=500000 y_0=325992.681 k_0=0.99989906 - no_defs <> - # Haiti - proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W - x_0=500000 y_0=277063.657 k_0=0.99991102 - no_defs <> - # Honduras Norte - proj=lcc ellps=clrk66 lat_1=15d30'N lon_0=86d10'W - x_0=500000 y_0=296917.439 k_0=0.99993273 - no_defs <> - # Honduras Sud - proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=87d10'W - x_0=500000 y_0=296215.903 k_0=0.99995140 - no_defs <> - # Levant - proj=lcc ellps=clrk66 lat_1=34d39'N lon_0=37d21'E - x_0=500000 y_0=300000 k_0=0.9996256 - no_defs <> - # Nicaragua Norte - proj=lcc ellps=clrk66 lat_1=13d52'N lon_0=85d30'W - x_0=500000 y_0=359891.816 k_0=0.99990314 - no_defs <> - # Nicaragua Sud - proj=lcc ellps=clrk66 lat_1=11d40'N lon_0=85d30'W - x_0=500000 y_0=288876.327 k_0=0.99992228 - no_defs <> - # Northwest Africa - proj=lcc ellps=clrk80 lat_1=34dN lon_0=0dE - x_0=1000000 y_0=500000 k_0=0.99908 - no_defs <> - # Palestine - proj=tmerc a=6378300.79 rf=293.488307656 - lat_0=31d44'2.749"N lon_0=35d12'43.490"E - x_0=170251.555 y_0=126867.909 k_0=1 - no_defs <> - # Panama - proj=lcc ellps=clrk66 lat_1=8d25'N lon_0=80dW - x_0=500000 y_0=294865.303 k_0=0.99989909 - no_defs <> -# other grids in DMA TM8358.1 - # British National Grid - proj=tmerc ellps=airy lat_0=49dN lon_0=2dW - k_0=0.9996012717 x_0=400000 y_0=-100000 - no_defs <> - # West Malaysian RSO Grid - proj=omerc a=6377295.66402 rf=300.8017 alpha=323d01'32.846" - no_uoff rot_conv lonc=102d15E lat_0=4dN k_0=0.99984 x_0=804670.240 y_0=0 - no_defs <> - # India Zone I - proj=lcc ellps=everest lon_0=68E lat_1=32d30'N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # India Zone IIA - proj=lcc ellps=everest lon_0=74E lat_1=26N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # India Zone IIB - proj=lcc ellps=everest lon_0=90E lat_1=26N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # India Zone IIIA - proj=lcc ellps=everest lon_0=80E lat_1=19N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # India Zone IIIB - proj=lcc ellps=everest lon_0=100E lat_1=19N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # India Zone IVA - proj=lcc ellps=everest lon_0=80E lat_1=12N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # India Zone IVB - proj=lcc ellps=everest lon_0=104E lat_1=12N - x_0=2743185.69 y_0=914395.23 k_0=.998786408 - no_defs <> - # Ceylon Belt - proj=tmerc ellps=everest lon_0=80d46'18.160"E lat_0=7d0'1.729"N - x_0=160933.56048 y_0=160933.56048 k_0=1. - no_defs <> - # Irish Transverse Mercator Grid - proj=tmerc ellps=mod_airy lat_0=53d30'N lon_0=8W - x_0=200000 y_0=250000 k_0=1.000035 - no_defs <> - # Netherlands East Indies Equatorial Zone - proj=merc ellps=bessel lon_0=110E - x_0=3900000 y_0=900000 k_0=0.997 - no_defs <> - # Nord Algerie Grid - proj=lcc ellps=clrk80 lon_0=2d42E lat_0=36N - x_0=500000 y_0=300000 k_0=0.999625544 - no_defs <> - # Nord Maroc Grid - proj=lcc ellps=clrk80 lon_0=5d24'W lat_0=33d18'N - x_0=500000 y_0=300000 k_0=0.999625769 - no_defs <> - # Nord Tunisie Grid - proj=lcc ellps=clrk80 lon_0=9d54E lat_0=36N - x_0=500000 y_0=300000 k_0=0.999625544 - no_defs <> - # Sud Algerie Grid - proj=lcc ellps=clrk80 lon_0=2d42E lat_0=33d18'N - x_0=500000 y_0=300000 k_0=0.999625769 - no_defs <> - # Sud Maroc Grid - proj=lcc ellps=clrk80 lon_0=5d24W lat_0=29d42'N - x_0=500000 y_0=300000 k_0=0.999615596 - no_defs <> - # Sud Tunisie Grid - proj=lcc ellps=clrk80 lon_0=9d54'E lat_0=33d18'N - x_0=500000 y_0=300000 k_0=0.999625769 - no_defs <> -# Gauss Krueger Grid for Germany -# -# The first figure of the easting is lon_0 divided by 3 -# ( 2 for 6d0E, 3 for 9d0E, 4 for 12d0E) -# For translations you have to remove this first figure -# and convert northings and eastings from km to meter . -# The other way round, divide by 1000 and add the figure. -# I made 3 entries for the officially used grids in Germany -# -# -# Und nochmal in deutsch : -# Die erste Ziffer des Rechtswerts beschreibt den Hauptmeridian -# und ist dessen Gradzahl geteilt durch 3. -# Zum Umrechnen in Grad muss daher die erste Ziffer des Rechtswertes -# entfernt werden und evt. von km auf Metern umgerechnet werden. -# Zur Umrechnung in Gauss Krueger Koordinaten entsprechend die -# Ziffer fuer den Hauptmeridian vor dem Rechtswert ergaenzen. -# Ich hab fuer alle drei in Deutschland ueblichen Hauptmeridiane -# jeweils einen Eintrag ergaenzt. -# -# -# added by Michael Goepel -# - # Gauss Krueger Grid for Germany - proj=tmerc ellps=bessel lon_0=6d0E lat_0=0 - x_0=500000 - no_defs<> - # Gauss Krueger Grid for Germany - proj=tmerc ellps=bessel lon_0=9d0E lat_0=0 - x_0=500000 - no_defs<> - # Gauss Krueger Grid for Germany - proj=tmerc ellps=bessel lon_0=12d0E lat_0=0 - x_0=500000 - no_defs<> - diff --git a/app/android/assets/qgis-data/resources/qgis.db b/app/android/assets/qgis-data/resources/qgis.db deleted file mode 100644 index b6edd8912c82b4b5bae811f3db5bf5452900b5bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23552 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 F{{wK@s+9l$ diff --git a/app/android/assets/qgis-data/resources/srs.db b/app/android/assets/qgis-data/resources/srs.db deleted file mode 100644 index 6b8193b772f0fba9536f764a00f15e14b05bc88b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4255744 zcmeFa31C~-bte24!Io^(qAk-jP0<2P(Ih1j#KXgCnYJm4qG*W{C2H{+86+VR<^mc3 zCCh6cl%(l&l1ZC1(7EV$jyMXu7W59}H^RP5-QE z&G%?p(+N$}w&7n4|F+)A)1KVf<+( zO}@Pwe{Q_lz+c_`I{s?6@;5rX`npPis}%U2q(DoPxl2Eq&ZcK0;c&R9=>LwZ`u}@! z#IGXtADsd_N&mM`0D;2j>4WKVUv>{)+hv=FgY~^Ihg! z%{Q6<#e9wFn2Tn{e1&<&oMe}N&l2h?Vpl2Pn*!TYul#{9eCl6*<*N`HzcKpC?>mj? z`7d1h*IB$-m%g*4Y1fZk`nzW}E%3{iKK(d?=|AXv-b4`YXD)pm%J|x`OJ9MWzUK3n zzHka}FI@Uu2j1E*eRdgf^MAYanR{{F)TK`qaosmAeWF>@ZrI~|5$wCA$NB6L0`TM#~$=;N`#T_0aqJ?*EKSwRgRS82=|;8EnGa7X5Xa z@m=FX`bTikiZAG;lg)7T_2N=s-x$G>bnfK9j zUeK>??dj1k4S6K=nb?cU>Qe0o}w>pSCT>-d@}ZfAwisDR7knFA)W{Ex-0*(*K6`Rn2%Be|n7b+F~tW zK2+<6e<$BxYP#myR@>HJHSEdy*>rJr>1;8dUM^4q1WEigUu~_B`)f`J_GVTJb7zmC#C&owmgEP5Ye)eo`I>$`I*ewnS6ntl zqmVDq7~t)i3cBMIw;n?I`>NtM6iNE+z&3T9_Uj>lrUXa!;E9qA8VSST`rU>HHb;zf)kVW8;$>u$WN|Notcva4WTrNAao z;JT)tE0X@#&F^UV|LW^11+G%yKL`b`(YNUOwrz%CehvA5846f_$oy^d=gm)9kZVlG46IOZ~U3MV7ua%rD|^)BnZlA01qMU8TTP3Vd%-U~AiT<`(mg z@4odr+P5EsY`E=O(=cB6^bJd7|KF@7G_3c(#eCdMnA?nx8*ec(#vc7E`g`@~^n3MY z?bF)Zw0WE)UxPOX+Pk~EGRt$B#cW}ezXh#SGL{~S+li!Q$3x**{@hR`l?+8<@p$y6 zK-<2~j@iuO(scenW-*PoOwdYN;b8Cn%;H>jb*YbC8jnVjAzWx%Rw%ZwIk4k!*RGMt ziILpWQi#Gk!AY#+6oQ#za3WJ!&EpFzkxH>kV+lJMO3<}-G!#kM+XHO_JzX=4`GsV7 zWD&tEdSEgfT*}RcIGB-WDr7}DoOUQ0kK6q>2HLv1*hTTUcTqep&JV{!(P>~9i^r07 zC^^&==t%VRO=k)Pity~mdu9<2iCV$lqv@sWbT-YgN<``OIDZnJ8H*$>{C@);#xKt- zDi^bdCG1oJC$709aebh5uxoJa#8fEdGWuHaNCIJ}g}hv-h6oaHx)rM3myhPyk` z%d`1(W|;j2ripm4_dsSj)E^w5SzMkC33RP+G!(UID8c|Hx;4hP035W4P;2I5wtYnIlHjLqmM&pTV1Fb{dyN;eYk~(lSeLlSyJd;VU=jdcxR zsFGnCFR)0MjTph747)={uz2t%B9Vv{wvtAm^}eposj;bKY$|s?izz>rK?Jp!oe54| zEEF?K!7_G}*Z1jx*3Pa@ibtPhf9P2@pTbu8qlo`^XvZ~V`~0~1gqbw{$#}o<{l+84 zpmBr#G5uZoGx~A88*2l zxerZ*V(vpDp~#-jKSJ3IGWVP-xbPae$T9g%V1 z$cP3V5tHXe+aO3gJNUWbB~L;qS8;B{RWX+`_T9Gy+DE;s+;e*;K=xIz@Bv!h>7ysQ z*T&=CwL`6e_WOFeGUu`8Ff}!LJ_A)!4E9c?r_=K!4iV|UkX{htjO0oz76*lCq?2JQ z5xy13iOb_D_i{Xn4|O7viiM!{)GJ!#6|uOyBF0IFIb?+*p3G#=xJ6zOP0A~xoPf9@ z8VbifdP@K}%wLXX=>U*YA=cT!oPb~Kp^ z4@U!Cd)4bBXU3)y5op&lM+U6$K~H{S{wueL(+BZN*nzHAd5dt�Uj!Dl25@p7LX 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Ⓢ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 bF~qVC8ASCaWy0 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 z

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�+K7=I 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

MJH|PN432eSWhea9)3&c0*0P{(?`34 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 z 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 z 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%0DD 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 M?e1s8t3LAoA9_O1DF6Tf diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index 0e29c7ade..10b61bba1 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,9 +1,9 @@ # GPLv2 Licence find_path(QGIS_INCLUDE_DIR qgis.h PATH_SUFFIXES qgis) - find_library(QGIS_CORE_LIBRARY NAMES qgis_core) +find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES qgis/resources PATH) -set(QGIS_REQUIRED_VARS QGIS_CORE_LIBRARY QGIS_INCLUDE_DIR) +set(QGIS_REQUIRED_VARS QGIS_CORE_LIBRARY QGIS_INCLUDE_DIR QGIS_RESOURCE_DIR) set(QGIS_PROVIDERS_LIST authmethod_basic authmethod_esritoken @@ -46,7 +46,7 @@ if (QGIS_FOUND AND NOT TARGET QGIS::Core) endif () -mark_as_advanced(QGIS_INCLUDE_DIR QGIS_CORE_LIBRARY) +mark_as_advanced(QGIS_INCLUDE_DIR QGIS_CORE_LIBRARY QGIS_RESOURCE_DIR) foreach (provider ${QGIS_PROVIDERS_LIST}) mark_as_advanced(QGIS_${provider}_LIBRARY) endforeach () From 7b0fcab9ad28a191cc9a0710c271a0513deedd35 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 15:52:51 +0200 Subject: [PATCH 010/118] proj share data from vcpkg --- .gitignore | 4 ++-- CMakeLists.txt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 466e93fbb..afde8b635 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,8 @@ test/temp_extra_projects/ input.pro.user* app/android/assets/qgis-data/proj_custom/ app/android/assets/qgis-data/projects/ -app/android/assets/qgis-data/proj/* -app/android/assets/qgis-data/resources/* +app/android/assets/qgis-data/proj +app/android/assets/qgis-data/resources app/android/assets/projects/ app/android/AndroidManifest.xml *.gpkg-wal diff --git a/CMakeLists.txt b/CMakeLists.txt index 3dc708ef7..95bb67bc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -345,6 +345,7 @@ endif () # RESOURCES # ######################################################################################## # TODO - this would need to rething the approach so the assets are in binary folder +file(MAKE_DIRECTORY app/android/assets/qgis-data/resources) file (COPY ${QGIS_RESOURCE_DIR}/qgis.db DESTINATION app/android/assets/qgis-data/resources/) file (COPY ${QGIS_RESOURCE_DIR}/srs.db DESTINATION app/android/assets/qgis-data/resources/) file (COPY ${PROJ_DIR} DESTINATION app/android/assets/qgis-data/proj From f5e2a48594b648dfa3dc083861af840ba3f0413f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 16:26:15 +0200 Subject: [PATCH 011/118] fix macos install step --- .github/workflows/macos.yml | 12 +----------- CMakeLists.txt | 22 ++++++++++++++-------- cmake/FindQGIS.cmake | 2 +- cmake/InstallStep.cmake | 30 ++++++++++++------------------ scripts/create_dmg.sh | 4 +--- scripts/update_qt_version.bash | 2 ++ 6 files changed, 31 insertions(+), 41 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index c950506fb..eff98bb9f 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -58,7 +58,7 @@ jobs: - name: Install brew deps run: | brew uninstall cmake - brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl + brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg - name: Install CMake and Ninja uses: lukka/get-cmake@latest @@ -171,16 +171,6 @@ jobs: ninja ninja install - - name: Get TimeStamp - id: time - uses: josStorer/get-current-time@v2.0.2 - with: - format: 'YYYYMMDD' - - - name: Prepare build env - run: | - brew install create-dmg - - name: Create dmg run: | if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then diff --git a/CMakeLists.txt b/CMakeLists.txt index 95bb67bc0..3b8ad102d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,11 +8,10 @@ cmake_minimum_required(VERSION 3.22) set(MM_VERSION_MAJOR "2025") set(MM_VERSION_MINOR "6") set(MM_VERSION_PATCH "0") -set(QT_VERSION_DEFAULT "6.8.3") # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake -if (DEFINED ENV{INPUT_SDK_ANDROID_BASE}) +if (DEFINED ENV{INPUT_SDK_ANDROID_BASE}) # TODO android! # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) @@ -344,14 +343,21 @@ endif () # ######################################################################################## # RESOURCES # ######################################################################################## -# TODO - this would need to rething the approach so the assets are in binary folder -file(MAKE_DIRECTORY app/android/assets/qgis-data/resources) -file (COPY ${QGIS_RESOURCE_DIR}/qgis.db DESTINATION app/android/assets/qgis-data/resources/) -file (COPY ${QGIS_RESOURCE_DIR}/srs.db DESTINATION app/android/assets/qgis-data/resources/) -file (COPY ${PROJ_DIR} DESTINATION app/android/assets/qgis-data/proj +# TODO - this would need to rething the approach so the assets are in binary folder +message(STATUS "Copying proj and qgis resources to android/assets/qgis-data") +file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources) +file(COPY ${QGIS_RESOURCE_DIR}/qgis.db + DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ +) +file(COPY ${QGIS_RESOURCE_DIR}/srs.db + DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ +) +file( + COPY ${PROJ_DIR} + DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/ PATTERN "*.cmake" EXCLUDE PATTERN "vcpkg*" EXCLUDE - ) +) # ######################################################################################## # SUBDIRECTORIES diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index 10b61bba1..e1b5f8ea7 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,7 +1,7 @@ # GPLv2 Licence find_path(QGIS_INCLUDE_DIR qgis.h PATH_SUFFIXES qgis) find_library(QGIS_CORE_LIBRARY NAMES qgis_core) -find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES qgis/resources PATH) +find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES share/qgis/resources PATH) set(QGIS_REQUIRED_VARS QGIS_CORE_LIBRARY QGIS_INCLUDE_DIR QGIS_RESOURCE_DIR) set(QGIS_PROVIDERS_LIST diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index 76934f705..24ed749db 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -35,27 +35,21 @@ if (MACOS) set(executable_path "Input.app/Contents/MacOS/INPUT") - # https://doc-snapshots.qt.io/qt6-dev/qt-deploy-runtime-dependencies.html Replace with - # qt_generate_deploy_script from QT 6.5.x The following script must only be executed at - # install time Note: This command is in technology preview and may change in future - # releases. (QT 6.4.x) - file( - GENERATE - OUTPUT ${deploy_script} + qt_generate_deploy_script( + TARGET + Input + OUTPUT_SCRIPT + deploy_script CONTENT - " - include(\"${QT_DEPLOY_SUPPORT}\") - - qt_deploy_qml_imports(TARGET Input) - - qt_deploy_runtime_dependencies( - QML_DIR \"${qml_path}\" - EXECUTABLE \"${executable_path}\" - GENERATE_QT_CONF - )" + " + qt_deploy_runtime_dependencies( + EXECUTABLE \"${executable_path}\" + GENERATE_QT_CONF + )" ) - install(SCRIPT ${deploy_script}) + install(SCRIPT ${deploy_script} COMPONENT Runtime) + include(InstallRequiredSystemLibraries) endif () # ######################################################################################## diff --git a/scripts/create_dmg.sh b/scripts/create_dmg.sh index cb03d6a75..0c54a2a41 100755 --- a/scripts/create_dmg.sh +++ b/scripts/create_dmg.sh @@ -24,10 +24,8 @@ if [[ -n ${API_KEY_ID:-} ]]; then codesign --force --options runtime --sign "Developer ID Application" --deep --keychain "$KEYCHAIN_NAME" "$APP_PATH" fi -create-dmg --volname "Mergin Maps mobile app Installer" \ +create-dmg --volname "Mergin Maps Mobile App Installer" \ --hide-extension "Input.app" \ - --volicon "./platform/macos/installer.icns" \ - --background "./platform/macos/installer_background.png" \ --window-pos 200 120 \ --window-size 512 320 \ --icon-size 100 \ diff --git a/scripts/update_qt_version.bash b/scripts/update_qt_version.bash index 6d230aa65..a2ce85ff5 100755 --- a/scripts/update_qt_version.bash +++ b/scripts/update_qt_version.bash @@ -2,6 +2,8 @@ set -e +# TODO fix! + echo "update_qt_version.bash MAJOR.MINOR.BUILD" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" From f1d910204230d3433e255a689beb8807b940bf2f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 16:30:03 +0200 Subject: [PATCH 012/118] fix macos action --- .github/workflows/macos.yml | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index eff98bb9f..bc4540fc5 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -24,23 +24,15 @@ env: VCPKG_ROOT: "${{ github.workspace }}/vcpkg" XC_VERSION: ${{ '16.2' }} DEPLOYMENT_TARGET: '11.0' + TRIPLET: arm64-osx concurrency: group: ci-${{github.ref}}-macos cancel-in-progress: true -jobs: +jobs: macos_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - strategy: - fail-fast: false - matrix: - include: - - os: - triplet: arm64-osx - deployment-target: "11.0" - target-arch: arm64 - runs-on: macos-15 steps: - name: Checkout @@ -85,19 +77,9 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ccache-${{ matrix.triplet }} + key: ccache-${{ env.TRIPLET }} max-size: 200M - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ env.QT_VERSION }} - target: desktop - dir: ${{ github.workspace }} - modules: 'qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth' - cache: true - cache-key-prefix: qtcache-${{ matrix.triplet }} - - name: Install vcpkg shell: bash run: | @@ -126,7 +108,6 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=arm64-osx \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ @@ -157,7 +138,6 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ -DVCPKG_TARGET_TRIPLET=arm64-osx \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ -DUSE_SERVER_API_KEY=TRUE \ From 31b2d28560310b9997730407e667334cff03968b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 20:33:53 +0200 Subject: [PATCH 013/118] add bison/flex to path --- .github/workflows/macos.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index bc4540fc5..641c13fcb 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -51,7 +51,10 @@ jobs: run: | brew uninstall cmake brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg - + echo $(brew --prefix bison)/bin >> $GITHUB_PATH + echo $(brew --prefix flex)/bin >> $GITHUB_PATH + echo $(brew --prefix gettext)/bin >> $GITHUB_PATH + - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: From 5f9347518e5f55140fe9ec2139159e1d6a56bdf4 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 08:07:19 +0200 Subject: [PATCH 014/118] update cmake version --- .github/workflows/macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 641c13fcb..b6c706946 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -19,7 +19,7 @@ on: - published env: - CMAKE_VERSION: '3.29.0' + CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" VCPKG_ROOT: "${{ github.workspace }}/vcpkg" XC_VERSION: ${{ '16.2' }} @@ -64,7 +64,7 @@ jobs: uses: maxim-lobanov/setup-xcode@v1.6.0 with: xcode-version: ${{ env.XC_VERSION }} - + - name: Extract Mergin API_KEY env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} From b0679030c6c634592db75b3b24d52bcee8d0491c Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 08:12:00 +0200 Subject: [PATCH 015/118] test nuget cache --- .github/workflows/macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index b6c706946..aa8a1f7d5 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -96,7 +96,7 @@ jobs: cd "${{ env.VCPKG_ROOT }}" chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh - + - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT From e9eafa0fa97449704b6e67e1e6e4a799d2cbfc91 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 08:41:49 +0200 Subject: [PATCH 016/118] try binary nuget cache --- .github/workflows/macos.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index aa8a1f7d5..53a6cb7af 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -20,7 +20,7 @@ on: env: CMAKE_VERSION: '3.31.6' - VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' VCPKG_ROOT: "${{ github.workspace }}/vcpkg" XC_VERSION: ${{ '16.2' }} DEPLOYMENT_TARGET: '11.0' @@ -40,17 +40,10 @@ jobs: with: path: mm - - name: Export GitHub Actions cache environment variables - uses: actions/github-script@v7 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - - name: Install brew deps run: | brew uninstall cmake - brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg + brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg mono echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH @@ -97,6 +90,21 @@ jobs: chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh + - name: Setup NuGet Credentials + shell: bash + run: | + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + sources add \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" \ + -storepasswordincleartext \ + -name "GitHub" \ + -username "mergin-maps-bot" \ + -password "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" + + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" + - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT From 4cf1bec98829ff8092af8b423a6e0a7627f8a310 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 10:38:46 +0200 Subject: [PATCH 017/118] test nuget cache --- .github/workflows/macos.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 53a6cb7af..cdfe0fadb 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -2,7 +2,7 @@ name: macOS Build on: push: paths: - - 'vcpkg-overlay/**' + - 'vcpkg/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' @@ -118,7 +118,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DVCPKG_TARGET_TRIPLET=arm64-osx \ + -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ @@ -148,7 +148,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DVCPKG_TARGET_TRIPLET=arm64-osx \ + -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ -DUSE_SERVER_API_KEY=TRUE \ @@ -162,6 +162,12 @@ jobs: ninja ninja install + - name: Get TimeStamp + id: time + uses: josStorer/get-current-time@v2.0.2 + with: + format: 'YYYYMMDD' + - name: Create dmg run: | if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then @@ -175,8 +181,8 @@ jobs: fi export APP_PATH=${{ github.workspace }}/install-mm/Input.app - export DMG_PATH=merginmaps_app.dmg - ./scripts/create_dmg.sh + export DMG_PATH=merginmaps-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.dmg + ./mm/scripts/create_dmg.sh - name: Upload dmg uses: actions/upload-artifact@v4 From 7e1ade00e2deebc58f5975aedf4b3ec8b771e761 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 10:51:04 +0200 Subject: [PATCH 018/118] try linux build --- .github/workflows/linux.yml | 146 +++++++++++++++++------------------- 1 file changed, 68 insertions(+), 78 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 7704bd510..6260cfe66 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -1,12 +1,9 @@ name: linux Build -# TODO remove -skip: true - on: push: paths: - - 'vcpkg-overlay/**' + - 'vcpkg/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' @@ -23,12 +20,11 @@ on: - published env: - CCACHE_DIR: ~/.ccache - INPUT_SDK_VERSION: x64-linux-20250327-197 - QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change - CMAKE_VERSION: '3.29.0' - CACHE_VERSION: 0 - + CMAKE_VERSION: '3.31.6' + VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' + VCPKG_ROOT: "${{ github.workspace }}/vcpkg" + TRIPLET: x64-linux + concurrency: group: ci-${{github.ref}}-linux cancel-in-progress: true @@ -36,12 +32,12 @@ concurrency: jobs: linux_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - name: Checkout Input - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 with: - path: input + path: mm - name: Install Build Dependencies run: | @@ -51,22 +47,15 @@ jobs: gperf autopoint '^libxcb.*-dev' libx11-xcb-dev libegl1-mesa libegl1-mesa-dev \ libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \ autoconf-archive libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libfuse2 \ - bison flex ccache lcov + bison flex lcov + + # Required to run unit tests on linux + echo "QT_QPA_PLATFORM=offscreen" >> $GITHUB_ENV - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: cmakeVersion: ${{ env.CMAKE_VERSION }} - - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ env.QT_VERSION }} - setup-python: 'false' - modules: 'qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth' - dir: ${{ github.workspace }} - cache: true - cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-lnx - name: Extract Mergin API_KEY env: @@ -80,39 +69,41 @@ jobs: -k "$MERGINSECRETS_DECRYPT_KEY" \ -md md5 - # CCache - - name: Prepare build cache for pull request - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name == 'pull_request' + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 with: - path: ${{ env.CCACHE_DIR }} - key: build-linux-ccache-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }} - # The head_ref or source branch of the pull request in a workflow run. - # The base_ref or target branch of the pull request in a workflow run. - restore-keys: | - build-linux-ccache-${{ github.actor }}-${{ github.head_ref }}- - build-linux-ccache-refs/heads/${{ github.base_ref }}- - build-linux-ccache-refs/heads/master- - - - name: Prepare build cache for branch/tag - # use a fork of actions/cache@v2 to upload cache even when the build or test failed - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name != 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ - key: build-linux-ccache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - build-linux-ccache-${{ github.ref }}- - build-linux-ccache-refs/heads/master- - - - name: Install ccache + key: ccache-${{ env.TRIPLET }} + max-size: 200M + + - name: Install vcpkg + shell: bash run: | - mkdir -p ${CCACHE_DIR} - ccache --set-config=max_size=2.0G - ccache -s + mkdir -p "${{ env.VCPKG_ROOT }}" + cd "${{ env.VCPKG_ROOT }}" + git init + git remote add origin https://github.com/microsoft/vcpkg.git + git pull origin master + VCPKG_TAG=`cat ${{ github.workspace }}/mm/VCPKG_BASELINE` + git checkout ${VCPKG_TAG} + cd "${{ env.VCPKG_ROOT }}" + chmod +x ./bootstrap-vcpkg.sh + ./bootstrap-vcpkg.sh + + - name: Setup NuGet Credentials + shell: bash + run: | + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + sources add \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" \ + -storepasswordincleartext \ + -name "GitHub" \ + -username "mergin-maps-bot" \ + -password "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" + + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" - # Build Input App - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT @@ -120,16 +111,15 @@ jobs: echo "Version code: ${BUILD_NUM}" - - # Do Tests - - name: build Input (Debug) + - name: build app (debug) run: | - mkdir -p build-Input-db - cd build-Input-db + mkdir -p build-mm-db + cd build-mm-db cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/gcc_64 \ + -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ + -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ @@ -138,7 +128,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DENABLE_TESTS=TRUE \ -GNinja \ - -S ../input + -S ../mm ninja @@ -149,12 +139,12 @@ jobs: TEST_API_PASSWORD: ${{ secrets.TEST_API_PASSWORD }} QT_QPA_PLATFORM: "offscreen" run: | - cd build-Input-db/ + cd build-mm-db/ xvfb-run --server-args="-screen 0 640x480x24" ctest --output-on-failure - name: build lcov summary run: | - cd build-Input-db + cd build-mm-db lcov --directory . --capture --output-file coverage.info @@ -165,28 +155,28 @@ jobs: uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: build-Input-db/coverage.info + path-to-lcov: build-mm-db/coverage.info - name: build Input run: | - mkdir -p install-Input - mkdir -p build-Input - cd build-Input + mkdir -p install-mm + mkdir -p build-mm + cd build-mm cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/gcc_64 \ - -DCMAKE_INSTALL_PREFIX:PATH=../install-Input \ - -DINPUT_SDK_PATH=${{ github.workspace }}/input-sdk/x64-linux \ + -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ + -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ + -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -GNinja \ - -S ../input + -S ../mm ninja - ninja install + ninja install - name: Get TimeStamp id: time @@ -196,14 +186,14 @@ jobs: - name: package Input run: | - INPUT_TAR=input-${{ env.INPUT_SDK_VERSION }}-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.tar.gz - echo "INPUT_TAR=${INPUT_TAR}" >> $GITHUB_ENV + MM_TAR=input-${{ env.INPUT_SDK_VERSION }}-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.tar.gz + echo "MM_TAR=${MM_TAR}" >> $GITHUB_ENV - cd ${{ github.workspace }}/install-Input + cd ${{ github.workspace }}/install-mm find . - tar -c -z -f ${{ github.workspace }}/${INPUT_TAR} ./ + tar -c -z -f ${{ github.workspace }}/${MM_TAR} ./ - name: Upload Sdk in Artifacts uses: actions/upload-artifact@v4 with: - path: ${{ github.workspace }}/${{ env.INPUT_TAR }} + path: ${{ github.workspace }}/${{ env.MM_TAR }} From 499494bb33b4d626d2aee8465767ae1db571e422 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 10:57:56 +0200 Subject: [PATCH 019/118] try linux build --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 6260cfe66..997ad563a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -32,7 +32,7 @@ concurrency: jobs: linux_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 From cd649c88abcbd4f675f2be418a2726943d19da1f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 11:00:55 +0200 Subject: [PATCH 020/118] try linux build --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 997ad563a..e59f4f1a6 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -61,7 +61,7 @@ jobs: env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | - cd input/core/ + cd mm/core/ openssl \ aes-256-cbc -d \ -in merginsecrets.cpp.enc \ From aa7ce61e1895837bcf72a89ad184d9c1e6eb7d0e Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 12:06:03 +0200 Subject: [PATCH 021/118] move another ports --- .github/workflows/ios.yml | 178 +++--- vcpkg/ports/libb2/README | 1 + vcpkg/ports/libb2/portfile.cmake | 29 + vcpkg/ports/libb2/vcpkg.json | 8 + vcpkg/ports/qtbase/GLIB2-static.patch | 75 +++ vcpkg/ports/qtbase/allow_outside_prefix.patch | 17 + vcpkg/ports/qtbase/clang-cl_QGADGET_fix.diff | 38 ++ .../qtbase/clang-cl_source_location.patch | 14 + .../qtbase/cmake/qt_install_copyright.cmake | 27 + .../qtbase/cmake/qt_install_submodule.cmake | 362 +++++++++++ vcpkg/ports/qtbase/cmake/qt_port_data.cmake | 50 ++ .../ports/qtbase/cmake/qt_port_details.cmake | 183 ++++++ vcpkg/ports/qtbase/config_install.patch | 13 + .../qtbase/dont_force_cmakecache_latest.patch | 13 + vcpkg/ports/qtbase/env.patch | 16 + vcpkg/ports/qtbase/fix-host-aliasing.patch | 17 + .../ports/qtbase/fix-link-lib-discovery.patch | 12 + vcpkg/ports/qtbase/fix_cmake_build.patch | 15 + vcpkg/ports/qtbase/fix_deploy_windows.patch | 26 + vcpkg/ports/qtbase/fix_egl.patch | 12 + vcpkg/ports/qtbase/fix_egl_2.patch | 13 + vcpkg/ports/qtbase/harfbuzz.patch | 13 + vcpkg/ports/qtbase/installed_dir.patch | 15 + vcpkg/ports/qtbase/macdeployqt-symlinks.patch | 33 + vcpkg/ports/qtbase/portfile.cmake | 582 ++++++++++++++++++ vcpkg/ports/qtbase/qmake.debug.bat | 2 + vcpkg/ports/qtbase/qt.conf.in | 31 + vcpkg/ports/qtbase/qtpaths.debug.bat | 2 + vcpkg/ports/qtbase/vcpkg.json | 570 +++++++++++++++++ vcpkg/ports/qtbase/windeployqt.debug.bat | 10 + vcpkg/ports/qtdeclarative/portfile.cmake | 44 ++ vcpkg/ports/qtdeclarative/vcpkg.json | 28 + .../qtmultimedia/ffmpeg-compile-def.patch | 13 + .../fix_avfoundation_target.patch | 12 + vcpkg/ports/qtmultimedia/portfile.cmake | 74 +++ vcpkg/ports/qtmultimedia/private_libs.patch | 19 + .../qtmultimedia/remove-static-ssl-stub.patch | 26 + .../qtmultimedia/static_find_modules.patch | 82 +++ vcpkg/ports/qtmultimedia/vcpkg.json | 86 +++ .../qtpositioning/devendor-poly2tri.patch | 37 ++ .../qtpositioning/foregroundservice.patch | 15 + vcpkg/ports/qtpositioning/portfile.cmake | 25 + vcpkg/ports/qtpositioning/vcpkg.json | 30 + 43 files changed, 2770 insertions(+), 98 deletions(-) create mode 100644 vcpkg/ports/libb2/README create mode 100644 vcpkg/ports/libb2/portfile.cmake create mode 100644 vcpkg/ports/libb2/vcpkg.json create mode 100644 vcpkg/ports/qtbase/GLIB2-static.patch create mode 100644 vcpkg/ports/qtbase/allow_outside_prefix.patch create mode 100644 vcpkg/ports/qtbase/clang-cl_QGADGET_fix.diff create mode 100644 vcpkg/ports/qtbase/clang-cl_source_location.patch create mode 100644 vcpkg/ports/qtbase/cmake/qt_install_copyright.cmake create mode 100644 vcpkg/ports/qtbase/cmake/qt_install_submodule.cmake create mode 100644 vcpkg/ports/qtbase/cmake/qt_port_data.cmake create mode 100644 vcpkg/ports/qtbase/cmake/qt_port_details.cmake create mode 100644 vcpkg/ports/qtbase/config_install.patch create mode 100644 vcpkg/ports/qtbase/dont_force_cmakecache_latest.patch create mode 100644 vcpkg/ports/qtbase/env.patch create mode 100644 vcpkg/ports/qtbase/fix-host-aliasing.patch create mode 100644 vcpkg/ports/qtbase/fix-link-lib-discovery.patch create mode 100644 vcpkg/ports/qtbase/fix_cmake_build.patch create mode 100644 vcpkg/ports/qtbase/fix_deploy_windows.patch create mode 100644 vcpkg/ports/qtbase/fix_egl.patch create mode 100644 vcpkg/ports/qtbase/fix_egl_2.patch create mode 100644 vcpkg/ports/qtbase/harfbuzz.patch create mode 100644 vcpkg/ports/qtbase/installed_dir.patch create mode 100644 vcpkg/ports/qtbase/macdeployqt-symlinks.patch create mode 100644 vcpkg/ports/qtbase/portfile.cmake create mode 100644 vcpkg/ports/qtbase/qmake.debug.bat create mode 100644 vcpkg/ports/qtbase/qt.conf.in create mode 100644 vcpkg/ports/qtbase/qtpaths.debug.bat create mode 100644 vcpkg/ports/qtbase/vcpkg.json create mode 100644 vcpkg/ports/qtbase/windeployqt.debug.bat create mode 100644 vcpkg/ports/qtdeclarative/portfile.cmake create mode 100644 vcpkg/ports/qtdeclarative/vcpkg.json create mode 100644 vcpkg/ports/qtmultimedia/ffmpeg-compile-def.patch create mode 100644 vcpkg/ports/qtmultimedia/fix_avfoundation_target.patch create mode 100644 vcpkg/ports/qtmultimedia/portfile.cmake create mode 100644 vcpkg/ports/qtmultimedia/private_libs.patch create mode 100644 vcpkg/ports/qtmultimedia/remove-static-ssl-stub.patch create mode 100644 vcpkg/ports/qtmultimedia/static_find_modules.patch create mode 100644 vcpkg/ports/qtmultimedia/vcpkg.json create mode 100644 vcpkg/ports/qtpositioning/devendor-poly2tri.patch create mode 100644 vcpkg/ports/qtpositioning/foregroundservice.patch create mode 100644 vcpkg/ports/qtpositioning/portfile.cmake create mode 100644 vcpkg/ports/qtpositioning/vcpkg.json diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 7c4d80690..3f54981a5 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -1,8 +1,5 @@ name: iOS Build -# TODO remove -skip: true - on: push: paths: @@ -23,14 +20,15 @@ on: - published env: - QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change + CMAKE_VERSION: '3.31.6' + VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' + VCPKG_ROOT: "${{ github.workspace }}/vcpkg" XC_VERSION: ${{ '16.4' }} - IOS_CMAKE_TOOLCHAIN_VERSION: "4.4.0" + DEPLOYMENT_TARGET: '14.0' + TRIPLET: arm64-ios IOS_PROVISIONING_PROFILE_UUID: 59aaa8d7-516a-4592-8c58-d7d1c1f81610 KEYCHAIN: ${{ 'inputapp.keychain' }} - CCACHE_DIR: /Users/runner/work/ccache - CMAKE_VERSION: '3.29.0' - CACHE_VERSION: 0 + concurrency: group: ci-${{github.ref}}-ios @@ -41,71 +39,71 @@ jobs: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) runs-on: macos-15 steps: - - name: Select latest Xcode - run: "sudo xcode-select -s /Applications/Xcode_$XC_VERSION.app" - - - uses: actions/checkout@v4 - - - name: Download ios-cmake toolchain + - name: Checkout uses: actions/checkout@v4 with: - repository: leetal/ios-cmake - ref: ${{ env.IOS_CMAKE_TOOLCHAIN_VERSION }} - path: ios-cmake - - # CCache - - name: Prepare build cache for pull request - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name == 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - key: build-ios-ccache-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }} - # The head_ref or source branch of the pull request in a workflow run. - # The base_ref or target branch of the pull request in a workflow run. - restore-keys: | - build-ios-ccache-${{ github.actor }}-${{ github.head_ref }}- - build-ios-ccache-refs/heads/${{ github.base_ref }}- - build-ios-ccache-refs/heads/master- - - - name: Prepare build cache for branch/tag - # use a fork of actions/cache@v2 to upload cache even when the build or test failed - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name != 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ - key: build-ios-ccache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - build-ios-ccache-${{ github.ref }}- - build-ios-ccache-refs/heads/master- + path: mm - name: Install brew deps run: | - brew update - brew install aqtinstall - + brew uninstall cmake + brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg mono brew install gnupg - brew install openssl - brew install ccache - brew install ninja - + echo $(brew --prefix bison)/bin >> $GITHUB_PATH + echo $(brew --prefix flex)/bin >> $GITHUB_PATH + echo $(brew --prefix gettext)/bin >> $GITHUB_PATH + - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: cmakeVersion: ${{ env.CMAKE_VERSION }} - - - name: Install ccache + + - name: Setup XCode + uses: maxim-lobanov/setup-xcode@v1.6.0 + with: + xcode-version: ${{ env.XC_VERSION }} + + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ccache-${{ env.TRIPLET }} + max-size: 200M + + - name: Install vcpkg + shell: bash run: | - mkdir -p ${CCACHE_DIR} - ccache --set-config=max_size=2.0G - ccache -s + mkdir -p "${{ env.VCPKG_ROOT }}" + cd "${{ env.VCPKG_ROOT }}" + git init + git remote add origin https://github.com/microsoft/vcpkg.git + git pull origin master + VCPKG_TAG=`cat ${{ github.workspace }}/mm/VCPKG_BASELINE` + git checkout ${VCPKG_TAG} + cd "${{ env.VCPKG_ROOT }}" + chmod +x ./bootstrap-vcpkg.sh + ./bootstrap-vcpkg.sh + + - name: Setup NuGet Credentials + shell: bash + run: | + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + sources add \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" \ + -storepasswordincleartext \ + -name "GitHub" \ + -username "mergin-maps-bot" \ + -password "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" + + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" - name: Extract Mergin API_KEY env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | - cd core/ - /opt/homebrew/bin/openssl \ + cd mm/core/ + $HOMEBREW_PREFIX/bin/openssl \ aes-256-cbc -d \ -in merginsecrets.cpp.enc \ -out merginsecrets.cpp \ @@ -126,35 +124,14 @@ jobs: IOS_GPG_KEY: ${{ secrets.IOS_GPG_KEY }} IOS_CERT_KEY: ${{ secrets.IOS_CERT_KEY }} run: | - gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./.github/secrets/ios/Certificates_ios_dist.p12 ./.github/secrets/ios/Certificates_ios_dist.p12.gpg - security import "./.github/secrets/ios/Certificates_ios_dist.p12" -k "$KEYCHAIN" -P "$IOS_CERT_KEY" -A + gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./mm/.github/secrets/ios/Certificates_ios_dist.p12 ./mm/.github/secrets/ios/Certificates_ios_dist.p12.gpg + security import "./mm/.github/secrets/ios/Certificates_ios_dist.p12" -k "$KEYCHAIN" -P "$IOS_CERT_KEY" -A security set-key-partition-list -S apple-tool:,apple: -s -k "" "$KEYCHAIN" mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles - gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ./.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision.gpg - cp ./.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/${IOS_PROVISIONING_PROFILE_UUID}.mobileprovision - - # Qt - - name: Cache Qt - id: cache-qt - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/Qt - key: ${{ runner.os }}-QtCache-v3-${{ env.QT_VERSION }}-ios - - - name: Install Qt - if: steps.cache-qt.outputs.cache-hit != 'true' - run: | - aqt install-qt \ - mac ios ${{ env.QT_VERSION }} \ - -m qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth\ - -O ${{ github.workspace }}/Qt - - aqt install-qt \ - mac desktop ${{ env.QT_VERSION }} \ - -m qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth\ - -O ${{ github.workspace }}/Qt + gpg --quiet --batch --yes --decrypt --passphrase="$IOS_GPG_KEY" --output ./mm/.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ./mm/.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision.gpg + cp ./mm/.github/secrets/ios/LutraConsultingLtdInputAppStore.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/${IOS_PROVISIONING_PROFILE_UUID}.mobileprovision - name: Calculate a build number env: @@ -173,30 +150,34 @@ jobs: - name: Create build system with cmake run: | - mkdir -p install-Input - mkdir -p build-INPUT - cd build-INPUT - - ls -1 ${{ github.workspace }}/Qt/${{ env.QT_VERSION }} + mkdir -p install-mm + mkdir -p build-mm + cd build-mm # run cmake cmake \ - -DCMAKE_TOOLCHAIN_FILE:PATH="${{ github.workspace }}/ios-cmake/ios.toolchain.cmake" \ - -DCMAKE_PREFIX_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/ios \ -DIOS_USE_PRODUCTION_SIGNING=TRUE \ - -DQT_HOST_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos \ + -DVCPKG_HOST_TRIPLET=arm64-osx \ + -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ + -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ + -D ENABLE_BITCODE=OFF \ + -D ENABLE_ARC=ON \ + -D CMAKE_CXX_VISIBILITY_PRESET=hidden \ + -D CMAKE_SYSTEM_NAME=iOS \ + -D CMAKE_SYSTEM_PROCESSOR=aarch64 \ + -D CMAKE_OSX_DEPLOYMENT_TARGET=${{ env.DEPLOYMENT_TARGET }} \ -DIOS=TRUE \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DCMAKE_INSTALL_PREFIX:PATH=../install-Input \ + -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ -G "Xcode" \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -S ${{ github.workspace }} \ + -S ${{ github.workspace }}/mm \ -B ./ - - name: Build Input + - name: Build app (release) run: | - cd build-INPUT + cd build-mm xcodebuild \ -project Input.xcodeproj/ \ @@ -206,10 +187,10 @@ jobs: archive -archivePath Input.xcarchive \ "OTHER_CODE_SIGN_FLAGS=--keychain '$KEYCHAIN'" - - name: Create Input Package + - name: Create package run: | - INPUT_DIR=`pwd` - cd build-INPUT + INPUT_DIR=`pwd`/mm + cd build-mm xcodebuild \ -archivePath Input.xcarchive \ -exportOptionsPlist $INPUT_DIR/scripts/ci/ios/exportOptions.plist \ @@ -226,4 +207,5 @@ jobs: run: | CF_BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" build-INPUT/app/CMakeFiles/Input.dir/Info.plist` echo "Publishing ios ${CF_BUNDLE_VERSION}" - xcrun altool --upload-app -t ios -f build-INPUT/Input.ipa -u "$INPUTAPP_BOT_APPLEID_USER" -p "$INPUTAPP_BOT_APPLEID_PASS" --verbose + xcrun altool --upload-app -t ios -f build-mm/Input.ipa -u "$INPUTAPP_BOT_APPLEID_USER" -p "$INPUTAPP_BOT_APPLEID_PASS" --verbose + diff --git a/vcpkg/ports/libb2/README b/vcpkg/ports/libb2/README new file mode 100644 index 000000000..4dfe72179 --- /dev/null +++ b/vcpkg/ports/libb2/README @@ -0,0 +1 @@ +https://github.com/microsoft/vcpkg/issues/43326 \ No newline at end of file diff --git a/vcpkg/ports/libb2/portfile.cmake b/vcpkg/ports/libb2/portfile.cmake new file mode 100644 index 000000000..452218f28 --- /dev/null +++ b/vcpkg/ports/libb2/portfile.cmake @@ -0,0 +1,29 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO BLAKE2/libb2 + REF 2c5142f12a2cd52f3ee0a43e50a3a76f75badf85 + SHA512 cf29cf9391ae37a978eb6618de6f856f3defa622b8f56c2d5a519ab34fd5e4d91f3bb868601a44e9c9164a2992e80dde188ccc4d1605dffbdf93687336226f8d + HEAD_REF master +) + +set(OPTIONS) +if(CMAKE_HOST_WIN32) + set(OPTIONS --disable-native) # requires cpuid +endif() + +vcpkg_configure_make( + AUTOCONFIG + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + ax_cv_check_cflags___O3=no # see https://github.com/microsoft/vcpkg/pull/17912#issuecomment-840514179 + ${OPTIONS} +) +vcpkg_install_make() +vcpkg_fixup_pkgconfig() + + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/vcpkg/ports/libb2/vcpkg.json b/vcpkg/ports/libb2/vcpkg.json new file mode 100644 index 000000000..e8ef8ec05 --- /dev/null +++ b/vcpkg/ports/libb2/vcpkg.json @@ -0,0 +1,8 @@ +{ + "name": "libb2", + "version": "0.98.1", + "port-version": 6, + "description": "C library providing BLAKE2b, BLAKE2s, BLAKE2bp, BLAKE2sp", + "homepage": "https://github.com/BLAKE2/libb2", + "supports": "!windows" +} diff --git a/vcpkg/ports/qtbase/GLIB2-static.patch b/vcpkg/ports/qtbase/GLIB2-static.patch new file mode 100644 index 000000000..c384b741c --- /dev/null +++ b/vcpkg/ports/qtbase/GLIB2-static.patch @@ -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 diff --git a/vcpkg/ports/qtbase/allow_outside_prefix.patch b/vcpkg/ports/qtbase/allow_outside_prefix.patch new file mode 100644 index 000000000..eeb503bcb --- /dev/null +++ b/vcpkg/ports/qtbase/allow_outside_prefix.patch @@ -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}") + diff --git a/vcpkg/ports/qtbase/clang-cl_QGADGET_fix.diff b/vcpkg/ports/qtbase/clang-cl_QGADGET_fix.diff new file mode 100644 index 000000000..e400649b4 --- /dev/null +++ b/vcpkg/ports/qtbase/clang-cl_QGADGET_fix.diff @@ -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 + #include + ++#include + #include + #include + #include +@@ -826,7 +829,13 @@ + struct IsGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; }; + + template ++#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> ++#else + struct IsGadgetHelper ++#endif + { + template + static char checkType(void (X::*)()); +@@ -841,7 +850,11 @@ + struct IsPointerToGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; }; + + template ++#if defined(__clang__) && (__clang_major__ > 11) ++ struct IsPointerToGadgetHelper> ++#else + struct IsPointerToGadgetHelper ++#endif + { + using BaseType = T; + template diff --git a/vcpkg/ports/qtbase/clang-cl_source_location.patch b/vcpkg/ports/qtbase/clang-cl_source_location.patch new file mode 100644 index 000000000..5155fb4bb --- /dev/null +++ b/vcpkg/ports/qtbase/clang-cl_source_location.patch @@ -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 + +-#if __has_include() && __cplusplus >= 202002L && !defined(Q_QDOC) ++#if __has_include() && __cplusplus >= 202002L && !defined(Q_QDOC) && ( (defined(__cpp_consteval) && defined(_MSC_VER)) || !defined(_MSC_VER) ) + #include + #if defined(__cpp_lib_source_location) + #define QT_SOURCE_LOCATION_NAMESPACE std + #define QT_PROPERTY_COLLECT_BINDING_LOCATION diff --git a/vcpkg/ports/qtbase/cmake/qt_install_copyright.cmake b/vcpkg/ports/qtbase/cmake/qt_install_copyright.cmake new file mode 100644 index 000000000..8ec395fe6 --- /dev/null +++ b/vcpkg/ports/qtbase/cmake/qt_install_copyright.cmake @@ -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() diff --git a/vcpkg/ports/qtbase/cmake/qt_install_submodule.cmake b/vcpkg/ports/qtbase/cmake/qt_install_submodule.cmake new file mode 100644 index 000000000..2f05a8b6f --- /dev/null +++ b/vcpkg/ports/qtbase/cmake/qt_install_submodule.cmake @@ -0,0 +1,362 @@ +include_guard(GLOBAL) + +include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake/vcpkg-port-config.cmake") +include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake-config/vcpkg-port-config.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/qt_install_copyright.cmake") + +if(NOT DEFINED QT6_DIRECTORY_PREFIX) + set(QT6_DIRECTORY_PREFIX "Qt6/") +endif() + +if(VCPKG_TARGET_IS_ANDROID AND NOT ANDROID_SDK_ROOT) + message(FATAL_ERROR "${PORT} requires ANDROID_SDK_ROOT to be set. Consider adding it to the triplet." ) +endif() + +function(qt_download_submodule_impl) + cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "" "SUBMODULE" "PATCHES") + + if("${_qarg_SUBMODULE}" IN_LIST QT_FROM_QT_GIT) + # qtinterfaceframework is not available in the release, so we fall back to a `git clone`. + vcpkg_from_git( + OUT_SOURCE_PATH SOURCE_PATH + URL "https://code.qt.io/qt/${_qarg_SUBMODULE}.git" + REF "${${_qarg_SUBMODULE}_REF}" + PATCHES ${_qarg_PATCHES} + ) + if(PORT STREQUAL "qttools") # Keep this for beta & rc's + vcpkg_from_git( + OUT_SOURCE_PATH SOURCE_PATH_QLITEHTML + URL https://code.qt.io/playground/qlitehtml.git + REF "${${PORT}_qlitehtml_REF}" + FETCH_REF master + HEAD_REF master + ) + # port 'litehtml' is not in vcpkg! + vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH_LITEHTML + REPO litehtml/litehtml + REF "${${PORT}_litehtml_REF}" + SHA512 "${${PORT}_litehtml_HASH}" + HEAD_REF master + ) + file(COPY "${SOURCE_PATH_QLITEHTML}/" DESTINATION "${SOURCE_PATH}/src/assistant/qlitehtml") + file(COPY "${SOURCE_PATH_LITEHTML}/" DESTINATION "${SOURCE_PATH}/src/assistant/qlitehtml/src/3rdparty/litehtml") + elseif(PORT STREQUAL "qtwebengine") + vcpkg_from_git( + OUT_SOURCE_PATH SOURCE_PATH_WEBENGINE + URL https://code.qt.io/qt/qtwebengine-chromium.git + REF "${${PORT}_chromium_REF}" + ) + if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/chromium") + file(RENAME "${SOURCE_PATH_WEBENGINE}/chromium" "${SOURCE_PATH}/src/3rdparty/chromium") + endif() + if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/gn") + file(RENAME "${SOURCE_PATH_WEBENGINE}/gn" "${SOURCE_PATH}/src/3rdparty/gn") + endif() + endif() + else() + if(VCPKG_USE_HEAD_VERSION) + set(sha512 SKIP_SHA512) + elseif(NOT DEFINED "${_qarg_SUBMODULE}_HASH") + message(FATAL_ERROR "No information for ${_qarg_SUBMODULE} -- add it to QT_PORTS and run qtbase in QT_UPDATE_VERSION mode first") + else() + set(sha512 SHA512 "${${_qarg_SUBMODULE}_HASH}") + endif() + + qt_get_url_filename("${_qarg_SUBMODULE}" urls filename) + vcpkg_download_distfile(archive + URLS ${urls} + FILENAME "${filename}" + ${sha512} + ) + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${archive}" + PATCHES ${_qarg_PATCHES} + ) + endif() + set(SOURCE_PATH "${SOURCE_PATH}" PARENT_SCOPE) +endfunction() + +function(qt_download_submodule) + cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "" "" "PATCHES") + + qt_download_submodule_impl(SUBMODULE "${PORT}" PATCHES ${_qarg_PATCHES}) + + set(SOURCE_PATH "${SOURCE_PATH}" PARENT_SCOPE) +endfunction() + + +function(qt_cmake_configure) + cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "DISABLE_NINJA;DISABLE_PARALLEL_CONFIGURE" + "" + "TOOL_NAMES;OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;OPTIONS_MAYBE_UNUSED") + + vcpkg_find_acquire_program(PERL) # Perl is probably required by all qt ports for syncqt + get_filename_component(PERL_PATH ${PERL} DIRECTORY) + vcpkg_add_to_path(${PERL_PATH}) + if(NOT PORT STREQUAL "qtwebengine" OR QT_IS_LATEST) # qtwebengine requires python2; since 6.3 python3 + vcpkg_find_acquire_program(PYTHON3) # Python is required by some qt ports + get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) + vcpkg_add_to_path(${PYTHON3_PATH}) + endif() + + if(NOT PORT MATCHES "^qtbase") + list(APPEND _qarg_OPTIONS "-DQT_SYNCQT:PATH=${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/syncqt.pl") + endif() + set(PERL_OPTION "-DHOST_PERL:PATH=${PERL}") + + set(ninja_option "") + if(_qarg_DISABLE_NINJA) + set(ninja_option WINDOWS_USE_MSBUILD) + endif() + + set(disable_parallel "") + if(_qarg_DISABLE_PARALLEL_CONFIGURE) + set(disable_parallel DISABLE_PARALLEL_CONFIGURE) + endif() + + if(VCPKG_CROSSCOMPILING) + list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}") + list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share") + endif() + + # Disable warning for CMAKE_(REQUIRE|DISABLE)_FIND_PACKAGE_ + string(REGEX MATCHALL "CMAKE_DISABLE_FIND_PACKAGE_[^:=]+" disabled_find_package "${_qarg_OPTIONS}") + list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${disabled_find_package}) + + string(REGEX MATCHALL "CMAKE_REQUIRE_FIND_PACKAGE_[^:=]+(:BOOL)?=OFF" require_find_package "${_qarg_OPTIONS}") + list(TRANSFORM require_find_package REPLACE "(:BOOL)?=OFF" "") + list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${require_find_package}) + + # Disable unused warnings for disabled features. Qt might decide to not emit the feature variables if other features are deactivated. + string(REGEX MATCHALL "(QT_)?FEATURE_[^:=]+(:BOOL)?=OFF" disabled_features "${_qarg_OPTIONS}") + list(TRANSFORM disabled_features REPLACE "(:BOOL)?=OFF" "") + list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${disabled_features}) + + list(APPEND _qarg_OPTIONS "-DQT_NO_FORCE_SET_CMAKE_BUILD_TYPE:BOOL=ON") + + if(VCPKG_TARGET_IS_ANDROID) + list(APPEND _qarg_OPTIONS "-DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}") + endif() + + if(NOT PORT MATCHES "qtbase") + list(APPEND _qarg_OPTIONS "-DQT_MKSPECS_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6/mkspecs") + endif() + + if(NOT DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) + list(APPEND _qarg_OPTIONS "-DCMAKE_OSX_DEPLOYMENT_TARGET=14") + endif() + + vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + ${ninja_option} + ${disable_parallel} + OPTIONS + -DQT_FORCE_WARN_APPLE_SDK_AND_XCODE_CHECK=ON + -DQT_NO_FORCE_SET_CMAKE_BUILD_TYPE:BOOL=ON + -DQT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS:BOOL=ON # We don't want Qt to mess with users toolchain settings. + -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON # Because Qt doesn't correctly scope find_package calls. + #-DQT_HOST_PATH= # For crosscompiling + #-DQT_PLATFORM_DEFINITION_DIR=mkspecs/win32-msvc + #-DQT_QMAKE_TARGET_MKSPEC=win32-msvc + #-DQT_USE_CCACHE + -DQT_BUILD_EXAMPLES:BOOL=OFF + -DQT_BUILD_TESTS:BOOL=OFF + -DQT_BUILD_BENCHMARKS:BOOL=OFF + ${PERL_OPTION} + -DINSTALL_BINDIR:STRING=bin + -DINSTALL_LIBEXECDIR:STRING=bin + -DINSTALL_PLUGINSDIR:STRING=${qt_plugindir} + -DINSTALL_QMLDIR:STRING=${qt_qmldir} + ${_qarg_OPTIONS} + OPTIONS_RELEASE + ${_qarg_OPTIONS_RELEASE} + -DINSTALL_DOCDIR:STRING=doc/${QT6_DIRECTORY_PREFIX} + -DINSTALL_INCLUDEDIR:STRING=include/${QT6_DIRECTORY_PREFIX} + -DINSTALL_DESCRIPTIONSDIR:STRING=share/Qt6/modules + -DINSTALL_MKSPECSDIR:STRING=share/Qt6/mkspecs + -DINSTALL_TRANSLATIONSDIR:STRING=translations/${QT6_DIRECTORY_PREFIX} + OPTIONS_DEBUG + # -DFEATURE_debug:BOOL=ON only needed by qtbase and auto detected? + -DINSTALL_DOCDIR:STRING=../doc/${QT6_DIRECTORY_PREFIX} + -DINSTALL_INCLUDEDIR:STRING=../include/${QT6_DIRECTORY_PREFIX} + -DINSTALL_TRANSLATIONSDIR:STRING=../translations/${QT6_DIRECTORY_PREFIX} + -DINSTALL_DESCRIPTIONSDIR:STRING=../share/Qt6/modules + -DINSTALL_MKSPECSDIR:STRING=../share/Qt6/mkspecs + ${_qarg_OPTIONS_DEBUG} + MAYBE_UNUSED_VARIABLES + INSTALL_BINDIR + INSTALL_DOCDIR + INSTALL_LIBEXECDIR + INSTALL_QMLDIR # No qml files + INSTALL_TRANSLATIONSDIR # No translations + INSTALL_PLUGINSDIR # No plugins + INSTALL_DESCRIPTIONSDIR + INSTALL_INCLUDEDIR + HOST_PERL + QT_SYNCQT + QT_NO_FORCE_SET_CMAKE_BUILD_TYPE + QT_FORCE_WARN_APPLE_SDK_AND_XCODE_CHECK + ${_qarg_OPTIONS_MAYBE_UNUSED} + INPUT_bundled_xcb_xinput + INPUT_freetype + INPUT_harfbuzz + INPUT_libjpeg + INPUT_libmd4c + INPUT_libpng + INPUT_opengl + INPUT_openssl + INPUT_xcb + INPUT_xkbcommon + ) + set(Z_VCPKG_CMAKE_GENERATOR "${Z_VCPKG_CMAKE_GENERATOR}" PARENT_SCOPE) +endfunction() + +function(qt_fix_prl_files) + file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}/lib" package_dir) + file(TO_CMAKE_PATH "${package_dir}/lib" lib_path) + file(TO_CMAKE_PATH "${package_dir}/include/Qt6" include_path) + file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}" install_prefix) + file(GLOB_RECURSE prl_files "${CURRENT_PACKAGES_DIR}/*.prl" "${CURRENT_PACKAGES_DIR}/*.pri") + foreach(prl_file IN LISTS prl_files) + file(READ "${prl_file}" _contents) + string(REPLACE "${lib_path}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + string(REPLACE "${include_path}" "\$\$[QT_INSTALL_HEADERS]" _contents "${_contents}") + string(REPLACE "${install_prefix}" "\$\$[QT_INSTALL_PREFIX]" _contents "${_contents}") + string(REPLACE "[QT_INSTALL_PREFIX]/lib/objects-Debug" "[QT_INSTALL_LIBS]/objects-Debug" _contents "${_contents}") + string(REPLACE "[QT_INSTALL_PREFIX]/Qt6/qml" "[QT_INSTALL_QML]" _contents "${_contents}") + #Note: This only works without an extra if case since QT_INSTALL_PREFIX is the same for debug and release + file(WRITE "${prl_file}" "${_contents}") + endforeach() +endfunction() + +function(qt_fixup_and_cleanup) + cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "" + "" + "TOOL_NAMES") + vcpkg_copy_pdbs() + + ## Handle PRL files + qt_fix_prl_files() + + ## Handle CMake files. + set(COMPONENTS) + file(GLOB COMPONENTS_OR_FILES LIST_DIRECTORIES true "${CURRENT_PACKAGES_DIR}/share/Qt6*") + list(REMOVE_ITEM COMPONENTS_OR_FILES "${CURRENT_PACKAGES_DIR}/share/Qt6") + foreach(_glob IN LISTS COMPONENTS_OR_FILES) + if(IS_DIRECTORY "${_glob}") + string(REPLACE "${CURRENT_PACKAGES_DIR}/share/Qt6" "" _component "${_glob}") + debug_message("Adding cmake component: '${_component}'") + list(APPEND COMPONENTS ${_component}) + endif() + endforeach() + + foreach(_comp IN LISTS COMPONENTS) + if(EXISTS "${CURRENT_PACKAGES_DIR}/share/Qt6${_comp}") + vcpkg_cmake_config_fixup(PACKAGE_NAME "Qt6${_comp}" CONFIG_PATH "share/Qt6${_comp}" TOOLS_PATH "tools/Qt6/bin") + # Would rather put it into share/cmake as before but the import_prefix correction in vcpkg_cmake_config_fixup is working against that. + else() + message(STATUS "WARNING: Qt component ${_comp} not found/built!") + endif() + endforeach() + #fix debug plugin paths (should probably be fixed in vcpkg_cmake_config_fixup) + file(GLOB_RECURSE DEBUG_CMAKE_TARGETS "${CURRENT_PACKAGES_DIR}/share/**/*Targets-debug.cmake") + debug_message("DEBUG_CMAKE_TARGETS:${DEBUG_CMAKE_TARGETS}") + foreach(_debug_target IN LISTS DEBUG_CMAKE_TARGETS) + vcpkg_replace_string("${_debug_target}" "{_IMPORT_PREFIX}/${qt_plugindir}" "{_IMPORT_PREFIX}/debug/${qt_plugindir}" IGNORE_UNCHANGED) + vcpkg_replace_string("${_debug_target}" "{_IMPORT_PREFIX}/${qt_qmldir}" "{_IMPORT_PREFIX}/debug/${qt_qmldir}" IGNORE_UNCHANGED) + endforeach() + + file(GLOB_RECURSE STATIC_CMAKE_TARGETS "${CURRENT_PACKAGES_DIR}/share/Qt6Qml/QmlPlugins/*.cmake") + foreach(_plugin_target IN LISTS STATIC_CMAKE_TARGETS) + # restore a single get_filename_component which was remove by vcpkg_cmake_config_fixup + vcpkg_replace_string("${_plugin_target}" + [[get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)]] + "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" + IGNORE_UNCHANGED) + endforeach() + + set(qt_tooldest "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") + set(qt_searchdir "${CURRENT_PACKAGES_DIR}/bin") + ## Handle Tools + foreach(_tool IN LISTS _qarg_TOOL_NAMES) + if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + debug_message("Removed '${_tool}' from copy tools list since it was not found!") + list(REMOVE_ITEM _qarg_TOOL_NAMES ${_tool}) + endif() + endforeach() + if(_qarg_TOOL_NAMES) + set(tool_names ${_qarg_TOOL_NAMES}) + vcpkg_copy_tools(TOOL_NAMES ${tool_names} SEARCH_DIR "${qt_searchdir}" DESTINATION "${qt_tooldest}" AUTO_CLEAN) + endif() + + if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/") + file(COPY "${CURRENT_PACKAGES_DIR}/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") + endif() + file(GLOB_RECURSE _installed_dll_files RELATIVE "${CURRENT_INSTALLED_DIR}/tools/Qt6/bin" "${CURRENT_INSTALLED_DIR}/tools/Qt6/bin/*.dll") + foreach(_dll_to_remove IN LISTS _installed_dll_files) + file(GLOB_RECURSE _packaged_dll_file "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${_dll_to_remove}") + if(EXISTS "${_packaged_dll_file}") + file(REMOVE "${_packaged_dll_file}") + endif() + endforeach() + file(GLOB_RECURSE _folders LIST_DIRECTORIES true "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/**/") + file(GLOB_RECURSE _files "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/**/") + if(_files) + list(REMOVE_ITEM _folders ${_files}) + endif() + foreach(_dir IN LISTS _folders) + if(NOT "${_remaining_dll_files}" MATCHES "${_dir}") + file(REMOVE_RECURSE "${_dir}") + endif() + endforeach() + endif() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake/" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/lib/cmake/" + "${CURRENT_PACKAGES_DIR}/debug/include" + ) + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(GLOB_RECURSE _bin_files "${CURRENT_PACKAGES_DIR}/bin/*") + if(NOT _bin_files STREQUAL "") + message(STATUS "Remaining files in bin: '${_bin_files}'") + else() # Only clean if empty otherwise let vcpkg throw and error. + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/") + endif() + endif() + + vcpkg_fixup_pkgconfig() +endfunction() + +function(qt_install_submodule) + cmake_parse_arguments(PARSE_ARGV 0 "_qis" "DISABLE_NINJA" + "" + "PATCHES;TOOL_NAMES;CONFIGURE_OPTIONS;CONFIGURE_OPTIONS_DEBUG;CONFIGURE_OPTIONS_RELEASE;CONFIGURE_OPTIONS_MAYBE_UNUSED") + + set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins) + set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml) + + qt_download_submodule(PATCHES ${_qis_PATCHES}) + + if(_qis_DISABLE_NINJA) + set(_opt DISABLE_NINJA) + endif() + qt_cmake_configure(${_opt} + OPTIONS ${_qis_CONFIGURE_OPTIONS} + OPTIONS_DEBUG ${_qis_CONFIGURE_OPTIONS_DEBUG} + OPTIONS_RELEASE ${_qis_CONFIGURE_OPTIONS_RELEASE} + OPTIONS_MAYBE_UNUSED ${_qis_CONFIGURE_OPTIONS_MAYBE_UNUSED} + ) + + vcpkg_cmake_install(ADD_BIN_TO_PATH) + + qt_fixup_and_cleanup(TOOL_NAMES ${_qis_TOOL_NAMES}) + + qt_install_copyright("${SOURCE_PATH}") + set(SOURCE_PATH "${SOURCE_PATH}" PARENT_SCOPE) +endfunction() + +include("${CMAKE_CURRENT_LIST_DIR}/qt_port_details.cmake") diff --git a/vcpkg/ports/qtbase/cmake/qt_port_data.cmake b/vcpkg/ports/qtbase/cmake/qt_port_data.cmake new file mode 100644 index 000000000..254593037 --- /dev/null +++ b/vcpkg/ports/qtbase/cmake/qt_port_data.cmake @@ -0,0 +1,50 @@ +set(qtbase_HASH "ef364f939f23b622f67d21833c2dbf1fb74531d9a1e25b6d2e94ea5d747a40f20c6c3a24abef1e9710287366b7cb54dd090350d315601317779235c20743cc81") +set(qttools_HASH "77141b310f63932678f28682c490ccc75776493994d96582d546545c17937605efac312c008c75fda991b78c369320d0a2c4b543b568a459cc90051d1ed2b9da") +set(qtdeclarative_HASH "75c9fdc8ba26ef95ae8ff0c82b18589b74d7ff3065e86e5bd8427bc36336e569eaa22fa07863f99d0592eec0c1a69c3409c7b3941eae14361ff523c058e56084") +set(qtsvg_HASH "213af7fdf92fb64c9b824dbe044f51d89e661ccc02c17cf109e65b962a7b1de84c71e1b1b58d6cad0cc9fccee80b97efe9ebcab3491b478fb9b64bcfd33986a4") +set(qt5compat_HASH "e049508efda201e5d12a2dc0e023fc096611b18810f695be213a26bfbf8cdda1ae04c353c2a8b9be0c30b014e3d4f9280921acd1e8ec3834cd309143de82f570") +set(qtshadertools_HASH "5f326bb097e09f9f9259b550ccf5fb05634d748eebf8b8c416225e3cd328c2b532c764a41b98a4d47633be446edaeaa3d4e5da1f4951b31e3da6ddc4392a47fc") +set(qtquicktimeline_HASH "3f9aef0eb8b495cda9bcab22e7f544e9dd1894e556e162654c87903406cd3c73820f54a543bc3861d49c7863d2fc8d92f79bb8e90cdcc23a99cf64bbeb816885") +set(qtquick3d_HASH "5a5c04dfd1581905fb0b40cb35ef9e7370ffaf451287d84a9d444c0871f495ecfe59c8ab15cacc8e7314af45c16598fad5e63cd9466384c5ba245ad0c28315f2") +set(qttranslations_HASH "d5df6136d3f66c93c0dd6d98c7a467c8b939d7bf5c90b5acff69262163c1e7cccc0c4f2f83b5ef06179601578b4a109f2f0c76c3897a31d3fb2567995fc55328") +set(qtwayland_HASH "2edb6d3e85c06bcf689c3acfcc38b6ff0505569dfeec8bfb5a434fad563087ff917875ea56e639405af3cca8adc98206ab9f68dfaf8e2449300d010ffbb16699") +set(qtdoc_HASH "839fbff235f67ade032f25120fbd7f394d272bf752dfe982c202cb8b6cf411a1bc949f5035b2c1062468e40632b2061ac611c771d35567dd5970b013ff2090f8") +set(qtcoap_HASH "ce51ea39b7946b85cacddd3ebfe3a92615f31b032a779b799113c1e97aecdd3906e4fdc066296b0c0a369f4a023df4c951cc18dd47d2713e173118f2bd055cff") +set(qtopcua_HASH "ac11aab0f9333a4b666c9c523f5d74140bd52e236ed14cfce3dbfc030516b1cc654761048a7fd9e4238a9f1e0e47a72c6f2f8e98173f27042c6cdbb348c8d6d9") +set(qtimageformats_HASH "174bddd49dac507b7a2c9f1e1f7b384bff9ac515891ee49fd72acfa944b503cf5bd26acf388203e7d14b1f147b07ccbc2da992f71d51b7a18151245efc53a3a2") +set(qtmqtt_HASH "1934405a8e6b7188ce710e89eaf7ae00f1e1516b803b773ec95b962368a8da3967bac29dfe2a4377a76d0f8b9bf47599f566d7130eff311f38af2041d0c40a88") +set(qtnetworkauth_HASH "8f9f25883534af6ce7029a6c96501de3e944c8c6c3021f185c3a932653b4e4c40b3a0f8bc210d3ee175b690721a99b3d42de2f6fa9d1dbd1b730abf22fc48455") +set(qt3d_HASH "8316fbe5a39bc5113da4759e195a55c57d8340021a39576939c0a4a604f47b4edb3c0206f914d4a3177ff09471d1f3475ffc4c2fa935ed8d98a166e310bc78b4") +set(qtactiveqt_HASH "d49c16f4e055bcf389c719ae0e33a6ae0ef54f2433211f14864774c3694f82361783d18db6996b6f5abd52f5ac7f791b0eab015c946ceaa3ddfb9ef6abf64f19") +set(qtdatavis3d_HASH "a5d0cf5c223a5baa69dc7fc59b131eb3b971dc3701d20e81bf7e86ccb6e8f4d20a82079e514d1269091fa014896167d52912e3940210fd546a8a55439c75509a") +set(qtdeviceutilities_HASH "b32222c52169832a30a1d6bf0b19e5adc15bc9b1c7c12e4613ea73eba73b00528969f8a87830d0a9bf61663547ff263e2e0d6e5f4bc37b8624c3f96d9cbc51b6") +set(qtlottie_HASH "c663b830210359bd738a3ab2ae84d956646c249e199acac194c1ec725b3eb1acb2392eef0a9b252e8ece0adad104932d4f7207903e49ec041287618d3a6f9894") +set(qtscxml_HASH "c0138fc338b2d12fb4bcbba2c852b44e4257c56850f22af46d452871fb9bd9465bd824d86cd7e7772ef62b8ed48515790b496e1e873aa335deae8e25789cb4d0") +set(qtvirtualkeyboard_HASH "a128c8210eec799d81c76b20e32e3c09ccb345d822b5c59b1fbf0960a1e2bec50c43140d86aaae9419a1fc514fc3e14bd283f612bf9133676db1a21e7217f528") +set(qtcharts_HASH "84b372c8b52aea580b2b9727775753345affa80b73e0be843e65f7331bb809187d7183d93fdaf543197860210bc4e006f3a707663a160cf8ae05b37871abac7e") +set(qtconnectivity_HASH "5508f3fc57679a4f986f430dcd19c5da15af663a677d27c9cc6aba81629f4a6e1954be31c5d2a44ba22366d7731ff105d2eaa3a0565b3b02baea0f498c547733") +set(qtpositioning_HASH "8899b4bf8096211fca37f7a7855ae2c6f79d770602105d76a98b580ad8e2f2f55096095bd7f935f6f9ac36e23135e7594cf3c2e5b760c979560a108d43d57784") +set(qtlocation_HASH "c7cbd76b6b8b7d09387c7da0e6630959ae66f0c8af2cd26b255e86ec36c6efeec59e4af7b34faa05f2fa035d4dd075d13a8dd0bccaefac48d391b4fa786769c0") +set(qtmultimedia_HASH "2f001888b44274583dcd5bc6f467cf18efbb1a711f29d6baf354071199772ee49d835922f2fa0e9770898d42decddf04b379d8f05d1dfd923c5f9d58e3c7fcd8") +set(qtremoteobjects_HASH "5845afc5ea4894fa788ce07a89348bd5027c0cceca65dce99a6bf437b396c71f25e8e7374401c8d10fd88be2303766c6df29b62e826f4d5ba38971a042dd7b06") +set(qtsensors_HASH "88e9277aefdc609bda881cb836dfdc04d29a32a4e09998d67e2ebe7ec6f94aff508fb39c2b624f00bcc85ddccd61bb5ed3ffcc953dd28d00ef559d50e6104ae4") +set(qtserialbus_HASH "b0ce725382c15048913204e6173dd899af6f8233ff3a098f497dea6a3d9d2cd436ad7944165398fba59f92098f7e38e7c3c5efa47a7ffeec2bf3a464ae9d4539") +set(qtserialport_HASH "343537aedd9c84dd5d6889d45babff181d7ef05927fd9cfdbb9389066f8860e2522bc059ca2c5c9af4c88bca255e0fc40b5eea84b93c970123a94afc803a638d") +set(qtwebchannel_HASH "156d3d1f7e1a0b0df8c103db010cd8e40717e6fcf27dd20c27ca22900ae377a8da8bc86a9ec1d65765defb68032469415c345a571e9a3dcbc3919603972d01d6") +set(qtwebengine_HASH "01e8988c76ff40ca5e38f76e90791d7ef708c29f2e9f8e83ca8604b6335fbecdee71473678a63633ec1edec85088256b20e56a618ca95748ccbe1e7b9673c298") +set(qtwebsockets_HASH "7453c6657e9885393d57df3ebaf9d3ad12237b5fb848ac3547cc6c6ed607562d58564667a7fd10133d4cdb94151aa5c21660e33c7f48f01a4061001a47f85b60") +set(qtwebview_HASH "af16c85d76e55e3c39c747995b3c46354efe5f5a3e111df36f9b169ab8fe3ac878cfe223ee47aef9aa8bc302c7383fc9b1f9682c63034e42def3714b28a0aabf") +set(qtinterfaceframework_REF "373322fc654e875cb56828de554dfdda96e9fb4e") +set(qtapplicationmanager_HASH "7d404ac3f98d29004009d87996779a0c5c86b976e864257cd3a9018d84db8bc07bcedc74f0b15443f90b487d2229fdb7b80d1ae082b0fc8dea30f682b58cea1a") +set(qtlanguageserver_HASH "8b55a3558de28d6c2c61bf52e8f10d1a67cc6890fdd3846db99f6c766fd22fef1793687b88b146f5a64971d60eef4357409b893c91310d1b9abec883ab35c2bc") +set(qthttpserver_HASH "4e99164e285ed4e8ae64a4af2c717fc22a7b5934ac5a78fe3adbb04e29109d1294e9917aa089b9cb9e5492bdf7fad4888c837374c2fef691ea7294bccbe7b01a") +set(qtquick3dphysics_HASH "e8948f84e337bc4c496ba67f047c809ece8d74a3d2af388227c902b765a1d2969f86be2ebaaa89f271c4b73d2cf5151a4c488ff7dc4f4a965d5f6a4de052784a") +set(qtspeech_HASH "6434ccf743604bf4ac4bc31b26c7dbc7f765ec95174f0d9047bec822292f85e6b21ace825b52ce60bd388d9c333d427b206209f78c612782701567bb7d271e6d") +set(qtgrpc_HASH "488c7e6a20cd9c267b44923c317e545e71543f68153228a4fee1fa9c0a2f6d3e212db9482962999bb80e87313a1a851b787759852089f17dca8add7040627c55") +set(qtquickeffectmaker_HASH "cdcee80a0bf7347ef9b63acc277ce6ef134128ba56f247008803d9444a9e0713e23205ed0f9ecf2b7752d82183acb471a2589c8b0ec914259a22395f94755bfa") +set(qtgraphs_HASH "c1803e68e065fc4ed7de68e65f5dc86a0b926768779c0de57a7f4af46506f019c27d47095f87eb1516011868262d6654817c478e130739477658a3dbcef2fb35") + + +# Keep for beta/rc +#set(qttools_qlitehtml_REF bd70f93ce41443a6a90a269531393f575685283e) +#set(qtwebengine_chromium_REF 0b138dc30d0aec7930c76a2595065629948ad9f7) diff --git a/vcpkg/ports/qtbase/cmake/qt_port_details.cmake b/vcpkg/ports/qtbase/cmake/qt_port_details.cmake new file mode 100644 index 000000000..e1f263d57 --- /dev/null +++ b/vcpkg/ports/qtbase/cmake/qt_port_details.cmake @@ -0,0 +1,183 @@ +### Steps to update the qt6 ports +## 1. Change QT_VERSION below to the new version +## 2. Set QT_UPDATE_VERSION to 1 +## 3. Add any new Qt modules to QT_PORTS +## 4. Run a build of `qtbase` +## 5. Fix any intermediate failures by adding the module into QT_FROM_GITHUB, QT_FROM_GITHUB_BRANCH, or QT_FROM_QT_GIT as appropriate +## 6. The build should fail with "Done downloading version and emitting hashes." This will have changed out the vcpkg.json versions of the qt ports and rewritten qt_port_data.cmake +## 7. Set QT_UPDATE_VERSION back to 0 + +set(QT_VERSION 6.8.3) +set(QT_DEV_BRANCH 0) + +set(QT_UPDATE_VERSION 0) + +if(PORT MATCHES "(qtquickcontrols2)") + set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + return() +endif() + +### Setting up the git tag. + +set(QT_PORTS qt + qtbase + qttools + qtdeclarative + qtsvg + qt5compat + qtshadertools + qtquicktimeline + qtquick3d + qttranslations + qtwayland + qtdoc + qtcoap + qtopcua + qtimageformats + qtmqtt + qtnetworkauth + qt3d) + # qtquickcontrols2 -> moved into qtdeclarative +if(QT_VERSION VERSION_GREATER_EQUAL 6.1) + list(APPEND QT_PORTS + ## New in 6.1 + qtactiveqt + qtdatavis3d + qtdeviceutilities + qtlottie + qtscxml + qtvirtualkeyboard + qtcharts) +endif() +if(QT_VERSION VERSION_GREATER_EQUAL 6.2) + list(APPEND QT_PORTS + ## New in 6.2 + qtconnectivity + qtpositioning + qtlocation # back in 6.5 as tech preview + qtmultimedia + qtremoteobjects + qtsensors + qtserialbus + qtserialport + qtwebchannel + qtwebengine + qtwebsockets + qtwebview) +endif() +if(QT_VERSION VERSION_GREATER_EQUAL 6.2.2) + list(APPEND QT_PORTS + ## New in 6.2.2 + qtinterfaceframework + qtapplicationmanager) +endif() +if(QT_VERSION VERSION_GREATER_EQUAL 6.3.0) + list(APPEND QT_PORTS + ## New in 6.3.0 + qtlanguageserver) +endif() +if(QT_VERSION VERSION_GREATER_EQUAL 6.4.0) + list(APPEND QT_PORTS + ## New in 6.4.0 + qthttpserver + qtquick3dphysics + qtspeech) +endif() +if(QT_VERSION VERSION_GREATER_EQUAL 6.5.0) + list(APPEND QT_PORTS + ## New in 6.5.0 + qtgrpc + qtquickeffectmaker + ) +endif() +if(QT_VERSION VERSION_GREATER_EQUAL 6.6.0) + list(APPEND QT_PORTS + ## New in 6.6.0 + qtgraphs + #qtvncserver # only commercial + #qtinsighttracker + ) +endif() +#qtinsighttracker +#qtvncserver +#qtgraphs + +# 1. By default, modules come from the official release +# 2. These modules are mirrored to github and have tags matching the release +set(QT_FROM_GITHUB qtcoap qtopcua qtmqtt qtapplicationmanager) +# 3. These modules are mirrored to github and have branches matching the release +set(QT_FROM_GITHUB_BRANCH qtdeviceutilities) +# 4. These modules are not mirrored to github and not part of the release +set(QT_FROM_QT_GIT qtinterfaceframework) +# For beta releases uncomment the next two lines and comment the lines with QT_FROM_GITHUB, QT_FROM_GITHUB_BRANCH, QT_FROM_QT_GIT +#set(QT_FROM_QT_GIT ${QT_PORTS}) +#list(POP_FRONT QT_FROM_QT_GIT) + +function(qt_get_url_filename qt_port out_urls out_filename) + if("${qt_port}" IN_LIST QT_FROM_GITHUB) + set(urls "https://github.com/qt/${qt_port}/archive/v${QT_VERSION}.tar.gz") + set(filename "qt-${qt_port}-v${QT_VERSION}.tar.gz") + elseif("${qt_port}" IN_LIST QT_FROM_GITHUB_BRANCH) + set(urls "https://github.com/qt/${qt_port}/archive/${QT_VERSION}.tar.gz") + set(filename "qt-${qt_port}-${QT_VERSION}.tar.gz") + else() + string(SUBSTRING "${QT_VERSION}" 0 3 qt_major_minor) + + if(NOT QT_DEV_BRANCH) + set(branch_subpath "archive") + else() + set(branch_subpath "development_releases") + endif() + + set(filename "${qt_port}-everywhere-src-${QT_VERSION}.tar.xz") + set(mirrors + "https://download.qt.io/" + "https://mirrors.ocf.berkeley.edu/qt/" + ) + set(url_subpath "${branch_subpath}/qt/${qt_major_minor}/${QT_VERSION}/submodules/${filename}") + list(TRANSFORM mirrors APPEND "${url_subpath}" OUTPUT_VARIABLE urls) + endif() + set(${out_urls} ${urls} PARENT_SCOPE) + set(${out_filename} "${filename}" PARENT_SCOPE) +endfunction() + +if(QT_UPDATE_VERSION) + if(NOT PORT STREQUAL "qtbase") + message(FATAL_ERROR "QT_UPDATE_VERSION must be used from the root 'qtbase' package") + endif() + set(VCPKG_USE_HEAD_VERSION 1) + set(msg "" CACHE INTERNAL "") + foreach(qt_port IN LISTS QT_PORTS) + set(port_json "${CMAKE_CURRENT_LIST_DIR}/../../${qt_port}/vcpkg.json") + file(READ "${port_json}" _control_contents) + string(REGEX REPLACE "\"version(-(string|semver))?\": [^\n]+\n" "\"version\": \"${QT_VERSION}\",\n" _control_contents "${_control_contents}") + string(REGEX REPLACE "\"port-version\": [^\n]+\n" "" _control_contents "${_control_contents}") + file(WRITE "${port_json}" "${_control_contents}") + if(qt_port STREQUAL "qt") + continue() + endif() + if("${qt_port}" IN_LIST QT_FROM_QT_GIT) + vcpkg_find_acquire_program(GIT) + execute_process( + COMMAND "${GIT}" ls-remote -t "https://code.qt.io/cgit/qt/${qt_port}.git" "v${QT_VERSION}" + OUTPUT_VARIABLE out + ) + string(SUBSTRING "${out}" 0 40 tag_sha) + string(APPEND msg "set(${qt_port}_REF ${tag_sha})\n") + else() + qt_get_url_filename("${qt_port}" urls filename) + vcpkg_download_distfile(archive + URLS ${urls} + FILENAME "${filename}" + SKIP_SHA512 + ) + file(SHA512 "${archive}" hash) + string(APPEND msg "set(${qt_port}_HASH \"${hash}\")\n") + endif() + endforeach() + message("${msg}") + file(WRITE "${CMAKE_CURRENT_LIST_DIR}/qt_port_data_new.cmake" "${msg}") + message(FATAL_ERROR "Done downloading version and emitting hashes.") +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/qt_port_data.cmake") diff --git a/vcpkg/ports/qtbase/config_install.patch b/vcpkg/ports/qtbase/config_install.patch new file mode 100644 index 000000000..fdfc70330 --- /dev/null +++ b/vcpkg/ports/qtbase/config_install.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/QtBuildPathsHelpers.cmake b/cmake/QtBuildPathsHelpers.cmake +index bd186c28b..edee52e8b 100644 +--- a/cmake/QtBuildPathsHelpers.cmake ++++ b/cmake/QtBuildPathsHelpers.cmake +@@ -100,7 +100,7 @@ function(qt_internal_set_up_global_paths) + if(QT_CONFIG_INSTALL_DIR) + string(APPEND QT_CONFIG_INSTALL_DIR "/") + endif() +- string(APPEND QT_CONFIG_INSTALL_DIR ${__config_path_part}) ++ string(APPEND QT_CONFIG_INSTALL_DIR "share") + + set(QT_BUILD_DIR "${QT_BUILD_DIR}" PARENT_SCOPE) + set(QT_INSTALL_DIR "${QT_INSTALL_DIR}" PARENT_SCOPE) diff --git a/vcpkg/ports/qtbase/dont_force_cmakecache_latest.patch b/vcpkg/ports/qtbase/dont_force_cmakecache_latest.patch new file mode 100644 index 000000000..752cefe6d --- /dev/null +++ b/vcpkg/ports/qtbase/dont_force_cmakecache_latest.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake +index 4f8106dfa..bec5c402e 100644 +--- a/cmake/QtPostProcessHelpers.cmake ++++ b/cmake/QtPostProcessHelpers.cmake +@@ -414,7 +414,7 @@ function(qt_generate_install_prefixes out_var) + + foreach(var ${vars}) + get_property(docstring CACHE "${var}" PROPERTY HELPSTRING) +- string(APPEND content "set(${var} \"${${var}}\" CACHE STRING \"${docstring}\" FORCE)\n") ++ string(APPEND content "set(${var} \"${${var}}\" CACHE STRING \"${docstring}\")\n") + endforeach() + + set(${out_var} "${content}" PARENT_SCOPE) diff --git a/vcpkg/ports/qtbase/env.patch b/vcpkg/ports/qtbase/env.patch new file mode 100644 index 000000000..6a3716759 --- /dev/null +++ b/vcpkg/ports/qtbase/env.patch @@ -0,0 +1,16 @@ +diff --git a/cmake/QtTestHelpers.cmake b/cmake/QtTestHelpers.cmake +index 279ab07dd..951fd3d36 100644 +--- a/cmake/QtTestHelpers.cmake ++++ b/cmake/QtTestHelpers.cmake +@@ -653,9 +653,9 @@ function(qt_internal_collect_command_environment out_path out_plugin_path) + # The regular CMAKE_INSTALL_PREFIX can be different for example when building standalone tests. + # Any given CMAKE_INSTALL_PREFIX takes priority over qt_relocatable_install_prefix for the + # PATH environment variable. +- set(install_prefixes "${CMAKE_INSTALL_PREFIX}") ++ set(install_prefixes "${CMAKE_INSTALL_PREFIX}$<$:/debug>") + if(QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX) +- list(APPEND install_prefixes "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}") ++ list(APPEND install_prefixes "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}$<$:/debug>") + endif() + + file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" test_env_path) diff --git a/vcpkg/ports/qtbase/fix-host-aliasing.patch b/vcpkg/ports/qtbase/fix-host-aliasing.patch new file mode 100644 index 000000000..1823a351d --- /dev/null +++ b/vcpkg/ports/qtbase/fix-host-aliasing.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake +index 180ec33..a03e3b1 100644 +--- a/cmake/QtTargetHelpers.cmake ++++ b/cmake/QtTargetHelpers.cmake +@@ -281,10 +281,10 @@ function(qt_internal_add_target_aliases target) + set_target_properties("${target}" PROPERTIES _qt_versionfull_alias "${versionfull_alias}") + + get_target_property(type "${target}" TYPE) +- if (type STREQUAL EXECUTABLE) ++ if (type STREQUAL EXECUTABLE AND NOT TARGET "${versionfull_alias}") + add_executable("${versionless_alias}" ALIAS "${target}") + add_executable("${versionfull_alias}" ALIAS "${target}") +- else() ++ elseif(NOT type STREQUAL EXECUTABLE) + add_library("${versionless_alias}" ALIAS "${target}") + add_library("${versionfull_alias}" ALIAS "${target}") + endif() diff --git a/vcpkg/ports/qtbase/fix-link-lib-discovery.patch b/vcpkg/ports/qtbase/fix-link-lib-discovery.patch new file mode 100644 index 000000000..339d25490 --- /dev/null +++ b/vcpkg/ports/qtbase/fix-link-lib-discovery.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/QtPriHelpers.cmake b/cmake/QtPriHelpers.cmake +index b6f1242..eaa4d65 100644 +--- a/cmake/QtPriHelpers.cmake ++++ b/cmake/QtPriHelpers.cmake +@@ -37,6 +37,7 @@ function(qt_generate_qmake_libraries_pri_content module_name output_root_dir out + get_target_property(lib_target_type ${lib_target} TYPE) + if(lib_target_type MATCHES "^(INTERFACE|UNKNOWN)_LIBRARY") + get_target_property(iface_libs ${lib_target} INTERFACE_LINK_LIBRARIES) ++ string(REGEX REPLACE [[\$]+)>]] "\\1" iface_libs "${iface_libs}") + if(iface_libs) + list(PREPEND lib_targets ${iface_libs}) + endif() diff --git a/vcpkg/ports/qtbase/fix_cmake_build.patch b/vcpkg/ports/qtbase/fix_cmake_build.patch new file mode 100644 index 000000000..65410e3fc --- /dev/null +++ b/vcpkg/ports/qtbase/fix_cmake_build.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/QtBuildInternalsExtra.cmake.in b/cmake/QtBuildInternalsExtra.cmake.in +index ffc9d90f8..0b3a7d59e 100644 +--- a/cmake/QtBuildInternalsExtra.cmake.in ++++ b/cmake/QtBuildInternalsExtra.cmake.in +@@ -51,8 +51,8 @@ endif() + set(QT_WILL_INSTALL @QT_WILL_INSTALL@ CACHE BOOL + "Boolean indicating if doing a Qt prefix build (vs non-prefix build)." FORCE) + +-set(QT_SOURCE_TREE "@QT_SOURCE_TREE@" CACHE PATH +-"A path to the source tree of the previously configured QtBase project." FORCE) ++# set(QT_SOURCE_TREE "@QT_SOURCE_TREE@" CACHE PATH ++# "A path to the source tree of the previously configured QtBase project." FORCE) + + # Propagate decision of building tests and examples to other repositories. + set(QT_BUILD_TESTS @QT_BUILD_TESTS@ CACHE BOOL "Build the testing tree.") diff --git a/vcpkg/ports/qtbase/fix_deploy_windows.patch b/vcpkg/ports/qtbase/fix_deploy_windows.patch new file mode 100644 index 000000000..2d2f46ff0 --- /dev/null +++ b/vcpkg/ports/qtbase/fix_deploy_windows.patch @@ -0,0 +1,26 @@ +diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake +index 8a0d07feac..0e6a720c20 100644 +--- a/src/corelib/Qt6CoreMacros.cmake ++++ b/src/corelib/Qt6CoreMacros.cmake +@@ -2977,17 +2977,19 @@ function(_qt_internal_setup_deploy_support) + if(CMAKE_HOST_WIN32) ++ if(CMAKE_CROSSCOMPILING AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug") +- if(CMAKE_CROSSCOMPILING) + set(qt_paths_ext ".bat") ++ elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") ++ set(qt_paths_ext ".debug.bat") + else() + set(qt_paths_ext ".exe") + endif() + else() + set(qt_paths_ext "") + endif() + + + + set(target_qtpaths_path "") +- set(qtpaths_prefix "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_BINS}") ++ set(qtpaths_prefix "${QT6_INSTALL_PREFIX}/tools/Qt6/bin") + get_property(qt_major_version TARGET "${target}" PROPERTY INTERFACE_QT_MAJOR_VERSION) + if(qt_major_version) + set(target_qtpaths_with_major_version_path diff --git a/vcpkg/ports/qtbase/fix_egl.patch b/vcpkg/ports/qtbase/fix_egl.patch new file mode 100644 index 000000000..786831068 --- /dev/null +++ b/vcpkg/ports/qtbase/fix_egl.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake +index eafbc1ff9..dd4068838 100644 +--- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake ++++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake +@@ -82,6 +82,7 @@ find_path(EGL_INCLUDE_DIR + find_library(EGL_LIBRARY + NAMES + EGL ++ libEGL # required to find angle on windows within vcpkg. + HINTS + ${PKG_EGL_LIBRARY_DIRS} + ) diff --git a/vcpkg/ports/qtbase/fix_egl_2.patch b/vcpkg/ports/qtbase/fix_egl_2.patch new file mode 100644 index 000000000..78b1c360f --- /dev/null +++ b/vcpkg/ports/qtbase/fix_egl_2.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake +index db48f79b9..4b1686132 100644 +--- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake ++++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake +@@ -116,7 +116,7 @@ if(EGL_INCLUDE_DIR) + unset(_EGL_version_lines) + endif() + +-cmake_push_check_state(RESET) ++cmake_push_check_state() # To be able to fix the compile check in vcpkg-cmake-wrapper + list(APPEND CMAKE_REQUIRED_LIBRARIES "${EGL_LIBRARY}") + list(APPEND CMAKE_REQUIRED_INCLUDES "${EGL_INCLUDE_DIR}") + list(APPEND CMAKE_REQUIRED_DEFINITIONS "${EGL_DEFINITIONS}") diff --git a/vcpkg/ports/qtbase/harfbuzz.patch b/vcpkg/ports/qtbase/harfbuzz.patch new file mode 100644 index 000000000..a2f8e7424 --- /dev/null +++ b/vcpkg/ports/qtbase/harfbuzz.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/FindWrapSystemHarfbuzz.cmake b/cmake/FindWrapSystemHarfbuzz.cmake +index 3cb44aa76..9bf0d7165 100644 +--- a/cmake/FindWrapSystemHarfbuzz.cmake ++++ b/cmake/FindWrapSystemHarfbuzz.cmake +@@ -6,7 +6,7 @@ if(TARGET WrapSystemHarfbuzz::WrapSystemHarfbuzz) + endif() + set(WrapSystemHarfbuzz_REQUIRED_VARS __harfbuzz_found) + +-find_package(harfbuzz ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} QUIET) ++find_package(harfbuzz QUIET) # VCPKG is missing the version file for harfbuzz. + + # Gentoo has some buggy version of a harfbuzz Config file. Check if include paths are valid. + set(__harfbuzz_target_name "harfbuzz::harfbuzz") diff --git a/vcpkg/ports/qtbase/installed_dir.patch b/vcpkg/ports/qtbase/installed_dir.patch new file mode 100644 index 000000000..918673141 --- /dev/null +++ b/vcpkg/ports/qtbase/installed_dir.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in +index 6e37ae02..e7e84468 100644 +--- a/cmake/qt.toolchain.cmake.in ++++ b/cmake/qt.toolchain.cmake.in +@@ -65,6 +65,10 @@ get_filename_component(QT_TOOLCHAIN_RELOCATABLE_INSTALL_PREFIX + # one level higher is what we're looking for. + get_filename_component(QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE) + ++get_filename_component(vcpkg_installed_dir ++ ${CMAKE_CURRENT_LIST_DIR}/../../../ ++ ABSOLUTE) ++ + # REROOT_PATH_ISSUE_MARKER + # There's a subdirectory check in cmake's cmFindCommon::RerootPaths() function, that doesn't handle + # the case of CMAKE_PREFIX_PATH == CMAKE_FIND_ROOT_PATH for a particular pair of entries. diff --git a/vcpkg/ports/qtbase/macdeployqt-symlinks.patch b/vcpkg/ports/qtbase/macdeployqt-symlinks.patch new file mode 100644 index 000000000..ce6fe71f6 --- /dev/null +++ b/vcpkg/ports/qtbase/macdeployqt-symlinks.patch @@ -0,0 +1,33 @@ +diff --git a/src/tools/macdeployqt/shared/shared.cpp b/src/tools/macdeployqt/shared/shared.cpp +index 6ff269b..caffd44 100644 +--- a/src/tools/macdeployqt/shared/shared.cpp ++++ b/src/tools/macdeployqt/shared/shared.cpp +@@ -1,4 +1,5 @@ + // Copyright (C) 2016 The Qt Company Ltd. ++ + // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + #include + #include +@@ -85,7 +86,21 @@ + } + } + +- if (QFile::copy(from, to)) { ++ QFileInfo fromFileInfo(from); ++ ++ if (fromFileInfo.isSymLink()) { ++ const QString fromSymLinkTarget = fromFileInfo.absoluteDir().relativeFilePath(fromFileInfo.symLinkTarget()); ++ if (QFile::link(fromSymLinkTarget, to)) { ++ return copyFilePrintStatus(fromFileInfo.absoluteDir().absoluteFilePath(fromSymLinkTarget), QFileInfo(to).absoluteDir().absoluteFilePath(fromSymLinkTarget)); ++ } ++ else { ++ LogError() << "symlink copy failed from" << from; ++ LogError() << " to" << to; ++ return false; ++ } ++ ++ } ++ else if (QFile::copy(from, to)) { + QFile dest(to); + dest.setPermissions(dest.permissions() | QFile::WriteOwner | QFile::WriteUser); + LogNormal() << " copied:" << from; diff --git a/vcpkg/ports/qtbase/portfile.cmake b/vcpkg/ports/qtbase/portfile.cmake new file mode 100644 index 000000000..2f3292cf2 --- /dev/null +++ b/vcpkg/ports/qtbase/portfile.cmake @@ -0,0 +1,582 @@ +# Reminder for myself and everybody else: +# Qt cross module dependency information within the Qt respository is wrong and/or incomplete. +# Always check the toplevel CMakeLists.txt for the find_package call and search for linkage against the Qt:: targets +# Often enough certain (bigger) dependencies are only used to build examples and/or tests. +# As such getting the correct dependency information relevant for vcpkg requires a manual search/check +set(QT_IS_LATEST ON) + +## All above goes into the qt_port_hashes in the future +include("${CMAKE_CURRENT_LIST_DIR}/cmake/qt_install_submodule.cmake") + +set(${PORT}_PATCHES + allow_outside_prefix.patch + config_install.patch + fix_cmake_build.patch + harfbuzz.patch + fix_egl.patch + fix_egl_2.patch + installed_dir.patch + GLIB2-static.patch # alternative is to force pkg-config + clang-cl_source_location.patch + clang-cl_QGADGET_fix.diff + fix-host-aliasing.patch + fix_deploy_windows.patch + fix-link-lib-discovery.patch + macdeployqt-symlinks.patch +) + +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + list(APPEND ${PORT}_PATCHES env.patch) +endif() + +list(APPEND ${PORT}_PATCHES + dont_force_cmakecache_latest.patch + ) + +if(VCPKG_TARGET_IS_WINDOWS AND NOT "doubleconversion" IN_LIST FEATURES) + message(FATAL_ERROR "${PORT} requires feature doubleconversion on windows!" ) +endif() + +if(VCPKG_TARGET_IS_LINUX) + message(WARNING "qtbase currently requires packages from the system package manager. " + "They can be installed on Ubuntu systems via sudo apt-get install " + "'^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev " + "libxkbcommon-x11-dev libegl1-mesa-dev.") +endif() + +# Features can be found via searching for qt_feature in all configure.cmake files in the source: +# The files also contain information about the Platform for which it is searched +# Always use FEATURE_ in vcpkg_cmake_configure +# (using QT_FEATURE_X overrides Qts condition check for the feature.) +# Theoretically there is a feature for every widget to enable/disable it but that is way to much for vcpkg + +set(input_vars doubleconversion freetype harfbuzz libb2 jpeg libmd4c png sql-sqlite) +set(INPUT_OPTIONS) +foreach(_input IN LISTS input_vars) + if(_input MATCHES "(png|jpeg)" ) + list(APPEND INPUT_OPTIONS -DINPUT_lib${_input}:STRING=) + elseif(_input MATCHES "(sql-sqlite)") # Not yet used by the cmake build + else() + list(APPEND INPUT_OPTIONS -DINPUT_${_input}:STRING=) + endif() + if("${_input}" IN_LIST FEATURES) + string(APPEND INPUT_OPTIONS system) + elseif(_input STREQUAL "libb2" AND NOT VCPKG_TARGET_IS_WINDOWS) + string(APPEND INPUT_OPTIONS system) + elseif(_input STREQUAL "libmd4c") + string(APPEND INPUT_OPTIONS qt) # libmd4c is not yet in VCPKG (but required by qtdeclarative) + else() + string(APPEND INPUT_OPTIONS no) + endif() +endforeach() + +# General features: + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +FEATURES + "appstore-compliant" FEATURE_appstore_compliant + "zstd" FEATURE_zstd + "framework" FEATURE_framework + "concurrent" FEATURE_concurrent + "concurrent" FEATURE_future + "dbus" FEATURE_dbus + "gui" FEATURE_gui + "thread" FEATURE_thread + "network" FEATURE_network + "sql" FEATURE_sql + "widgets" FEATURE_widgets + #"xml" FEATURE_xml # Required to build moc + "testlib" FEATURE_testlib + "zstd" CMAKE_REQUIRE_FIND_PACKAGE_zstd + ${require_features} +INVERTED_FEATURES + "zstd" CMAKE_DISABLE_FIND_PACKAGE_ZSTD + "dbus" CMAKE_DISABLE_FIND_PACKAGE_WrapDBus1 + ) + +list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libudev:BOOL=ON) +list(APPEND FEATURE_OPTIONS -DFEATURE_xml:BOOL=ON) + +if("dbus" IN_LIST FEATURES AND VCPKG_TARGET_IS_LINUX) + list(APPEND FEATURE_OPTIONS -DINPUT_dbus=linked) +elseif("dbus" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS -DINPUT_dbus=runtime) +else() + list(APPEND FEATURE_OPTIONS -DINPUT_dbus=no) +endif() + +if(VCPKG_QT_NAMESPACE) + list(APPEND FEATURE_OPTIONS "-DQT_NAMESPACE:STRING=${VCPKG_QT_NAMESPACE}") +endif() + +# Corelib features: +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_CORE_OPTIONS +FEATURES + "doubleconversion" FEATURE_doubleconversion + "glib" FEATURE_glib + "icu" FEATURE_icu + "pcre2" FEATURE_pcre2 + #"icu" CMAKE_REQUIRE_FIND_PACKAGE_ICU + "glib" CMAKE_REQUIRE_FIND_PACKAGE_GLIB2 +INVERTED_FEATURES + #"doubleconversion" CMAKE_DISABLE_FIND_PACKAGE_WrapDoubleConversion # Required + #"pcre2" CMAKE_DISABLE_FIND_PACKAGE_WrapSystemPCRE2 # Bug in qt cannot be deactivated + "icu" CMAKE_DISABLE_FIND_PACKAGE_ICU + "glib" CMAKE_DISABLE_FIND_PACKAGE_GLIB2 + ) + +list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_LTTngUST:BOOL=ON) +list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_PPS:BOOL=ON) +list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Slog2:BOOL=ON) +list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libsystemd:BOOL=ON) +list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_WrapBacktrace:BOOL=ON) +#list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_WrapAtomic:BOOL=ON) # Cannot be disabled on x64 platforms +#list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_WrapRt:BOOL=ON) # Cannot be disabled on osx + +if (VCPKG_TARGET_IS_ANDROID) + list(APPEND FEATURE_CORE_OPTIONS -DFEATURE_getentropy:BOOL=OFF) +endif() + +# Network features: + vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_NET_OPTIONS + FEATURES + "openssl" FEATURE_openssl + "brotli" FEATURE_brotli + "securetransport" FEATURE_securetransport + "dnslookup" FEATURE_dnslookup + #"brotli" CMAKE_REQUIRE_FIND_PACKAGE_WrapBrotli + #"openssl" CMAKE_REQUIRE_FIND_PACKAGE_WrapOpenSSL + INVERTED_FEATURES + "brotli" CMAKE_DISABLE_FIND_PACKAGE_WrapBrotli + "openssl" CMAKE_DISABLE_FIND_PACKAGE_WrapOpenSSL + "dnslookup" CMAKE_DISABLE_FIND_PACKAGE_WrapResolve + ) + +if("openssl" IN_LIST FEATURES) + list(APPEND FEATURE_NET_OPTIONS -DINPUT_openssl=linked) +else() + list(APPEND FEATURE_NET_OPTIONS -DINPUT_openssl=no) +endif() + +if ("dnslookup" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS) + list(APPEND FEATURE_NET_OPTIONS -DFEATURE_libresolv:BOOL=ON) +endif() + +list(APPEND FEATURE_NET_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libproxy:BOOL=ON) +list(APPEND FEATURE_NET_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_GSSAPI:BOOL=ON) + +# Gui features: +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_GUI_OPTIONS + FEATURES + "freetype" FEATURE_freetype # required on windows + "harfbuzz" FEATURE_harfbuzz + "fontconfig" FEATURE_fontconfig # NOT WINDOWS + "jpeg" FEATURE_jpeg + "png" FEATURE_png + "opengl" FEATURE_opengl + "xlib" FEATURE_xlib + "xkb" FEATURE_xkbcommon + "xcb" FEATURE_xcb + "xcb-xlib" FEATURE_xcb_xlib + "xkbcommon-x11" FEATURE_xkbcommon_x11 + "xrender" FEATURE_xrender # requires FEATURE_xcb_native_painting; otherwise disabled. + "xrender" FEATURE_xcb_native_painting # experimental + "gles2" FEATURE_opengles2 + "gles3" FEATURE_opengles3 + #Cannot be required since Qt will look in CONFIG mode first but is controlled via CMAKE_DISABLE_FIND_PACKAGE_Vulkan below + #"vulkan" CMAKE_REQUIRE_FIND_PACKAGE_WrapVulkanHeaders + "egl" FEATURE_egl + #"fontconfig" CMAKE_REQUIRE_FIND_PACKAGE_Fontconfig + #"harfbuzz" CMAKE_REQUIRE_FIND_PACKAGE_WrapSystemHarfbuzz + #"jpeg" CMAKE_REQUIRE_FIND_PACKAGE_JPEG + #"png" CMAKE_REQUIRE_FIND_PACKAGE_PNG + #"xlib" CMAKE_REQUIRE_FIND_PACKAGE_X11 + #"xkb" CMAKE_REQUIRE_FIND_PACKAGE_XKB + #"xcb" CMAKE_REQUIRE_FIND_PACKAGE_XCB + #"xcb-xlib" CMAKE_REQUIRE_FIND_PACKAGE_X11_XCB + #"xkbcommon-x11" CMAKE_REQUIRE_FIND_PACKAGE_XKB_COMMON_X11 + #"xrender" CMAKE_REQUIRE_FIND_PACKAGE_XRender + INVERTED_FEATURES + "vulkan" CMAKE_DISABLE_FIND_PACKAGE_Vulkan + "opengl" CMAKE_DISABLE_FIND_PACKAGE_WrapOpenGL + "egl" CMAKE_DISABLE_FIND_PACKAGE_EGL + "gles2" CMAKE_DISABLE_FIND_PACKAGE_GLESv2 + "gles3" CMAKE_DISABLE_FIND_PACKAGE_GLESv3 + "fontconfig" CMAKE_DISABLE_FIND_PACKAGE_Fontconfig + #"freetype" CMAKE_DISABLE_FIND_PACKAGE_WrapSystemFreetype # Bug in qt cannot be deactivated + "harfbuzz" CMAKE_DISABLE_FIND_PACKAGE_WrapSystemHarfbuzz + "jpeg" CMAKE_DISABLE_FIND_PACKAGE_JPEG + #"png" CMAKE_DISABLE_FIND_PACKAGE_PNG # Unable to disable if Freetype requires it + "xlib" CMAKE_DISABLE_FIND_PACKAGE_X11 + "xkb" CMAKE_DISABLE_FIND_PACKAGE_XKB + "xcb" CMAKE_DISABLE_FIND_PACKAGE_XCB + "xcb-xlib" CMAKE_DISABLE_FIND_PACKAGE_X11_XCB + "xkbcommon-x11" CMAKE_DISABLE_FIND_PACKAGE_XKB_COMMON_X11 + "xrender" CMAKE_DISABLE_FIND_PACKAGE_XRender + # There are more X features but I am unsure how to safely disable them! Most of them seem to be found automaticall with find_package(X11) + ) + +if("gles2" IN_LIST FEATURES) + list(APPEND FEATURE_GUI_OPTIONS -DINPUT_opengl='es2') + list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengl_desktop=OFF) +endif() + +if(NOT "opengl" IN_LIST FEATURES AND NOT "gles2" IN_LIST FEATURES) + list(APPEND FEATURE_GUI_OPTIONS -DINPUT_opengl='no') + list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengl_desktop=OFF) + list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengl_dynamic=OFF) +endif() + +if("xcb" IN_LIST FEATURES) + list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xcb=yes) +else() + list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xcb=no) +endif() +if("xkb" IN_LIST FEATURES) + list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xkbcommon=yes) +else() + list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xkbcommon=no) +endif() + +# Disable OpenGL ES 3.1 and 3.2 +list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengles31:BOOL=OFF) +list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengles32:BOOL=OFF) + +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_ATSPI2:BOOL=ON) +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_DirectFB:BOOL=ON) +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libdrm:BOOL=ON) +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_gbm:BOOL=ON) +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libinput:BOOL=ON) +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Mtdev:BOOL=ON) +list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Tslib:BOOL=ON) +# sql-drivers features: + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_SQLDRIVERS_OPTIONS + FEATURES + "sql-sqlite" FEATURE_system_sqlite + "sql-odbc" FEATURE_sql_odbc + "sql-mysql" FEATURE_sql_mysql + "sql-oci" FEATURE_sql_oci + #"sql-psql" CMAKE_REQUIRE_FIND_PACKAGE_PostgreSQL + #"sql-sqlite" CMAKE_REQUIRE_FIND_PACKAGE_SQLite3 + INVERTED_FEATURES + "sql-psql" CMAKE_DISABLE_FIND_PACKAGE_PostgreSQL + "sql-sqlite" CMAKE_DISABLE_FIND_PACKAGE_SQLite3 + "sql-odbc" CMAKE_DISABLE_FIND_PACKAGE_ODBC + "sql-mysql" CMAKE_DISABLE_FIND_PACKAGE_MySQL + "sql-oci" CMAKE_DISABLE_FIND_PACKAGE_Oracle + ) + +set(DB_LIST DB2 Interbase Mimer) +foreach(_db IN LISTS DB_LIST) + list(APPEND FEATURE_SQLDRIVERS_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${_db}:BOOL=ON) +endforeach() + +# printsupport features: +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_PRINTSUPPORT_OPTIONS + FEATURES + "cups" FEATURE_cups + INVERTED_FEATURES + "cups" CMAKE_DISABLE_FIND_PACKAGE_Cups +) + + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_WIDGETS_OPTIONS + FEATURES + "gtk3" FEATURE_gtk3 + INVERTED_FEATURES + "gtk3" CMAKE_DISABLE_FIND_PACKAGE_GTK3 +) + +set(TOOL_NAMES + androiddeployqt + androidtestrunner + cmake_automoc_parser + moc + qdbuscpp2xml + qdbusxml2cpp + qlalr + qmake + qmake6 + qvkgen + rcc + tracegen + uic + qtpaths + qtpaths6 + windeployqt + windeployqt6 + macdeployqt + macdeployqt6 + androiddeployqt6 + syncqt + tracepointgen + ) + +qt_install_submodule(PATCHES ${${PORT}_PATCHES} + TOOL_NAMES ${TOOL_NAMES} + CONFIGURE_OPTIONS + #--trace-expand + ${FEATURE_OPTIONS} + ${FEATURE_CORE_OPTIONS} + ${FEATURE_NET_OPTIONS} + ${FEATURE_GUI_OPTIONS} + ${FEATURE_SQLDRIVERS_OPTIONS} + ${FEATURE_PRINTSUPPORT_OPTIONS} + ${FEATURE_WIDGETS_OPTIONS} + ${INPUT_OPTIONS} + -DQT_USE_BUNDLED_BundledFreetype:BOOL=FALSE + -DQT_USE_BUNDLED_BundledHarfbuzz:BOOL=FALSE + -DQT_USE_BUNDLED_BundledLibpng:BOOL=FALSE + -DQT_USE_BUNDLED_BundledPcre2:BOOL=FALSE + -DINPUT_bundled_xcb_xinput:STRING=no + -DFEATURE_force_debug_info:BOOL=ON + -DFEATURE_relocatable:BOOL=ON + CONFIGURE_OPTIONS_RELEASE + CONFIGURE_OPTIONS_DEBUG + -DFEATURE_debug:BOOL=ON + CONFIGURE_OPTIONS_MAYBE_UNUSED + FEATURE_appstore_compliant # only used for android/ios + ) + +# Install CMake helper scripts +file(COPY + "${CMAKE_CURRENT_LIST_DIR}/cmake/" + DESTINATION + "${CURRENT_PACKAGES_DIR}/share/${PORT}" + ) + +file(CONFIGURE OUTPUT "${CURRENT_PACKAGES_DIR}/share/${PORT}/port_status.cmake" CONTENT "set(qtbase_with_icu ${FEATURE_icu})\n") + +set(other_files qt-cmake + qt-cmake-create + qt-cmake-private + qt-cmake-standalone-test + qt-configure-module + qt-internal-configure-tests + qt-cmake-create + qt-internal-configure-examples + qt-internal-configure-tests + qmake + qmake6 + qtpaths + qtpaths6 +) + +if(CMAKE_HOST_WIN32) + set(script_suffix ".bat") +else() + set(script_suffix "") +endif() +list(TRANSFORM other_files APPEND "${script_suffix}") + +list(APPEND other_files + android_cmakelist_patcher.sh + android_emulator_launcher.sh + ensure_pro_file.cmake + qt-android-runner.py + qt-cmake-private-install.cmake + qt-testrunner.py + qt-wasmtestrunner.py + sanitizer-testrunner.py + syncqt.pl + target_qt.conf +) + +foreach(_config debug release) + if(_config MATCHES "debug") + set(path_suffix debug/) + else() + set(path_suffix) + endif() + if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/${path_suffix}bin") + continue() + endif() + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${path_suffix}") + foreach(other_file IN LISTS other_files) + if(EXISTS "${CURRENT_PACKAGES_DIR}/${path_suffix}bin/${other_file}") + set(target_file "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${path_suffix}${other_file}") + file(RENAME "${CURRENT_PACKAGES_DIR}/${path_suffix}bin/${other_file}" "${target_file}") + file(READ "${target_file}" _contents) + if(_config MATCHES "debug") + string(REPLACE "..\\share\\" "..\\..\\..\\..\\share\\" _contents "${_contents}") + string(REPLACE "../share/" "../../../../share/" _contents "${_contents}") + else() + string(REPLACE "..\\share\\" "..\\..\\..\\share\\" _contents "${_contents}") + string(REPLACE "../share/" "../../../share/" _contents "${_contents}") + endif() + string(REGEX REPLACE "set cmake_path=[^\n]+\n" "set cmake_path=cmake\n" _contents "${_contents}") + string(REGEX REPLACE "original_cmake_path=[^\n]+\n" "original_cmake_path=does-not-exist\n" _contents "${_contents}") + file(WRITE "${target_file}" "${_contents}") + endif() + endforeach() +endforeach() + +# Fixup qt.toolchain.cmake +set(qttoolchain "${CURRENT_PACKAGES_DIR}/share/Qt6/qt.toolchain.cmake") +file(READ "${qttoolchain}" toolchain_contents) +string(REGEX REPLACE "set\\\(__qt_initially_configured_toolchain_file [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") +string(REGEX REPLACE "set\\\(__qt_chainload_toolchain_file [^\\\n]+\\\n" "set(__qt_chainload_toolchain_file \"\${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}\")" toolchain_contents "${toolchain_contents}") +string(REGEX REPLACE "set\\\(VCPKG_CHAINLOAD_TOOLCHAIN_FILE [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") +string(REGEX REPLACE "set\\\(__qt_initial_c_compiler [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") +string(REGEX REPLACE "set\\\(__qt_initial_cxx_compiler [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") +string(REPLACE "${CURRENT_HOST_INSTALLED_DIR}" "\${vcpkg_installed_dir}/${HOST_TRIPLET}" toolchain_contents "${toolchain_contents}") +file(WRITE "${qttoolchain}" "${toolchain_contents}") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) + if(VCPKG_CROSSCOMPILING) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/qmake" "${CURRENT_PACKAGES_DIR}/debug/bin/qmake") # qmake has been moved so this is the qmake helper script + endif() + file(GLOB_RECURSE _bin_files "${CURRENT_PACKAGES_DIR}/bin/*") + if(NOT _bin_files) # Only clean if empty otherwise let vcpkg throw and error. + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/") + else() + message(STATUS "Files in '/bin':${_bin_files}") + endif() +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Qt6/QtBuildInternals") + +if(NOT VCPKG_TARGET_IS_OSX) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Qt6/macos") +endif() +if(NOT VCPKG_TARGET_IS_IOS) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Qt6/ios") +endif() + +file(RELATIVE_PATH installed_to_host "${CURRENT_INSTALLED_DIR}" "${CURRENT_HOST_INSTALLED_DIR}") +file(RELATIVE_PATH host_to_installed "${CURRENT_HOST_INSTALLED_DIR}" "${CURRENT_INSTALLED_DIR}") +if(installed_to_host) + string(APPEND installed_to_host "/") + string(APPEND host_to_installed "/") +endif() +set(_file "${CMAKE_CURRENT_LIST_DIR}/qt.conf.in") +set(REL_PATH "") +set(REL_HOST_TO_DATA "\${CURRENT_INSTALLED_DIR}/") +configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/qt_release.conf" @ONLY) # For vcpkg-qmake +set(BACKUP_CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}") +set(BACKUP_CURRENT_HOST_INSTALLED_DIR "${CURRENT_HOST_INSTALLED_DIR}") +set(CURRENT_INSTALLED_DIR "./../../../") +set(CURRENT_HOST_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}${installed_to_host}") + +## Configure installed qt.conf +set(REL_HOST_TO_DATA "${host_to_installed}") +configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qt.conf") +set(REL_PATH debug/) +configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qt.debug.conf") + +set(CURRENT_INSTALLED_DIR "${BACKUP_CURRENT_INSTALLED_DIR}") +set(CURRENT_HOST_INSTALLED_DIR "${BACKUP_CURRENT_HOST_INSTALLED_DIR}") +set(REL_HOST_TO_DATA "\${CURRENT_INSTALLED_DIR}/") +configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/qt_debug.conf" @ONLY) # For vcpkg-qmake + +set(target_qt_conf "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/target_qt.conf") +if(EXISTS "${target_qt_conf}") + file(READ "${target_qt_conf}" qt_conf_contents) + string(REGEX REPLACE "Prefix=[^\n]+" "Prefix=./../../../" qt_conf_contents ${qt_conf_contents}) + string(REGEX REPLACE "HostData=[^\n]+" "HostData=./../${TARGET_TRIPLET}/share/Qt6" qt_conf_contents ${qt_conf_contents}) + string(REGEX REPLACE "HostPrefix=[^\n]+" "HostPrefix=./../../../../${_HOST_TRIPLET}" qt_conf_contents ${qt_conf_contents}) + file(WRITE "${target_qt_conf}" "${qt_conf_contents}") + if(NOT VCPKG_BUILD_TYPE) + set(target_qt_conf_debug "${CURRENT_PACKAGES_DIR}/tools/Qt6/target_qt_debug.conf") + configure_file("${target_qt_conf}" "${target_qt_conf_debug}" COPYONLY) + file(READ "${target_qt_conf_debug}" qt_conf_contents) + string(REGEX REPLACE "=(bin|lib|Qt6/plugins|Qt6/qml)" "=debug/\\1" qt_conf_contents ${qt_conf_contents}) + file(WRITE "${target_qt_conf_debug}" "${qt_conf_contents}") + + configure_file("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake${script_suffix}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake.debug${script_suffix}" COPYONLY) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake.debug${script_suffix}" "target_qt.conf" "target_qt_debug.conf") + endif() +endif() + +if(VCPKG_TARGET_IS_EMSCRIPTEN) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6Core/Qt6WasmMacros.cmake" "_qt_test_emscripten_version()" "") # this is missing a include(QtPublicWasmToolchainHelpers) +endif() + + +if(VCPKG_TARGET_IS_WINDOWS) + set(_DLL_FILES brotlicommon brotlidec bz2 freetype harfbuzz libpng16) + set(DLLS_TO_COPY "") + foreach(_file IN LISTS _DLL_FILES) + if(EXISTS "${CURRENT_INSTALLED_DIR}/bin/${_file}.dll") + list(APPEND DLLS_TO_COPY "${CURRENT_INSTALLED_DIR}/bin/${_file}.dll") + endif() + endforeach() + file(COPY ${DLLS_TO_COPY} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") +endif() + +set(hostinfofile "${CURRENT_PACKAGES_DIR}/share/Qt6HostInfo/Qt6HostInfoConfig.cmake") +file(READ "${hostinfofile}" _contents) +string(REPLACE [[set(QT6_HOST_INFO_LIBEXECDIR "bin")]] [[set(QT6_HOST_INFO_LIBEXECDIR "tools/Qt6/bin")]] _contents "${_contents}") +string(REPLACE [[set(QT6_HOST_INFO_BINDIR "bin")]] [[set(QT6_HOST_INFO_BINDIR "tools/Qt6/bin")]] _contents "${_contents}") +file(WRITE "${hostinfofile}" "${_contents}") + +if(NOT VCPKG_CROSSCOMPILING OR EXISTS "${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake" + "PACKAGE_PREFIX_DIR}/bin/syncqt" + "PACKAGE_PREFIX_DIR}/tools/Qt6/bin/syncqt" + IGNORE_UNCHANGED) +endif() + +set(configfile "${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsTargets-debug.cmake") +if(EXISTS "${configfile}") + file(READ "${configfile}" _contents) + if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake.exe") + file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/qmake.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") + string(REPLACE [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qmake.exe"]] [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qmake.debug.bat"]] _contents "${_contents}") + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qtpaths.exe") + file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/qtpaths.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") + string(REPLACE [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qtpaths.exe"]] [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qtpaths.debug.bat"]] _contents "${_contents}") + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/windeployqt.exe") + file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/windeployqt.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") + string(REPLACE [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/windeployqt.exe"]] [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/windeployqt.debug.bat"]] _contents "${_contents}") + endif() + file(WRITE "${configfile}" "${_contents}") +endif() + +if(VCPKG_CROSSCOMPILING) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6/Qt6Dependencies.cmake" "${CURRENT_HOST_INSTALLED_DIR}" "\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}") +endif() + +function(remove_original_cmake_path file) + file(READ "${file}" _contents) + string(REGEX REPLACE "original_cmake_path=[^\n]*" "original_cmake_path=''" _contents "${_contents}") + file(WRITE "${file}" "${_contents}") +endfunction() + +if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT CMAKE_HOST_WIN32) + foreach(file "qt-cmake${script_suffix}" "qt-cmake-private${script_suffix}") + remove_original_cmake_path("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${file}") + if(NOT VCPKG_BUILD_TYPE) + remove_original_cmake_path("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/debug/${file}") + endif() + endforeach() +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + # dlls owned but not automatically installed by qtbase + # this is required to avoid ownership troubles in downstream qt modules + set(qtbase_owned_dlls + double-conversion.dll + icudt74.dll + icuin74.dll + icuuc74.dll + libcrypto-3-${VCPKG_TARGET_ARCHITECTURE}.dll + libcrypto-3.dll # for x86 + pcre2-16.dll + zlib1.dll + zstd.dll + ) + if("dbus" IN_LIST FEATURES) + list(APPEND qtbase_owned_dlls dbus-1-3.dll) + endif() + list(TRANSFORM qtbase_owned_dlls PREPEND "${CURRENT_INSTALLED_DIR}/bin/") + foreach(dll IN LISTS qtbase_owned_dlls) + if(NOT EXISTS "${dll}") # Need to remove non-existant dlls since dependencies could have been build statically + list(REMOVE_ITEM qtbase_owned_dlls "${dll}") + endif() + endforeach() + file(COPY ${qtbase_owned_dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") +endif() diff --git a/vcpkg/ports/qtbase/qmake.debug.bat b/vcpkg/ports/qtbase/qmake.debug.bat new file mode 100644 index 000000000..a7ed903a3 --- /dev/null +++ b/vcpkg/ports/qtbase/qmake.debug.bat @@ -0,0 +1,2 @@ +@echo off +"%0\..\qmake.exe" -qtconf "%0\..\qt.debug.conf" %* diff --git a/vcpkg/ports/qtbase/qt.conf.in b/vcpkg/ports/qtbase/qt.conf.in new file mode 100644 index 000000000..8e76b8f6d --- /dev/null +++ b/vcpkg/ports/qtbase/qt.conf.in @@ -0,0 +1,31 @@ +[DevicePaths] +Prefix=${CURRENT_INSTALLED_DIR} +Headers=include/@QT6_DIRECTORY_PREFIX@ +Libraries=@REL_PATH@lib +Plugins=@REL_PATH@@QT6_DIRECTORY_PREFIX@plugins +Qml2Imports=@REL_PATH@@QT6_DIRECTORY_PREFIX@qml +Documentation=doc/@QT6_DIRECTORY_PREFIX@ +Binaries=@REL_PATH@bin +LibraryExecutables=tools/Qt6/bin +ArchData=share/Qt6 +Data=share/Qt6 +Translations=translations/@QT6_DIRECTORY_PREFIX@ +Examples=share/examples/@QT6_DIRECTORY_PREFIX@ +[Paths] +Prefix=${CURRENT_INSTALLED_DIR} +Headers=include/@QT6_DIRECTORY_PREFIX@ +Libraries=@REL_PATH@lib +Plugins=@REL_PATH@@QT6_DIRECTORY_PREFIX@plugins +Qml2Imports=@REL_PATH@@QT6_DIRECTORY_PREFIX@qml +Documentation=doc/@QT6_DIRECTORY_PREFIX@ +Binaries=@REL_PATH@bin +LibraryExecutables=tools/Qt6/bin +ArchData=share/Qt6 +Data=share/Qt6 +Translations=translations/@QT6_DIRECTORY_PREFIX@ +Examples=share/examples/@QT6_DIRECTORY_PREFIX@ +HostPrefix=${CURRENT_HOST_INSTALLED_DIR} +HostData=@REL_HOST_TO_DATA@share/Qt6 +HostBinaries=@REL_PATH@bin +HostLibraries=@REL_PATH@lib +HostLibraryExecutables=tools/Qt6/bin diff --git a/vcpkg/ports/qtbase/qtpaths.debug.bat b/vcpkg/ports/qtbase/qtpaths.debug.bat new file mode 100644 index 000000000..4fef8e754 --- /dev/null +++ b/vcpkg/ports/qtbase/qtpaths.debug.bat @@ -0,0 +1,2 @@ +@echo off +"%0\..\qtpaths.exe" --qtconf "%0\..\qt.debug.conf" %* diff --git a/vcpkg/ports/qtbase/vcpkg.json b/vcpkg/ports/qtbase/vcpkg.json new file mode 100644 index 000000000..2cbacaba3 --- /dev/null +++ b/vcpkg/ports/qtbase/vcpkg.json @@ -0,0 +1,570 @@ +{ + "name": "qtbase", + "version": "6.8.3", + "port-version": 1, + "description": "Qt Base (Core, Gui, Widgets, Network, ...)", + "homepage": "https://www.qt.io/", + "license": null, + "supports": "!uwp", + "dependencies": [ + { + "name": "libb2", + "platform": "!windows" + }, + { + "name": "pcre2", + "default-features": false + }, + { + "name": "qtbase", + "host": true, + "default-features": false + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "doubleconversion" + ] + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "cups" + ], + "platform": "osx" + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "thread" + ], + "platform": "osx" + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "pcre2" + ], + "platform": "windows & static" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "default-features": [ + { + "name": "appstore-compliant", + "platform": "uwp" + }, + "brotli", + "concurrent", + { + "name": "dbus", + "platform": "!(static & windows)" + }, + "dnslookup", + "doubleconversion", + { + "name": "egl", + "platform": "linux" + }, + { + "name": "egl", + "platform": "android" + }, + { + "name": "fontconfig", + "platform": "linux" + }, + "freetype", + { + "name": "gles2", + "platform": "android" + }, + "gui", + "harfbuzz", + "icu", + "jpeg", + "network", + { + "name": "opengl", + "platform": "!ios" + }, + { + "name": "openssl", + "platform": "!ios" + }, + "pcre2", + "png", + { + "name": "securetransport", + "platform": "ios" + }, + "sql", + "sql-psql", + "sql-sqlite", + "testlib", + "thread", + "widgets", + { + "name": "xcb", + "platform": "linux" + }, + { + "name": "xcb-xlib", + "platform": "linux" + }, + { + "name": "xrender", + "platform": "linux" + }, + "zstd" + ], + "features": { + "appstore-compliant": { + "description": "Disable code that is not allowed in platform app stores. This is on by default for platforms which require distribution through an app store by default, in particular Android, iOS, tvOS, and watchOS." + }, + "brotli": { + "description": "Support for downloading and decompressing resources compressed with Brotli through QNetworkAccessManager.", + "dependencies": [ + "brotli", + { + "name": "qtbase", + "default-features": false, + "features": [ + "network" + ] + } + ] + }, + "concurrent": { + "description": "Provides a high-level multi-threading API. Qt Concurrent", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "thread" + ] + } + ] + }, + "cups": { + "description": "Provides support for the Common Unix Printing System.", + "supports": "linux | osx" + }, + "dbus": { + "description": "Qt D-Bus", + "dependencies": [ + { + "name": "dbus", + "default-features": false + }, + { + "name": "qtbase", + "host": true, + "default-features": false, + "features": [ + "dbus" + ] + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "thread" + ] + } + ] + }, + "dnslookup": { + "description": "Enable DNS lookup support", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "network" + ] + } + ] + }, + "doubleconversion": { + "description": "Enable double conversion support", + "dependencies": [ + "double-conversion" + ] + }, + "egl": { + "description": "EGL", + "supports": "linux", + "dependencies": [ + "egl" + ] + }, + "fontconfig": { + "description": "Use fontconfig", + "dependencies": [ + "fontconfig", + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "framework": { + "description": "MAC framework build", + "supports": "osx & !static" + }, + "freetype": { + "description": "Supports the FreeType 2 font engine (and its supported font formats).", + "dependencies": [ + { + "name": "freetype", + "default-features": false + } + ] + }, + "gles2": { + "description": "OpenGL ES 2.0", + "supports": "!windows & !osx", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "gles3": { + "description": "OpenGL ES 3.0", + "supports": "!windows & !osx", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "gles2" + ] + } + ] + }, + "glib": { + "description": "GLib", + "dependencies": [ + "glib" + ] + }, + "gtk3": { + "description": "GTK3 platform theme plugin", + "supports": "linux", + "dependencies": [ + "gtk3", + { + "name": "qtbase", + "default-features": false, + "features": [ + "glib" + ] + } + ] + }, + "gui": { + "description": "Qt Gui", + "dependencies": [ + { + "name": "opengl", + "platform": "!ios" + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "freetype" + ] + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "opengl" + ], + "platform": "osx" + }, + { + "name": "qtbase", + "default-features": false, + "features": [ + "thread" + ], + "platform": "windows" + } + ] + }, + "harfbuzz": { + "description": "Use harfbuzz", + "dependencies": [ + "harfbuzz", + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "icu": { + "description": "Enable ICU support", + "dependencies": [ + "icu" + ] + }, + "jpeg": { + "description": "Enable JPEG", + "dependencies": [ + "libjpeg-turbo", + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "network": { + "description": "Qt Network" + }, + "opengl": { + "description": "OpenGL", + "dependencies": [ + "opengl", + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "openssl": { + "description": "Enable OpenSSL", + "dependencies": [ + "openssl", + { + "name": "qtbase", + "default-features": false, + "features": [ + "network" + ] + } + ] + }, + "pcre2": { + "description": "Enable PCRE2 support", + "dependencies": [ + { + "name": "pcre2", + "default-features": false + } + ] + }, + "png": { + "description": "Enable PNG", + "dependencies": [ + "libpng", + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "securetransport": { + "description": "Enable Secure Transport", + "supports": "ios | osx" + }, + "sql": { + "description": "Qt Sql", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "concurrent" + ] + } + ] + }, + "sql-mysql": { + "description": "Enable SQL Driver MySQL", + "dependencies": [ + "libmysql", + { + "name": "qtbase", + "default-features": false, + "features": [ + "sql" + ] + } + ] + }, + "sql-oci": { + "description": "Enable SQL Driver Oracle OCI", + "dependencies": [ + "ocilib", + { + "name": "qtbase", + "default-features": false, + "features": [ + "sql" + ] + } + ] + }, + "sql-odbc": { + "description": "Enable SQL Driver odbc", + "supports": "windows", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "sql" + ] + } + ] + }, + "sql-psql": { + "description": "Enable SQL Driver psql", + "dependencies": [ + "libpq", + { + "name": "qtbase", + "default-features": false, + "features": [ + "sql" + ] + } + ] + }, + "sql-sqlite": { + "description": "Enable SQL Driver sqlite", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "sql" + ] + }, + "sqlite3" + ] + }, + "testlib": { + "description": "Qt Testlib" + }, + "thread": { + "description": "Thread support; provides QThread and related classes." + }, + "vulkan": { + "description": "Enable Vulkan support", + "dependencies": [ + "vulkan" + ] + }, + "widgets": { + "description": "Qt Widgets", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "gui" + ] + } + ] + }, + "xcb": { + "description": "XCB", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "concurrent", + "xkbcommon-x11", + "xlib" + ] + } + ] + }, + "xcb-xlib": { + "description": "xcb-xlib", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "xlib" + ] + } + ] + }, + "xkb": { + "description": "XKB" + }, + "xkbcommon-x11": { + "description": "xkbcommon_x11", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "xkb" + ] + } + ] + }, + "xlib": { + "description": "XLib" + }, + "xrender": { + "description": "XRender for native painting", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "xcb" + ] + } + ] + }, + "zstd": { + "description": "Zstandard support", + "dependencies": [ + "zstd" + ] + } + } +} diff --git a/vcpkg/ports/qtbase/windeployqt.debug.bat b/vcpkg/ports/qtbase/windeployqt.debug.bat new file mode 100644 index 000000000..234bb4383 --- /dev/null +++ b/vcpkg/ports/qtbase/windeployqt.debug.bat @@ -0,0 +1,10 @@ +@echo off +setlocal enabledelayedexpansion +set mypath=%~dp0 +set mypath=%mypath:~0,-1% +set BAKCD=!CD! +cd /D "%mypath%\..\..\..\debug\bin" +set PATH=!CD!;%PATH% +cd /D "%BAKCD%" +"%mypath%\windeployqt6.exe" --qtpaths "%mypath%\qtpaths.debug.bat" %* +endlocal diff --git a/vcpkg/ports/qtdeclarative/portfile.cmake b/vcpkg/ports/qtdeclarative/portfile.cmake new file mode 100644 index 000000000..4e6e576e9 --- /dev/null +++ b/vcpkg/ports/qtdeclarative/portfile.cmake @@ -0,0 +1,44 @@ +set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") +include("${SCRIPT_PATH}/qt_install_submodule.cmake") + +vcpkg_buildpath_length_warning(44) + +set(${PORT}_PATCHES "") + +set(TOOL_NAMES + qml + qmlaotstats + qmlcachegen + qmleasing + qmlformat + qmlimportscanner + qmllint + qmlplugindump + qmlpreview + qmlprofiler + qmlscene + qmltestrunner + qmltime + qmltyperegistrar + qmldom + qmltc + qmlls + qmljsrootgen + svgtoqml + ) + +qt_install_submodule(PATCHES ${${PORT}_PATCHES} + TOOL_NAMES ${TOOL_NAMES} + CONFIGURE_OPTIONS + -DFEATURE_quickcontrols2_fusion:BOOL=ON + -DFEATURE_quickcontrols2_material:BOOL=ON + -DFEATURE_quickcontrols2_imagine:BOOL=OFF + -DFEATURE_quickcontrols2_universal:BOOL=OFF + -DFEATURE_quickcontrols2_fluentwinui3:BOOL=OFF + -DFEATURE_quickcontrols2_macos:BOOL=OFF + -DFEATURE_quickcontrols2_ios:BOOL=OFF + -DFEATURE_quickcontrols2_windows:BOOL=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_LTTngUST:BOOL=ON + CONFIGURE_OPTIONS_RELEASE + CONFIGURE_OPTIONS_DEBUG + ) diff --git a/vcpkg/ports/qtdeclarative/vcpkg.json b/vcpkg/ports/qtdeclarative/vcpkg.json new file mode 100644 index 000000000..fe1561e83 --- /dev/null +++ b/vcpkg/ports/qtdeclarative/vcpkg.json @@ -0,0 +1,28 @@ +{ + "name": "qtdeclarative", + "version": "6.8.3", + "description": "Qt Declarative (Quick 2)", + "homepage": "https://www.qt.io/", + "license": null, + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "network", + "testlib" + ] + }, + { + "name": "qtdeclarative", + "host": true, + "default-features": false + }, + "qtlanguageserver", + { + "name": "qtshadertools", + "default-features": false + }, + "qtsvg" + ] +} diff --git a/vcpkg/ports/qtmultimedia/ffmpeg-compile-def.patch b/vcpkg/ports/qtmultimedia/ffmpeg-compile-def.patch new file mode 100644 index 000000000..95e531510 --- /dev/null +++ b/vcpkg/ports/qtmultimedia/ffmpeg-compile-def.patch @@ -0,0 +1,13 @@ +diff --git a/src/plugins/multimedia/ffmpeg/CMakeLists.txt b/src/plugins/multimedia/ffmpeg/CMakeLists.txt +index 77c459a..af5229e 100644 +--- a/src/plugins/multimedia/ffmpeg/CMakeLists.txt ++++ b/src/plugins/multimedia/ffmpeg/CMakeLists.txt +@@ -273,7 +273,7 @@ if(BUILD_SHARED_LIBS) + else() + foreach(ffmpeg_lib IN LISTS ffmpeg_libs) + qt_internal_add_target_include_dirs(FFmpegMediaPluginImplPrivate ${ffmpeg_lib}) +- target_include_directories(FFmpegMediaPluginImplPrivate PUBLIC ++ target_compile_definitions(FFmpegMediaPluginImplPrivate PUBLIC + "$") + endforeach() + endif() diff --git a/vcpkg/ports/qtmultimedia/fix_avfoundation_target.patch b/vcpkg/ports/qtmultimedia/fix_avfoundation_target.patch new file mode 100644 index 000000000..943bc4798 --- /dev/null +++ b/vcpkg/ports/qtmultimedia/fix_avfoundation_target.patch @@ -0,0 +1,12 @@ +diff --git a/src/plugins/multimedia/darwin/CMakeLists.txt b/src/plugins/multimedia/darwin/CMakeLists.txt +index a1a0cb1..242ceac 100644 +--- a/src/plugins/multimedia/darwin/CMakeLists.txt ++++ b/src/plugins/multimedia/darwin/CMakeLists.txt +@@ -34,6 +34,6 @@ qt_internal_add_plugin(QDarwinMediaPlugin + ${FWMetal} + ${FWQuartzCore} +- AVFoundation::AVFoundation ++ ${FWAVFoundation} + ) + + qt_internal_extend_target(QDarwinMediaPlugin CONDITION NOT TVOS diff --git a/vcpkg/ports/qtmultimedia/portfile.cmake b/vcpkg/ports/qtmultimedia/portfile.cmake new file mode 100644 index 000000000..d60178653 --- /dev/null +++ b/vcpkg/ports/qtmultimedia/portfile.cmake @@ -0,0 +1,74 @@ +set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") +include("${SCRIPT_PATH}/qt_install_submodule.cmake") + +set(${PORT}_PATCHES + static_find_modules.patch + fix_avfoundation_target.patch + remove-static-ssl-stub.patch + private_libs.patch + ffmpeg-compile-def.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +FEATURES + "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick + "widgets" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Widgets +INVERTED_FEATURES + "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick + "widgets" CMAKE_DISABLE_FIND_PACKAGE_Qt6Widgets + "gstreamer" CMAKE_DISABLE_FIND_PACKAGE_GStreamer + "ffmpeg" CMAKE_DISABLE_FIND_PACKAGE_FFmpeg + # Features not yet added in the manifest: + "vaapi" CMAKE_DISABLE_FIND_PACKAGE_VAAPI # not in vpckg +) + +set(unused "") +if("gstreamer" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='yes'") +else() + list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='no'") + list(APPEND unused INPUT_gstreamer_gl INPUT_gstreamer_photography) +endif() +list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer_gl='no'") +list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer_photography='no'") + +if(VCPKG_TARGET_IS_WINDOWS) + list(APPEND FEATURE_OPTIONS "-DFEATURE_wmf=ON") +else() + list(APPEND FEATURE_OPTIONS "-DFEATURE_wmf=OFF") +endif() + +if("ffmpeg" IN_LIST FEATURES) + # Note: Requires pulsadio on linux and wmfsdk on windows + list(APPEND FEATURE_OPTIONS "-DINPUT_ffmpeg='yes'") + if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_ANDROID) + list(APPEND FEATURE_OPTIONS "-DINPUT_pulseaudio='no'") + else() + list(APPEND FEATURE_OPTIONS "-DINPUT_pulseaudio='yes'") + endif() +else() + list(APPEND FEATURE_OPTIONS "-DINPUT_ffmpeg='no'") + list(APPEND FEATURE_OPTIONS "-DINPUT_pulseaudio='no'") +endif() + +# alsa is not ready +if(NOT "ffmpeg" IN_LIST FEATURES AND NOT "gstreamer" IN_LIST FEATURES AND VCPKG_TARGET_IS_LINUX) + #list(APPEND FEATURE_OPTIONS "-DFEATURE_alsa=ON") # alsa is experimental so don't activate it (also missing the dep on it.) + message(FATAL_ERROR "You need to activate at least one backend.") +else() + list(APPEND FEATURE_OPTIONS "-DFEATURE_alsa=OFF") +endif() + +qt_install_submodule(PATCHES ${${PORT}_PATCHES} + CONFIGURE_OPTIONS + --trace-expand + ${FEATURE_OPTIONS} + -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON + CONFIGURE_OPTIONS_RELEASE + CONFIGURE_OPTIONS_DEBUG + CONFIGURE_OPTIONS_MAYBE_UNUSED ${unused} + ) + +if("gstreamer" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6Multimedia/Qt6QGstreamerMediaPluginDependencies.cmake" "GStreamer\;FALSE\;\;\;;GStreamer\;FALSE\;\;App\;;GStreamer\;FALSE\;\;\;Gl" "GStreamer\;FALSE\;\;\;;GStreamer\;FALSE\;\;App\;;GStreamer\;FALSE\;\;\;Gl;EGL\;FALSE\;\;\;" IGNORE_UNCHANGED) +endif() diff --git a/vcpkg/ports/qtmultimedia/private_libs.patch b/vcpkg/ports/qtmultimedia/private_libs.patch new file mode 100644 index 000000000..3ffc253f4 --- /dev/null +++ b/vcpkg/ports/qtmultimedia/private_libs.patch @@ -0,0 +1,19 @@ +diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake +index 6316dde..54f807b 100644 +--- a/cmake/FindFFmpeg.cmake ++++ b/cmake/FindFFmpeg.cmake +@@ -264,9 +264,11 @@ function(__ffmpeg_internal_set_dependencies _component) + string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_dependency ${out}) + string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_dependency_lib ${out}) + +- string(REGEX REPLACE ".*Libs.private:([^\n\r]+).*" "\\1" out "${pcfile}") +- string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_private_dependency ${out}) +- string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_private_dependency_lib ${out}) ++ if(out MATCHES "Libs.private:") ++ string(REGEX REPLACE ".*Libs.private:([^\n\r]+).*" "\\1" out "${pcfile}") ++ string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_private_dependency ${out}) ++ string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_private_dependency_lib ${out}) ++ endif() + + list(APPEND deps_no_suffix ${libs_dependency} ${libs_private_dependency}) + foreach(dependency ${deps_no_suffix}) diff --git a/vcpkg/ports/qtmultimedia/remove-static-ssl-stub.patch b/vcpkg/ports/qtmultimedia/remove-static-ssl-stub.patch new file mode 100644 index 000000000..b74b66c3d --- /dev/null +++ b/vcpkg/ports/qtmultimedia/remove-static-ssl-stub.patch @@ -0,0 +1,26 @@ +diff --git a/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake b/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake +index 5778ae4d23..8c0df4b44d 100644 +--- a/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake ++++ b/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake +@@ -70,7 +70,10 @@ macro(qt_internal_multimedia_find_openssl_soversion) + if (NOT OPENSSL_SSL_LIBRARY) + message(FATAL_ERROR "OPENSSL_SSL_LIBRARY is not found") + endif() +- ++ set(openssl_is_shared ON) ++ if(OPENSSL_SSL_LIBRARY MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$") ++ set(openssl_is_shared OFF) ++ endif() + get_filename_component(ssl_lib_realpath "${OPENSSL_SSL_LIBRARY}" REALPATH) + + string(REGEX MATCH "[0-9]+(\\.[0-9]+)*[a-z]?$" ssl_soversion "${ssl_lib_realpath}") +@@ -187,6 +190,9 @@ function(qt_internal_multimedia_add_ffmpeg_stubs) + + if (ffmpeg_has_openssl) + qt_internal_multimedia_find_openssl_soversion() ++ if(NOT openssl_is_shared) ++ list(REMOVE_ITEM FFMPEG_STUBS ssl crypto) ++ endif() + endif() + + foreach (stub ${FFMPEG_STUBS}) diff --git a/vcpkg/ports/qtmultimedia/static_find_modules.patch b/vcpkg/ports/qtmultimedia/static_find_modules.patch new file mode 100644 index 000000000..1fc348de6 --- /dev/null +++ b/vcpkg/ports/qtmultimedia/static_find_modules.patch @@ -0,0 +1,82 @@ +diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake +index 47d8769..46a5c9b 100644 +--- a/cmake/FindFFmpeg.cmake ++++ b/cmake/FindFFmpeg.cmake +@@ -215,7 +215,7 @@ foreach (_component ${FFmpeg_FIND_COMPONENTS}) + find_component(${_component} "lib${library}" ${library} "lib${library}/${library}.h") + + if (${_component}_FOUND) +- list(APPEND FFMPEG_LIBRARIES ${${_component}_LIBRARY_NAME}) ++ list(APPEND FFMPEG_LIBRARIES ${${_component}_LIBRARY}) + list(APPEND FFMPEG_DEFINITIONS ${${_component}_DEFINITIONS}) + list(APPEND FFMPEG_INCLUDE_DIRS ${${_component}_INCLUDE_DIR}) + list(APPEND FFMPEG_LIBRARY_DIRS ${${_component}_LIBRARY_DIR}) +@@ -306,18 +306,19 @@ endfunction() + string(TOLOWER ${_component} _lowerComponent) + if (NOT TARGET FFmpeg::${_lowerComponent}) +- add_library(FFmpeg::${_lowerComponent} INTERFACE IMPORTED) ++ add_library(FFmpeg::${_lowerComponent} UNKNOWN IMPORTED) + set_target_properties(FFmpeg::${_lowerComponent} PROPERTIES + INTERFACE_COMPILE_OPTIONS "${${_component}_DEFINITIONS}" + INTERFACE_INCLUDE_DIRECTORIES ${${_component}_INCLUDE_DIR} +- INTERFACE_LINK_LIBRARIES "${${_component}_LIBRARY_NAME}" +- INTERFACE_LINK_DIRECTORIES "${${_component}_LIBRARY_DIR}" ++ IMPORTED_LOCATION "${${_component}_LIBRARY}" + ) + + __ffmpeg_internal_set_dependencies(${_component}) +- target_link_libraries(FFmpeg::${_lowerComponent} INTERFACE "${${_component}_LIBRARY_NAME}") ++ if(WIN32 AND _lowerComponent STREQUAL "avutil") ++ target_link_libraries(FFmpeg::${_lowerComponent} INTERFACE "Bcrypt.lib") ++ endif() + if (UNIX AND NOT APPLE) + target_link_options(FFmpeg::${_lowerComponent} INTERFACE "-Wl,--exclude-libs=lib${_lowerComponent}") + endif () + endif() + endif() + endforeach () +@@ -361,14 +364,18 @@ if (shared_libs_desired AND NOT FFMPEG_SHARED_COMPONENTS) + endif() + + if (NOT TARGET FFmpeg::FFmpeg) +- add_library(FFmpeg INTERFACE) ++ add_library(FFmpeg INTERFACE IMPORTED) + set_target_properties(FFmpeg PROPERTIES + INTERFACE_COMPILE_OPTIONS "${FFMPEG_DEFINITIONS}" + INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}" +- INTERFACE_LINK_LIBRARIES "${FFMPEG_LIBRARIES}" + INTERFACE_LINK_DIRECTORIES "${FFMPEG_LIBRARY_DIRS}" + ) ++ target_link_libraries(FFmpeg INTERFACE ${FFMPEG_LIBRARIES}) +- add_library(FFmpeg::FFmpeg ALIAS FFmpeg) ++ if(WIN32) ++ target_link_libraries(FFmpeg INTERFACE "Bcrypt.lib") ++ endif() ++ add_library(FFmpeg::FFmpeg INTERFACE IMPORTED) ++ target_link_libraries(FFmpeg::FFmpeg INTERFACE FFmpeg) + endif() + + # Compile the list of required vars +diff --git a/cmake/FindGObject.cmake b/cmake/FindGObject.cmake +index 19a8a67..09e95d1 100644 +--- a/cmake/FindGObject.cmake ++++ b/cmake/FindGObject.cmake +@@ -13,8 +13,8 @@ + # ``GObject::GObject`` + # The gobject-2.0 library + +-include(CMakeFindDependencyMacro) +-find_dependency(GLIB2) ++find_package(GLIB2) ++find_package(libffi) + qt_internal_disable_find_package_global_promotion(GLIB2::GLIB2) + + if(NOT TARGET GObject::GObject) +@@ -40,6 +40,7 @@ if(NOT TARGET GObject::GObject) + target_link_libraries(GObject::GObject INTERFACE + ${GObject_LIBRARY} + GLIB2::GLIB2 ++ libffi + ) + endif() + include(FindPackageHandleStandardArgs) diff --git a/vcpkg/ports/qtmultimedia/vcpkg.json b/vcpkg/ports/qtmultimedia/vcpkg.json new file mode 100644 index 000000000..63349c87a --- /dev/null +++ b/vcpkg/ports/qtmultimedia/vcpkg.json @@ -0,0 +1,86 @@ +{ + "name": "qtmultimedia", + "version": "6.8.3", + "description": "Qt Multimedia is an add-on module that provides a rich set of QML types and C++ classes to handle multimedia content.", + "homepage": "https://www.qt.io/", + "license": null, + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "concurrent", + "gui", + "network" + ] + }, + { + "name": "qtshadertools", + "default-features": false + } + ], + "default-features": [ + "widgets" + ], + "features": { + "ffmpeg": { + "description": "Build with ffmpeg", + "dependencies": [ + { + "name": "ffmpeg", + "default-features": false, + "features": [ + "avcodec", + "avdevice", + "avformat", + "swresample", + "swscale" + ] + }, + { + "name": "pulseaudio", + "platform": "linux" + }, + { + "name": "qtdeclarative", + "default-features": false + } + ] + }, + "gstreamer": { + "description": "Build with gstreamer", + "supports": "linux", + "dependencies": [ + "egl", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "qml": { + "description": "Build QML imports", + "dependencies": [ + { + "name": "qtdeclarative", + "default-features": false + } + ] + }, + "widgets": { + "description": "Build Multimedia Widgets", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "widgets" + ] + } + ] + } + } +} diff --git a/vcpkg/ports/qtpositioning/devendor-poly2tri.patch b/vcpkg/ports/qtpositioning/devendor-poly2tri.patch new file mode 100644 index 000000000..85e18ca98 --- /dev/null +++ b/vcpkg/ports/qtpositioning/devendor-poly2tri.patch @@ -0,0 +1,37 @@ +diff --color -Naur a/src/3rdparty/clip2tri/CMakeLists.txt b/src/3rdparty/clip2tri/CMakeLists.txt +--- a/src/3rdparty/clip2tri/CMakeLists.txt 2023-05-13 16:59:42.377052155 +0200 ++++ b/src/3rdparty/clip2tri/CMakeLists.txt 2023-05-13 23:05:44.950379088 +0200 +@@ -4,6 +4,7 @@ + ## Bundled_Clip2Tri Generic Library: + ##################################################################### + ++find_package(poly2tri) + qt_internal_add_3rdparty_library(Bundled_Clip2Tri + QMAKE_LIB_NAME _clip2tri + STATIC +@@ -13,11 +14,12 @@ + clip2tri.cpp clip2tri.h + INCLUDE_DIRECTORIES + ../clipper +- ../poly2tri + LIBRARIES + Qt::Bundled_Clipper # special case +- Qt::Bundled_Poly2Tri # special case ++ poly2tri::poly2tri + ) ++target_link_libraries(Bundled_Clip2Tri PRIVATE poly2tri::poly2tri) ++set_target_properties(poly2tri::poly2tri PROPERTIES INTERFACE_QT_PACKAGE_NAME poly2tri) + qt_disable_warnings(Bundled_Clip2Tri) + qt_set_symbol_visibility_hidden(Bundled_Clip2Tri) + +diff --color -Naur a/src/CMakeLists.txt b/src/CMakeLists.txt +--- a/src/CMakeLists.txt 2023-05-13 16:59:42.379052157 +0200 ++++ b/src/CMakeLists.txt 2023-05-13 17:00:19.256085781 +0200 +@@ -2,7 +2,6 @@ + # SPDX-License-Identifier: BSD-3-Clause + + # special case begin +-add_subdirectory(3rdparty/poly2tri) + add_subdirectory(3rdparty/clipper) + add_subdirectory(3rdparty/clip2tri) + add_subdirectory(positioning) diff --git a/vcpkg/ports/qtpositioning/foregroundservice.patch b/vcpkg/ports/qtpositioning/foregroundservice.patch new file mode 100644 index 000000000..640f85297 --- /dev/null +++ b/vcpkg/ports/qtpositioning/foregroundservice.patch @@ -0,0 +1,15 @@ +diff --git a/src/plugins/position/android/src/jnipositioning.cpp b/src/plugins/position/android/src/jnipositioning.cpp +index 2b2919f..bc42c2e 100644 +--- a/src/plugins/position/android/src/jnipositioning.cpp ++++ b/src/plugins/position/android/src/jnipositioning.cpp +@@ -589,10 +589,6 @@ namespace AndroidPositioning { + { + QLocationPermission permission; + +- // The needed permission depends on whether we run as a service or as an activity +- if (!QNativeInterface::QAndroidApplication::isActivityContext()) +- permission.setAvailability(QLocationPermission::Always); // background location +- + bool permitted = false; + if (accuracy & AccuracyType::Precise) { + permission.setAccuracy(QLocationPermission::Precise); diff --git a/vcpkg/ports/qtpositioning/portfile.cmake b/vcpkg/ports/qtpositioning/portfile.cmake new file mode 100644 index 000000000..a5b211b1f --- /dev/null +++ b/vcpkg/ports/qtpositioning/portfile.cmake @@ -0,0 +1,25 @@ +set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") +include("${SCRIPT_PATH}/qt_install_submodule.cmake") + +set(${PORT}_PATCHES + devendor-poly2tri.patch + foregroundservice.patch) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +FEATURES + "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick +INVERTED_FEATURES + "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick +) + +list(APPEND FEATURE_OPTIONS "-DCMAKE_DISABLE_FIND_PACKAGE_Gypsy=ON" + "-DCMAKE_DISABLE_FIND_PACKAGE_Gconf=ON" +) + + + +qt_install_submodule(PATCHES ${${PORT}_PATCHES} + CONFIGURE_OPTIONS ${FEATURE_OPTIONS} + CONFIGURE_OPTIONS_RELEASE + CONFIGURE_OPTIONS_DEBUG + ) diff --git a/vcpkg/ports/qtpositioning/vcpkg.json b/vcpkg/ports/qtpositioning/vcpkg.json new file mode 100644 index 000000000..6634396a5 --- /dev/null +++ b/vcpkg/ports/qtpositioning/vcpkg.json @@ -0,0 +1,30 @@ +{ + "name": "qtpositioning", + "version": "6.8.3", + "description": "The Qt Positioning API provides positioning information via QML and C++ interfaces.", + "homepage": "https://www.qt.io/", + "license": null, + "dependencies": [ + "jhasse-poly2tri", + { + "name": "qtbase", + "default-features": false + }, + { + "name": "qtserialport", + "default-features": false, + "platform": "!ios" + } + ], + "features": { + "qml": { + "description": "Build QML imports", + "dependencies": [ + { + "name": "qtdeclarative", + "default-features": false + } + ] + } + } +} From 9f454b0376ccb3c07ece876c9dba9c82848ffb7a Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 13:05:36 +0200 Subject: [PATCH 022/118] clean some linux space --- .github/workflows/linux.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index e59f4f1a6..a384e6928 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -39,6 +39,9 @@ jobs: with: path: mm + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + - name: Install Build Dependencies run: | sudo apt-get update -y From ff51a3fd06cd92e47f84bc590e991dd4e4a0176c Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 13:07:45 +0200 Subject: [PATCH 023/118] clean some linux space --- .github/workflows/linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index a384e6928..81003b4c6 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -39,8 +39,8 @@ jobs: with: path: mm - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main + - name: Free Disk Space + uses: jlumbroso/free-disk-space@main - name: Install Build Dependencies run: | From b44ee31c342a9caa1bf9b08dc853f278963bf4b2 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 13:54:30 +0200 Subject: [PATCH 024/118] more fixes --- .github/workflows/android.yml | 177 +++++++++++------------------- .github/workflows/win.yml | 153 +++++++++++++------------- vcpkg.json | 13 ++- vcpkg/ports/qgis/portfile.cmake | 32 +----- vcpkg/ports/qtbase/README | 1 + vcpkg/ports/qtbase/portfile.cmake | 6 + 6 files changed, 158 insertions(+), 224 deletions(-) create mode 100644 vcpkg/ports/qtbase/README diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2ac88e197..dac2dec44 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,4 +1,4 @@ -name: Android +name: android Build # TODO remove skip: true @@ -6,7 +6,7 @@ skip: true on: push: paths: - - 'vcpkg-overlay/**' + - 'vcpkg/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' @@ -32,25 +32,22 @@ jobs: fail-fast: false matrix: include: - # - TRIPLET: 'arm-android' - # QT_ARCH: 'android_armv7' - # ANDROID_ABI: 'armeabi-v7a' + - TRIPLET: 'arm-android' + QT_ARCH: 'android_armv7' + ANDROID_ABI: 'armeabi-v7a' - TRIPLET: 'arm64-android' QT_ARCH: 'android_arm64_v8a' ANDROID_ABI: 'arm64-v8a' runs-on: macos-15 env: - QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change NDK_VERSION: 'r26' # '26.1.10909125' NDK_VERSION_FULL: r26b JDK_VERSION: 17 SDK_PLATFORM: android-34 + ANDROIDAPI: 24 # TODO SDK_BUILD_TOOLS: 34.0.0 - CCACHE_DIR: /Users/runner/work/ccache - GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} - CACHE_VERSION: 0 - CMAKE_VERSION: '3.29.0' + CMAKE_VERSION: '3.31.6' QT_ANDROID_KEYSTORE_ALIAS: input QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} @@ -59,10 +56,8 @@ jobs: steps: - uses: actions/checkout@v4 - - - name: Disk space before cleanup - run: | - df -h . + with: + path: mm # # Free up space by removing unused XCode versions @@ -75,52 +70,11 @@ jobs: run: | find /Applications/Xcode_* -maxdepth 0 -type d ! -name 'Xcode_${{ env.XC_VERSION }}.app' -exec rm -rf {} \; - - name: Disk space after cleanup - run: | - df -h . - - # CCache - - name: Prepare build cache for pull request - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name == 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - key: build-android-ccache-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }} - # The head_ref or source branch of the pull request in a workflow run. - # The base_ref or target branch of the pull request in a workflow run. - restore-keys: | - build-android-ccache-${{ github.actor }}-${{ github.head_ref }}- - build-android-ccache-refs/heads/${{ github.base_ref }}- - build-android-ccache-refs/heads/master- - - - name: Prepare build cache for branch/tag - # use a fork of actions/cache@v2 to upload cache even when the build or test failed - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name != 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ - key: build-android-ccache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - build-android-ccache-${{ github.ref }}- - build-android-ccache-refs/heads/master- - - - name: Install ccache - run: | - mkdir -p ${CCACHE_DIR} - brew install ccache - ccache --set-config=max_size=2.0G - ccache -s - - name: Install Build Dependencies run: | - brew update - + brew uninstall cmake brew install gnupg - brew install openssl - brew install ninja - brew install aqtinstall - brew install automake bison flex gnu-sed autoconf-archive libtool gettext + brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg mono echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH @@ -138,43 +92,39 @@ jobs: echo "GIT_TAG=$GIT_TAG" >> $GITHUB_ENV echo "GIT_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV - - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: cmakeVersion: ${{ env.CMAKE_VERSION }} - - name: Setup compiler - uses: maxim-lobanov/setup-xcode@v1 + - name: Setup XCode + uses: maxim-lobanov/setup-xcode@v1.6.0 with: xcode-version: ${{ env.XC_VERSION }} - - name: Cache Qt - id: cache-qt - uses: pat-s/always-upload-cache@v3.0.11 - with: - path: ${{ github.workspace }}/Qt - key: ${{ runner.os }}-QtCache-v6-${{ env.QT_VERSION }}-android - - - name: Install Qt - if: steps.cache-qt.outputs.cache-hit != 'true' + - name: Extract Mergin API_KEY + env: + MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | - aqt install-qt \ - mac android ${{ env.QT_VERSION }} android_arm64_v8a \ - -m qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth \ - -O ${{ github.workspace }}/Qt - - aqt install-qt \ - mac android ${{ env.QT_VERSION }} android_armv7 \ - -m qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth \ - -O ${{ github.workspace }}/Qt - - aqt install-qt \ - mac desktop ${{ env.QT_VERSION }} \ - -m qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth \ - -O ${{ github.workspace }}/Qt - - # Android SDK & NDK + cd mm/core/ + $HOMEBREW_PREFIX/bin/openssl \ + aes-256-cbc -d \ + -in merginsecrets.cpp.enc \ + -out merginsecrets.cpp \ + -k "$MERGINSECRETS_DECRYPT_KEY" \ + -md md5 + + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ccache-${{ env.TRIPLET }} + max-size: 200M + + - name: Install CMake and Ninja + uses: lukka/get-cmake@latest + with: + cmakeVersion: ${{ env.CMAKE_VERSION }} + - uses: nttld/setup-ndk@v1 id: setup-ndk with: @@ -194,31 +144,19 @@ jobs: run: | sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools - - name: Extract Mergin API_KEY - env: - MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} - run: | - cd core/ - /opt/homebrew/bin/openssl \ - aes-256-cbc -d \ - -in merginsecrets.cpp.enc \ - -out merginsecrets.cpp \ - -k "$MERGINSECRETS_DECRYPT_KEY" \ - -md md5 - - name: Extract GPS keystore env: INPUTKEYSTORE_DECRYPT_KEY: ${{ secrets.INPUTKEYSTORE_DECRYPT_KEY }} run: | - /opt/homebrew/bin/openssl \ + $HOMEBREW_PREFIX/bin/openssl \ aes-256-cbc -d \ - -in Input_keystore.keystore.enc \ - -out Input_keystore.keystore \ + -in mm/Input_keystore.keystore.enc \ + -out mm/Input_keystore.keystore \ -k $INPUTKEYSTORE_DECRYPT_KEY \ -md md5 - PATH_TO_KEYSTORE=`pwd`/Input_keystore.keystore + PATH_TO_KEYSTORE=`pwd`/mm/Input_keystore.keystore echo "path to keystore $PATH_TO_KEYSTORE" echo "QT_ANDROID_KEYSTORE_PATH=$PATH_TO_KEYSTORE" >> $GITHUB_ENV @@ -254,35 +192,46 @@ jobs: # add build number to summary echo ":rocket: Build number: ${BUILD_NUM}" >> $GITHUB_STEP_SUMMARY - - name: Configure Input + - name: Configure app env: ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} ANDROID_NDK_HOST: darwin-x86_64 - QT_BASE: ${{ github.workspace }}/Qt/${{ env.QT_VERSION }} run: | - mkdir -p ${{ github.workspace }}/build-Input - cd ${{ github.workspace }}/build-Input + mkdir -p ${{ github.workspace }}/build-mm + cd ${{ github.workspace }}/build-mm - export Qt6_DIR=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/${{ matrix.QT_ARCH }} - export QT_HOST_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos export PATH=${{ env.VCPKG_ROOT }}:$PATH export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_ABI=${{ matrix.ANDROID_ABI }} + # -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" \ + cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" \ - -DQT_HOST_PATH=$QT_BASE/macos \ + -D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ + -D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ + -D ANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ + -D ANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ + -D VCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ + -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ + -DANDROID_ARM_NEON=ON \ + -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ + -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ + -DANDROIDAPI=${ANDROIDAPI} \ + -DANDROID_PLATFORM=android-${ANDROIDAPI} \ + -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ + -DANDROID_STL="c++_shared" + -DQT_ANDROID_SIGN_APK=Yes \ -DQT_ANDROID_SIGN_AAB=Yes \ -DUSE_MM_SERVER_API_KEY=Yes \ -DUSE_KEYCHAIN=No \ - -DCMAKE_TOOLCHAIN_FILE=$QT_BASE/android_arm64_v8a/lib/cmake/Qt6/qt.toolchain.cmake \ + -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ -GNinja \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -S ../ \ + -S ../mm \ -B ./ - name: Build APK @@ -292,7 +241,7 @@ jobs: QT_BASE: ${{ github.workspace }}/Qt/${{ env.QT_VERSION }} INPUT_SDK_ANDROID_BASE: ${{ github.workspace }}/input-sdk run: | - cd ${{ github.workspace }}/build-Input + cd ${{ github.workspace }}/build-mm ninja apk echo "APKs:" @@ -301,7 +250,7 @@ jobs: - name: Rename APK artefacts run: | mv \ - ${{ github.workspace }}/build-Input/app/android-build/build/outputs/apk/release/android-build-release-signed.apk \ + ${{ github.workspace }}/build-mm/app/android-build/build/outputs/apk/release/android-build-release-signed.apk \ ${{ github.workspace }}/merginmaps-${{ env.INPUT_VERSION_CODE }}.apk - name: Upload APK to Artifacts @@ -328,7 +277,7 @@ jobs: if: ${{ github.ref_name == 'master' || startsWith( github.ref_name, 'dev/' ) || github.ref_type == 'tag' }} run: | mv \ - ${{ github.workspace }}/build-Input/app/android-build/build/outputs/bundle/release/android-build-release.aab \ + ${{ github.workspace }}/build-mm/app/android-build/build/outputs/bundle/release/android-build-release.aab \ ${{ github.workspace }}/merginmaps-${{ env.INPUT_VERSION_CODE }}.aab - name: Upload AAB to Artifacts diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index c30285ef4..f3e1e8884 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -1,12 +1,9 @@ name: Build win64 -# TODO remove -skip: true - on: push: paths: - - 'vcpkg-overlay/**' + - 'vcpkg/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' @@ -16,34 +13,35 @@ on: - 'cmake_templates/**' - 'CMakeLists.txt' - '.github/workflows/win.yml' - + release: types: - published - + concurrency: group: ci-${{github.ref}}-windows cancel-in-progress: true - + jobs: win64_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) runs-on: windows-2022 - + env: - QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change - INPUT_SDK_VERSION: x64-windows-20250327-248 CCACHE_DIR: C:/ccache-cache # https://linux.die.net/man/1/ccache - CACHE_VERSION: 0 VS_VERSION: "2022" - CMAKE_VERSION: '3.29.0' + CMAKE_VERSION: '3.31.6' QT_ARCH: "win64_msvc2022_64" - + TRIPLET: x64-windows + CMAKE_GENERATOR: "Visual Studio 17 2022" # see https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md + CMAKE_ARCH: "x64" + VCPKG_ROOT: "C:/vcpkg-root" # Looks like there is more space on C: than on D: drive (~14GB) + steps: - - name: Checkout Input - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 with: - path: input + path: mm - name: Prepare vars id: vars @@ -61,57 +59,53 @@ jobs: - name: Install ccache shell: cmd run: | - choco install ccache choco install nsis - where ccache - where openssl - where makensis - + - name: Extract Mergin API_KEY shell: cmd env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | - cd input/core/ + cd mm/core/ openssl aes-256-cbc -d -in merginsecrets.cpp.enc -out merginsecrets.cpp -k "%MERGINSECRETS_DECRYPT_KEY%" -md md5 - - name: Prepare build cache for pull request - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name == 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - key: build-win64-ccache-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }} - # The head_ref or source branch of the pull request in a workflow run. - # The base_ref or target branch of the pull request in a workflow run. - restore-keys: | - build-win64-ccache-${{ github.actor }}-${{ github.head_ref }}- - build-win64-ccache-refs/heads/${{ github.base_ref }}- - build-win64-ccache-refs/heads/master- - - - name: Prepare build cache for branch/tag - # use a fork of actions/cache@v2 to upload cache even when the build or test failed - uses: pat-s/always-upload-cache@v3.0.11 - if: github.event_name != 'pull_request' - with: - path: ${{ env.CCACHE_DIR }} - # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ - key: build-win64-ccache-${{ github.ref }}-${{ github.sha }} - restore-keys: | - build-win64-ccache-${{ github.ref }}- - build-win64-ccache-refs/heads/master- - - - name: Install Qt - uses: jurplel/install-qt-action@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 with: - version: ${{ env.QT_VERSION }} - target: desktop - arch: ${{ env.QT_ARCH }} - dir: ${{ github.workspace }} - modules: 'qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools qtnetworkauth' - cache: true - cache-key-prefix: ${{ runner.os }}-QtCache-v0-${{ env.QT_VERSION }}-win - - # Build Input App + key: ccache-${{ env.TRIPLET }} + max-size: 200M + + - name: Get vcpkg + shell: bash + run: | + mkdir -p "${{ env.VCPKG_ROOT }}" + cd "${{ env.VCPKG_ROOT }}" + git init + git remote add origin https://github.com/microsoft/vcpkg.git + git pull origin master + VCPKG_TAG=`cat ${{ steps.vars.outputs.WORKSPACE_DIR }}/input-sdk/VCPKG_BASELINE` + echo "using VCPKG_TAG ${VCPKG_TAG}" + git checkout ${VCPKG_TAG} + + - name: Install vcpkg + shell: cmd + run: | + CALL "C:\vcpkg-root\bootstrap-vcpkg.bat" + + - name: Setup NuGet Credentials + shell: pwsh + run: | + .$(${{ env.VCPKG_ROOT }}/vcpkg fetch nuget) ` + sources add ` + -Source "https://nuget.pkg.github.com/merginmaps/index.json" ` + -StorePasswordInClearText ` + -Name GitHub ` + -UserName "mergin-maps-bot" ` + -Password "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" + .$(${{ env.VCPKG_ROOT }}/vcpkg fetch nuget) ` + setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" ` + -Source "https://nuget.pkg.github.com/merginmaps/index.json" + - name: Calculate build number shell: bash run: | @@ -124,43 +118,46 @@ jobs: with: vsversion: ${{ env.VS_VERSION }} - - name: Configure Input + - name: Configure app shell: cmd run: | - mkdir install-Input -ea 0 - mkdir build-Input -ea 0 - cd build-Input + mkdir install-mm -ea 0 + mkdir build-mm -ea 0 + cd build-mm cmake ^ -DCMAKE_BUILD_TYPE=Release ^ - -DCMAKE_PREFIX_PATH:PATH=${{ env.Qt6_Dir }} ^ - -DCMAKE_INSTALL_PREFIX:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/install-Input ^ - -DINPUT_SDK_PATH:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/input-sdk/x64-windows ^ + -DCMAKE_INSTALL_PREFIX:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm ^ + -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" ^ + -G "${{ env.CMAKE_GENERATOR }}" ^ + -A ${{ env.CMAKE_ARCH }} ^ + -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} ^ + -DVCPKG_INSTALL_OPTIONS="--x-buildtrees-root=C:/src" ^ -DUSE_MM_SERVER_API_KEY=TRUE ^ -DUSE_KEYCHAIN=No ^ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ -G "NMake Makefiles" ^ - -S ${{ steps.vars.outputs.WORKSPACE_DIR }}/input ^ + -S ${{ steps.vars.outputs.WORKSPACE_DIR }}/mm ^ -B . - - name: Build Input + - name: Build app shell: cmd run: | - cd build-Input + cd build-mm nmake IF NOT EXIST Input.exe (echo err_INPUT_BUILD & exit /b 1) - - name: Install Input + - name: Install app shell: cmd run: | - cd build-Input + cd build-mm nmake install - mkdir C:\input-package - mkdir C:\input-package\stage - robocopy ${{ steps.vars.outputs.WORKSPACE_DIR }}/install-Input C:\input-package\stage /E /NFL - dir C:\input-package\stage + mkdir C:\mm-package + mkdir C:\mm-package\stage + robocopy ${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm C:\mm-package\stage /E /NFL + dir C:\mm-package\stage - name: Downloading redist shell: bash @@ -168,7 +165,7 @@ jobs: URL="https://aka.ms/vs/17/release/vc_redist.x64.exe" echo "downloading: $URL" curl -fsSL --connect-timeout 60 -o \ - /c/input-package/stage/vc_redist.x64.exe \ + /c/mm-package/stage/vc_redist.x64.exe \ ${URL} - name: Get TimeStamp @@ -177,11 +174,11 @@ jobs: with: format: 'YYYYMMDD' - - name: create package + - name: Create package shell: cmd run: | - makensis.exe input\scripts\input_win.nsi - xcopy C:\input-package\inputapp-win-x86_64.exe mergin-maps-mobile-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe* /Y + makensis.exe mm\scripts\input_win.nsi + xcopy C:\mm-package\inputapp-win-x86_64.exe mergin-maps-mobile-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe* /Y - name: Upload Sdk in Artifacts uses: actions/upload-artifact@v4 diff --git a/vcpkg.json b/vcpkg.json index b23a799f8..49ed74cc9 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -39,7 +39,18 @@ "geodiff", "nu-book-zxing-cpp", "gdal", - "qca", + { + "name": "qca", + "host": true, + "default-features": false + }, + { + "name": "qca", + "default-features": false, + "features": [ + "ossl" + ] + }, "qtkeychain-qt6", "qgis", { diff --git a/vcpkg/ports/qgis/portfile.cmake b/vcpkg/ports/qgis/portfile.cmake index 31ada00de..ba76a7c4a 100644 --- a/vcpkg/ports/qgis/portfile.cmake +++ b/vcpkg/ports/qgis/portfile.cmake @@ -150,18 +150,7 @@ if(VCPKG_TARGET_IS_WINDOWS) FIND_LIB_OPTIONS(SPATIALINDEX ${SPATIALINDEX_LIB_NAME} ${SPATIALINDEX_LIB_NAME}d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) endif() -if(VCPKG_TARGET_IS_IOS) - if(NOT EXISTS "$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") - MESSAGE(FATAL_ERROR "missing libQt6Bundled_Poly2Tri") - endif() - # on iOS (static) Qt ships Poly2Tri ( but without headers :( ) - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) - list(APPEND QGIS_OPTIONS -Dpoly2tri_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include/poly2tri) - list(APPEND QGIS_OPTIONS_DEBUG -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri_debug.a") - list(APPEND QGIS_OPTIONS_RELEASE -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") -else() - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) -endif() +list(APPEND QGIS_OPTIONS "-DWITH_INTERNAL_POLY2TRI:BOOL=OFF") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -254,25 +243,6 @@ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) endif() endif() - - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) - file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake) -else() - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) - if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libqt_poly2tri.a") - set(QT_POLY2TRI_DIR_RELEASE "${CURRENT_INSTALLED_DIR}/lib") - set(QT_POLY2TRI_DIR_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") - elseif(EXISTS "${Qt6_DIR}/../../libqt_poly2tri.a") - set(QT_POLY2TRI_DIR_RELEASE "${Qt6_DIR}/../..") - set(QT_POLY2TRI_DIR_DEBUG "${Qt6_DIR}/../..") - else() - list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri) - endif() - if(DEFINED QT_POLY2TRI_DIR_RELEASE) - list(APPEND QGIS_OPTIONS -DPoly2Tri_INCLUDE_DIR:PATH=${CMAKE_CURRENT_LIST_DIR}/poly2tri) - list(APPEND QGIS_OPTIONS_DEBUG -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_DEBUG}/debug/lib/libqt_poly2tri_debug.a) # static qt only - list(APPEND QGIS_OPTIONS_RELEASE -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_RELEASE}/lib/libqt_poly2tri.a) # static qt only - endif() endif() if(VCPKG_TARGET_IS_OSX) diff --git a/vcpkg/ports/qtbase/README b/vcpkg/ports/qtbase/README new file mode 100644 index 000000000..09073835f --- /dev/null +++ b/vcpkg/ports/qtbase/README @@ -0,0 +1 @@ +https://github.com/microsoft/vcpkg/issues/39832#issuecomment-2221449238 \ No newline at end of file diff --git a/vcpkg/ports/qtbase/portfile.cmake b/vcpkg/ports/qtbase/portfile.cmake index 2f3292cf2..e997ade1c 100644 --- a/vcpkg/ports/qtbase/portfile.cmake +++ b/vcpkg/ports/qtbase/portfile.cmake @@ -511,7 +511,13 @@ string(REPLACE [[set(QT6_HOST_INFO_LIBEXECDIR "bin")]] [[set(QT6_HOST_INFO_LIBEX string(REPLACE [[set(QT6_HOST_INFO_BINDIR "bin")]] [[set(QT6_HOST_INFO_BINDIR "tools/Qt6/bin")]] _contents "${_contents}") file(WRITE "${hostinfofile}" "${_contents}") +# MANUAL FIX - see +# https://github.com/microsoft/vcpkg/issues/44792 if(NOT VCPKG_CROSSCOMPILING OR EXISTS "${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake" + "CMAKE_CURRENT_LIST_DIR}/../../bin/syncqt" + "CMAKE_CURRENT_LIST_DIR}/../../tools/Qt6/bin/syncqt" + IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake" "PACKAGE_PREFIX_DIR}/bin/syncqt" "PACKAGE_PREFIX_DIR}/tools/Qt6/bin/syncqt" From a580ac9f0af8cd12a181998e2193da8264564910 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 14:45:39 +0200 Subject: [PATCH 025/118] more fixes --- .github/workflows/win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index f3e1e8884..8f26ac0dc 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -83,7 +83,7 @@ jobs: git init git remote add origin https://github.com/microsoft/vcpkg.git git pull origin master - VCPKG_TAG=`cat ${{ steps.vars.outputs.WORKSPACE_DIR }}/input-sdk/VCPKG_BASELINE` + VCPKG_TAG=`cat ${{ steps.vars.outputs.WORKSPACE_DIR }}/mm/VCPKG_BASELINE` echo "using VCPKG_TAG ${VCPKG_TAG}" git checkout ${VCPKG_TAG} From 53cfa110506c7085a23722aa9fbf299b589bdba1 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 17:31:47 +0200 Subject: [PATCH 026/118] fix ios/win builds --- .github/workflows/win.yml | 1 - CMakeLists.txt | 20 ++++++-------------- vcpkg/ports/qgis/portfile.cmake | 8 ++++++-- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 8f26ac0dc..3176bf365 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -136,7 +136,6 @@ jobs: -DUSE_MM_SERVER_API_KEY=TRUE ^ -DUSE_KEYCHAIN=No ^ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ - -G "NMake Makefiles" ^ -S ${{ steps.vars.outputs.WORKSPACE_DIR }}/mm ^ -B . diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b8ad102d..2a8a42d61 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,11 +136,6 @@ set(USE_KEYCHAIN "Whether to use keychains/wallets to store credentials. If false, we use QSettings" ) -set(QT6_VERSION - ${QT_VERSION_DEFAULT} - CACHE STRING "QT6 version to use" -) - set(INPUT_VERSION_CODE "${INPUT_VERSION_CODE_DEFAULT}" CACHE STRING "Build version (for stores)" @@ -154,7 +149,7 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # ######################################################################################## find_package( - Qt6 ${QT6_VERSION} + Qt6 COMPONENTS Quick Qml Xml @@ -168,11 +163,8 @@ find_package( Sql Core Core5Compat - REQUIRED -) -find_package( - Qt6 ${QT6_VERSION} - COMPONENTS Multimedia Widgets + Multimedia + Widgets REQUIRED ) @@ -180,7 +172,7 @@ if (NOT IOS) # https://doc.qt.io/qt-6/qtprintsupport-index.html Qt Print Support is not available on # iOS. find_package( - Qt6 ${QT6_VERSION} + Qt6 COMPONENTS PrintSupport REQUIRED ) @@ -231,7 +223,7 @@ endif () if (HAVE_BLUETOOTH) find_package( - Qt6 ${QT6_VERSION} + Qt6 COMPONENTS Bluetooth REQUIRED ) @@ -239,7 +231,7 @@ endif () if (ENABLE_TESTS) find_package( - Qt6 ${QT6_VERSION} + Qt6 COMPONENTS Test REQUIRED ) diff --git a/vcpkg/ports/qgis/portfile.cmake b/vcpkg/ports/qgis/portfile.cmake index ba76a7c4a..43e6af380 100644 --- a/vcpkg/ports/qgis/portfile.cmake +++ b/vcpkg/ports/qgis/portfile.cmake @@ -151,7 +151,12 @@ if(VCPKG_TARGET_IS_WINDOWS) endif() list(APPEND QGIS_OPTIONS "-DWITH_INTERNAL_POLY2TRI:BOOL=OFF") - + +if(VCPKG_CROSSCOMPILING) + list(APPEND QGIS_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND QGIS_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} #PREFER_NINJA @@ -174,7 +179,6 @@ function(copy_path basepath targetdir) endif() endfunction() - if(VCPKG_TARGET_IS_WINDOWS) file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(QGIS_TOOL_PATH) From 67e297add90e7a5ebf12857a76f82eeb6b89af93 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 17:57:28 +0200 Subject: [PATCH 027/118] try fix win --- .github/workflows/win.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 3176bf365..61864d0ce 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -125,6 +125,8 @@ jobs: mkdir build-mm -ea 0 cd build-mm + set PATH="%VCPKG_ROOT%;%PATH%" + cmake ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm ^ From 36c313eaf789f75efb2537c847a56ecd2de7ee6c Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 18:06:30 +0200 Subject: [PATCH 028/118] try fix win --- .github/workflows/win.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 61864d0ce..4f895094a 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -125,7 +125,10 @@ jobs: mkdir build-mm -ea 0 cd build-mm - set PATH="%VCPKG_ROOT%;%PATH%" + set PATH=${{ env.VCPKG_ROOT }};%PATH% + + where.exe vcpkg + where.exe cmake cmake ^ -DCMAKE_BUILD_TYPE=Release ^ From 92163900cbaebb29f71d1bab9722772fe6fa8162 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 18:11:22 +0200 Subject: [PATCH 029/118] try fix win --- .github/workflows/win.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 4f895094a..41ace9f48 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -113,23 +113,20 @@ jobs: echo "INPUT_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV echo "Version code: ${BUILD_NUM}" - - name: Developer Command Prompt for Microsoft Visual C++ - uses: ilammy/msvc-dev-cmd@v1 - with: - vsversion: ${{ env.VS_VERSION }} - + - name: Setup compiler + shell: cmd + run: | + CALL "C:\Program Files\Microsoft Visual Studio\${{ env.VS_VERSION }}\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=${{ env.CMAKE_ARCH }} + - name: Configure app shell: cmd run: | mkdir install-mm -ea 0 mkdir build-mm -ea 0 cd build-mm - + set PATH=${{ env.VCPKG_ROOT }};%PATH% - - where.exe vcpkg - where.exe cmake - + cmake ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm ^ From 396f91033538db9f66808e56e7c4c9d80cd9fee7 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 20:27:24 +0200 Subject: [PATCH 030/118] fix upload --- .github/workflows/ios.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 3f54981a5..3d6565dd7 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -205,7 +205,7 @@ jobs: INPUTAPP_BOT_GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} if: success() run: | - CF_BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" build-INPUT/app/CMakeFiles/Input.dir/Info.plist` + CF_BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" build-mm/app/CMakeFiles/Input.dir/Info.plist` echo "Publishing ios ${CF_BUNDLE_VERSION}" xcrun altool --upload-app -t ios -f build-mm/Input.ipa -u "$INPUTAPP_BOT_APPLEID_USER" -p "$INPUTAPP_BOT_APPLEID_PASS" --verbose From 8d9457daf34836873bbc8564b90a1ed33f2d98b6 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 20:28:33 +0200 Subject: [PATCH 031/118] bump version --- vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg.json b/vcpkg.json index 49ed74cc9..68f4880f6 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -9,7 +9,7 @@ }, "name": "merginmaps-mobile-app", "description": "Collect. Share. Publish.", - "version": "2025.2.0", + "version": "2025.2.1", "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ { From bac4d214e30ac8057520bcaca6ce20600ff7f42b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 20:30:48 +0200 Subject: [PATCH 032/118] install missing package --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 81003b4c6..eeeb1cd0b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -50,7 +50,7 @@ jobs: gperf autopoint '^libxcb.*-dev' libx11-xcb-dev libegl1-mesa libegl1-mesa-dev \ libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \ autoconf-archive libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libfuse2 \ - bison flex lcov + bison flex lcov nasm # Required to run unit tests on linux echo "QT_QPA_PLATFORM=offscreen" >> $GITHUB_ENV From a4fc9b9d6765dbf386885437b66f9abc655b2c6d Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Thu, 24 Apr 2025 08:55:33 +0200 Subject: [PATCH 033/118] another try --- .github/workflows/linux.yml | 2 +- CMakeLists.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index eeeb1cd0b..15fffadc3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -50,7 +50,7 @@ jobs: gperf autopoint '^libxcb.*-dev' libx11-xcb-dev libegl1-mesa libegl1-mesa-dev \ libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \ autoconf-archive libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libfuse2 \ - bison flex lcov nasm + bison flex lcov nasm libxrandr-dev # Required to run unit tests on linux echo "QT_QPA_PLATFORM=offscreen" >> $GITHUB_ENV diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a8a42d61..c3984d008 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,6 +148,10 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## +if (WIN) + find_package(WMF REQUIRED) +endif () + find_package( Qt6 COMPONENTS Quick From bdce8a9b8e0df03195733d8e596a603ce8f1e925 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Thu, 24 Apr 2025 09:01:44 +0200 Subject: [PATCH 034/118] setup caching on win --- .github/workflows/android.yml | 1 + .github/workflows/win.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index dac2dec44..5c63df288 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -46,6 +46,7 @@ jobs: JDK_VERSION: 17 SDK_PLATFORM: android-34 ANDROIDAPI: 24 # TODO + VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' SDK_BUILD_TOOLS: 34.0.0 CMAKE_VERSION: '3.31.6' QT_ANDROID_KEYSTORE_ALIAS: input diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 41ace9f48..0cc641d4f 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -28,9 +28,9 @@ jobs: runs-on: windows-2022 env: - CCACHE_DIR: C:/ccache-cache # https://linux.die.net/man/1/ccache VS_VERSION: "2022" CMAKE_VERSION: '3.31.6' + VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' QT_ARCH: "win64_msvc2022_64" TRIPLET: x64-windows CMAKE_GENERATOR: "Visual Studio 17 2022" # see https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md From 33ca25b0ae5951ab0ad647360024efe7e340172b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Thu, 24 Apr 2025 18:07:10 +0200 Subject: [PATCH 035/118] try to fix --- .github/workflows/macos.yml | 1 + CMakeLists.txt | 2 +- vcpkg/ports/README.md | 9 +++++++++ vcpkg/ports/qtbase/README | 1 - 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 vcpkg/ports/README.md delete mode 100644 vcpkg/ports/qtbase/README diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index cdfe0fadb..d731060a6 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -121,6 +121,7 @@ jobs: -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ + -DHAVE_BLUETOOTH=FALSE \ -DUSE_KEYCHAIN=No \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ -DCOVERAGE=TRUE \ diff --git a/CMakeLists.txt b/CMakeLists.txt index c3984d008..caa709069 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,7 +215,7 @@ find_package(libzip CONFIG REQUIRED) find_package(OpenSSL CONFIG REQUIRED) find_package(GeoTIFF CONFIG REQUIRED) # find_package(Lzma CONFIG REQUIRED) -find_package(Zstd CONFIG REQUIRED) +# find_package(Zstd CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) # find_package(Utf8 CONFIG REQUIRED) find_package(Absl CONFIG REQUIRED) diff --git a/vcpkg/ports/README.md b/vcpkg/ports/README.md new file mode 100644 index 000000000..a928a528f --- /dev/null +++ b/vcpkg/ports/README.md @@ -0,0 +1,9 @@ +- Geodiff - no official port in vcpkg +- libb2 - bug, see: https://github.com/microsoft/vcpkg/issues/43326#issuecomment-2827154631 +- qca - we needed 2.3.9, there is 2.3.7 in main repo +- qgis - no official port in vcpkg +- qtbase - https://github.com/microsoft/vcpkg/issues/39832#issuecomment-2221449238 +- qtdeclarative - unknown +- qtkeychain-qt6 - official port uses qt5 +- qtmultimedia - unknown +- qtpositioning - unknown diff --git a/vcpkg/ports/qtbase/README b/vcpkg/ports/qtbase/README deleted file mode 100644 index 09073835f..000000000 --- a/vcpkg/ports/qtbase/README +++ /dev/null @@ -1 +0,0 @@ -https://github.com/microsoft/vcpkg/issues/39832#issuecomment-2221449238 \ No newline at end of file From dc1eb68c58bdf14aa323f2e8e87eb23defd48c44 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 08:17:56 +0200 Subject: [PATCH 036/118] try to fix builds --- .github/workflows/win.yml | 2 +- CMakeLists.txt | 6 ++---- app/position/positionkit.cpp | 2 +- app/test/testmaptools.cpp | 5 +++++ app/test/testvariablesmanager.cpp | 8 +++++++- vcpkg/triplets/x64-windows.cmake | 4 ++-- 6 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 0cc641d4f..fb0fd0f6e 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -1,4 +1,4 @@ -name: Build win64 +name: win64 Build on: push: diff --git a/CMakeLists.txt b/CMakeLists.txt index caa709069..470c1f3e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,11 +214,9 @@ find_package(ZXing CONFIG REQUIRED) find_package(libzip CONFIG REQUIRED) find_package(OpenSSL CONFIG REQUIRED) find_package(GeoTIFF CONFIG REQUIRED) -# find_package(Lzma CONFIG REQUIRED) -# find_package(Zstd CONFIG REQUIRED) +# find_package(Lzma CONFIG REQUIRED) find_package(Zstd CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) -# find_package(Utf8 CONFIG REQUIRED) -find_package(Absl CONFIG REQUIRED) +# find_package(Utf8 CONFIG REQUIRED) find_package(Absl CONFIG REQUIRED) if (IOS OR MACOS) find_package(AppleFrameworks REQUIRED) diff --git a/app/position/positionkit.cpp b/app/position/positionkit.cpp index 6510cb464..643366d0d 100644 --- a/app/position/positionkit.cpp +++ b/app/position/positionkit.cpp @@ -93,7 +93,7 @@ AbstractPositionProvider *PositionKit::constructProvider( const QString &type, c providerType = QStringLiteral( "internal" ); #endif - if ( type == QStringLiteral( "external" ) ) + if ( providerType == QStringLiteral( "external" ) ) { #ifdef HAVE_BLUETOOTH AbstractPositionProvider *provider = new BluetoothPositionProvider( id, name ); diff --git a/app/test/testmaptools.cpp b/app/test/testmaptools.cpp index faccb1d7a..685bda4dd 100644 --- a/app/test/testmaptools.cpp +++ b/app/test/testmaptools.cpp @@ -33,7 +33,10 @@ #include "featurelayerpair.h" #include "streamingintervaltype.h" + +#ifdef HAVE_BLUETOOTH #include "position/providers/bluetoothpositionprovider.h" +#endif void setupMapSettings( InputMapSettings *settings, QgsProject *project, QgsRectangle extent, QSize outputsize ) { @@ -2562,6 +2565,7 @@ void TestMapTools::testAntennaHeight() void TestMapTools::testSmallTracking() { +#ifdef HAVE_BLUETOOTH QgsVectorLayer *pointLayer = new QgsVectorLayer( QStringLiteral( "PointZ?crs=epsg:4326" ), QString(), QStringLiteral( "memory" ) ); RecordingMapTool mapTool; @@ -2610,6 +2614,7 @@ void TestMapTools::testSmallTracking() QVERIFY( mapTool.hasValidGeometry() ); QVERIFY( mapTool.recordedGeometry().constGet()->nCoordinates() == 1 ); QCOMPARE( mapTool.recordedGeometry().vertexAt( 0 ), mPositionKit->positionCoordinate() ); +#endif } void TestMapTools::testAvoidIntersections() diff --git a/app/test/testvariablesmanager.cpp b/app/test/testvariablesmanager.cpp index 0d4ef2573..e7bda0498 100644 --- a/app/test/testvariablesmanager.cpp +++ b/app/test/testvariablesmanager.cpp @@ -13,9 +13,13 @@ #include "test/testmerginapi.h" #include "testutils.h" -#include "position/providers/bluetoothpositionprovider.h" + #include "merginapi.h" +#ifdef HAVE_BLUETOOTH +#include "position/providers/bluetoothpositionprovider.h" +#endif + TestVariablesManager::TestVariablesManager( MerginApi *api, VariablesManager *vm, PositionKit *pk, AppSettings *as ) { mVariablesManager = vm; @@ -41,6 +45,7 @@ void TestVariablesManager::cleanup() void TestVariablesManager::testPositionVariables() { +#ifdef HAVE_BLUETOOTH mAppSettings->setGpsAntennaHeight( 0 ); BluetoothPositionProvider *btProvider = new BluetoothPositionProvider( "AA:AA:FF:AA:00:10", "testBluetoothProvider" ); @@ -92,6 +97,7 @@ void TestVariablesManager::testPositionVariables() evaluateExpression( QStringLiteral( "@position_gps_antenna_height" ), QStringLiteral( "1.678" ), &context ); mAppSettings->setGpsAntennaHeight( 0 ); +#endif } void TestVariablesManager::testUserVariables() diff --git a/vcpkg/triplets/x64-windows.cmake b/vcpkg/triplets/x64-windows.cmake index 42894919c..f6c40253a 100644 --- a/vcpkg/triplets/x64-windows.cmake +++ b/vcpkg/triplets/x64-windows.cmake @@ -1,4 +1,4 @@ set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE static) -set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_BUILD_TYPE release) From d60239d23ed88ebf53a3b490a5ced6738164fb6f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 08:59:13 +0200 Subject: [PATCH 037/118] try fix linux? --- app/CMakeLists.txt | 3 +- vcpkg.json | 16 + vcpkg/ports/README.md | 1 + .../gstreamer/base-must-be-enabled.patch | 13 + .../fix-bz2-windows-debug-dependency.patch | 26 + vcpkg/ports/gstreamer/fix-clang-cl-bad.patch | 111 +++ vcpkg/ports/gstreamer/fix-clang-cl-base.patch | 13 + vcpkg/ports/gstreamer/fix-clang-cl-good.patch | 22 + .../gstreamer/fix-clang-cl-gstreamer.patch | 39 + vcpkg/ports/gstreamer/fix-clang-cl-ugly.patch | 13 + vcpkg/ports/gstreamer/fix-clang-cl.patch | 22 + .../gstreamer-disable-no-unused.patch | 14 + vcpkg/ports/gstreamer/no-downloads.patch | 17 + .../plugin-base-disable-no-unused.patch | 26 + vcpkg/ports/gstreamer/plugins-base-x11.patch | 13 + vcpkg/ports/gstreamer/portfile.cmake | 420 +++++++++ .../ports/gstreamer/remove_x264_define.patch | 18 + vcpkg/ports/gstreamer/srtp_fix.patch | 30 + vcpkg/ports/gstreamer/vcpkg.json | 841 ++++++++++++++++++ vcpkg/triplets/static-ports.cmake | 13 + vcpkg/triplets/x64-linux.cmake | 10 +- 21 files changed, 1678 insertions(+), 3 deletions(-) create mode 100644 vcpkg/ports/gstreamer/base-must-be-enabled.patch create mode 100644 vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch create mode 100644 vcpkg/ports/gstreamer/fix-clang-cl-bad.patch create mode 100644 vcpkg/ports/gstreamer/fix-clang-cl-base.patch create mode 100644 vcpkg/ports/gstreamer/fix-clang-cl-good.patch create mode 100644 vcpkg/ports/gstreamer/fix-clang-cl-gstreamer.patch create mode 100644 vcpkg/ports/gstreamer/fix-clang-cl-ugly.patch create mode 100644 vcpkg/ports/gstreamer/fix-clang-cl.patch create mode 100644 vcpkg/ports/gstreamer/gstreamer-disable-no-unused.patch create mode 100644 vcpkg/ports/gstreamer/no-downloads.patch create mode 100644 vcpkg/ports/gstreamer/plugin-base-disable-no-unused.patch create mode 100644 vcpkg/ports/gstreamer/plugins-base-x11.patch create mode 100644 vcpkg/ports/gstreamer/portfile.cmake create mode 100644 vcpkg/ports/gstreamer/remove_x264_define.patch create mode 100644 vcpkg/ports/gstreamer/srtp_fix.patch create mode 100644 vcpkg/ports/gstreamer/vcpkg.json create mode 100644 vcpkg/triplets/static-ports.cmake diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index b17bf96ce..5894c64eb 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -561,7 +561,8 @@ if (IOS) target_link_libraries( Input PUBLIC AppleFrameworks::CoreLocation AppleFrameworks::CoreHaptics ) - qt_add_ios_ffmpeg_libraries(Input) # Qt Multimedia + # TODO is this needed? + # qt_add_ios_ffmpeg_libraries(Input) # Qt Multimedia endif () if (ENABLE_TESTS) diff --git a/vcpkg.json b/vcpkg.json index 68f4880f6..8194d820f 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -12,6 +12,22 @@ "version": "2025.2.1", "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ + { + "name": "ffmpeg", + "default-features": false, + "features": [ + "avcodec", + "avdevice", + "avformat", + { + "name": "openh264", + "platform": "linux | windows" + }, + "swresample", + "swscale" + ], + "platform": "linux | android | windows" + }, { "name": "sqlite3", "default-features": false, diff --git a/vcpkg/ports/README.md b/vcpkg/ports/README.md index a928a528f..0217a3d12 100644 --- a/vcpkg/ports/README.md +++ b/vcpkg/ports/README.md @@ -7,3 +7,4 @@ - qtkeychain-qt6 - official port uses qt5 - qtmultimedia - unknown - qtpositioning - unknown +- gstreamer - unknown (linux build ffmpeg?) \ No newline at end of file diff --git a/vcpkg/ports/gstreamer/base-must-be-enabled.patch b/vcpkg/ports/gstreamer/base-must-be-enabled.patch new file mode 100644 index 000000000..5a4d3abeb --- /dev/null +++ b/vcpkg/ports/gstreamer/base-must-be-enabled.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 6d07929..df015cb 100644 +--- a/meson.build ++++ b/meson.build +@@ -159,7 +159,7 @@ foreach sp : subprojects + subproj = subproject(project_name, required: is_required, default_options: default_options) + endif + +- if project_name == 'gst-plugins-base' ++ if project_name == 'gst-plugins-base' and subproj.found() + gst_base_orc_req = subproj.get_variable('orc_req', '') + if gst_base_orc_req != orc_req + error('orc_req is "@0@" but it should be "@1@" from subprojects/gst-plugins-base/meson.build' diff --git a/vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch b/vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch new file mode 100644 index 000000000..2be3d28ae --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch @@ -0,0 +1,26 @@ +diff --git a/subprojects/gst-plugins-bad/ext/bz2/meson.build b/subprojects/gst-plugins-bad/ext/bz2/meson.build +index 08d1596..be5fa02 100644 +--- a/subprojects/gst-plugins-bad/ext/bz2/meson.build ++++ b/subprojects/gst-plugins-bad/ext/bz2/meson.build +@@ -4,7 +4,7 @@ bz2_sources = [ + 'gstbz2enc.c', + ] + +-bz2_dep = cc.find_library('bz2', required : get_option('bz2')) ++bz2_dep = dependency('bzip2', required : get_option('bz2')) + + if bz2_dep.found() and cc.has_header_symbol('bzlib.h', 'BZ2_bzlibVersion') + gstbz2 = library('gstbz2', +diff --git a/subprojects/gst-plugins-good/gst/matroska/meson.build b/subprojects/gst-plugins-good/gst/matroska/meson.build +index d8a6a96..dd03de2 100644 +--- a/subprojects/gst-plugins-good/gst/matroska/meson.build ++++ b/subprojects/gst-plugins-good/gst/matroska/meson.build +@@ -12,7 +12,7 @@ matroska_sources = [ + 'lzo.c', + ] + +-bz2_dep = cc.find_library('bz2', required : get_option('bz2')) ++bz2_dep = dependency('bzip2', required : get_option('bz2')) + cdata.set('HAVE_BZ2', bz2_dep.found() and cc.has_header('bzlib.h')) + + gstmatroska = library('gstmatroska', diff --git a/vcpkg/ports/gstreamer/fix-clang-cl-bad.patch b/vcpkg/ports/gstreamer/fix-clang-cl-bad.patch new file mode 100644 index 000000000..c3eeaf1e0 --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl-bad.patch @@ -0,0 +1,111 @@ +diff --git a/subprojects/gst-plugins-bad/ext/dts/meson.build b/subprojects/gst-plugins-bad/ext/dts/meson.build +index c4868a4..6b34cb7 100644 +--- a/subprojects/gst-plugins-bad/ext/dts/meson.build ++++ b/subprojects/gst-plugins-bad/ext/dts/meson.build +@@ -20,7 +20,7 @@ if not dca_dep.found() + endif + + no_warn_c_args = [] +-if cc.get_id() != 'msvc' ++if cc.get_argument_syntax() != 'msvc' + # autotools didn't use the libdca pkg-config cflags, and they + # can point to a non-existing location (/usr/include/dca) + no_warn_c_args = ['-Wno-missing-include-dirs'] +diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build +index 160080a..6acf110 100644 +--- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build ++++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build +@@ -158,7 +158,7 @@ endif + + # MinGW 32bits compiler seems to be complaining about redundant-decls + # when ComPtr is in use. Let's just disable the warning +-if cc.get_id() != 'msvc' ++if cc.get_argument_syntax() != 'msvc' + extra_args = cc.get_supported_arguments([ + '-Wno-redundant-decls', + ]) +diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build +index 84eeb17..1743f41 100644 +--- a/subprojects/gst-plugins-bad/meson.build ++++ b/subprojects/gst-plugins-bad/meson.build +@@ -54,7 +54,7 @@ endif + + cdata = configuration_data() + cdata.set('ENABLE_NLS', 1) + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +diff --git a/subprojects/gst-plugins-bad/sys/asio/meson.build b/subprojects/gst-plugins-bad/sys/asio/meson.build +index c61ad4e..b30793c 100644 +--- a/subprojects/gst-plugins-bad/sys/asio/meson.build ++++ b/subprojects/gst-plugins-bad/sys/asio/meson.build +@@ -15,7 +15,7 @@ endif + + # FIXME: non-msvc is not tested, and unlikely supported yet because of + # tool-chain issue +-if cxx.get_id() != 'msvc' ++if cxx.get_argument_syntax() != 'msvc' + if asio_option.enabled() + error('asio plugin can only be built with MSVC') + else +diff --git a/subprojects/gst-plugins-bad/sys/d3d11/meson.build b/subprojects/gst-plugins-bad/sys/d3d11/meson.build +index 1368b79..8dd3b30 100644 +--- a/subprojects/gst-plugins-bad/sys/d3d11/meson.build ++++ b/subprojects/gst-plugins-bad/sys/d3d11/meson.build +@@ -96,7 +96,7 @@ endif + + # MinGW 32bits compiler seems to be complaining about redundant-decls + # when ComPtr is in use. Let's just disable the warning +-if cc.get_id() != 'msvc' ++if cc.get_argument_syntax() != 'msvc' + extra_mingw_args = cc.get_supported_arguments([ + '-Wno-redundant-decls', + ]) +diff --git a/subprojects/gst-plugins-bad/sys/decklink/meson.build b/subprojects/gst-plugins-bad/sys/decklink/meson.build +index d869e79a4..c7b37a7c6 100644 +--- a/subprojects/gst-plugins-bad/sys/decklink/meson.build ++++ b/subprojects/gst-plugins-bad/sys/decklink/meson.build +@@ -18,7 +18,7 @@ decklink_libs = [] + + if host_system == 'windows' + decklink_sources += ['win/DeckLinkAPIDispatch.cpp', 'win/DeckLinkAPI_i.c'] +- if cxx.get_id() == 'msvc' ++ if cxx.get_argument_syntax() == 'msvc' + # FIXME: Use commsuppwd.lib for debug builds? + comutil_dep = cxx.find_library('comsuppw', required : get_option('decklink')) + if comutil_dep.found() +diff --git a/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build b/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build +index 6b9a059..40713ce 100644 +--- a/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build ++++ b/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build +@@ -54,7 +54,7 @@ if host_system != 'windows' or mf_option.disabled() + subdir_done() + endif + +-if cc.get_id() != 'msvc' ++if cc.get_argument_syntax() != 'msvc' + if mf_option.enabled() + error('mediafoundation plugin can only be built with MSVC') + endif +diff --git a/subprojects/gst-plugins-bad/sys/msdk/meson.build b/subprojects/gst-plugins-bad/sys/msdk/meson.build +index 659b96c..92e6bc4 100644 +--- a/subprojects/gst-plugins-bad/sys/msdk/meson.build ++++ b/subprojects/gst-plugins-bad/sys/msdk/meson.build +@@ -176,12 +176,12 @@ if use_onevpl and have_mfx_ver205 + endif + + if host_machine.system() == 'windows' +- if cc.get_id() != 'msvc' and msdk_option.enabled() ++ if cc.get_argument_syntax() != 'msvc' and msdk_option.enabled() + error('msdk plugin can only be built with MSVC') + endif + legacy_stdio_dep = cc.find_library('legacy_stdio_definitions', required: get_option('msdk')) + msdk_deps = declare_dependency(dependencies: [gstd3d11_dep, legacy_stdio_dep]) +- msdk_deps_found = gstd3d11_dep.found() and legacy_stdio_dep.found() and cc.get_id() == 'msvc' ++ msdk_deps_found = d3d11_dep.found() and legacy_stdio_dep.found() and cc.get_argument_syntax() == 'msvc' + else + libdl_dep = cc.find_library('dl', required: get_option('msdk')) + libgudev_dep = dependency('gudev-1.0', required: get_option('msdk')) diff --git a/vcpkg/ports/gstreamer/fix-clang-cl-base.patch b/vcpkg/ports/gstreamer/fix-clang-cl-base.patch new file mode 100644 index 000000000..227a7e05b --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl-base.patch @@ -0,0 +1,13 @@ +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build +index c040bc9..ce9071c 100644 +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build +@@ -51,7 +51,7 @@ gst_libraries = [] + + cc = meson.get_compiler('c') + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it diff --git a/vcpkg/ports/gstreamer/fix-clang-cl-good.patch b/vcpkg/ports/gstreamer/fix-clang-cl-good.patch new file mode 100644 index 000000000..10be6030a --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl-good.patch @@ -0,0 +1,22 @@ +diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build +index 64705379f..0c55b9732 100644 +--- a/subprojects/gst-plugins-good/meson.build ++++ b/subprojects/gst-plugins-good/meson.build +@@ -30,7 +30,7 @@ plugins = [] + cc = meson.get_compiler('c') + host_system = host_machine.system() + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +@@ -183,7 +183,7 @@ cdata.set('SIZEOF_OFF_T', cc.sizeof('off_t')) + # Here be fixmes. + # FIXME: check if this is correct + cdata.set('HAVE_CPU_X86_64', host_machine.cpu() == 'amd64') +-cdata.set('HAVE_GCC_ASM', cc.get_id() != 'msvc') ++cdata.set('HAVE_GCC_ASM', cc.get_argument_syntax() != 'msvc') + cdata.set_quoted('VERSION', gst_version) + cdata.set_quoted('PACKAGE_VERSION', gst_version) + cdata.set_quoted('GST_LICENSE', 'LGPL') diff --git a/vcpkg/ports/gstreamer/fix-clang-cl-gstreamer.patch b/vcpkg/ports/gstreamer/fix-clang-cl-gstreamer.patch new file mode 100644 index 000000000..a89167b30 --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl-gstreamer.patch @@ -0,0 +1,39 @@ +diff --git a/subprojects/gstreamer/gst/parse/meson.build b/subprojects/gstreamer/gst/parse/meson.build +index b79a07c..891f907 100644 +--- a/subprojects/gstreamer/gst/parse/meson.build ++++ b/subprojects/gstreamer/gst/parse/meson.build +@@ -16,7 +16,7 @@ else + endif + + flex_cdata.set('FLEX', flex.full_path()) +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + flex_cdata.set('FLEX_ARGS', '--nounistd') + else + flex_cdata.set('FLEX_ARGS', '') +diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build +index 941bedc..cd37a40 100644 +--- a/subprojects/gstreamer/meson.build ++++ b/subprojects/gstreamer/meson.build +@@ -47,7 +47,7 @@ endif + + cdata = configuration_data() + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +@@ -347,8 +347,10 @@ static __uint128_t v2 = 10; + static __uint128_t u; + u = v1 / v2; + }''' +-if cc.compiles(uint128_t_src, name : '__uint128_t available') +- cdata.set('HAVE_UINT128_T', 1) ++if cc.get_argument_syntax() != 'msvc' ++ if cc.compiles(uint128_t_src, name : '__uint128_t available') ++ cdata.set('HAVE_UINT128_T', 1) ++ endif + endif + + # All supported platforms have long long now diff --git a/vcpkg/ports/gstreamer/fix-clang-cl-ugly.patch b/vcpkg/ports/gstreamer/fix-clang-cl-ugly.patch new file mode 100644 index 000000000..100b6a7b6 --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl-ugly.patch @@ -0,0 +1,13 @@ +diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build +index 14be48c4c..83d019874 100644 +--- a/subprojects/gst-plugins-ugly/meson.build ++++ b/subprojects/gst-plugins-ugly/meson.build +@@ -31,7 +31,7 @@ if have_cxx + cxx = meson.get_compiler('cpp') + endif + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it diff --git a/vcpkg/ports/gstreamer/fix-clang-cl.patch b/vcpkg/ports/gstreamer/fix-clang-cl.patch new file mode 100644 index 000000000..ac00b9e13 --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl.patch @@ -0,0 +1,22 @@ +diff --git a/meson.build b/meson.build +index 1316366ed..daeaf3cb1 100644 +--- a/meson.build ++++ b/meson.build +@@ -62,7 +62,7 @@ endif + # Ensure that MSVC interprets all source code as UTF-8. Only do this when we're + # not a subproject, because subprojects are not allowed to call + # add_global_arguments(). +-if not meson.is_subproject() and cc.get_id() == 'msvc' ++if not meson.is_subproject() and cc.get_argument_syntax() == 'msvc' + add_global_arguments( + cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8 + language: ['c', 'cpp']) +@@ -316,7 +316,7 @@ if get_option('default_library') == 'static' + if cc.has_link_argument(link_arg) + gstfull_link_args += link_arg + link_deps += symbol_map +- elif cc.get_id() == 'msvc' ++ elif cc.get_argument_syntax() == 'msvc' + warning('FIXME: Provide a def file to publish the public symbols') + else + warning('FIXME: Linker does not support the supplied version script (' + symbol_map + '), please disable the "gst-full-version-script" option') diff --git a/vcpkg/ports/gstreamer/gstreamer-disable-no-unused.patch b/vcpkg/ports/gstreamer/gstreamer-disable-no-unused.patch new file mode 100644 index 000000000..971d80295 --- /dev/null +++ b/vcpkg/ports/gstreamer/gstreamer-disable-no-unused.patch @@ -0,0 +1,14 @@ +diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build +index bed8c4e..772809e 100644 +--- a/subprojects/gstreamer/meson.build ++++ b/subprojects/gstreamer/meson.build +@@ -435,8 +435,8 @@ if cc.has_header('execinfo.h') + endif + endif + + gst_debug = get_option('gst_debug') +-if not gst_debug ++if not gst_debug and cc.has_argument('-Wno-unused') + add_project_arguments(['-Wno-unused'], language: 'c') + endif + diff --git a/vcpkg/ports/gstreamer/no-downloads.patch b/vcpkg/ports/gstreamer/no-downloads.patch new file mode 100644 index 000000000..caf128021 --- /dev/null +++ b/vcpkg/ports/gstreamer/no-downloads.patch @@ -0,0 +1,17 @@ +diff --git a/meson.build b/meson.build +index df015cb..93cf7e9 100644 +--- a/meson.build ++++ b/meson.build +@@ -105,12 +105,6 @@ subprojects = [ + ['gst-plugins-rs', { 'option': get_option('rs'), 'build-hotdoc': true, 'match_gst_version': false}], + ] + +-if build_system == 'windows' +- subproject('win-flex-bison-binaries') +- subproject('win-nasm') +-elif build_system == 'darwin' +- subproject('macos-bison-binary') +-endif + + orc_option = get_option('orc') + # There is a check below to keep this in sync with subprojects/gst-plugins-base/meson.build diff --git a/vcpkg/ports/gstreamer/plugin-base-disable-no-unused.patch b/vcpkg/ports/gstreamer/plugin-base-disable-no-unused.patch new file mode 100644 index 000000000..f8c249d96 --- /dev/null +++ b/vcpkg/ports/gstreamer/plugin-base-disable-no-unused.patch @@ -0,0 +1,26 @@ +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build +index 9b00253..495671e 100644 +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build +@@ -388,10 +388,11 @@ int32x4_t testfunc(int16_t *a, int16_t *b) { + endif + endif + ++build_system = build_machine.system() + if gst_dep.type_name() == 'internal' + gst_proj = subproject('gstreamer') + +- if not gst_proj.get_variable('gst_debug') ++ if not gst_proj.get_variable('gst_debug') and build_system != 'windows' + message('GStreamer debug system is disabled') + add_project_arguments('-Wno-unused', language: 'c') + else +@@ -404,7 +405,7 @@ else + #include + #ifdef GST_DISABLE_GST_DEBUG + #error "debugging disabled, make compiler fail" +-#endif''' , dependencies: gst_dep) ++#endif''' , dependencies: gst_dep) and build_system != 'windows' + message('GStreamer debug system is disabled') + add_project_arguments('-Wno-unused', language: 'c') + else diff --git a/vcpkg/ports/gstreamer/plugins-base-x11.patch b/vcpkg/ports/gstreamer/plugins-base-x11.patch new file mode 100644 index 000000000..f42551948 --- /dev/null +++ b/vcpkg/ports/gstreamer/plugins-base-x11.patch @@ -0,0 +1,13 @@ +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build +index 9b00253a0f..e3c3a0d920 100644 +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build +@@ -316,7 +316,7 @@ else + gtk_quartz_dep = dependency('', required : false) + endif + +-core_conf.set('HAVE_X11', x11_dep.found()) ++core_conf.set('HAVE_X11', false) + core_conf.set('HAVE_GIO_UNIX_2_0', giounix_dep.found()) + + if gio_dep.type_name() == 'pkgconfig' diff --git a/vcpkg/ports/gstreamer/portfile.cmake b/vcpkg/ports/gstreamer/portfile.cmake new file mode 100644 index 000000000..86a4068c8 --- /dev/null +++ b/vcpkg/ports/gstreamer/portfile.cmake @@ -0,0 +1,420 @@ +if(VCPKG_TARGET_IS_WINDOWS) + set(PATCHES + plugin-base-disable-no-unused.patch + ) +endif() + +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.freedesktop.org + OUT_SOURCE_PATH SOURCE_PATH + REPO gstreamer/gstreamer + REF "${VERSION}" + SHA512 0d69896d0a83452320df0d0f56c710df1365a259cd3f48dc7cd4df18d45b27caea7174aafa15ae5eb8637ccdef192c1047185b369b7232db4eaacbc57ffaaa22 + HEAD_REF main + PATCHES + fix-clang-cl.patch + fix-clang-cl-gstreamer.patch + fix-clang-cl-base.patch + fix-clang-cl-good.patch + fix-clang-cl-bad.patch + fix-clang-cl-ugly.patch + gstreamer-disable-no-unused.patch + srtp_fix.patch + fix-bz2-windows-debug-dependency.patch + base-must-be-enabled.patch + no-downloads.patch + ${PATCHES} +) + +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) +vcpkg_find_acquire_program(NASM) + +if(VCPKG_TARGET_IS_OSX) + # In Darwin platform, there can be an old version of `bison`, + # Which can't be used for `gst-build`. It requires 2.4+ + execute_process( + COMMAND ${BISON} --version + OUTPUT_VARIABLE BISON_OUTPUT + ) + string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" BISON_VERSION "${BISON_OUTPUT}") + set(BISON_MAJOR ${CMAKE_MATCH_1}) + set(BISON_MINOR ${CMAKE_MATCH_2}) + message(STATUS "Using bison: ${BISON_MAJOR}.${BISON_MINOR}.${CMAKE_MATCH_3}") + if(NOT (BISON_MAJOR GREATER_EQUAL 2 AND BISON_MINOR GREATER_EQUAL 4)) + message(WARNING "'bison' upgrade is required. Please check the https://stackoverflow.com/a/35161881") + endif() +endif() + +# General features +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + gpl gpl + libav libav + nls nls + ges ges + + plugins-base base + gl-graphene gst-plugins-base:gl-graphene + alsa gst-plugins-base:alsa + ogg gst-plugins-base:ogg + opus-base gst-plugins-base:opus + pango gst-plugins-base:pango + vorbis gst-plugins-base:vorbis + x11-base gst-plugins-base:x11 + x11-base gst-plugins-base:xshm + + plugins-good good + bzip2-good gst-plugins-good:bz2 + cairo gst-plugins-good:cairo + flac gst-plugins-good:flac + gdk-pixbuf gst-plugins-good:gdk-pixbuf + jpeg gst-plugins-good:jpeg + mpg123 gst-plugins-good:mpg123 + png gst-plugins-good:png + speex gst-plugins-good:speex + taglib gst-plugins-good:taglib + vpx gst-plugins-good:vpx + + plugins-ugly ugly + x264 gst-plugins-ugly:x264 + + plugins-bad bad + aes gst-plugins-bad:aes + aom gst-plugins-bad:aom + assrender gst-plugins-bad:assrender + bzip2-bad gst-plugins-bad:bz2 + chromaprint gst-plugins-bad:chromaprint + closedcaption gst-plugins-bad:closedcaption + colormanagement gst-plugins-bad:colormanagement + dash gst-plugins-bad:dash + dc1394 gst-plugins-bad:dc1394 + dtls gst-plugins-bad:dtls + faad gst-plugins-bad:faad + fdkaac gst-plugins-bad:fdkaac + fluidsynth gst-plugins-bad:fluidsynth + libde265 gst-plugins-bad:libde265 + microdns gst-plugins-bad:microdns + modplug gst-plugins-bad:modplug + nvcodec gst-plugins-bad:nvcodec + openal gst-plugins-bad:openal + openh264 gst-plugins-bad:openh264 + openjpeg gst-plugins-bad:openjpeg + openmpt gst-plugins-bad:openmpt + opus-bad gst-plugins-bad:opus + smoothstreaming gst-plugins-bad:smoothstreaming + sndfile gst-plugins-bad:sndfile + soundtouch gst-plugins-bad:soundtouch + srt gst-plugins-bad:srt + srtp gst-plugins-bad:srtp + webp gst-plugins-bad:webp + webrtc gst-plugins-bad:webrtc + wildmidi gst-plugins-bad:wildmidi + x11-bad gst-plugins-bad:x11 + x265 gst-plugins-bad:x265 + asio gst-plugins-bad:asio +) + +string(REPLACE "OFF" "disabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}") +string(REPLACE "ON" "enabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}") + +if(VCPKG_TARGET_IS_WINDOWS) + set(PLUGIN_BASE_WINDOW_SYSTEM win32) + set(PLUGIN_BASE_GL_PLATFORM wgl) +else() + set(PLUGIN_BASE_WINDOW_SYSTEM auto) + set(PLUGIN_BASE_GL_PLATFORM auto) +endif() + +if("asio" IN_LIST FEATURES) + set(PLUGIN_BAD_ASIO_SDK_PATH ${CURRENT_INSTALLED_DIR}/include/asiosdk) +else() + set(PLUGIN_BAD_ASIO_SDK_PATH "") +endif() + +# +# References +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gstreamer/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-base/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-good/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-ugly/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-bad/meson_options.txt +# +# Rationale for added options +# Common options are added below systematically +# Feature options are added below only if the feature needs an external dependency +# Feature options that are dependent on the operating system type (like wasapi or osxaudio) are set to auto +# Every other feature options are made available if the dependency is available on vcpkg and if the plugin has managed to build during tests +# + +vcpkg_configure_meson( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + # General options + -Dpython=disabled + -Dlibnice=disabled + -Ddevtools=disabled + -Drtsp_server=disabled + -Domx=disabled + -Dvaapi=disabled + -Dsharp=disabled + -Drs=disabled + -Dgst-examples=disabled + -Dtls=disabled + -Dqt5=disabled + # Common options + -Dtests=disabled + -Dexamples=disabled + -Dintrospection=disabled + -Dorc=disabled # gstreamer requires a specific version of orc which is not available in vcpkg + -Ddoc=disabled + -Dgtk_doc=disabled + # gstreamer + -Dgstreamer:check=disabled + -Dgstreamer:libunwind=disabled + -Dgstreamer:libdw=disabled + -Dgstreamer:dbghelp=disabled + -Dgstreamer:bash-completion=disabled + -Dgstreamer:coretracers=disabled + -Dgstreamer:benchmarks=disabled + -Dgstreamer:gst_debug=true + # gst-plugins-base + -Dgst-plugins-base:gl_winsys=${PLUGIN_BASE_WINDOW_SYSTEM} + -Dgst-plugins-base:gl_platform=${PLUGIN_BASE_GL_PLATFORM} + -Dgst-plugins-base:cdparanoia=disabled + -Dgst-plugins-base:libvisual=disabled + -Dgst-plugins-base:theora=disabled + -Dgst-plugins-base:tremor=disabled + -Dgst-plugins-base:xvideo=disabled + # gst-plugins-good + -Dgst-plugins-good:aalib=disabled + -Dgst-plugins-good:directsound=auto + -Dgst-plugins-good:dv=disabled + -Dgst-plugins-good:dv1394=disabled + -Dgst-plugins-good:gtk3=disabled # GTK version 3 only + -Dgst-plugins-good:jack=disabled + -Dgst-plugins-good:lame=disabled + -Dgst-plugins-good:libcaca=disabled + -Dgst-plugins-good:oss=disabled + -Dgst-plugins-good:oss4=disabled + -Dgst-plugins-good:osxaudio=auto + -Dgst-plugins-good:osxvideo=auto + -Dgst-plugins-good:pulse=auto + -Dgst-plugins-good:qt5=disabled + -Dgst-plugins-good:shout2=disabled + #-Dgst-plugins-good:soup=disabled + -Dgst-plugins-good:twolame=disabled + -Dgst-plugins-good:waveform=auto + -Dgst-plugins-good:wavpack=disabled # Error during plugin build + # gst-plugins-ugly + -Dgst-plugins-ugly:a52dec=disabled + -Dgst-plugins-ugly:amrnb=disabled + -Dgst-plugins-ugly:amrwbdec=disabled + -Dgst-plugins-ugly:cdio=disabled + -Dgst-plugins-ugly:dvdread=disabled + -Dgst-plugins-ugly:mpeg2dec=disabled # libmpeg2 not found + -Dgst-plugins-ugly:sidplay=disabled + # gst-plugins-bad + -Dgst-plugins-bad:avtp=disabled + -Dgst-plugins-bad:androidmedia=auto + -Dgst-plugins-bad:applemedia=auto + -Dgst-plugins-bad:asio-sdk-path=${PLUGIN_BAD_ASIO_SDK_PATH} + -Dgst-plugins-bad:bluez=disabled + -Dgst-plugins-bad:bs2b=disabled + -Dgst-plugins-bad:curl=disabled # Error during plugin build + -Dgst-plugins-bad:curl-ssh2=disabled + -Dgst-plugins-bad:d3dvideosink=auto + -Dgst-plugins-bad:d3d11=auto + -Dgst-plugins-bad:decklink=disabled + -Dgst-plugins-bad:directfb=disabled + -Dgst-plugins-bad:directsound=auto + -Dgst-plugins-bad:dts=disabled + -Dgst-plugins-bad:dvb=auto + -Dgst-plugins-bad:faac=disabled + -Dgst-plugins-bad:fbdev=auto + -Dgst-plugins-bad:flite=disabled + -Dgst-plugins-bad:gl=auto + -Dgst-plugins-bad:gme=disabled + -Dgst-plugins-bad:gs=disabled # Error during plugin configuration (abseil pkg-config file missing) + -Dgst-plugins-bad:gsm=disabled + -Dgst-plugins-bad:ipcpipeline=auto + -Dgst-plugins-bad:iqa=disabled + -Dgst-plugins-bad:kate=disabled + -Dgst-plugins-bad:kms=disabled + -Dgst-plugins-bad:ladspa=disabled + -Dgst-plugins-bad:ldac=disabled + -Dgst-plugins-bad:lv2=disabled # Error during plugin configuration (lilv pkg-config file missing) + -Dgst-plugins-bad:mediafoundation=auto + -Dgst-plugins-bad:mpeg2enc=disabled + -Dgst-plugins-bad:mplex=disabled + -Dgst-plugins-bad:msdk=disabled + -Dgst-plugins-bad:musepack=disabled + -Dgst-plugins-bad:neon=disabled + -Dgst-plugins-bad:onnx=disabled # libonnxruntime not found + -Dgst-plugins-bad:openaptx=disabled + -Dgst-plugins-bad:opencv=disabled # opencv not found + -Dgst-plugins-bad:openexr=disabled # OpenEXR::IlmImf target not found + -Dgst-plugins-bad:openni2=disabled # libopenni2 not found + -Dgst-plugins-bad:opensles=disabled + -Dgst-plugins-bad:qroverlay=disabled + -Dgst-plugins-bad:resindvd=disabled + -Dgst-plugins-bad:rsvg=disabled # librsvg-2.0 not found + -Dgst-plugins-bad:rtmp=disabled # librtmp not found + -Dgst-plugins-bad:sbc=disabled + -Dgst-plugins-bad:sctp=auto + -Dgst-plugins-bad:shm=disabled + -Dgst-plugins-bad:spandsp=disabled + -Dgst-plugins-bad:svthevcenc=disabled + -Dgst-plugins-bad:teletext=disabled + -Dgst-plugins-bad:tinyalsa=disabled + -Dgst-plugins-bad:transcode=disabled + -Dgst-plugins-bad:ttml=disabled + -Dgst-plugins-bad:uvch264=disabled + -Dgst-plugins-bad:va=disabled + -Dgst-plugins-bad:voaacenc=disabled + -Dgst-plugins-bad:voamrwbenc=disabled + -Dgst-plugins-bad:vulkan=auto + -Dgst-plugins-bad:wasapi=auto + -Dgst-plugins-bad:wasapi2=auto + -Dgst-plugins-bad:wayland=auto + -Dgst-plugins-bad:winks=disabled + -Dgst-plugins-bad:winscreencap=auto + -Dgst-plugins-bad:zbar=disabled # Error during plugin build + -Dgst-plugins-bad:zxing=disabled # Error during plugin build + -Dgst-plugins-bad:wpe=disabled + -Dgst-plugins-bad:magicleap=disabled + -Dgst-plugins-bad:v4l2codecs=disabled + -Dgst-plugins-bad:isac=disabled + OPTIONS_RELEASE + -Dgobject-cast-checks=disabled + -Dglib-asserts=disabled + -Dglib-checks=disabled + -Dgstreamer:extra-checks=disabled + ADDITIONAL_BINARIES + flex='${FLEX}' + bison='${BISON}' + nasm='${NASM}' + glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' + glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' +) + +vcpkg_install_meson() + +# Remove duplicated GL headers (we already have `opengl-registry`) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" + "${CURRENT_PACKAGES_DIR}/include/GL" +) + +if(NOT VCPKG_TARGET_IS_LINUX AND "plugins-base" IN_LIST FEATURES) + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h" + "${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gl/gstglconfig.h" + ) +endif() + +list(APPEND GST_BIN_TOOLS + gst-inspect-1.0 + gst-launch-1.0 + gst-stats-1.0 + gst-typefind-1.0 +) +list(APPEND GST_LIBEXEC_TOOLS + gst-plugin-scanner +) + +if("ges" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS ges-launch-1.0) +endif() + +if("plugins-base" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + gst-device-monitor-1.0 + gst-discoverer-1.0 + gst-play-1.0 + ) +endif() + +if("plugins-bad" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + gst-transcoder-1.0 + ) +endif() + +vcpkg_copy_tools( + TOOL_NAMES ${GST_BIN_TOOLS} + AUTO_CLEAN +) + +vcpkg_copy_tools( + TOOL_NAMES ${GST_LIBEXEC_TOOLS} + SEARCH_DIR "${CURRENT_PACKAGES_DIR}/libexec/gstreamer-1.0" + AUTO_CLEAN +) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/libexec" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/libexec" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/share/gdb" +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # Move plugin pkg-config files + file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*") + file(COPY ${pc_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") + file(GLOB pc_files_dbg "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*") + file(COPY ${pc_files_dbg} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") + + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" + "${CURRENT_PACKAGES_DIR}/bin" + ) + set(PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") + set(SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") + file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/${PREFIX}gstreamer-full-1.0${SUFFIX}" + "${CURRENT_PACKAGES_DIR}/lib/${PREFIX}gstreamer-full-1.0${SUFFIX}" + ) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gstconfig.h" "!defined(GST_STATIC_COMPILATION)" "0") +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + # move plugins to ${prefix}/plugins/${PORT} instead of ${prefix}/lib/gstreamer-1.0 + if(NOT VCPKG_BUILD_TYPE) + file(GLOB DBG_BINS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.pdb" + ) + file(COPY ${DBG_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}") + endif() + file(GLOB REL_BINS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.pdb" + ) + file(COPY ${REL_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/plugins/${PORT}") + file(REMOVE ${DBG_BINS} ${REL_BINS}) + if(NOT VCPKG_TARGET_IS_WINDOWS) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0") + endif() + + set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-1.0.pc") + if(EXISTS "${_file}") + file(READ "${_file}" _contents) + string(REPLACE [[toolsdir=${exec_prefix}/bin]] "toolsdir=\${prefix}/../tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginscannerdir=${libexecdir}/gstreamer-1.0]] "pluginscannerdir=\${prefix}/../tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginsdir=${libdir}/gstreamer-1.0]] "pluginsdir=\${prefix}/plugins/${PORT}" _contents "${_contents}") + file(WRITE "${_file}" "${_contents}") + endif() + + set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-1.0.pc") + if(EXISTS "${_file}") + file(READ "${_file}" _contents) + string(REPLACE [[toolsdir=${exec_prefix}/bin]] "toolsdir=\${prefix}/tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginscannerdir=${libexecdir}/gstreamer-1.0]] "pluginscannerdir=\${prefix}/tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginsdir=${libdir}/gstreamer-1.0]] "pluginsdir=\${prefix}/plugins/${PORT}" _contents "${_contents}") + file(WRITE "${_file}" "${_contents}") + endif() +endif() + +vcpkg_fixup_pkgconfig() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/gstreamer/remove_x264_define.patch b/vcpkg/ports/gstreamer/remove_x264_define.patch new file mode 100644 index 000000000..044fb926b --- /dev/null +++ b/vcpkg/ports/gstreamer/remove_x264_define.patch @@ -0,0 +1,18 @@ +diff --git a/ext/x264/gstx264enc.h b/ext/x264/gstx264enc.h +index 6cbfc5c3d..ba7845b20 100644 +--- a/ext/x264/gstx264enc.h ++++ b/ext/x264/gstx264enc.h +@@ -31,13 +31,6 @@ + #include + #endif + +-/* The x264.h header says this isn't needed with MinGW, but sometimes the +- * compiler is unable to correctly do the pointer indirection for us, which +- * leads to a segfault when you try to dereference any const values provided +- * by x264.dll. See: https://bugzilla.gnome.org/show_bug.cgi?id=779249 */ +-#if defined(_WIN32) && !defined(X264_API_IMPORTS) +-# define X264_API_IMPORTS +-#endif + #include + + G_BEGIN_DECLS diff --git a/vcpkg/ports/gstreamer/srtp_fix.patch b/vcpkg/ports/gstreamer/srtp_fix.patch new file mode 100644 index 000000000..ed4601d45 --- /dev/null +++ b/vcpkg/ports/gstreamer/srtp_fix.patch @@ -0,0 +1,30 @@ +diff --git a/subprojects/gst-plugins-bad/ext/srtp/meson.build b/subprojects/gst-plugins-bad/ext/srtp/meson.build +index 49eed5b..db5aed0 100644 +--- a/subprojects/gst-plugins-bad/ext/srtp/meson.build ++++ b/subprojects/gst-plugins-bad/ext/srtp/meson.build +@@ -6,13 +6,15 @@ srtp_sources = [ + 'gstsrtpenc.c', + ] + ++gst_plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') ++ + srtp_cargs = [] + if get_option('srtp').disabled() + srtp_dep = dependency('', required : false) + subdir_done() + endif + +-srtp_dep = dependency('libsrtp2', version : '>= 2.1.0', required : false) ++srtp_dep = dependency('libSRTP', modules: ['libSRTP::srtp2'], version : '>= 2.1.0', required : false) + if srtp_dep.found() + srtp_cargs += ['-DHAVE_SRTP2'] + else +@@ -38,7 +40,7 @@ if srtp_dep.found() + include_directories : [configinc], + dependencies : [gstrtp_dep, gstvideo_dep, srtp_dep], + install : true, +- install_dir : plugins_install_dir, ++ install_dir : gst_plugins_install_dir, + ) + plugins += [gstsrtp] + endif diff --git a/vcpkg/ports/gstreamer/vcpkg.json b/vcpkg/ports/gstreamer/vcpkg.json new file mode 100644 index 000000000..af363911b --- /dev/null +++ b/vcpkg/ports/gstreamer/vcpkg.json @@ -0,0 +1,841 @@ +{ + "name": "gstreamer", + "version": "1.22.5", + "port-version": 8, + "description": "GStreamer open-source multimedia framework core library", + "homepage": "https://gstreamer.freedesktop.org/", + "license": "LGPL-2.0-only", + "supports": "!uwp & !xbox", + "dependencies": [ + "glib", + { + "name": "glib", + "host": true + }, + { + "name": "opengl", + "platform": "windows | osx" + }, + { + "name": "vcpkg-tool-meson", + "host": true + } + ], + "default-features": [ + "plugins-base" + ], + "features": { + "aes": { + "description": "Enable support for AES encryption/decryption", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "alsa": { + "description": "Enable support for ALSA (Advanced Linux Sound Architecture)", + "supports": "linux", + "dependencies": [ + { + "name": "alsa", + "platform": "linux" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "aom": { + "description": "Enable support for the Alliance for Open Media (AOM) AV1 encoder and decoder", + "supports": "!windows", + "dependencies": [ + "aom", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "asio": { + "description": "Enable support for the Steinberg Audio Streaming Input Output (ASIO) library (Windows only)", + "dependencies": [ + { + "name": "asiosdk", + "platform": "windows" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "assrender": { + "description": "Enable support for the ASS/SSA subtitle renderer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libass" + ] + }, + "bzip2-bad": { + "description": "Enable bzip2 stream compression in bad plugins", + "dependencies": [ + "bzip2", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "bzip2-good": { + "description": "Enable bzip2 stream compression in good plugins", + "dependencies": [ + "bzip2", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, + "cairo": { + "description": "Enable support for the cairo graphics library", + "dependencies": [ + { + "name": "cairo", + "features": [ + "gobject" + ] + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, + "chromaprint": { + "description": "Enable support for the Chromaprint audio fingerprint library", + "dependencies": [ + "chromaprint", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "closedcaption": { + "description": "Enable support for the closed caption extractor, decoder, and overlay", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "pango" + ] + }, + "colormanagement": { + "description": "Enable support for the color management correction", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "lcms" + ] + }, + "dash": { + "description": "Enable support for the DASH demuxer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxml2" + ] + }, + "dc1394": { + "description": "Enable support for the libdc1394 IIDC camera source", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libdc1394" + ] + }, + "dtls": { + "description": "Enable support for the DTLS encoder and decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "faad": { + "description": "Enable support for the free AAC audio decoder (GPL licensed)", + "dependencies": [ + "faad2", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-bad" + ] + } + ] + }, + "fdkaac": { + "description": "Enable support for the Fraunhofer AAC audio codec", + "dependencies": [ + "fdk-aac", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "flac": { + "description": "Enable support for FLAC: Free Lossless Audio Codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "ogg", + "plugins-good" + ] + }, + "libflac" + ] + }, + "fluidsynth": { + "description": "Enable support for the Fluidsynth MIDI decoder", + "supports": "!windows", + "dependencies": [ + { + "name": "fluidsynth", + "platform": "!windows" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "gdk-pixbuf": { + "description": "Enable support for gdk-pixbuf image loader", + "dependencies": [ + "gdk-pixbuf", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, + "ges": { + "description": "Enable support for GStreamer Editing Services", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "gl-graphene": { + "description": "Use Graphene in OpenGL plugin", + "dependencies": [ + "graphene", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "gpl": { + "description": "Allow build of plugins that have (A)GPL-licensed dependencies", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "jpeg": { + "description": "Enable support for the JPEG file format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base", + "plugins-good" + ] + }, + "libjpeg-turbo" + ] + }, + "libav": { + "description": "libav plugins", + "dependencies": [ + { + "name": "ffmpeg", + "default-features": false + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "libde265": { + "description": "Enable support for the HEVC/H.265 video decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libde265" + ] + }, + "microdns": { + "description": "Enable support for the microdns device provider", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libmicrodns" + ] + }, + "modplug": { + "description": "Enable support for the ModPlug audio decoder", + "supports": "!uwp", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + { + "name": "libmodplug", + "platform": "!uwp" + } + ] + }, + "mpg123": { + "description": "Enable support for the MPG123 decoding library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "mpg123" + ] + }, + "nls": { + "description": "National language support", + "dependencies": [ + "gettext", + { + "name": "gettext", + "host": true, + "default-features": false, + "features": [ + "tools" + ] + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "nvcodec": { + "description": "Enable support for the NVCODEC encoders and decoders", + "supports": "!osx & !ios & !android & !emscripten", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "ogg": { + "description": "Enable support for the Ogg container format (commonly used by Vorbis, Theora and flac)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "libogg" + ] + }, + "openal": { + "description": "Enable support for the OpenAL audio library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openal-soft" + ] + }, + "openh264": { + "description": "Enable support for the OpenH264 codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openh264" + ] + }, + "openjpeg": { + "description": "Enable support for the JPEG2000 codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openjpeg" + ] + }, + "openmpt": { + "description": "Enable support for the OpenMPT codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libopenmpt" + ] + }, + "opus-bad": { + "description": "Enable support for the Opus codec in bad plugins", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "opus" + ] + }, + "opus-base": { + "description": "Enable support for the Opus codec in base plugins", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "opus" + ] + }, + "pango": { + "description": "Enable support for pango font rendering", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "pango" + ] + }, + "plugins-bad": { + "description": "'Bad' GStreamer plugins and helper libraries", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "plugins-base": { + "description": "'Base' GStreamer plugins and helper libraries", + "dependencies": [ + "zlib" + ] + }, + "plugins-good": { + "description": "'Good' GStreamer plugins and helper libraries", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "zlib" + ] + }, + "plugins-ugly": { + "description": "'Ugly' GStreamer plugins and helper libraries", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "png": { + "description": "Enable support for the PNG image format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libpng" + ] + }, + "smoothstreaming": { + "description": "Enable support for the Microsoft Smooth Streaming format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxml2" + ] + }, + "sndfile": { + "description": "Enable support for the SndFile file reader/writer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsndfile" + ] + }, + "soundtouch": { + "description": "Enable support for the SoundTouch audio processing library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "soundtouch" + ] + }, + "soup": { + "description": "Enable support for the soup plugin", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libsoup" + ] + }, + "speex": { + "description": "Enable support for the speex codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "speex" + ] + }, + "srt": { + "description": "Enable support for the SRT protocol", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsrt" + ] + }, + "srtp": { + "description": "Enable support for the SRTP protocol", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsrtp" + ] + }, + "taglib": { + "description": "Enable support for the taglib library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "taglib" + ] + }, + "vorbis": { + "description": "Enable support for the OggVorbis audio codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "ogg", + "plugins-base" + ] + }, + "libvorbis" + ] + }, + "vpx": { + "description": "Enable support for the VP8 and VP9 codecs", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libvpx" + ] + }, + "webp": { + "description": "Enable support for WebP image format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libwebp" + ] + }, + "webrtc": { + "description": "Enable support for WebRTC", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libnice" + ] + }, + "wildmidi": { + "description": "Enable support for the WildMIDI synthesizer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "wildmidi" + ] + }, + "x11-bad": { + "description": "Enable support for X11 in bad plugins", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxkbcommon", + "xcb" + ] + }, + "x11-base": { + "description": "Enable support for X11 in base plugins", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libx11", + "libxext" + ] + }, + "x264": { + "description": "Enable support for the x264 encoder (GPL license)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-ugly" + ] + }, + "x264" + ] + }, + "x265": { + "description": "Enable support for the x265 encoder (GPL license)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-bad" + ] + }, + "x265" + ] + } + } +} diff --git a/vcpkg/triplets/static-ports.cmake b/vcpkg/triplets/static-ports.cmake new file mode 100644 index 000000000..4ab6e6a7f --- /dev/null +++ b/vcpkg/triplets/static-ports.cmake @@ -0,0 +1,13 @@ +set(STATIC_PORTS + gdal + catch2 + libiconv + freexl + libspatialite + qhull + harfbuzz + libb2 + freeglut + qca # OSSL plugin not discovered unless static + qgis +) diff --git a/vcpkg/triplets/x64-linux.cmake b/vcpkg/triplets/x64-linux.cmake index d0ec0da65..ef7c6c546 100644 --- a/vcpkg/triplets/x64-linux.cmake +++ b/vcpkg/triplets/x64-linux.cmake @@ -1,8 +1,14 @@ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) + +include("${CMAKE_CURRENT_LIST_DIR}/static-ports.cmake") +if (PORT IN_LIST STATIC_PORTS) + set(VCPKG_LIBRARY_LINKAGE static) +else() + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) -set(VCPKG_FIXUP_ELF_RPATH ON) \ No newline at end of file +set(VCPKG_FIXUP_ELF_RPATH ON) From ce184f7594215e4a87b0821366f236b35bcb259b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 09:17:36 +0200 Subject: [PATCH 038/118] fix macos test --- app/test/testposition.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/test/testposition.cpp b/app/test/testposition.cpp index f6cfe7849..2ca3ee608 100644 --- a/app/test/testposition.cpp +++ b/app/test/testposition.cpp @@ -256,6 +256,7 @@ void TestPosition::testPositionProviderKeysInSettings() QSettings rawSettings; rawSettings.remove( AppSettings::POSITION_PROVIDERS_GROUP ); // make sure nothing is there from previous tests +#ifdef HAVE_BLUETOOTH positionKit->setPositionProvider( positionKit->constructProvider( "external", "AA:BB:CC:DD:EE:FF", "testProviderA" ) ); QCOMPARE( positionKit->positionProvider()->id(), "AA:BB:CC:DD:EE:FF" ); @@ -263,6 +264,7 @@ void TestPosition::testPositionProviderKeysInSettings() QCOMPARE( positionKit->positionProvider()->type(), "external" ); QCOMPARE( rawSettings.value( CoreUtils::QSETTINGS_APP_GROUP_NAME + "/activePositionProviderId" ).toString(), "AA:BB:CC:DD:EE:FF" ); +#endif positionKit->setPositionProvider( positionKit->constructProvider( "internal", "devicegps" ) ); From 830436c59f16a7c9d89060c68865a1a7ffe9a2d6 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 10:50:31 +0200 Subject: [PATCH 039/118] try android --- .github/workflows/android.yml | 43 +++++++++++++++--------------- CMakeLists.txt | 9 ++++--- app/CMakeLists.txt | 3 +-- cmake/InstallStep.cmake | 1 + cmake/PlatformDetect.cmake | 5 +--- vcpkg/triplets/arm-android.cmake | 7 ++++- vcpkg/triplets/arm64-android.cmake | 12 ++++++--- 7 files changed, 44 insertions(+), 36 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 5c63df288..05275068f 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,8 +1,5 @@ name: android Build -# TODO remove -skip: true - on: push: paths: @@ -33,10 +30,8 @@ jobs: matrix: include: - TRIPLET: 'arm-android' - QT_ARCH: 'android_armv7' ANDROID_ABI: 'armeabi-v7a' - TRIPLET: 'arm64-android' - QT_ARCH: 'android_arm64_v8a' ANDROID_ABI: 'arm64-v8a' runs-on: macos-15 @@ -45,7 +40,7 @@ jobs: NDK_VERSION_FULL: r26b JDK_VERSION: 17 SDK_PLATFORM: android-34 - ANDROIDAPI: 24 # TODO + ANDROIDAPI: 24 VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' SDK_BUILD_TOOLS: 34.0.0 CMAKE_VERSION: '3.31.6' @@ -75,7 +70,7 @@ jobs: run: | brew uninstall cmake brew install gnupg - brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl create-dmg mono + brew install automake bison flex gnu-sed autoconf-archive libtool gettext lcov openssl mono echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH @@ -121,11 +116,6 @@ jobs: key: ccache-${{ env.TRIPLET }} max-size: 200M - - name: Install CMake and Ninja - uses: lukka/get-cmake@latest - with: - cmakeVersion: ${{ env.CMAKE_VERSION }} - - uses: nttld/setup-ndk@v1 id: setup-ndk with: @@ -179,8 +169,22 @@ jobs: cd "${{ env.VCPKG_ROOT }}" chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh - - # Build Input App + + - name: Setup NuGet Credentials + shell: bash + run: | + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + sources add \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" \ + -storepasswordincleartext \ + -name "GitHub" \ + -username "mergin-maps-bot" \ + -password "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" + + mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ + setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ + -source "https://nuget.pkg.github.com/merginmaps/index.json" + - name: Calculate build number env: OFFFSET: 10 # offset for build number - due to previous builds ~ new builds must always have a higher number @@ -206,15 +210,14 @@ jobs: export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_ABI=${{ matrix.ANDROID_ABI }} - - # -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" \ - + cmake \ -DCMAKE_BUILD_TYPE=Release \ -D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ -D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ -D ANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ -D ANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ + -DVCPKG_HOST_TRIPLET=arm64-osx \ -D VCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ -DANDROID_ARM_NEON=ON \ @@ -223,8 +226,7 @@ jobs: -DANDROIDAPI=${ANDROIDAPI} \ -DANDROID_PLATFORM=android-${ANDROIDAPI} \ -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_STL="c++_shared" - + -DANDROID_STL="c++_shared" \ -DQT_ANDROID_SIGN_APK=Yes \ -DQT_ANDROID_SIGN_AAB=Yes \ -DUSE_MM_SERVER_API_KEY=Yes \ @@ -239,8 +241,6 @@ jobs: env: ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} ANDROID_NDK_HOST: darwin-x86_64 - QT_BASE: ${{ github.workspace }}/Qt/${{ env.QT_VERSION }} - INPUT_SDK_ANDROID_BASE: ${{ github.workspace }}/input-sdk run: | cd ${{ github.workspace }}/build-mm ninja apk @@ -266,7 +266,6 @@ jobs: ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} ANDROID_NDK_HOST: darwin-x86_64 QT_BASE: ${{ github.workspace }}/Qt/${{ env.QT_VERSION }} - INPUT_SDK_ANDROID_BASE: ${{ github.workspace }}/input-sdk run: | cd ${{ github.workspace }}/build-Input ninja aab diff --git a/CMakeLists.txt b/CMakeLists.txt index 470c1f3e1..ee92145b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,9 +11,10 @@ set(MM_VERSION_PATCH "0") # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake -if (DEFINED ENV{INPUT_SDK_ANDROID_BASE}) # TODO android! +if (ANDROID_ABI) + message("HELLO ANDROID") # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 - set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) + # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) if (DEFINED ENV{ANDROIDAPI}) set(ANDROIDAPI $ENV{ANDROIDAPI}) @@ -44,7 +45,9 @@ if (IOS) # set(DEPLOYMENT_TARGET "16.0") endif () -if (APPLE) +# iOS and macOS desktop builds +if (APPLE AND NOT ANDROID_ABI) + message("HERE DEPLOYMENT_TARGET") if (DEFINED ENV{DEPLOYMENT_TARGET}) set(CMAKE_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) else () diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 5894c64eb..9f7189e88 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -561,8 +561,7 @@ if (IOS) target_link_libraries( Input PUBLIC AppleFrameworks::CoreLocation AppleFrameworks::CoreHaptics ) - # TODO is this needed? - # qt_add_ios_ffmpeg_libraries(Input) # Qt Multimedia + # TODO is this needed? qt_add_ios_ffmpeg_libraries(Input) # Qt Multimedia endif () if (ENABLE_TESTS) diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index 24ed749db..940466378 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -1,5 +1,6 @@ # GPLv2 Licence +# TODO is ${Qt6_DIR} defined? set(Qt6_base_dir ${Qt6_DIR}/../../..) # ######################################################################################## diff --git a/cmake/PlatformDetect.cmake b/cmake/PlatformDetect.cmake index cdffaa96a..a1370b6e2 100644 --- a/cmake/PlatformDetect.cmake +++ b/cmake/PlatformDetect.cmake @@ -2,10 +2,7 @@ # needs to be called after project() command so toolchains are already evaluated macro (mm_detect_platform) - if (DEFINED ENV{INPUT_SDK_ANDROID_BASE} - OR ANDROID - OR CMAKE_SYSTEM_NAME STREQUAL "Android" - ) + if (ANDROID OR CMAKE_SYSTEM_NAME STREQUAL "Android") # android can be build on any host platform set(ANDROID TRUE) else () diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index ad8e6aa80..11b32ff37 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -3,7 +3,12 @@ set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) -set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") + +set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-darwin-androideabi") +# TODO linux +# set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") + + set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON) if(DEFINED ENV{ANDROIDAPI}) diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index d5997b0c9..a1b56cb6b 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -3,7 +3,12 @@ set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) -set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") + + +set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-darwin-android") +# TODO linux +# set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") + set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) set(VCPKG_CXX_FLAGS "-fstack-protector-strong") @@ -11,8 +16,7 @@ set(VCPKG_C_FLAGS "-fstack-protector-strong") if(DEFINED ENV{ANDROIDAPI}) set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +else() + message(FATAL_ERROR "$ENV{ANDROIDAPI} not defined as env variable") endif() -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) From 8123751a5046436d7686e0b9c60345ee37ba1f77 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 13:42:09 +0200 Subject: [PATCH 040/118] another try --- CMakeLists.txt | 6 ++++++ app/CMakeLists.txt | 15 +++++++++++++++ cmake/FindWinLibraries.cmake | 35 +++++++++++++++++++++++++++++++++++ vcpkg/ports/qgis/vcpkg.json | 1 + 4 files changed, 57 insertions(+) create mode 100644 cmake/FindWinLibraries.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index ee92145b6..311edf99d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -220,6 +220,12 @@ find_package(GeoTIFF CONFIG REQUIRED) # find_package(Lzma CONFIG REQUIRED) find_package(Zstd CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) # find_package(Utf8 CONFIG REQUIRED) find_package(Absl CONFIG REQUIRED) +find_package(poly2tri CONFIG) + +if (WIN) + find_package(FFMPEG REQUIRED) + find_package(WinLibraries REQUIRED) +endif () if (IOS OR MACOS) find_package(AppleFrameworks REQUIRED) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 9f7189e88..86178c294 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -536,6 +536,8 @@ target_link_libraries( libzip::zip # WebP::WebP WebP::Sharpyuv Curl::Curl Jpeg::Jpeg Geotiff::Geotiff Lzma::Lzma # Zstd::Zstd Bz2::Bz2 Absl::Absl + poly2tri::poly2tri + meshoptimizer::meshoptimizer ) if (IOS OR MACOS) @@ -564,6 +566,19 @@ if (IOS) # TODO is this needed? qt_add_ios_ffmpeg_libraries(Input) # Qt Multimedia endif () +if (WIN) + target_link_libraries( + Input + PUBLIC WinLibraries::avcodec + WinLibraries::avdevice + WinLibraries::avformat + WinLibraries::avutil + WinLibraries::swresample + WinLibraries::swscale + WinLibraries::openh264 + ) +endif () + if (ENABLE_TESTS) target_link_libraries(Input PUBLIC Qt6::Test) endif () diff --git a/cmake/FindWinLibraries.cmake b/cmake/FindWinLibraries.cmake new file mode 100644 index 000000000..1f551bb5b --- /dev/null +++ b/cmake/FindWinLibraries.cmake @@ -0,0 +1,35 @@ +if (NOT WIN) + message(FATAL_ERROR "Windows libraries are not available on this platform") +endif () + +set(WIN_LIBRARIES + avcodec + avdevice + avformat + avutil + swresample + swscale + openh264 +) + +foreach (library ${WIN_LIBRARIES}) + find_library(WIN_${library}_LIBRARY NAMES ${library}) + set(WIN_REQUIRED_VARS ${WIN_REQUIRED_VARS} WIN_${library}_LIBRARY) +endforeach () + +find_package_handle_standard_args(WinLibraries REQUIRED_VARS ${WIN_REQUIRED_VARS}) + +if (WinLibraries_FOUND) + foreach (library ${WIN_LIBRARIES}) + if (NOT TARGET WinLibraries::${library}) + add_library(WinLibraries::${library} INTERFACE IMPORTED) + set_target_properties( + WinLibraries::${library} PROPERTIES IMPORTED_LOCATION ${library} + ) + endif () + endforeach () +endif () + +foreach (library ${WIN_LIBRARIES}) + mark_as_advanced(${WIN_${library}_LIBRARY}) +endforeach () diff --git a/vcpkg/ports/qgis/vcpkg.json b/vcpkg/ports/qgis/vcpkg.json index ae912bdc2..0e065be7f 100644 --- a/vcpkg/ports/qgis/vcpkg.json +++ b/vcpkg/ports/qgis/vcpkg.json @@ -23,6 +23,7 @@ "proj", "geos", "jhasse-poly2tri", + "meshoptimizer", { "name": "qca", "default-features": false, From aa7171c73ffa406cecf04498a9d060d6d8b502b0 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 16:03:21 +0200 Subject: [PATCH 041/118] another try --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 311edf99d..72a452df6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -221,6 +221,7 @@ find_package(GeoTIFF CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) # find_package(Utf8 CONFIG REQUIRED) find_package(Absl CONFIG REQUIRED) find_package(poly2tri CONFIG) +find_package(meshoptimizer CONFIG REQUIRED) if (WIN) find_package(FFMPEG REQUIRED) From ec66875ab9d022cfa83b2a999cb1c3d90fd3f8b5 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 16:17:23 +0200 Subject: [PATCH 042/118] another try --- .github/workflows/linux.yml | 2 +- CMakeLists.txt | 4 ---- vcpkg/triplets/arm-android.cmake | 2 +- vcpkg/triplets/arm64-android.cmake | 2 +- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 15fffadc3..e7b80c609 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -50,7 +50,7 @@ jobs: gperf autopoint '^libxcb.*-dev' libx11-xcb-dev libegl1-mesa libegl1-mesa-dev \ libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \ autoconf-archive libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libfuse2 \ - bison flex lcov nasm libxrandr-dev + bison flex lcov nasm libxrandr-dev xvfb # Required to run unit tests on linux echo "QT_QPA_PLATFORM=offscreen" >> $GITHUB_ENV diff --git a/CMakeLists.txt b/CMakeLists.txt index 72a452df6..22d1018c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,10 +151,6 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## -if (WIN) - find_package(WMF REQUIRED) -endif () - find_package( Qt6 COMPONENTS Quick diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 11b32ff37..f1f721eb9 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -4,7 +4,7 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) -set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-darwin-androideabi") +set(VCPKG_MAKE_BUILD_TRIPLET "--host=arm64-darwin-androideabi") # TODO linux # set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index a1b56cb6b..430f274c2 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -5,7 +5,7 @@ set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) -set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-darwin-android") +set(VCPKG_MAKE_BUILD_TRIPLET "--host=arm64-darwin-android") # TODO linux # set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") From cc0a7a951408beda97775cf3b7d553037d4022b7 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 16:30:01 +0200 Subject: [PATCH 043/118] another try --- .github/workflows/linux.yml | 2 +- vcpkg/triplets/arm-android.cmake | 5 ++--- vcpkg/triplets/arm64-android.cmake | 6 ++---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index e7b80c609..a37a5ae2c 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -125,7 +125,7 @@ jobs: -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DCOVERAGE=TRUE \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index f1f721eb9..397b58cc4 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -4,9 +4,8 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) -set(VCPKG_MAKE_BUILD_TRIPLET "--host=arm64-darwin-androideabi") -# TODO linux -# set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") +# Note to myself and others: this is correct even on macOS host +set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON) diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index 430f274c2..e3113ae1a 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -4,10 +4,8 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) - -set(VCPKG_MAKE_BUILD_TRIPLET "--host=arm64-darwin-android") -# TODO linux -# set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") +# Note to myself and others: this is correct even on macOS host +set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) From 2284c2fd7457559577753579642fd50d3353f124 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 16:41:34 +0200 Subject: [PATCH 044/118] try fix win --- .github/workflows/win.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index fb0fd0f6e..26c506450 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -145,7 +145,10 @@ jobs: shell: cmd run: | cd build-mm - nmake + + set PATH=${{ env.VCPKG_ROOT }};%PATH% + + cmake --build ${{ github.workspace }}\build --config Release --verbose IF NOT EXIST Input.exe (echo err_INPUT_BUILD & exit /b 1) From bbd6cc1470073009b6b5057cacb0b7914b6e0ed6 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Mon, 28 Apr 2025 16:07:38 +0200 Subject: [PATCH 045/118] bump version --- scripts/update_qt_version.bash | 56 ---------------------------------- vcpkg.json | 2 +- 2 files changed, 1 insertion(+), 57 deletions(-) delete mode 100755 scripts/update_qt_version.bash diff --git a/scripts/update_qt_version.bash b/scripts/update_qt_version.bash deleted file mode 100755 index a2ce85ff5..000000000 --- a/scripts/update_qt_version.bash +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# TODO fix! - -echo "update_qt_version.bash MAJOR.MINOR.BUILD" - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -VERSION=$1 -VER_PARTS=(${VERSION//./ }) -MAJOR=${VER_PARTS[0]} -MINOR=${VER_PARTS[1]} -BUILD=${VER_PARTS[2]} - -echo "using QT version $MAJOR.$MINOR.$BUILD" - -############ -# CMakeLists -CMAKE_FILE=$DIR/../CMakeLists.txt -echo "patching $CMAKE_FILE" -# e.g. set(QT_VERSION_DEFAULT "6.5.2") -sed -i.orig -E "s|QT_VERSION_DEFAULT \"[0-9]+.[0-9]+.[0-9]+\"|QT_VERSION_DEFAULT \"${VERSION}\"|g" $CMAKE_FILE -rm -f $CMAKE_FILE.orig - -############ -# INSTALL.md -INSTALL_FILE=$DIR/../INSTALL.md -echo "patching $INSTALL_FILE" -# e.g. /Qt/6.5.2/ unix style -sed -i.orig -E "s|/Qt/[0-9]+.[0-9]+.[0-9]+/|/Qt/${VERSION}/|g" $INSTALL_FILE -# e.g. \Qt\6.5.2\ win style -sed -i.orig -E "s|\\\Qt\\\[0-9]+.[0-9]+.[0-9]+\\\|\\\Qt\\\\${VERSION}\\\|g" $INSTALL_FILE -rm -f $INSTALL_FILE.orig - -############ -# WORKFLOWS -for FNAME in \ - $DIR/../.github/workflows/android.yml \ - $DIR/../.github/workflows/code_style.yml \ - $DIR/../.github/workflows/gallery.yml \ - $DIR/../.github/workflows/i18n.yml \ - $DIR/../.github/workflows/ios.yml \ - $DIR/../.github/workflows/linux.yml \ - $DIR/../.github/workflows/macos.yml \ - $DIR/../.github/workflows/macos_arm64.yml \ - $DIR/../.github/workflows/win.yml -do - echo "patching $FNAME" - # e.g. QT_VERSION: '6.5.2' - sed -i.orig -E "s|QT_VERSION: '[0-9]+.[0-9]+.[0-9]+'|QT_VERSION: '${VERSION}'|g" $FNAME - rm -f $FNAME.orig -done - -# DONE -echo "patching done" diff --git a/vcpkg.json b/vcpkg.json index 8194d820f..021b4a425 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -9,7 +9,7 @@ }, "name": "merginmaps-mobile-app", "description": "Collect. Share. Publish.", - "version": "2025.2.1", + "version": "2025.3.0", "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ { From fa81bd3ace44be4970b503bd0b29261a1770dd94 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Apr 2025 09:05:36 +0200 Subject: [PATCH 046/118] cleanup INSTALL instructions --- .github/workflows/linux.yml | 1 - .github/workflows/macos.yml | 2 +- .github/workflows/win.yml | 1 - INSTALL.md | 520 +++++++++++++++++++++--------------- 4 files changed, 308 insertions(+), 216 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index a37a5ae2c..640a088ac 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -123,7 +123,6 @@ jobs: -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ - -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index d731060a6..1352019c2 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -120,7 +120,7 @@ jobs: -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ - -DUSE_SERVER_API_KEY=TRUE \ + -DUSE_MM_SERVER_API_KEY=TRUE \ -DHAVE_BLUETOOTH=FALSE \ -DUSE_KEYCHAIN=No \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 26c506450..c83089ee9 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -31,7 +31,6 @@ jobs: VS_VERSION: "2022" CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' - QT_ARCH: "win64_msvc2022_64" TRIPLET: x64-windows CMAKE_GENERATOR: "Visual Studio 17 2022" # see https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md CMAKE_ARCH: "x64" diff --git a/INSTALL.md b/INSTALL.md index 21ed82461..b62e8fecf 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -41,18 +41,15 @@ place for describing build procedures. Please do not remove this notice. # 2. Overview -Mobile app, like a number of major projects (e.g., KDE 4.0), +Mobile app, like a number of major projects (e.g., KDE), uses [CMake](https://www.cmake.org) for building from source. It is C++ application build on top of [Qt](https://www.qt.io), [QGIS](https://www.qgis.org/en/site/) and many other FOSS libraries. -All required libraries (in release configuration) are packaged in the [Mobile-SDK](https://github.com/MerginMaps/mobile-sdk). -If you need to debug some error in the library, you need to compile Mobile-SDK in debug yourself locally. Otherwise, -it is suggested to download required libraries from [Mobile-SDK tags](https://github.com/MerginMaps/mobile-sdk/tags). -Mobile-SDK uses vcpkg packaging system, so if the SDK for your target system/architecture you can build it yourself. +All required libraries are build with [vcpkg](https://vcpkg.io/en/) C/C++ package manager as part of the CMake's configure step. -Generally, for building setup, you need the same versions of libraries/SDKs/NDKs/compilers as used in the official +Generally, for building setup, we recommend to use the same versions of libraries/SDKs/NDKs/compilers as used in the official [GitHub Actions](https://github.com/MerginMaps/mobile/tree/master/.github/workflows). Open workflow file for your platform/target and see the version of libraries used and replicate it in your setup. @@ -65,7 +62,7 @@ As a developer, if you want to develop against local Mergin Maps server, it is O work with public or dev server, you need to manually decrypt the file. Decrypted file is never pushed to git! -The password for decryption is in our password manager. +The password for decryption is in Lutra's password manager. if you want to change the secrets, decrypt, change and encrypt the file with [openssl](http://stackoverflow.com/questions/16056135/ddg#16056298), also @@ -87,80 +84,108 @@ openssl aes-256-cbc -d -in merginsecrets.cpp.enc -out merginsecrets.cpp -md md5 ## 2.2 Code formatting We use `astyle` to format CPP and Objective-C files. Format is similar to what QGIS has. -For more details about code conventions, please read [our code conventions doc](./docs/code_convention.md). +We use `cmake-format` to format CMake files. -We also use software [pre-commit](https://pre-commit.com/) to automatically check format when doing a commit. -You need to install it via `brew`/`pip`, see [installation details](https://pre-commit.com/#installation). +All the scripts are located in `scripts/format_*` and you can check +[GitHub Actions](https://github.com/MerginMaps/mobile/tree/master/.github/workflows/code_style.yml) to see +their usage -In order to start using the `pre-commit`, run `pre-commit install` in the repository root folder. +For more details about code conventions, please read our [code conventions doc](./docs/code_convention.md). -To manually run the style check, run `pre-commit run --all-files` or optionally run script `format_cpp.sh` (we use this one in CI currently). +## 2.3 Qt packages -In case you want to skip execution of pre-commit hooks, add additional flag `--no-verify` to your commit command, e.g.: `git commit -m "nit" --no-verify` +Mergin Maps Mobile app is built with Qt. Qt is build with vcpkg as part of the configure step, but it is recommended +to install QtCreator and Qt on your host to be able to release translations. -<<<<<<< HEAD -## 2.3 Required Qt packages +## 2.4 Vcpkg -Mergin Maps Mobile app is built with Qt. If you are using Qt's `Maintenance tool`, make sure to install these packages: - - `Android` -> when building for Android - - `iOS` -> when building for iOS - - `macOS` -> or other desktop platform based on your host machine - - `Qt 5 Compatibility Module` - - `Qt Shader Tools` - - `Additional libraries:` - - `Qt Connectivity` -> used for Bluetooth - - `Qt Network Auth` - - `Qt Multimedia` - - `Qt Positioning` - - `Qt Sensors` -======= ->>>>>>> df49e97f (use Qt from vcpkg) +Dependencies are build with vcpkg. To fix the version of libraries, you need to download vcpkg and checkout to git commit specified +in the file `VCPKG_BASELINE` in the repository. + ``` + mkdir -p vcpkg + cd vcpkg + git init + git remote add origin https://github.com/microsoft/vcpkg.git + git pull origin master + VCPKG_TAG=`cat VCPKG_BASELINE` + git checkout ${VCPKG_TAG} + cd "${{ env.VCPKG_ROOT }}" + chmod +x ./bootstrap-vcpkg.sh + ./bootstrap-vcpkg.sh + ``` + +## 2.4 ccache + +Install and configure ccache for development. It speeds up the development significantly. + # 3. Building GNU/Linux -This guide is tested with Ubuntu 22.04, on other distros some steps may need some adjustments. +## 3.1 Ubuntu 22.04 Steps to build and run mobile app: 1. Install some dependencies, critically bison and flex. See "Install Build Dependencies" step in `.github/workflows/linux.yml` -2. Get Mobile-SDK - it contains pre-built dependencies of libraries used by mobile app - - - Check what SDK version is currently in use - look for `INPUT_SDK_VERSION` in `.github/workflows/linux.yml` - - Download Mobile-SDK for Linux - go to https://github.com/merginmaps/mobile-sdk/releases and download the built SDK. - - Unpack the downloaded .tar.gz to `~/mobile-sdk/x64-linux` - -3. Get Qt libraries - currently Mobile-SDK does not include Qt SDK. - - - Ubuntu's system libraries are too old, and we recommend to use Qt's online installer - - Check what Qt version is currently in use - look for `QT_VERSION` in `.github/workflows/linux.yml` - - Download Qt online installer from https://www.qt.io/download-open-source - - Use the online installer to install Qt to `~/Qt` - - Fedora and any more recent distribution can probably use the system packages - - Check what Qt version is currently in use - look for `QT_VERSION` in `.github/workflows/linux.yml` - - If the system package version is same or higher use it - -4. Build mobile app (update CMake command with the correct Qt version) - - If you are using system packages drop `-DCMAKE_PREFIX_PATH=~/Qt//gcc_64` from the command + ``` + sudo apt-get install -y \ + gperf autopoint '^libxcb.*-dev' libx11-xcb-dev libegl1-mesa libegl1-mesa-dev \ + libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \ + autoconf-archive libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libfuse2 \ + bison flex lcov nasm libxrandr-dev xvfb + ``` + + Also install CMake 3.x, Ninja and ccache +2. Install vcpkg and checkout to correct version from file `VCPKG_BASELINE` + Read [vcpkg](#vcpkg) section. + + +3. Configure mobile app + We assume the structure on the system: ``` - mkdir build + mm1/ + build/ + vcpkg/ + mobile/ + ``` + + This is command line to setup build system. As part of the cmake configure step it will compile all the deps (Qt, GDAL, QGIS), so it + can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local + binary vcpkg cache. + + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for + development and debugging) + + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. + + ``` + mkdir -p build cd build - cmake -G Ninja \ - -DCMAKE_PREFIX_PATH=~/Qt//gcc_64 \ - -DINPUT_SDK_PATH=~/mobile-sdk/x64-linux \ - -DQGIS_QUICK_DATA_PATH=../app/android/assets/qgis-data \ - -DUSE_MM_SERVER_API_KEY=FALSE \ - .. + cmake \ + -DCMAKE_BUILD_TYPE=Debug \ + -DVCPKG_TARGET_TRIPLET=x64-linux \ + -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mobile/app/android/assets/qgis-data \ + -DUSE_MM_SERVER_API_KEY=FALSE \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DENABLE_TESTS=TRUE \ + -GNinja \ + -S ../mobile + ``` +4. Build application + + ``` ninja ``` - + 5. Run mobile app ``` ./app/Input ``` - + + For testing read [Auto Testing](#AutoTesting) section. # 4. Building Android (on Linux/macOS/Windows) @@ -177,23 +202,6 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back - `./cmdline-tools/bin/sdkmanager --sdk_root=./ "build-tools;" "ndk;" "platforms;" platform-tools tools` - flex and bison -2. Get Mobile-SDK - it contains pre-built dependencies of libraries used by mobile app - - - Check what SDK version is currently in use - look for `INPUT_SDK_VERSION` in `.github/workflows/android.yml` - - Download **TWO** Mobile-SDKs for android - go to https://github.com/merginmaps/mobile-sdk/releases and download the built SDK. - - Unpack the downloaded .tar.gz to `~/mobile-sdk/arm-android` and `~/mobile-sdk/arm64-android` - - WARNING!! It is super important to have both SDKs in same subfolder (e.g. `~/mobile-sdk`) and have folder name `arm64-android` and `arm-android` - -3. Get Qt libraries - currently Mobile-SDK does not include Qt SDK. - - - Ubuntu's system libraries are too old, and usually system packages don't contain android Qt packages - - Either use online installer: - - You need both linux and android Qt installed! - - Check what Qt version is currently in use - look for `QT_VERSION` in `.github/workflows/android.yml` - - Download Qt online installer from https://www.qt.io/download-open-source - - Use the online installer to install Qt to `~/Qt` - - Or cross-compile Qt for android - 4. Build mobile app (update CMake command with the correct Qt and Android NDK versions) ``` mkdir build @@ -217,20 +225,11 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ``` ## 4.2. Android on macOS - -1. Get Qt libraries - - - You need both macOS and android Qt installed! - - Check what Qt version is currently in use - look for `QT_VERSION` in `.github/workflows/android.yml` - - Download Qt online installer from https://www.qt.io/download-open-source - - Use the online installer to install Qt to `~/Qt` - - Needed packages can be found in the [section 2.3](#23-required-qt-packages) - -2. Install Java +1. Install Java - `brew install openjdk@17`, then make this java version default ``export JAVA_HOME=`usr/libexec/java_home -v 17` ``. Check if it's default by executing `java --version` -3. Setup Android SDK & NDK [Automatic, via QtCreator] +2. Setup Android SDK & NDK - This step can now be performed via QtCreator, if it for some reason fails/does not work, skip this step and continue with manual setup - Open QtCreator and navigate to `settings -> devices -> Android`, here: @@ -241,49 +240,78 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back - Let QtCreator install openssl - QtCreator should now say `Android settings are OK.` -4. Setup Android SDK & NDK [Manual, via sdkmanager] - - Proceed with this step only if the previous automatic step did not work for you or you do not want to use QtCreator - - - Get Android `sdkmanager` by following these steps https://developer.android.com/tools/sdkmanager - - See current versions of build tools (`SDK_BUILD_TOOLS`), ndk (`NDK_VERSION`) and platform (`SDK_PLATFORM`) in `.github/workflows/android.yml` - - Now perform `./cmdline-tools/bin/sdkmanager --sdk_root=./ "build-tools;" "ndk;" "platforms;" platform-tools tools` to install all needed Android tools, make sure to double-check if the version numbers are correct + - If the previous automatic step did not work for you or you do not want to use QtCreator + - Get Android `sdkmanager` by following these steps https://developer.android.com/tools/sdkmanager + - See current versions of build tools (`SDK_BUILD_TOOLS`), ndk (`NDK_VERSION`) and platform (`SDK_PLATFORM`) in `.github/workflows/android.yml` + - Now perform `./cmdline-tools/bin/sdkmanager --sdk_root=./ "build-tools;" "ndk;" "platforms;" platform-tools tools` to install all needed Android tools, make sure to double-check if the version numbers are correct -5. Get Mobile-SDK - it contains pre-built dependencies of used libraries (QGIS, etc..) - - - Check what SDK version is currently in use - look for `INPUT_SDK_VERSION` in `.github/workflows/android.yml` - - Download **TWO** SDKs for android (arm and arm64) - go to https://github.com/merginmaps/mobile-sdk/releases and download the built SDK. - - Unpack the downloaded .tar.gz to `~/mobile-sdk/arm-android` and `~/mobile-sdk/arm64-android` - - WARNING!! It is super important to have both SDKs in same subfolder (e.g. `~/mobile-sdk`) and have folder name `arm64-android` and `arm-android` - -6. Build (update CMake command with the correct Qt and SDK versions) +3. Configure + + We recommended to have RelWithDebInfo builds + We assume the structure on the system: + + ``` + mm1/ + build/ + vcpkg/ + mobile/ + ``` + + This is command line to setup build system. As part of the cmake configure step it will compile all the deps (Qt, GDAL, QGIS), so it + can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local + binary vcpkg cache. + + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for + development and debugging) + + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. + ``` - # Needed Android variables - export ANDROID_SDK_ROOT=~/android; - export ANDROID_NDK_ROOT=~/android/ndk/; - - # INPUT_SDK_ANDROID_BASE is a path where you stored the two SDKs from the mobile-sdk repo - export INPUT_SDK_ANDROID_BASE=~/mobile-sdk; - - # (optional, not needed often) add Java to PATH if you need to use other Java version than your default one - export PATH=/opt/homebrew/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home/bin:$PATH; - + ANDROIDAPI=24 + PATH=+/opt/homebrew/bin + PATH=+/opt/homebrew/Cellar/flex/2.6.4_2/bin + PATH=+/opt/homebrew/Cellar/bison/3.8.2/bin + PATH=+/Users/peterpetrik/Projects/quick/build/vcpkg + DEPLOYMENT_TARGET=11.0 + ANDROID_NDK_HOME=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 +``` + + You can continue with configure step: +``` cmake \ - -DCMAKE_BUILD_TYPE=Debug \ - -DQT_ANDROID_ABIS=arm64-v8a \ - -DQT_HOST_PATH=/opt/Qt//macos \ - -DCMAKE_TOOLCHAIN_FILE=/opt/Qt//android_arm64_v8a/lib/cmake/Qt6/qt.toolchain.cmake \ - -DUSE_MM_SERVER_API_KEY=FALSE \ - -GNinja \ - ../input/ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_BUILD_TYPE + -DANDROID_ABI=arm64-v8a \ + -DANDROID_NDK=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 \ + -DANDROID_PLATFORM=android-24 \ + -DANDROID_SDK_ROOT=/Users/peterpetrik/Library/Android/sdk \ + -DANDROID_NDK_VERSION="r26" \ + -DANDROID_BUILD_TOOLS_VERSION="34.0.0" \ + -DVCPKG_HOST_TRIPLET=arm64-osx \ + -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ + -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ + -DANDROID_ARM_NEON=ON \ + -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ + -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ + -DANDROIDAPI=${ANDROIDAPI} \ + -DANDROID_PLATFORM=android-${ANDROIDAPI} \ + -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ + -DANDROID_STL="c++_shared" \ + -DQT_ANDROID_SIGN_APK=Yes \ + -DQT_ANDROID_SIGN_AAB=Yes \ + -DUSE_MM_SERVER_API_KEY=Yes \ + -DUSE_KEYCHAIN=No \ + -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ + -GNinja \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -S ../mobile \ + -B ./ - # If you need to build both ABIS, use -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" ``` ## 4.3. Android on Windows -**Note to document writers:**: This section needs a proper rewrite - Even technically it should be possible, we haven't tried this setup yet. If you managed to compile mobile app for Android on Windows, please help us to update this section. @@ -294,135 +322,201 @@ mobile app for Android on Windows, please help us to update this section. 1. Setup development environment - XCode - - build tools, see requirements in `.github/workflows/ios.yml` + - install deps, see requirements in `.github/workflows/ios.yml`. Most specifically cmake 3.x, ninja, bison and flex (on PATH) - if you want to build for production, you need development certificates. These are not needed for local development, signing is handled automatically (see IOS_USE_PRODUCTION_SIGNING cmake variable for more info). You can get the certificates by following: - Get device UDID: either iTunes or about this mac->system report->USB->find iPAD (Serial Number) - Create dev iOS certificate for development - Create provisioning profile for mobile app + your certificate + your device (for this ask Lutra Apple development team) - - ios-toolchain - - download ios.toolchain.cmake from https://github.com/leetal/ios-cmake to `~/mobile-sdk/ios.toolchain.cmake` - - version from `.github/workflows/ios.yml` - -2. Get Mobile-SDK - it contains pre-built dependencies of libraries used by mobile app - - Check what SDK version is currently in use - look for `INPUT_SDK_VERSION` in `.github/workflows/ios.yml` - - Download Mobile-SDKs for ios - go to https://github.com/merginmaps/mobile-sdk/releases and download the built SDK. - - Unpack the downloaded .tar.gz to `~/mobile-sdk/arm64-ios` - -3. Get Qt libraries +2. Install vcpkg and checkout to correct version from file `VCPKG_BASELINE` + Read [vcpkg](#vcpkg) section. - - You need both macOS and ios Qt installed! - - Check what Qt version is currently in use - look for `QT_VERSION` in `.github/workflows/ios.yml` - - Download Qt online installer from https://www.qt.io/download-open-source - - Use the online installer to install Qt to `/opt/Qt` +3. Configure mobile app + We assume the structure on the system: + + ``` + mm1/ + build/ + vcpkg/ + mobile/ + ``` + + This is command line to setup build system. As part of the cmake configure step it will compile all the deps (Qt, GDAL, QGIS), so it can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local binary vcpkg cache. + + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for development and debugging) + + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. + + Note: make sure you adjust VCPKG_HOST_TRIPLET and CMAKE_SYSTEM_PROCESSOR if you use x64-osx host machine. + + ``` + cd build + + export PATH=$(brew --prefix flex)/bin:$(brew --prefix bison)/bin:$(brew --prefix gettext)/bin:$PATH;\ + export PATH=${PWD}/../vcpkg:$PATH;\ + PATH=/Applications/CMake.app/Contents/bin/:$PATH + + cmake \ + -DVCPKG_HOST_TRIPLET=arm64-osx \ + -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ + -DVCPKG_TARGET_TRIPLET=arm64-ios \ + -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \ + -D ENABLE_BITCODE=OFF \ + -D ENABLE_ARC=ON \ + -D CMAKE_CXX_VISIBILITY_PRESET=hidden \ + -D CMAKE_SYSTEM_NAME=iOS \ + -DIOS=TRUE \ + -DUSE_MM_SERVER_API_KEY=FALSE \ + -G "Xcode" \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -S ../mobile \ + -B ./ + ``` -4. Build mobile app (update CMake command with the correct Qt and Mobile-SDK versions) +4. Build mobile app Now you can create a build (either on command line or by setting these variables in Qt Creator) ``` - mkdir build - mkdir install cd build - cmake \ - -DIOS=TRUE \ - -DCMAKE_PREFIX_PATH=/opt/Qt//ios \ - -DQT_HOST_PATH=/opt/Qt//macos \ - -DCMAKE_TOOLCHAIN_FILE:PATH="~/mobile-sdk/ios.toolchain.cmake" \ - -DCMAKE_INSTALL_PREFIX:PATH="../install" \ - -DUSE_SERVER_API_KEY=FALSE \ - -DINPUT_SDK_PATH=~/mobile-sdk/arm64-ios \ - -G "Xcode" \ - ../input + xcodebuild \ + -project Input.xcodeproj/ \ + -scheme Input \ + -sdk iphoneos \ + -configuration Release \ + archive -archivePath Input.xcarchive ``` # 6. Building macOS 1. Install some dependencies, critically XCode, bison and flex. See "Install Build Dependencies" step in `.github/workflows/macos.yml` - -2. Get Mobile-SDK - it contains pre-built dependencies of used libraries - - - Check what SDK version is currently in use - look for `INPUT_SDK_VERSION` in `.github/workflows/macos.yml` - - Download Mobile-SDK for `osx` - go to https://github.com/merginmaps/mobile-sdk/releases and download the built SDK. - - Unpack the downloaded .tar.gz to `~/mobile-sdk/x64-osx` or `~/mobile-sdk/arm64-osx` - -3. Get Qt libraries - Mobile-SDK does not include Qt SDK - - - Check what Qt version is currently in use - look for `QT_VERSION` in `.github/workflows/macos.yml` - - Download Qt online installer from https://www.qt.io/download-open-source - - Use the online installer to install Qt to `/opt/Qt` - -4. Build (update CMake command with the correct Qt and paths) - - ``` - mkdir build-desktop - cd build-desktop +``` + brew install cmake automake bison flex gnu-sed autoconf-archive libtool ninja pkg-config +``` + install cmake 3.x + + Note: + - cmake 4.0.1 is broken (empty -isysroot) + - TODO test with cmake 4.0.3 which is today's + +2. Install vcpkg and checkout to correct version from file `VCPKG_BASELINE` + Read [vcpkg](#vcpkg) section. + +3. Configure mobile app + We assume the structure on the system: + + ``` + mm1/ + build/ + vcpkg/ + mobile/ + ``` + + This is command line to setup build system. As part of the cmake configure step it will compile all the deps (Qt, GDAL, QGIS), so it can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local binary vcpkg cache. + + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for development and debugging) + + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. - cmake \ + Note: for x64-osx (intel laptops) build use VCPKG_TARGET_TRIPLET instead of arm64-osx (Mx laptops) + + ``` + cd build + + export PATH=$(brew --prefix flex)/bin:$(brew --prefix bison)/bin:$(brew --prefix gettext)/bin:$PATH;\ + export PATH=${PWD}/../vcpkg:$PATH;\ + PATH=/Applications/CMake.app/Contents/bin/:$PATH + + cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_PREFIX_PATH=/opt/Qt//macos \ - -DINPUT_SDK_PATH= \ - -DQGIS_QUICK_DATA_PATH=/app/android/assets/qgis-data \ + -DVCPKG_TARGET_TRIPLET=arm64-osx \ + -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \ + -DUSE_MM_SERVER_API_KEY=FALSE \ + -DQGIS_QUICK_DATA_PATH=../mobile/app/android/assets/qgis-data \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DENABLE_TESTS=TRUE \ -GNinja \ - .. - - ninja - ``` + -DCMAKE_MAKE_PROGRAM=ninja \ + -S ../mobile + ``` + +4. Build application + + ``` + ninja + ``` 5. Run the mobile app - ``` - ./app/Input.app/Contents/MacOS/Input - ``` + ``` + ./app/Input.app/Contents/MacOS/Input + ``` # 7. Building Windows -For version of the tools used, see `.github/workflows/win.yml` +1. Install some dependencies. See `.github/workflows/win.yml` + Critically Visual Studio, cmake, bison and flex. Setup build VS environment (adjust to your version) + ``` + "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x64 + ``` -- download Mobile-SDK for win, extract to C:\projects\mobile-sdk\win-sdk -- download and install Qt -- download and install QtCreator for debugging executable -- download and install Visual Studio, SDK, Python, Cmake -- (optional) install ccache and add to PATH -- open cmd -- setup build environment -``` -set ROOT_DIR=C:\Users\\Projects -set Qt6_DIR=C:\Qt\\msvc2019_64 -set PATH=%QT_ROOT%\bin;C:\Program Files\CMake\bin\;%PATH% -"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=x64 -``` +2. Install vcpkg and checkout to correct version from file `VCPKG_BASELINE` + Read [vcpkg](#vcpkg) section. -- configure -``` -cd %ROOT_DIR%\build\input - -cmake ^ - -DCMAKE_BUILD_TYPE=Release ^ - -DCMAKE_PREFIX_PATH:PATH=%Qt6_Dir%^ - -DCMAKE_INSTALL_PREFIX:PATH=%ROOT_DIR%\install\input ^ - -DINPUT_SDK_PATH:PATH=%ROOT_DIR%\mobile-sdk\x64-windows ^ - -G "NMake Makefiles" ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ - -S %ROOT_DIR%\input ^ - -B . -``` +3. Configure mobile app + We assume the structure on the system: + + ``` + mm1/ + build/ + vcpkg/ + mobile/ + ``` + + This is command line to setup build system. As part of the cmake configure step it will compile all the deps (Qt, GDAL, QGIS), so it + can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local + binary vcpkg cache. + + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for + development and debugging) + + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. + + ``` + mkdir build + cd build -- build -``` -set CL=/MP -nmake -``` + cmake ^ + -DCMAKE_BUILD_TYPE=Debug ^ + -DCMAKE_TOOLCHAIN_FILE:PATH="../vcpkg/scripts/buildsystems/vcpkg.cmake" ^ + -G "Visual Studio 17 2022" ^ + -A x64 ^ + -DVCPKG_TARGET_TRIPLET=x64-windows ^ + -DUSE_MM_SERVER_API_KEY=FALSE ^ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ + -S ../mobile ^ + -B . + ``` + +4. Build application + + ``` + cd build + cmake --build . --config Release --verbose + ``` + +5. Run the mobile app + ``` + ./app/input.exe + ``` # 8. Common problems - If you have "error: undefined reference to 'stdout'" or so, make sure that in BUILD ENV you have ANDROID_NDK_PLATFORM=android-24 or later! - ![image](https://user-images.githubusercontent.com/22449698/166630970-a776576f-c505-4265-b4c8-ffbe212c6745.png) - If for all projects the OSM layer fails to load the `QGIS_QUICK_DATA_PATH` is probably wrong - Check where the projects are getting created - - Either change the path to point to `app/android/assets/qgis-data` of the project directory or copy the `proj` directory - from project directory to the same directory in the build directory + - Either change the path to point to `app/android/assets/qgis-data` of the project directory # 9. Auto Testing @@ -440,4 +534,4 @@ TEST_API_PASSWORD= ``` Build binary, and you can run tests either with `ctest` or you can run individual tests by adding `--test` -e.g. ` ./input --testMerginApi` +e.g. ` ./input --testMerginApi` \ No newline at end of file From e47b6fdc2e9e86229e1acc52da00d7b4bc103858 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Apr 2025 09:09:18 +0200 Subject: [PATCH 047/118] fix path --- .github/workflows/win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index c83089ee9..faf25b4ec 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -147,7 +147,7 @@ jobs: set PATH=${{ env.VCPKG_ROOT }};%PATH% - cmake --build ${{ github.workspace }}\build --config Release --verbose + cmake --build ${{ github.workspace }}\build-mm --config Release --verbose IF NOT EXIST Input.exe (echo err_INPUT_BUILD & exit /b 1) From 1e020d60e5cf5ff3efb0f21573ca51db0f6df072 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Apr 2025 09:44:44 +0200 Subject: [PATCH 048/118] small fixes --- CMakeLists.txt | 14 ++++++-------- cmake/InstallStep.cmake | 4 ++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 22d1018c8..30f23c183 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.22) # GLOBAL SETTINGS (call before "project()") # ######################################################################################## -# TODO automatically change with the scripts/update version script +# Note: To update version use script/update_all_versions.bash set(MM_VERSION_MAJOR "2025") set(MM_VERSION_MINOR "6") set(MM_VERSION_PATCH "0") @@ -12,7 +12,6 @@ set(MM_VERSION_PATCH "0") # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake if (ANDROID_ABI) - message("HELLO ANDROID") # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) @@ -47,7 +46,6 @@ endif () # iOS and macOS desktop builds if (APPLE AND NOT ANDROID_ABI) - message("HERE DEPLOYMENT_TARGET") if (DEFINED ENV{DEPLOYMENT_TARGET}) set(CMAKE_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) else () @@ -59,8 +57,9 @@ endif () # PROJECT SETUP # ######################################################################################## set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + +# TODO remove this variable set(INPUT_CMAKE_TEMPLATES_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_templates) -set(INPUT_SCRIPTS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scripts) include(VersionDetect) include(PlatformDetect) @@ -173,7 +172,7 @@ find_package( if (NOT IOS) # https://doc.qt.io/qt-6/qtprintsupport-index.html Qt Print Support is not available on - # iOS. + # iOS find_package( Qt6 COMPONENTS PrintSupport @@ -343,7 +342,6 @@ endif () # ######################################################################################## # RESOURCES # ######################################################################################## -# TODO - this would need to rething the approach so the assets are in binary folder message(STATUS "Copying proj and qgis resources to android/assets/qgis-data") file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources) file(COPY ${QGIS_RESOURCE_DIR}/qgis.db @@ -377,7 +375,7 @@ if (WIN OR LNX OR MACOS ) - # qt_add_executable on Android automatically creates target for apk/aab on IOS we use - # xcodebuild to build ipa + # qt_add_executable - on Android automatically creates target for apk/aab - on IOS we + # use xcodebuild to build ipa include(InstallStep) endif () diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index 940466378..a9ef2e8e1 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -1,5 +1,9 @@ # GPLv2 Licence +if (IOS OR ANDROID) + message(FATAL_ERROR "Install step cannot be called on IOS and Android") +endif () + # TODO is ${Qt6_DIR} defined? set(Qt6_base_dir ${Qt6_DIR}/../../..) From 62e9be6706e7206a04a47576e90ff27db72251b6 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 20 Jun 2025 13:24:09 +0200 Subject: [PATCH 049/118] docs update --- .github/workflows/android.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 05275068f..223a1189d 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -213,7 +213,6 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ - -D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ -D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ -D ANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ -D ANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ From 93a77a1042948731cba035336f312bd60136d7e8 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 20 Jun 2025 13:32:12 +0200 Subject: [PATCH 050/118] bump version --- vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg.json b/vcpkg.json index 021b4a425..099d1a9bc 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -9,7 +9,7 @@ }, "name": "merginmaps-mobile-app", "description": "Collect. Share. Publish.", - "version": "2025.3.0", + "version": "2025.4.0", "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ { From 07688deab9cfef8112475c8c7eff5643a21b45eb Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 20 Jun 2025 13:54:21 +0200 Subject: [PATCH 051/118] add x64 triplet --- vcpkg/triplets/x64-osx.cmake | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 vcpkg/triplets/x64-osx.cmake diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake new file mode 100644 index 000000000..3b4156f80 --- /dev/null +++ b/vcpkg/triplets/x64-osx.cmake @@ -0,0 +1,17 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES x86_64) +set(VCPKG_BUILD_TYPE release) + +if(DEFINED ENV{DEPLOYMENT_TARGET}) + set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") +endif() +# See https://github.com/microsoft/vcpkg/issues/10038 +set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) +set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) + From ad3ff7b485b3522528969e82436af82846a319bb Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Wed, 16 Jul 2025 20:04:58 +0200 Subject: [PATCH 052/118] Fix issues with ios build --- CMakeLists.txt | 11 +++-------- vcpkg/triplets/arm64-ios.cmake | 6 +----- vcpkg/triplets/arm64-osx.cmake | 7 ++----- vcpkg/triplets/x64-osx.cmake | 7 ++----- 4 files changed, 8 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 30f23c183..a0399f21c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,16 +41,11 @@ if (IOS) set(PLATFORM "OS") set(ENABLE_ARC FALSE) set(ENABLE_BITCODE FALSE) - # set(DEPLOYMENT_TARGET "16.0") + set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") #when changed change triplets arm64-ios.cmake endif () -# iOS and macOS desktop builds -if (APPLE AND NOT ANDROID_ABI) - if (DEFINED ENV{DEPLOYMENT_TARGET}) - set(CMAKE_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) - else () - message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") - endif () +if (APPLE AND NOT IOS) + set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") #when changed change also triplets x64/arm64-osx.cmake endif () # ######################################################################################## diff --git a/vcpkg/triplets/arm64-ios.cmake b/vcpkg/triplets/arm64-ios.cmake index 8acb52bc1..8469a37c2 100644 --- a/vcpkg/triplets/arm64-ios.cmake +++ b/vcpkg/triplets/arm64-ios.cmake @@ -4,11 +4,7 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) set(VCPKG_OSX_ARCHITECTURES arm64) -if(DEFINED ENV{DEPLOYMENT_TARGET}) - set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) -else() - message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") -endif() +set(VCPKG_OSX_DEPLOYMENT_TARGET 16.0) set(VCPKG_BUILD_TYPE release) set(VCPKG_CXX_FLAGS "-fvisibility=hidden") diff --git a/vcpkg/triplets/arm64-osx.cmake b/vcpkg/triplets/arm64-osx.cmake index 54b7f06ba..058bcc539 100644 --- a/vcpkg/triplets/arm64-osx.cmake +++ b/vcpkg/triplets/arm64-osx.cmake @@ -6,11 +6,8 @@ set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES arm64) set(VCPKG_BUILD_TYPE release) -if(DEFINED ENV{DEPLOYMENT_TARGET}) - set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) -else() - message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") -endif() +set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) + # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake index 3b4156f80..bfd3bb43f 100644 --- a/vcpkg/triplets/x64-osx.cmake +++ b/vcpkg/triplets/x64-osx.cmake @@ -6,11 +6,8 @@ set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) set(VCPKG_BUILD_TYPE release) -if(DEFINED ENV{DEPLOYMENT_TARGET}) - set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) -else() - message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") -endif() +set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) + # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) From 747eb16fa22cab46deffb32d670be5887b0e1d7f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Jul 2025 08:54:49 +0200 Subject: [PATCH 053/118] more work on android --- .github/workflows/android.yml | 15 ++++------- CMakeLists.txt | 16 +++++------- INSTALL.md | 42 ++++++++++++++---------------- vcpkg.json | 1 + vcpkg/triplets/arm-android.cmake | 13 +++++---- vcpkg/triplets/arm64-android.cmake | 15 +++++------ 6 files changed, 44 insertions(+), 58 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 223a1189d..eb80f0712 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -213,21 +213,16 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ - -D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ - -D ANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ - -D ANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ + -DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ + -DANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ + -DANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ -DVCPKG_HOST_TRIPLET=arm64-osx \ - -D VCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ - -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ + -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ + -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ -DANDROID_ARM_NEON=ON \ -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ - -DANDROIDAPI=${ANDROIDAPI} \ - -DANDROID_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_STL="c++_shared" \ -DQT_ANDROID_SIGN_APK=Yes \ - -DQT_ANDROID_SIGN_AAB=Yes \ -DUSE_MM_SERVER_API_KEY=Yes \ -DUSE_KEYCHAIN=No \ -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ diff --git a/CMakeLists.txt b/CMakeLists.txt index a0399f21c..3149fd618 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,15 +15,10 @@ if (ANDROID_ABI) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) - if (DEFINED ENV{ANDROIDAPI}) - set(ANDROIDAPI $ENV{ANDROIDAPI}) - else () - message(FATAL_ERROR "ANDROIDAPI not defined as env variable") - endif () - # set(ANDROIDAPI "28") + set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake - set(ANDROID_PLATFORM "android-${ANDROIDAPI}") - set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") + set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake + set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake set(ANDROID_STL "c++_shared") # Target/Minimum API levels for Android, used as Input target properties @@ -33,6 +28,7 @@ if (ANDROID_ABI) if (NOT INPUT_ANDROID_NDK_PATH) message(FATAL_ERROR "Set required environment variable ANDROID_NDK_ROOT.") endif () + endif () if (IOS) @@ -41,11 +37,11 @@ if (IOS) set(PLATFORM "OS") set(ENABLE_ARC FALSE) set(ENABLE_BITCODE FALSE) - set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") #when changed change triplets arm64-ios.cmake + set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") # when changed change triplets arm64-ios.cmake endif () if (APPLE AND NOT IOS) - set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") #when changed change also triplets x64/arm64-osx.cmake + set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") # when changed change also triplets *-osx.cmake endif () # ######################################################################################## diff --git a/INSTALL.md b/INSTALL.md index b62e8fecf..7bb5ed58e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -268,12 +268,10 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ``` - ANDROIDAPI=24 PATH=+/opt/homebrew/bin PATH=+/opt/homebrew/Cellar/flex/2.6.4_2/bin PATH=+/opt/homebrew/Cellar/bison/3.8.2/bin PATH=+/Users/peterpetrik/Projects/quick/build/vcpkg - DEPLOYMENT_TARGET=11.0 ANDROID_NDK_HOME=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 ``` @@ -281,33 +279,31 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ``` cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_BUILD_TYPE -DANDROID_ABI=arm64-v8a \ + -DVCPKG_HOST_TRIPLET=arm64-osx \ + -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ -DANDROID_NDK=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 \ -DANDROID_PLATFORM=android-24 \ -DANDROID_SDK_ROOT=/Users/peterpetrik/Library/Android/sdk \ -DANDROID_NDK_VERSION="r26" \ -DANDROID_BUILD_TOOLS_VERSION="34.0.0" \ - -DVCPKG_HOST_TRIPLET=arm64-osx \ - -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ - -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ - -DANDROID_ARM_NEON=ON \ - -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ - -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ - -DANDROIDAPI=${ANDROIDAPI} \ - -DANDROID_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_STL="c++_shared" \ - -DQT_ANDROID_SIGN_APK=Yes \ - -DQT_ANDROID_SIGN_AAB=Yes \ - -DUSE_MM_SERVER_API_KEY=Yes \ - -DUSE_KEYCHAIN=No \ - -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ - -GNinja \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -S ../mobile \ - -B ./ - + -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ + -DANDROID_ARM_NEON=ON \ + -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ + -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ + -DANDROIDAPI=${ANDROIDAPI} \ + -DANDROID_PLATFORM=android-${ANDROIDAPI} \ + -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ + -DANDROID_STL="c++_shared" \ + -DQT_ANDROID_SIGN_APK=Yes \ + -DQT_ANDROID_SIGN_AAB=Yes \ + -DUSE_MM_SERVER_API_KEY=Yes \ + -DUSE_KEYCHAIN=No \ + -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ + -GNinja \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -S ../mobile \ + -B ./ ``` ## 4.3. Android on Windows diff --git a/vcpkg.json b/vcpkg.json index 099d1a9bc..ff29b14a4 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -81,6 +81,7 @@ "qtconnectivity", "qtdeclarative", "qtimageformats", + "qtnetworkauth", "qtlocation", { "name": "qtmultimedia", diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 397b58cc4..46ece50f2 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -7,15 +7,14 @@ set(VCPKG_BUILD_TYPE release) # Note to myself and others: this is correct even on macOS host set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") - set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON) -if(DEFINED ENV{ANDROIDAPI}) - set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) -else() - message(FATAL_ERROR "ANDROIDAPI not defined as env variable") -endif() - +set(ANDROIDAPI "28") # when changed change CMakeLists.cmake +set(ANDROID_PLATFORM "android-${ANDROIDAPI}") +set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") +set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") +set(ANDROID_STL "c++_shared") + set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index e3113ae1a..694504dd3 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -9,12 +9,11 @@ set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) -set(VCPKG_CXX_FLAGS "-fstack-protector-strong") -set(VCPKG_C_FLAGS "-fstack-protector-strong") - -if(DEFINED ENV{ANDROIDAPI}) - set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) -else() - message(FATAL_ERROR "$ENV{ANDROIDAPI} not defined as env variable") -endif() +set(ANDROIDAPI "28") # when changed change CMakeLists.cmake +set(ANDROID_PLATFORM "android-${ANDROIDAPI}") +set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") +set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") +set(ANDROID_STL "c++_shared") +set(VCPKG_CXX_FLAGS "-fstack-protector-strong") +set(VCPKG_C_FLAGS "-fstack-protector-strong") \ No newline at end of file From 956966dc48c15d1eb7f750921eab415da5aaa12f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Jul 2025 09:45:26 +0200 Subject: [PATCH 054/118] fix android build --- .github/workflows/android.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index eb80f0712..b67a8dac6 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -151,7 +151,7 @@ jobs: echo "path to keystore $PATH_TO_KEYSTORE" echo "QT_ANDROID_KEYSTORE_PATH=$PATH_TO_KEYSTORE" >> $GITHUB_ENV - - name: Get vcpkg + - name: Install vcpkg shell: bash run: | mkdir -p "${{ env.VCPKG_ROOT }}" @@ -159,13 +159,8 @@ jobs: git init git remote add origin https://github.com/microsoft/vcpkg.git git pull origin master - VCPKG_TAG=`cat ${{ github.workspace }}/VCPKG_BASELINE` - echo "using VCPKG_TAG ${VCPKG_TAG}" + VCPKG_TAG=`cat ${{ github.workspace }}/mm/VCPKG_BASELINE` git checkout ${VCPKG_TAG} - - - name: Install vcpkg - run: | - echo "install vcpkg" cd "${{ env.VCPKG_ROOT }}" chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh From 826db194bffd77b3c025c1ff216efb08a233eb9c Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Jul 2025 13:34:13 +0200 Subject: [PATCH 055/118] fix android build --- vcpkg/triplets/arm-android.cmake | 5 +++++ vcpkg/triplets/arm64-android.cmake | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 46ece50f2..7978da6fb 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -15,6 +15,11 @@ set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") set(ANDROID_STL "c++_shared") +if (NOT DEFINED ENV{ANDROID_SDK_ROOT}) + message(FATAL_ERROR "Set required environment variable ANDROID_SDK_ROOT.") +endif () +set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) + set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index 694504dd3..b26ce9c2d 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -15,5 +15,10 @@ set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") set(ANDROID_STL "c++_shared") +if (NOT DEFINED ENV{ANDROID_SDK_ROOT}) + message(FATAL_ERROR "Set required environment variable ANDROID_SDK_ROOT.") +endif () +set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) + set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") \ No newline at end of file From fb36dda51d7b79763ade0b25cce293485283e02d Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 09:15:57 +0200 Subject: [PATCH 056/118] add glesv2 to android --- vcpkg.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vcpkg.json b/vcpkg.json index ff29b14a4..a7bd63df4 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -60,6 +60,10 @@ "host": true, "default-features": false }, + { + "name": "gles2", + "platform": "android" + }, { "name": "qca", "default-features": false, From dfb8182dc0285641a0e2ce789d251fe5cab81da8 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 12:51:29 +0200 Subject: [PATCH 057/118] another android fixes --- CMakeLists.txt | 18 +++++-- INSTALL.md | 81 ++++++++++++++++-------------- cmake/PlatformDetect.cmake | 2 +- vcpkg.json | 4 -- vcpkg/triplets/arm-android.cmake | 9 +++- vcpkg/triplets/arm64-android.cmake | 7 ++- 6 files changed, 70 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3149fd618..f0a6f8a63 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,11 +15,17 @@ if (ANDROID_ABI) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) - set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake - - set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake - set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake + set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets + # *-android.cmake + + set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change + # VCPKG_CMAKE_SYSTEM_VERSION in triplets + # *-android.cmake + set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") # when changed change + # VCPKG_CMAKE_SYSTEM_VERSION in + # triplets *-android.cmake set(ANDROID_STL "c++_shared") + set(ANDROID_ARM_NEON ON) # Target/Minimum API levels for Android, used as Input target properties set(INPUT_ANDROID_TARGET_SDK_VERSION "34") @@ -28,7 +34,9 @@ if (ANDROID_ABI) if (NOT INPUT_ANDROID_NDK_PATH) message(FATAL_ERROR "Set required environment variable ANDROID_NDK_ROOT.") endif () - + set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE + "${INPUT_ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake" + ) endif () if (IOS) diff --git a/INSTALL.md b/INSTALL.md index 7bb5ed58e..d75228c16 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -193,6 +193,8 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ## 4.1. Android on Linux +!TODO - merge with android on macos! + 1. Install some dependencies, see requirements in `.github/workflows/android.yml` - Java 17 (on Ubuntu 22.04 do `sudo apt install openjdk-17-jdk` and make sure it is the default by checking `java --version`) @@ -261,51 +263,52 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local binary vcpkg cache. + ``` + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DANDROID_ABI=arm64-v8a \ + -DVCPKG_HOST_TRIPLET=arm64-osx \ + -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ + -DANDROID_NDK=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 \ + -DANDROID_PLATFORM=android-24 \ + -DANDROID_SDK_ROOT=/Users/peterpetrik/Library/Android/sdk \ + -DANDROID_NDK_VERSION="r26" \ + -DANDROID_BUILD_TOOLS_VERSION="34.0.0" \ + -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ + -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ + -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ + -DCMAKE_TOOLCHAIN_FILE:PATH="../vcpkg/scripts/buildsystems/vcpkg.cmake" \ + -GNinja \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -S ../mobile \ + -B ./ + ``` + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for development and debugging) + + Add this to build env. + ``` + PATH=+/opt/homebrew/bin + PATH=+/opt/homebrew/Cellar/flex/2.6.4_2/bin + PATH=+/opt/homebrew/Cellar/bison/3.8.2/bin + PATH=+/Users/peterpetrik/Projects/quick/build/vcpkg + ANDROID_NDK_HOME=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 + ``` + And this to cmake options + ``` + ANDROID_PLATFORM=android-24 + VCPKG_HOST_TRIPLET=arm64-osx + VCPKG_TARGET_TRIPLET=arm64-android + CMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake + VCPKG_INSTALL_OPTIONS="--allow-unsupported" + ``` + + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. -``` - PATH=+/opt/homebrew/bin - PATH=+/opt/homebrew/Cellar/flex/2.6.4_2/bin - PATH=+/opt/homebrew/Cellar/bison/3.8.2/bin - PATH=+/Users/peterpetrik/Projects/quick/build/vcpkg - ANDROID_NDK_HOME=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 -``` - - You can continue with configure step: -``` - cmake \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DANDROID_ABI=arm64-v8a \ - -DVCPKG_HOST_TRIPLET=arm64-osx \ - -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ - -DANDROID_NDK=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 \ - -DANDROID_PLATFORM=android-24 \ - -DANDROID_SDK_ROOT=/Users/peterpetrik/Library/Android/sdk \ - -DANDROID_NDK_VERSION="r26" \ - -DANDROID_BUILD_TOOLS_VERSION="34.0.0" \ - -D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \ - -DANDROID_ARM_NEON=ON \ - -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ - -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ - -DANDROIDAPI=${ANDROIDAPI} \ - -DANDROID_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \ - -DANDROID_STL="c++_shared" \ - -DQT_ANDROID_SIGN_APK=Yes \ - -DQT_ANDROID_SIGN_AAB=Yes \ - -DUSE_MM_SERVER_API_KEY=Yes \ - -DUSE_KEYCHAIN=No \ - -DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \ - -GNinja \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -S ../mobile \ - -B ./ -``` - ## 4.3. Android on Windows Even technically it should be possible, we haven't tried this setup yet. If you managed to compile diff --git a/cmake/PlatformDetect.cmake b/cmake/PlatformDetect.cmake index a1370b6e2..e22ce6962 100644 --- a/cmake/PlatformDetect.cmake +++ b/cmake/PlatformDetect.cmake @@ -2,7 +2,7 @@ # needs to be called after project() command so toolchains are already evaluated macro (mm_detect_platform) - if (ANDROID OR CMAKE_SYSTEM_NAME STREQUAL "Android") + if (ANDROID_ABI OR CMAKE_SYSTEM_NAME STREQUAL "Android") # android can be build on any host platform set(ANDROID TRUE) else () diff --git a/vcpkg.json b/vcpkg.json index a7bd63df4..ff29b14a4 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -60,10 +60,6 @@ "host": true, "default-features": false }, - { - "name": "gles2", - "platform": "android" - }, { "name": "qca", "default-features": false, diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 7978da6fb..46f638bfe 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -1,6 +1,13 @@ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) + +include("${CMAKE_CURRENT_LIST_DIR}/static-ports.cmake") +if (PORT IN_LIST STATIC_PORTS) + set(VCPKG_LIBRARY_LINKAGE static) +else() + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index b26ce9c2d..3003d34cc 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -1,6 +1,11 @@ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) +include("${CMAKE_CURRENT_LIST_DIR}/static-ports.cmake") +if (PORT IN_LIST STATIC_PORTS) + set(VCPKG_LIBRARY_LINKAGE static) +else() + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_BUILD_TYPE release) From 62eb000d9abd4fb4566f8088d523af9b099c6f1b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 13:58:40 +0200 Subject: [PATCH 058/118] android --- .github/workflows/android.yml | 1 - CMakeLists.txt | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b67a8dac6..564deba0d 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -214,7 +214,6 @@ jobs: -DVCPKG_HOST_TRIPLET=arm64-osx \ -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ - -DANDROID_ARM_NEON=ON \ -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ -DQT_ANDROID_SIGN_APK=Yes \ diff --git a/CMakeLists.txt b/CMakeLists.txt index f0a6f8a63..72dc7e233 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,7 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## + find_package( Qt6 COMPONENTS Quick @@ -169,6 +170,13 @@ find_package( REQUIRED ) +# Qt by default assumes that cmake files live in `lib/cmake`. Point to `share` instead. +# See https://github.com/qt/qtbase/blob/39290c508e2c7fa816c6f79b3eb284adc0cad3c0/src/corelib/Qt6AndroidMacros.cmake#L1016C16-L1026 +if(ANDROID) + get_filename_component(QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI} "${Qt6_DIR}/.." ABSOLUTE) + message(STATUS "QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI}: ${QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI}}") +endif() + if (NOT IOS) # https://doc.qt.io/qt-6/qtprintsupport-index.html Qt Print Support is not available on # iOS @@ -338,6 +346,24 @@ if (IOS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-shorten-64-to-32") endif () + +if (ANDROID) + if(VCPKG_TARGET_TRIPLET STREQUAL "arm-android") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong") + endif() + + link_libraries("-ljnigraphics") + + # Make sure the generator for android_deployment_settings.json can figure out the architecture + list(APPEND CMAKE_FIND_ROOT_PATH /) + + # set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_BINARY_DIR}/android-template) +endif() + # ######################################################################################## # RESOURCES # ######################################################################################## From 8bf61e77968e31552fd855448ead4566238dc246 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 13:58:54 +0200 Subject: [PATCH 059/118] android --- CMakeLists.txt | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 72dc7e233..4046746fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,7 +149,6 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## - find_package( Qt6 COMPONENTS Quick @@ -171,11 +170,17 @@ find_package( ) # Qt by default assumes that cmake files live in `lib/cmake`. Point to `share` instead. -# See https://github.com/qt/qtbase/blob/39290c508e2c7fa816c6f79b3eb284adc0cad3c0/src/corelib/Qt6AndroidMacros.cmake#L1016C16-L1026 -if(ANDROID) - get_filename_component(QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI} "${Qt6_DIR}/.." ABSOLUTE) - message(STATUS "QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI}: ${QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI}}") -endif() +# See +# https://github.com/qt/qtbase/blob/39290c508e2c7fa816c6f79b3eb284adc0cad3c0/src/corelib/Qt6AndroidMacros.cmake#L1016C16-L1026 +if (ANDROID) + get_filename_component( + QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI} "${Qt6_DIR}/.." ABSOLUTE + ) + message( + STATUS + "QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI}: ${QT_ANDROID_PATH_CMAKE_DIR_${ANDROID_ABI}}" + ) +endif () if (NOT IOS) # https://doc.qt.io/qt-6/qtprintsupport-index.html Qt Print Support is not available on @@ -346,23 +351,27 @@ if (IOS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-shorten-64-to-32") endif () - if (ANDROID) - if(VCPKG_TARGET_TRIPLET STREQUAL "arm-android") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") - else() + if (VCPKG_TARGET_TRIPLET STREQUAL "arm-android") + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a" + ) + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a" + ) + else () set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong") - endif() + endif () link_libraries("-ljnigraphics") - # Make sure the generator for android_deployment_settings.json can figure out the architecture + # Make sure the generator for android_deployment_settings.json can figure out the + # architecture list(APPEND CMAKE_FIND_ROOT_PATH /) # set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_BINARY_DIR}/android-template) -endif() +endif () # ######################################################################################## # RESOURCES From 9eb8784eb1d84db2f2d7f20d7ff1219a1dc200ac Mon Sep 17 00:00:00 2001 From: Withalion Date: Fri, 1 Aug 2025 18:29:30 +0300 Subject: [PATCH 060/118] Fix android build --- .github/workflows/android.yml | 2 +- CMakeLists.txt | 6 +- INSTALL.md | 142 +++++++++++++++++++++-------- cmake_templates/build.gradle.in | 15 +-- vcpkg/triplets/arm-android.cmake | 2 +- vcpkg/triplets/arm64-android.cmake | 2 +- 6 files changed, 114 insertions(+), 55 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 564deba0d..bf7a91a86 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -246,7 +246,7 @@ jobs: uses: actions/upload-artifact@v4 with: path: ${{ github.workspace }}/merginmaps-${{ env.INPUT_VERSION_CODE }}.apk - name: Mergin Maps ${{ env.INPUT_VERSION_CODE }} APK [v7 + v8a] + name: Mergin Maps ${{ env.INPUT_VERSION_CODE }} APK [${{ matrix.ANDROID_ABI }}] - name: Build AAB if: ${{ github.ref_name == 'master' || startsWith( github.ref_name, 'dev/' ) || github.ref_type == 'tag' }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 4046746fe..0c4d40264 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,11 +28,11 @@ if (ANDROID_ABI) set(ANDROID_ARM_NEON ON) # Target/Minimum API levels for Android, used as Input target properties - set(INPUT_ANDROID_TARGET_SDK_VERSION "34") + set(INPUT_ANDROID_TARGET_SDK_VERSION "35") set(INPUT_ANDROID_MIN_SDK_VERSION "${ANDROIDAPI}") - set(INPUT_ANDROID_NDK_PATH "$ENV{ANDROID_NDK_ROOT}") + set(INPUT_ANDROID_NDK_PATH "$ENV{ANDROID_NDK_HOME}") if (NOT INPUT_ANDROID_NDK_PATH) - message(FATAL_ERROR "Set required environment variable ANDROID_NDK_ROOT.") + message(FATAL_ERROR "Set required environment variable ANDROID_NDK_HOME.") endif () set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${INPUT_ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake" diff --git a/INSTALL.md b/INSTALL.md index d75228c16..a86a793b1 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -193,8 +193,6 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ## 4.1. Android on Linux -!TODO - merge with android on macos! - 1. Install some dependencies, see requirements in `.github/workflows/android.yml` - Java 17 (on Ubuntu 22.04 do `sudo apt install openjdk-17-jdk` and make sure it is the default by checking `java --version`) @@ -203,28 +201,83 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back - See current versions of build tools (`SDK_BUILD_TOOLS`), ndk (`NDK_VERSION`) and platform (`SDK_PLATFORM`) in `.github/workflows/android.yml` - `./cmdline-tools/bin/sdkmanager --sdk_root=./ "build-tools;" "ndk;" "platforms;" platform-tools tools` - flex and bison + - set up your own developer keystore. Creating the key(store) can be done either with Android studio or on command line + with `keytool -genkeypair`. -4. Build mobile app (update CMake command with the correct Qt and Android NDK versions) -``` - mkdir build - cd build +2. Build mobile app (update CMake command with the correct Qt and Android NDK versions) + + We recommended to have **RelWithDebInfo** builds, which requires signing the APK with your key. + + We assume the structure on the system: + + ``` + mm1/ + build/ + vcpkg/ + mobile/ + ``` + + This is command line to setup build system. As part of the cmake configure step it will compile all the deps (Qt, GDAL, QGIS), so it + can take considerable time (e.g. an hour). Subsequent runs will be faster as the libraries without change will be taken from local + binary vcpkg cache. - export ANDROID_SDK_ROOT=~/android; - export ANDROID_NDK_ROOT=~/android/ndk/; - export QT_BASE=~/Qt/; - export INPUT_SDK_ANDROID_BASE=~/mobile-sdk; + ``` + export ANDROID_NDK_HOME=/home//android/ndk/ + export ANDROID_SDK_ROOT=/home//android + export QT_ANDROID_KEYSTORE_ALIAS= + export QT_ANDROID_KEYSTORE_KEY_PASS= + export QT_ANDROID_KEYSTORE_STORE_PASS= + export QT_ANDROID_KEYSTORE_PATH= + + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DANDROID_ABI=arm64-v8a \ + -DQT_ANDROID_ABIS=arm64-v8a \ + -DVCPKG_HOST_TRIPLET=x64-linux \ + -DVCPKG_TARGET_TRIPLET=arm64-android \ + -DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake \ + -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ + -DUSE_MM_SERVER_API_KEY=TRUE \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DANDROID_SDK_ROOT=/home//android \ + -DQT_ANDROID_SIGN_APK=Yes + -GNinja \ + -S ../mobile \ + -B ./ + ``` + + Alternatively you can open QtCreator and add cmake defines to the QtCreator Project setup table and configure from QtCreator (recommended for + development and debugging) + + + Add this to build env. + + ``` + PATH=+/Users//Projects/quick/build/vcpkg + ANDROID_NDK_HOME=/Users//android/ndk/ + ANDROID_SDK_ROOT=/Users//android + QT_ANDROID_KEYSTORE_ALIAS= + QT_ANDROID_KEYSTORE_KEY_PASS= + QT_ANDROID_KEYSTORE_STORE_PASS= + QT_ANDROID_KEYSTORE_PATH= + ``` + And this to cmake options + + ``` + ANDROID_ABI=arm64-v8a + QT_ANDROID_ABIS=arm64-v8a + VCPKG_HOST_TRIPLET=x64-linux + VCPKG_TARGET_TRIPLET=arm64-android + CMAKE_TOOLCHAIN_FILE="../vcpkg/scripts/buildsystems/vcpkg.cmake" + VCPKG_INSTALL_OPTIONS="--allow-unsupported" + CMAKE_CXX_COMPILER_LAUNCHER=ccache + ANDROID_SDK_ROOT=/Users//android + QT_ANDROID_SIGN_APK=Yes + ``` - cmake \ - -DCMAKE_BUILD_TYPE=Debug \ - -DQT_ANDROID_ABIS="arm64-v8a" \ - -DQT_HOST_PATH=$QT_BASE/gcc_64 \ - -DCMAKE_TOOLCHAIN_FILE=$QT_BASE/android_arm64_v8a/lib/cmake/Qt6/qt.toolchain.cmake \ - -DUSE_MM_SERVER_API_KEY=FALSE \ - -GNinja \ - ../input/ - ninja apk -``` + To use USE_MM_SERVER_API_KEY read [Secrets](#Secrets) section. + ## 4.2. Android on macOS 1. Install Java @@ -249,7 +302,8 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back 3. Configure - We recommended to have RelWithDebInfo builds + We recommended to have **RelWithDebInfo** builds + We assume the structure on the system: ``` @@ -264,22 +318,25 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back binary vcpkg cache. ``` + export ANDROID_NDK_HOME=/Users//android/ndk/ + export ANDROID_SDK_ROOT=/Users//android + export QT_ANDROID_KEYSTORE_ALIAS= + export QT_ANDROID_KEYSTORE_KEY_PASS= + export QT_ANDROID_KEYSTORE_STORE_PASS= + export QT_ANDROID_KEYSTORE_PATH= + cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DANDROID_ABI=arm64-v8a \ + -DQT_ANDROID_ABIS=arm64-v8a \ -DVCPKG_HOST_TRIPLET=arm64-osx \ - -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ - -DANDROID_NDK=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 \ - -DANDROID_PLATFORM=android-24 \ - -DANDROID_SDK_ROOT=/Users/peterpetrik/Library/Android/sdk \ - -DANDROID_NDK_VERSION="r26" \ - -DANDROID_BUILD_TOOLS_VERSION="34.0.0" \ + -DVCPKG_TARGET_TRIPLET=arm64-android \ + -DCMAKE_TOOLCHAIN_FILE="../vcpkg/scripts/buildsystems/vcpkg.cmake" \ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ - -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ - -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ - -DCMAKE_TOOLCHAIN_FILE:PATH="../vcpkg/scripts/buildsystems/vcpkg.cmake" \ - -GNinja \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DANDROID_SDK_ROOT=/Users//android \ + -DQT_ANDROID_SIGN_APK=Yes \ + -GNinja \ -S ../mobile \ -B ./ ``` @@ -293,16 +350,25 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back PATH=+/opt/homebrew/bin PATH=+/opt/homebrew/Cellar/flex/2.6.4_2/bin PATH=+/opt/homebrew/Cellar/bison/3.8.2/bin - PATH=+/Users/peterpetrik/Projects/quick/build/vcpkg - ANDROID_NDK_HOME=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 + PATH=+/Users//Projects/quick/build/vcpkg + ANDROID_NDK_HOME=/Users//android/ndk/ + ANDROID_SDK_ROOT=/Users//android + QT_ANDROID_KEYSTORE_ALIAS= + QT_ANDROID_KEYSTORE_KEY_PASS= + QT_ANDROID_KEYSTORE_STORE_PASS= + QT_ANDROID_KEYSTORE_PATH= ``` And this to cmake options ``` - ANDROID_PLATFORM=android-24 - VCPKG_HOST_TRIPLET=arm64-osx - VCPKG_TARGET_TRIPLET=arm64-android - CMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake - VCPKG_INSTALL_OPTIONS="--allow-unsupported" + ANDROID_ABI=arm64-v8a + QT_ANDROID_ABIS=arm64-v8a + VCPKG_HOST_TRIPLET=arm64-osx + VCPKG_TARGET_TRIPLET=arm64-android + CMAKE_TOOLCHAIN_FILE="../vcpkg/scripts/buildsystems/vcpkg.cmake" + VCPKG_INSTALL_OPTIONS="--allow-unsupported" + CMAKE_CXX_COMPILER_LAUNCHER=ccache + ANDROID_SDK_ROOT=/Users//android + QT_ANDROID_SIGN_APK=Yes ``` diff --git a/cmake_templates/build.gradle.in b/cmake_templates/build.gradle.in index c83f1abab..8bd2fadcf 100644 --- a/cmake_templates/build.gradle.in +++ b/cmake_templates/build.gradle.in @@ -1,20 +1,13 @@ /* keep in sync with /opt/Qt//android//src/android/templates/build.gradle */ buildscript { - ext { - buildToolsVersion = androidBuildToolsVersion - compileSdkVersion = androidCompileSdkVersion.toInteger() - targetSdkVersion = androidCompileSdkVersion.toInteger() - ndkVersion = androidNdkVersion - } - repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' + classpath 'com.android.tools.build:gradle:8.6.0' } } @@ -50,11 +43,11 @@ android { * Changing them manually might break the compilation! *******************************************************/ - compileSdkVersion androidCompileSdkVersion.toInteger() + namespace 'uk.co.lutraconsulting' + compileSdkVersion androidCompileSdkVersion buildToolsVersion androidBuildToolsVersion ndkVersion androidNdkVersion - ndkPath '@INPUT_ANDROID_NDK_PATH@' - + packagingOptions.jniLibs.useLegacyPackaging true sourceSets { diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 46f638bfe..3446fd7c0 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -16,7 +16,7 @@ set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON) -set(ANDROIDAPI "28") # when changed change CMakeLists.cmake +set(ANDROIDAPI "28") # when changed change CMakeLists.txt set(ANDROID_PLATFORM "android-${ANDROIDAPI}") set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index 3003d34cc..a0123c870 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -14,7 +14,7 @@ set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) -set(ANDROIDAPI "28") # when changed change CMakeLists.cmake +set(ANDROIDAPI "28") # when changed change CMakeLists.txt set(ANDROID_PLATFORM "android-${ANDROIDAPI}") set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") From dd473190a3c46c15c1c0e107605d46cbbd6d471f Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Mon, 4 Aug 2025 10:33:00 +0200 Subject: [PATCH 061/118] try fix win build --- app/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 86178c294..b15141832 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -577,6 +577,8 @@ if (WIN) WinLibraries::swscale WinLibraries::openh264 ) + + target_link_libraries(Input PUBLIC expat::expat) endif () if (ENABLE_TESTS) From 68620dc2914e7beede828c86d1aaee919f9b0626 Mon Sep 17 00:00:00 2001 From: Withalion Date: Wed, 13 Aug 2025 16:57:51 +0300 Subject: [PATCH 062/118] Fix install step for linux (maybe windows) Installed linux app is still non functional for me --- cmake/InstallStep.cmake | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index a9ef2e8e1..73848efe7 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -4,8 +4,7 @@ if (IOS OR ANDROID) message(FATAL_ERROR "Install step cannot be called on IOS and Android") endif () -# TODO is ${Qt6_DIR} defined? -set(Qt6_base_dir ${Qt6_DIR}/../../..) +set(Qt6_base_dir ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/Qt6) # ######################################################################################## # Binary @@ -14,13 +13,13 @@ set(Qt6_base_dir ${Qt6_DIR}/../../..) if (WIN) install( TARGETS Input - LIBRARY DESTINATION lib/ + LIBRARY DESTINATION lib64/ RUNTIME DESTINATION . ) else () install( TARGETS Input - LIBRARY DESTINATION lib/ + LIBRARY DESTINATION lib64/ BUNDLE DESTINATION . ) endif () @@ -62,38 +61,32 @@ endif () # ######################################################################################## if (WIN) install( - DIRECTORY ${INPUT_SDK_PATH_MULTI}/bin/ + DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/ DESTINATION . FILES_MATCHING PATTERN "*.dll" PATTERN "Qca" EXCLUDE ) install( - DIRECTORY ${INPUT_SDK_PATH_MULTI}/bin/Qca/crypto/ + DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qca/crypto/ DESTINATION . FILES_MATCHING PATTERN "*.dll" ) install( - DIRECTORY ${INPUT_SDK_PATH_MULTI}/tools/qgis/plugins/ + DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/qgis/plugins/ DESTINATION . FILES_MATCHING PATTERN "*.dll" ) elseif (LNX) install( - DIRECTORY ${INPUT_SDK_PATH_MULTI}/lib/ - DESTINATION lib/ + DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/ + DESTINATION lib64 FILES_MATCHING - PATTERN "*.so" - PATTERN "qca-qt6" EXCLUDE - ) - install( - DIRECTORY ${INPUT_SDK_PATH_MULTI}/lib/qca-qt6/crypto/ - DESTINATION lib/ - FILES_MATCHING - PATTERN "*.so" + PATTERN "*.so*" ) + endif () # ######################################################################################## @@ -145,7 +138,7 @@ foreach (plugins_dir ${plugins_dirs}) elseif (LNX) install( DIRECTORY ${Qt6_base_dir}/plugins/${plugins_dir} - DESTINATION plugins/ + DESTINATION ${CMAKE_INSTALL_BINDIR} PATTERN "*d.so" EXCLUDE ) endif () @@ -161,7 +154,7 @@ if (WIN) elseif (LNX) install( DIRECTORY ${Qt6_base_dir}/plugins/tls - DESTINATION plugins/ + DESTINATION ${CMAKE_INSTALL_BINDIR} PATTERN "*dd.so" EXCLUDE ) endif () @@ -175,7 +168,6 @@ set(qt_libs Designer DesignerComponents Gui - Help LabsAnimation LabsFolderListModel LabsQmlModels @@ -201,7 +193,6 @@ set(qt_libs QmlWorkerScript QmlXmlListModel Quick - Quick3DSpatialAudio QuickControls2 QuickControls2Basic QuickControls2BasicStyleImpl @@ -230,14 +221,14 @@ set(qt_libs foreach (qt_lib ${qt_libs}) if (WIN) - install(FILES ${Qt6_base_dir}/bin/Qt6${qt_lib}.dll DESTINATION .) + install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qt6${qt_lib}.dll DESTINATION .) elseif (LNX) - install(FILES ${Qt6_base_dir}/lib/libQt6${qt_lib}.so DESTINATION .) + install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libQt6${qt_lib}.so DESTINATION lib64) endif () endforeach () if (WIN) - install(FILES ${Qt6_base_dir}/bin/d3dcompiler_47.dll ${Qt6_base_dir}/bin/opengl32sw.dll + install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/d3dcompiler_47.dll ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/opengl32sw.dll DESTINATION . ) endif () From 969bda8c1f1e3a6064c9cb1493405a6673a9e839 Mon Sep 17 00:00:00 2001 From: Withalion Date: Thu, 14 Aug 2025 16:36:28 +0300 Subject: [PATCH 063/118] Copy PROJ and QGIS resources directly to build --- CMakeLists.txt | 8 ++--- INSTALL.md | 9 ++++-- app/android/assets/qgis-data/.directory | 4 --- app/android/assets/qgis-data/keepme | 3 -- app/android/assets/qgis-data/proj/copyright | 34 --------------------- app/android/assets/qgis-data/proj/usage | 9 ------ cmake/FindQGIS.cmake | 2 +- 7 files changed, 11 insertions(+), 58 deletions(-) delete mode 100644 app/android/assets/qgis-data/.directory delete mode 100644 app/android/assets/qgis-data/keepme delete mode 100644 app/android/assets/qgis-data/proj/copyright delete mode 100644 app/android/assets/qgis-data/proj/usage diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c4d40264..cb572f6ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -377,16 +377,16 @@ endif () # RESOURCES # ######################################################################################## message(STATUS "Copying proj and qgis resources to android/assets/qgis-data") -file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources) +file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/resources) file(COPY ${QGIS_RESOURCE_DIR}/qgis.db - DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ + DESTINATION ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/resources/ ) file(COPY ${QGIS_RESOURCE_DIR}/srs.db - DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ + DESTINATION ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/resources/ ) file( COPY ${PROJ_DIR} - DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/ + DESTINATION ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/ PATTERN "*.cmake" EXCLUDE PATTERN "vcpkg*" EXCLUDE ) diff --git a/INSTALL.md b/INSTALL.md index a86a793b1..eda6b3fa9 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -166,7 +166,7 @@ Steps to build and run mobile app: -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=x64-linux \ -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mobile/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=/build/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=FALSE \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DENABLE_TESTS=TRUE \ @@ -498,7 +498,7 @@ Now you can create a build (either on command line or by setting these variables -DVCPKG_TARGET_TRIPLET=arm64-osx \ -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \ -DUSE_MM_SERVER_API_KEY=FALSE \ - -DQGIS_QUICK_DATA_PATH=../mobile/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=app/android/assets/qgis-data \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DENABLE_TESTS=TRUE \ -GNinja \ @@ -581,7 +581,10 @@ Now you can create a build (either on command line or by setting these variables ![image](https://user-images.githubusercontent.com/22449698/166630970-a776576f-c505-4265-b4c8-ffbe212c6745.png) - If for all projects the OSM layer fails to load the `QGIS_QUICK_DATA_PATH` is probably wrong - Check where the projects are getting created - - Either change the path to point to `app/android/assets/qgis-data` of the project directory + - And change the path to point to `app/android/assets/qgis-data` of the build directory +- If images in feature forms are not getting loaded it's again probably problem with `QGIS_QUICK_DATA_PATH` + - Use absolute path instead of relative path + - Make sure it's targeting **build** directory # 9. Auto Testing diff --git a/app/android/assets/qgis-data/.directory b/app/android/assets/qgis-data/.directory deleted file mode 100644 index 2bb42ec61..000000000 --- a/app/android/assets/qgis-data/.directory +++ /dev/null @@ -1,4 +0,0 @@ -[Dolphin] -PreviewsShown=true -Timestamp=2017,11,22,13,1,25 -Version=3 diff --git a/app/android/assets/qgis-data/keepme b/app/android/assets/qgis-data/keepme deleted file mode 100644 index 40cf708a8..000000000 --- a/app/android/assets/qgis-data/keepme +++ /dev/null @@ -1,3 +0,0 @@ -Do not delete this file - it is here to have at least one file in the folder -in order to work around a Qt6 bug related to support of Android assets: -https://bugreports.qt.io/browse/QTBUG-107627 diff --git a/app/android/assets/qgis-data/proj/copyright b/app/android/assets/qgis-data/proj/copyright deleted file mode 100644 index d46f95cd6..000000000 --- a/app/android/assets/qgis-data/proj/copyright +++ /dev/null @@ -1,34 +0,0 @@ - -All source, data files and other contents of the PROJ package are -available under the following terms. Note that the PROJ 4.3 and earlier -was "public domain" as is common with US government work, but apparently -this is not a well defined legal term in many countries. Frank Warmerdam placed -everything under the following MIT style license because he believed it is -effectively the same as public domain, allowing anyone to use the code as -they wish, including making proprietary derivatives. - -Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright -holder, but he didn't mean to imply he did the work. Essentially all work was -done by Gerald Evenden. - -Copyright information can be found in source files. - - -------------- - - 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/app/android/assets/qgis-data/proj/usage b/app/android/assets/qgis-data/proj/usage deleted file mode 100644 index 06eb04dee..000000000 --- a/app/android/assets/qgis-data/proj/usage +++ /dev/null @@ -1,9 +0,0 @@ -proj provides CMake targets: - - find_package(PROJ CONFIG REQUIRED) - target_link_libraries(main PRIVATE PROJ::proj) - -proj provides pkg-config modules: - - # Coordinate transformation software library - proj diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index e1b5f8ea7..13f53a382 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,7 +1,7 @@ # GPLv2 Licence find_path(QGIS_INCLUDE_DIR qgis.h PATH_SUFFIXES qgis) find_library(QGIS_CORE_LIBRARY NAMES qgis_core) -find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES share/qgis/resources PATH) +find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES share/qgis/resources) set(QGIS_REQUIRED_VARS QGIS_CORE_LIBRARY QGIS_INCLUDE_DIR QGIS_RESOURCE_DIR) set(QGIS_PROVIDERS_LIST From 46d9a231ebb0ddaba7b3378a598b42c48f795b94 Mon Sep 17 00:00:00 2001 From: Withalion Date: Thu, 14 Aug 2025 16:42:22 +0300 Subject: [PATCH 064/118] Fix formatting --- cmake/InstallStep.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index 73848efe7..30e6aa5f6 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -221,14 +221,19 @@ set(qt_libs foreach (qt_lib ${qt_libs}) if (WIN) - install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qt6${qt_lib}.dll DESTINATION .) + install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qt6${qt_lib}.dll + DESTINATION . + ) elseif (LNX) - install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libQt6${qt_lib}.so DESTINATION lib64) + install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libQt6${qt_lib}.so + DESTINATION lib64 + ) endif () endforeach () if (WIN) - install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/d3dcompiler_47.dll ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/opengl32sw.dll + install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/d3dcompiler_47.dll + ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/opengl32sw.dll DESTINATION . ) endif () From 5534566fea664a57ce9b415dfb41009143e6d445 Mon Sep 17 00:00:00 2001 From: Withalion Date: Thu, 14 Aug 2025 19:17:16 +0300 Subject: [PATCH 065/118] Fix failing CI --- .github/workflows/linux.yml | 4 ++-- .github/workflows/macos.yml | 4 ++-- app/CMakeLists.txt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 640a088ac..42891b0ab 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -124,7 +124,7 @@ jobs: -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DUSE_KEYCHAIN=No \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/build-mm-db/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DCOVERAGE=TRUE \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ @@ -170,7 +170,7 @@ jobs: -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ -DCMAKE_INSTALL_PREFIX:PATH=../install-mm \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/input/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/build-mm/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 1352019c2..9b0e3969c 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -123,7 +123,7 @@ jobs: -DUSE_MM_SERVER_API_KEY=TRUE \ -DHAVE_BLUETOOTH=FALSE \ -DUSE_KEYCHAIN=No \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/build-mm-db/app/android/assets/qgis-data \ -DCOVERAGE=TRUE \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DENABLE_TESTS=TRUE \ @@ -155,7 +155,7 @@ jobs: -DUSE_SERVER_API_KEY=TRUE \ -DUSE_MM_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ - -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/mm/app/android/assets/qgis-data \ + -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/build-mm-rel/app/android/assets/qgis-data \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -GNinja \ -S ../mm diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index b15141832..308b7d70a 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -361,14 +361,14 @@ endif () if (IOS) # qgis resources - set(IOS_CRS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android/assets/qgis-data/resources) + set(IOS_CRS_DIR ${CMAKE_CURRENT_BINARY_DIR}/android/assets/qgis-data/resources) target_sources(Input PRIVATE ${IOS_CRS_DIR}) set_source_files_properties( ${IOS_CRS_DIR} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/qgis-data ) # proj - set(IOS_PROJ_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android/assets/qgis-data/proj) + set(IOS_PROJ_DIR ${CMAKE_CURRENT_BINARY_DIR}/android/assets/qgis-data/proj) target_sources(Input PRIVATE ${IOS_PROJ_DIR}) set_source_files_properties( ${IOS_PROJ_DIR} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/qgis-data From 8877b8b79d13ae6d9d960065411c3b71eaeff22c Mon Sep 17 00:00:00 2001 From: Withalion Date: Thu, 14 Aug 2025 21:07:19 +0300 Subject: [PATCH 066/118] Fix install --- cmake/InstallStep.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index 30e6aa5f6..7e1685685 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -267,7 +267,7 @@ elseif (MACOS) set(assets_dir "Input.app/Contents/Resources/INPUT") endif () -install(DIRECTORY app/android/assets/qgis-data DESTINATION ${assets_dir}) +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/app/android/assets/qgis-data DESTINATION ${assets_dir}) # ######################################################################################## # Platform From 39985800173e5b0d9f9650559550f09bb4c78d57 Mon Sep 17 00:00:00 2001 From: Withalion Date: Fri, 15 Aug 2025 16:40:22 +0300 Subject: [PATCH 067/118] Fix formatting --- cmake/InstallStep.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index 7e1685685..aa4f4f6c8 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -267,7 +267,9 @@ elseif (MACOS) set(assets_dir "Input.app/Contents/Resources/INPUT") endif () -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/app/android/assets/qgis-data DESTINATION ${assets_dir}) +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/app/android/assets/qgis-data + DESTINATION ${assets_dir} +) # ######################################################################################## # Platform From e1cf10e62e76dc9dd53eed0a2765395d5243c418 Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Thu, 28 Aug 2025 20:42:35 +0100 Subject: [PATCH 068/118] Fix windows build --- .github/workflows/win.yml | 17 ++------ CMakeLists.txt | 2 +- app/main.cpp | 7 +++- cmake/InstallStep.cmake | 60 +++++++-------------------- scripts/{input_win.nsi => MM_win.nsi} | 12 +++--- 5 files changed, 33 insertions(+), 65 deletions(-) rename scripts/{input_win.nsi => MM_win.nsi} (93%) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index faf25b4ec..7b4eed7bd 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -149,27 +149,18 @@ jobs: cmake --build ${{ github.workspace }}\build-mm --config Release --verbose - IF NOT EXIST Input.exe (echo err_INPUT_BUILD & exit /b 1) + IF NOT EXIST Release\Input.exe (echo err_INPUT_BUILD & exit /b 1) - name: Install app shell: cmd run: | cd build-mm - nmake install + cmake --install ${{ github.workspace }}\build-mm --config Release --verbose mkdir C:\mm-package mkdir C:\mm-package\stage robocopy ${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm C:\mm-package\stage /E /NFL dir C:\mm-package\stage - - - name: Downloading redist - shell: bash - run: | - URL="https://aka.ms/vs/17/release/vc_redist.x64.exe" - echo "downloading: $URL" - curl -fsSL --connect-timeout 60 -o \ - /c/mm-package/stage/vc_redist.x64.exe \ - ${URL} - name: Get TimeStamp id: time @@ -180,8 +171,8 @@ jobs: - name: Create package shell: cmd run: | - makensis.exe mm\scripts\input_win.nsi - xcopy C:\mm-package\inputapp-win-x86_64.exe mergin-maps-mobile-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe* /Y + makensis.exe mm\scripts\MM_win.nsi + xcopy C:\mm-package\merginmaps-app-win-x86_64.exe mergin-maps-mobile-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe* /Y - name: Upload Sdk in Artifacts uses: actions/upload-artifact@v4 diff --git a/CMakeLists.txt b/CMakeLists.txt index cb572f6ae..1bf006fe6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -231,7 +231,7 @@ find_package(poly2tri CONFIG) find_package(meshoptimizer CONFIG REQUIRED) if (WIN) - find_package(FFMPEG REQUIRED) + find_package(FFmpeg REQUIRED) find_package(WinLibraries REQUIRED) endif () diff --git a/app/main.cpp b/app/main.cpp index b0a1a4f2c..619c5c46b 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -384,6 +384,11 @@ void addQmlImportPath( QQmlEngine &engine ) qDebug() << "adding QML import Path: " << qmlBuildImportPath; #endif +#ifdef Q_OS_WIN + // On windows the import paths are wrong and expect path: app-dir\Qt6\qml + engine.addImportPath( QCoreApplication::applicationDirPath() + "/qml" ); +#endif + #ifdef Q_OS_IOS // REQUIRED FOR IOS - to load Input/*.qml files defined in qmldir engine.addImportPath( "qrc:///" ); @@ -496,6 +501,7 @@ int main( int argc, char *argv[] ) // we define engine sooner as some classes are needed for creation of others, but QML engine is responsible for // creation of those required classes QQmlEngine engine; + addQmlImportPath( engine ); // AppSettings has to be initialized after QGIS app init (because of correct reading/writing QSettings). AppSettings *as = engine.singletonInstance( "MMInput", "AppSettings" ); @@ -678,7 +684,6 @@ int main( int argc, char *argv[] ) app.setFont( QFont( "Inter" ) ); QQuickStyle::setStyle( "Basic" ); - addQmlImportPath( engine ); initDeclarative(); // QGIS environment variables to set diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index aa4f4f6c8..c0773c838 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -13,7 +13,6 @@ set(Qt6_base_dir ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/Qt6) if (WIN) install( TARGETS Input - LIBRARY DESTINATION lib64/ RUNTIME DESTINATION . ) else () @@ -54,27 +53,30 @@ if (MACOS) install(SCRIPT ${deploy_script} COMPONENT Runtime) include(InstallRequiredSystemLibraries) -endif () + +elseif (WIN) + qt_generate_deploy_qml_app_script( + TARGET Input + OUTPUT_SCRIPT deploy_script + NO_TRANSLATIONS + DEPLOY_TOOL_OPTIONS "--libdir . --plugindir . --force-openssl" + ) + install(SCRIPT ${deploy_script} COMPONENT Runtime) +endif() # ######################################################################################## # SDK Shared Libraries # ######################################################################################## if (WIN) install( - DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/ + DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/" DESTINATION . FILES_MATCHING PATTERN "*.dll" PATTERN "Qca" EXCLUDE ) install( - DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qca/crypto/ - DESTINATION . - FILES_MATCHING - PATTERN "*.dll" - ) - install( - DIRECTORY ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/qgis/plugins/ + DIRECTORY "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qca/crypto/" DESTINATION . FILES_MATCHING PATTERN "*.dll" @@ -104,13 +106,7 @@ set(qml_dirs ) foreach (qml_dir ${qml_dirs}) - if (WIN) - install( - DIRECTORY ${Qt6_base_dir}/qml/${qml_dir} - DESTINATION qml - PATTERN "*d.dll" EXCLUDE - ) - elseif (LNX) + if (LNX) install( DIRECTORY ${Qt6_base_dir}/qml/${qml_dir} DESTINATION qml @@ -129,13 +125,7 @@ set(plugins_dirs ) foreach (plugins_dir ${plugins_dirs}) - if (WIN) - install( - DIRECTORY ${Qt6_base_dir}/plugins/${plugins_dir} - DESTINATION . - PATTERN "*d.dll" EXCLUDE - ) - elseif (LNX) + if (LNX) install( DIRECTORY ${Qt6_base_dir}/plugins/${plugins_dir} DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -144,14 +134,7 @@ foreach (plugins_dir ${plugins_dirs}) endif () endforeach () -# tls has names like *backend[d].dll so excluding *d.dll doesn't work -if (WIN) - install( - DIRECTORY ${Qt6_base_dir}/plugins/tls - DESTINATION . - PATTERN "*dd.dll" EXCLUDE - ) -elseif (LNX) +if (LNX) install( DIRECTORY ${Qt6_base_dir}/plugins/tls DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -220,24 +203,13 @@ set(qt_libs ) foreach (qt_lib ${qt_libs}) - if (WIN) - install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/Qt6${qt_lib}.dll - DESTINATION . - ) - elseif (LNX) + if (LNX) install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libQt6${qt_lib}.so DESTINATION lib64 ) endif () endforeach () -if (WIN) - install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/d3dcompiler_47.dll - ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/opengl32sw.dll - DESTINATION . - ) -endif () - # ######################################################################################## # Translations # ######################################################################################## diff --git a/scripts/input_win.nsi b/scripts/MM_win.nsi similarity index 93% rename from scripts/input_win.nsi rename to scripts/MM_win.nsi index ac293f5a4..d33147f56 100644 --- a/scripts/input_win.nsi +++ b/scripts/MM_win.nsi @@ -1,4 +1,4 @@ -!define APPNAME "Mergin Maps Input" +!define APPNAME "Mergin Maps" !define COMPANYNAME "Lutra Consulting Ltd." !define DESCRIPTION "Survey made easy" !define HELPURL "https://merginmaps.com/docs" @@ -9,11 +9,11 @@ RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}" -LicenseData "C:\input-package\stage\license.txt" +LicenseData "C:\mm-package\stage\license.txt" # This will be in the installer/uninstaller's title bar Name "${COMPANYNAME} - ${APPNAME}" -Icon "C:\input-package\stage\images\AppIcon.ico" -outFile "C:\input-package\inputapp-win-x86_64.exe" +Icon "C:\mm-package\stage\images\AppIcon.ico" +outFile "C:\mm-package\merginmaps-app-win-x86_64.exe" !include LogicLib.nsh @@ -38,14 +38,14 @@ functionEnd section "Visual Studio Runtime" SetOutPath "$INSTDIR" - File "C:\input-package\stage\vc_redist.x64.exe" + File "C:\mm-package\stage\vc_redist.x64.exe" ExecWait "$INSTDIR\vc_redist.x64.exe" sectionEnd section "install" setOutPath $INSTDIR - File /r "C:\input-package\stage\*" + File /r "C:\mm-package\stage\*" writeUninstaller "$INSTDIR\uninstall.exe" From 1358144e3f068e1b506a2d134b31977ba33536fe Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Sat, 12 Apr 2025 13:33:21 +0200 Subject: [PATCH 069/118] move mobile-sdk deps to main mobile repo --- .github/workflows/android.yml | 19 +- .github/workflows/ios.yml | 41 +- .github/workflows/macos.yml | 8 +- .github/workflows/macos_arm64.yml | 0 .github/workflows/win.yml | 2 +- app/CMakeLists.txt | 26 +- cmake/FindQGIS.cmake | 5 +- cmake/FindSpatialindex.cmake | 10 +- cmake/FindSpatialite.cmake | 10 +- cmake/FindTasn1.cmake | 10 +- cmake/FindZLIB.cmake | 5 +- vcpkg.json | 4 + vcpkg/ports/gdal/cmake-project-include.cmake | 13 + vcpkg/ports/gdal/find-link-libraries.patch | 109 ++++ .../gdal/fix-gdal-target-interfaces.patch | 15 + vcpkg/ports/gdal/libkml.patch | 46 ++ vcpkg/ports/gdal/portfile.cmake | 148 +++++ vcpkg/ports/gdal/target-is-valid.patch | 21 + vcpkg/ports/gdal/usage | 4 + vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake | 23 + vcpkg/ports/gdal/vcpkg.json | 39 ++ vcpkg/ports/json-c/pkgconfig.patch | 13 + vcpkg/ports/json-c/portfile.cmake | 24 + vcpkg/ports/json-c/vcpkg.json | 7 + vcpkg/ports/kdab-openssl/portfile.cmake | 30 + vcpkg/ports/kdab-openssl/vcpkg.json | 17 + .../ports/libiconv/0002-Config-for-MSVC.patch | 14 + vcpkg/ports/libiconv/0003-Add-export.patch | 12 + .../ports/libiconv/0004-ModuleFileName.patch | 13 + vcpkg/ports/libiconv/portfile.cmake | 53 ++ vcpkg/ports/libiconv/usage | 4 + .../ports/libiconv/vcpkg-cmake-wrapper.cmake | 21 + vcpkg/ports/libiconv/vcpkg.json | 7 + vcpkg/ports/libjpeg-turbo/CMakeLists.txt | 82 +++ vcpkg/ports/libjpeg-turbo/cpl_port.h | 13 + vcpkg/ports/libjpeg-turbo/libjpeg.pc.in | 8 + vcpkg/ports/libjpeg-turbo/portfile.cmake | 34 ++ .../libjpeg-turbo/vcpkg-cmake-wrapper.cmake | 19 + vcpkg/ports/libjpeg-turbo/vcpkg.json | 22 + vcpkg/ports/liblzma/add_support_ios.patch | 20 + vcpkg/ports/liblzma/build-tools.patch | 20 + vcpkg/ports/liblzma/fix_config_include.patch | 12 + vcpkg/ports/liblzma/portfile.cmake | 86 +++ vcpkg/ports/liblzma/usage | 9 + vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake | 64 ++ vcpkg/ports/liblzma/vcpkg.json | 23 + vcpkg/ports/liblzma/win_output_name.patch | 17 + vcpkg/ports/libpq/Makefile | 54 ++ .../ports/libpq/android/unversioned_so.patch | 16 + vcpkg/ports/libpq/build-msvc.cmake | 80 +++ vcpkg/ports/libpq/libpq.props.in | 25 + vcpkg/ports/libpq/portfile.cmake | 160 +++++ vcpkg/ports/libpq/unix/fix-configure.patch | 79 +++ vcpkg/ports/libpq/unix/installdirs.patch | 48 ++ vcpkg/ports/libpq/unix/mingw-install.patch | 36 ++ vcpkg/ports/libpq/unix/no-server-tools.patch | 37 ++ vcpkg/ports/libpq/unix/python.patch | 35 ++ vcpkg/ports/libpq/unix/single-linkage.patch | 56 ++ vcpkg/ports/libpq/usage | 4 + vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake | 72 +++ vcpkg/ports/libpq/vcpkg-libs.props.in | 31 + vcpkg/ports/libpq/vcpkg.json | 195 ++++++ vcpkg/ports/libpq/windows/macro-def.patch | 18 + vcpkg/ports/libpq/windows/msbuild.patch | 398 +++++++++++++ vcpkg/ports/libpq/windows/spin_delay.patch | 24 + .../ports/libpq/windows/win_bison_flex.patch | 42 ++ vcpkg/ports/libtasn1/portfile.cmake | 31 + vcpkg/ports/libtasn1/vcpkg.json | 8 + .../qca-qt6/0001-fix-path-for-vcpkg.patch | 72 +++ .../ports/qca-qt6/0002-fix-build-error.patch | 26 + ...-NOMINMAX-for-botan-plugin-with-MSVC.patch | 28 + vcpkg/ports/qca-qt6/connect_fix.patch | 29 + vcpkg/ports/qca-qt6/ios.patch | 13 + vcpkg/ports/qca-qt6/mk-ca-bundle.pl | 554 ++++++++++++++++++ vcpkg/ports/qca-qt6/portfile.cmake | 95 +++ vcpkg/ports/qca-qt6/vcpkg.json | 18 + vcpkg/ports/qgis-qt6/applocal.ps1 | 125 ++++ vcpkg/ports/qgis-qt6/cmakelists.patch | 39 ++ vcpkg/ports/qgis-qt6/crssync.patch | 13 + vcpkg/ports/qgis-qt6/libxml2.patch | 11 + vcpkg/ports/qgis-qt6/portfile.cmake | 301 ++++++++++ vcpkg/ports/qgis-qt6/vcpkg.json | 40 ++ vcpkg/ports/qt6-poly2tri/portfile.cmake | 18 + vcpkg/ports/qt6-poly2tri/vcpkg.json | 18 + vcpkg/ports/qt6/copyright | 175 ++++++ vcpkg/ports/qt6/portfile.cmake | 3 + vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake | 196 +++++++ vcpkg/ports/qt6/vcpkg.json | 6 + vcpkg/ports/qtkeychain-qt6/portfile.cmake | 1 + vcpkg/ports/qtkeychain-qt6/vcpkg.json | 2 +- vcpkg/ports/tiff/FindCMath.patch | 13 + vcpkg/ports/tiff/portfile.cmake | 95 +++ vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in | 81 +++ vcpkg/ports/tiff/vcpkg.json | 61 ++ vcpkg/triplets/arm-android.cmake | 14 +- vcpkg/triplets/arm64-android.cmake | 10 +- vcpkg/triplets/arm64-ios.cmake | 8 +- vcpkg/triplets/arm64-osx.cmake | 6 +- vcpkg/triplets/x64-osx.cmake | 1 + vcpkg/triplets/x64-windows.cmake | 2 + 100 files changed, 4675 insertions(+), 50 deletions(-) create mode 100644 .github/workflows/macos_arm64.yml create mode 100644 vcpkg/ports/gdal/cmake-project-include.cmake create mode 100644 vcpkg/ports/gdal/find-link-libraries.patch create mode 100644 vcpkg/ports/gdal/fix-gdal-target-interfaces.patch create mode 100644 vcpkg/ports/gdal/libkml.patch create mode 100644 vcpkg/ports/gdal/portfile.cmake create mode 100644 vcpkg/ports/gdal/target-is-valid.patch create mode 100644 vcpkg/ports/gdal/usage create mode 100644 vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/gdal/vcpkg.json create mode 100644 vcpkg/ports/json-c/pkgconfig.patch create mode 100644 vcpkg/ports/json-c/portfile.cmake create mode 100644 vcpkg/ports/json-c/vcpkg.json create mode 100644 vcpkg/ports/kdab-openssl/portfile.cmake create mode 100644 vcpkg/ports/kdab-openssl/vcpkg.json create mode 100644 vcpkg/ports/libiconv/0002-Config-for-MSVC.patch create mode 100644 vcpkg/ports/libiconv/0003-Add-export.patch create mode 100644 vcpkg/ports/libiconv/0004-ModuleFileName.patch create mode 100644 vcpkg/ports/libiconv/portfile.cmake create mode 100644 vcpkg/ports/libiconv/usage create mode 100644 vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/libiconv/vcpkg.json create mode 100644 vcpkg/ports/libjpeg-turbo/CMakeLists.txt create mode 100644 vcpkg/ports/libjpeg-turbo/cpl_port.h create mode 100644 vcpkg/ports/libjpeg-turbo/libjpeg.pc.in create mode 100644 vcpkg/ports/libjpeg-turbo/portfile.cmake create mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg.json create mode 100644 vcpkg/ports/liblzma/add_support_ios.patch create mode 100644 vcpkg/ports/liblzma/build-tools.patch create mode 100644 vcpkg/ports/liblzma/fix_config_include.patch create mode 100644 vcpkg/ports/liblzma/portfile.cmake create mode 100644 vcpkg/ports/liblzma/usage create mode 100644 vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/liblzma/vcpkg.json create mode 100644 vcpkg/ports/liblzma/win_output_name.patch create mode 100644 vcpkg/ports/libpq/Makefile create mode 100644 vcpkg/ports/libpq/android/unversioned_so.patch create mode 100644 vcpkg/ports/libpq/build-msvc.cmake create mode 100644 vcpkg/ports/libpq/libpq.props.in create mode 100644 vcpkg/ports/libpq/portfile.cmake create mode 100644 vcpkg/ports/libpq/unix/fix-configure.patch create mode 100644 vcpkg/ports/libpq/unix/installdirs.patch create mode 100644 vcpkg/ports/libpq/unix/mingw-install.patch create mode 100644 vcpkg/ports/libpq/unix/no-server-tools.patch create mode 100644 vcpkg/ports/libpq/unix/python.patch create mode 100644 vcpkg/ports/libpq/unix/single-linkage.patch create mode 100644 vcpkg/ports/libpq/usage create mode 100644 vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/libpq/vcpkg-libs.props.in create mode 100644 vcpkg/ports/libpq/vcpkg.json create mode 100644 vcpkg/ports/libpq/windows/macro-def.patch create mode 100644 vcpkg/ports/libpq/windows/msbuild.patch create mode 100644 vcpkg/ports/libpq/windows/spin_delay.patch create mode 100644 vcpkg/ports/libpq/windows/win_bison_flex.patch create mode 100644 vcpkg/ports/libtasn1/portfile.cmake create mode 100644 vcpkg/ports/libtasn1/vcpkg.json create mode 100644 vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch create mode 100644 vcpkg/ports/qca-qt6/0002-fix-build-error.patch create mode 100644 vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch create mode 100644 vcpkg/ports/qca-qt6/connect_fix.patch create mode 100644 vcpkg/ports/qca-qt6/ios.patch create mode 100644 vcpkg/ports/qca-qt6/mk-ca-bundle.pl create mode 100644 vcpkg/ports/qca-qt6/portfile.cmake create mode 100644 vcpkg/ports/qca-qt6/vcpkg.json create mode 100644 vcpkg/ports/qgis-qt6/applocal.ps1 create mode 100644 vcpkg/ports/qgis-qt6/cmakelists.patch create mode 100644 vcpkg/ports/qgis-qt6/crssync.patch create mode 100644 vcpkg/ports/qgis-qt6/libxml2.patch create mode 100644 vcpkg/ports/qgis-qt6/portfile.cmake create mode 100644 vcpkg/ports/qgis-qt6/vcpkg.json create mode 100644 vcpkg/ports/qt6-poly2tri/portfile.cmake create mode 100644 vcpkg/ports/qt6-poly2tri/vcpkg.json create mode 100644 vcpkg/ports/qt6/copyright create mode 100644 vcpkg/ports/qt6/portfile.cmake create mode 100644 vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake create mode 100644 vcpkg/ports/qt6/vcpkg.json create mode 100644 vcpkg/ports/tiff/FindCMath.patch create mode 100644 vcpkg/ports/tiff/portfile.cmake create mode 100644 vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in create mode 100644 vcpkg/ports/tiff/vcpkg.json diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index bf7a91a86..9d9c4a0c3 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -3,7 +3,7 @@ name: android Build on: push: paths: - - 'vcpkg/**' + - 'vcpkg-overlay/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' @@ -33,7 +33,7 @@ jobs: ANDROID_ABI: 'armeabi-v7a' - TRIPLET: 'arm64-android' ANDROID_ABI: 'arm64-v8a' - + runs-on: macos-15 env: NDK_VERSION: 'r26' # '26.1.10909125' @@ -43,6 +43,9 @@ jobs: ANDROIDAPI: 24 VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' SDK_BUILD_TOOLS: 34.0.0 + CCACHE_DIR: /Users/runner/work/ccache + GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} + CACHE_VERSION: 0 CMAKE_VERSION: '3.31.6' QT_ANDROID_KEYSTORE_ALIAS: input QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} @@ -135,6 +138,18 @@ jobs: run: | sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools + - name: Extract Mergin API_KEY + env: + MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} + run: | + cd core/ + /opt/homebrew/bin/openssl \ + aes-256-cbc -d \ + -in merginsecrets.cpp.enc \ + -out merginsecrets.cpp \ + -k "$MERGINSECRETS_DECRYPT_KEY" \ + -md md5 + - name: Extract GPS keystore env: INPUTKEYSTORE_DECRYPT_KEY: ${{ secrets.INPUTKEYSTORE_DECRYPT_KEY }} diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 3d6565dd7..1d5cff2d1 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -3,23 +3,23 @@ name: iOS Build on: push: paths: - - 'vcpkg-overlay/**' - - 'vcpkg.json' - - 'VCPKG_BASELINE' - - 'app/**' - - 'core/**' - - 'scripts/**' - - 'cmake/**' - - 'cmake_templates/**' - - 'CMakeLists.txt' - - '.github/workflows/ios.yml' - - '.github/secrets/ios/**' + - 'vcpkg-overlay/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' + - 'app/**' + - 'core/**' + - 'scripts/**' + - 'cmake/**' + - 'cmake_templates/**' + - 'CMakeLists.txt' + - '.github/workflows/ios.yml' + - '.github/secrets/ios/**' release: types: - published -env: +env: CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' VCPKG_ROOT: "${{ github.workspace }}/vcpkg" @@ -52,7 +52,6 @@ jobs: echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH - - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: @@ -137,16 +136,16 @@ jobs: env: OFFFSET: 10 # offset for build number - due to previous builds ~ new builds must always have a higher number run: | - BUILD_NUM=$GITHUB_RUN_NUMBER$((GITHUB_RUN_ATTEMPT + OFFFSET)) + BUILD_NUM=$GITHUB_RUN_NUMBER$((GITHUB_RUN_ATTEMPT + OFFFSET)) - TIMESTAMP=`date "+%y.%-m"` - CF_BUNDLE_VERSION=${TIMESTAMP}.${BUILD_NUM} + TIMESTAMP=`date "+%y.%-m"` + CF_BUNDLE_VERSION=${TIMESTAMP}.${BUILD_NUM} - echo "INPUT_VERSION_CODE=${CF_BUNDLE_VERSION}" >> $GITHUB_ENV - echo "Build number: ${CF_BUNDLE_VERSION}" + echo "INPUT_VERSION_CODE=${CF_BUNDLE_VERSION}" >> $GITHUB_ENV + echo "Build number: ${CF_BUNDLE_VERSION}" - # add build number to summary - echo ":rocket: Build number: ${CF_BUNDLE_VERSION}" >> $GITHUB_STEP_SUMMARY + # add build number to summary + echo ":rocket: Build number: ${CF_BUNDLE_VERSION}" >> $GITHUB_STEP_SUMMARY - name: Create build system with cmake run: | @@ -174,7 +173,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -S ${{ github.workspace }}/mm \ -B ./ - + - name: Build app (release) run: | cd build-mm diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9b0e3969c..2708a0288 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -25,7 +25,7 @@ env: XC_VERSION: ${{ '16.2' }} DEPLOYMENT_TARGET: '11.0' TRIPLET: arm64-osx - + concurrency: group: ci-${{github.ref}}-macos cancel-in-progress: true @@ -47,7 +47,7 @@ jobs: echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH - + - name: Install CMake and Ninja uses: lukka/get-cmake@latest with: @@ -104,13 +104,13 @@ jobs: mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ -source "https://nuget.pkg.github.com/merginmaps/index.json" - + - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT echo "INPUT_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV echo "Version code: ${BUILD_NUM}" - + - name: build app (debug) run: | mkdir -p build-mm-db diff --git a/.github/workflows/macos_arm64.yml b/.github/workflows/macos_arm64.yml new file mode 100644 index 000000000..e69de29bb diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 7b4eed7bd..eca517338 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -116,7 +116,7 @@ jobs: shell: cmd run: | CALL "C:\Program Files\Microsoft Visual Studio\${{ env.VS_VERSION }}\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=${{ env.CMAKE_ARCH }} - + - name: Configure app shell: cmd run: | diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 308b7d70a..93642ea87 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -517,7 +517,9 @@ target_link_libraries( Spatialite::Spatialite ) -# if (NOT LNX) target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) endif () +#if (NOT LNX) +# target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) +#endif () # target_link_libraries(Input PUBLIC Xml2::Xml2) @@ -527,21 +529,33 @@ target_link_libraries( GEOS::geos_c # Geos::Geos protobuf::libprotobuf-lite - # Utf8::utf8_range Utf8::utf8_validity Expat::Expat Freexl::Freexl + # Utf8::utf8_range + # Utf8::utf8_validity + # Expat::Expat + # Freexl::Freexl Exiv2::exiv2lib - # Inih::Inireader Inih::Inih Tiff::Tiff + # Inih::Inireader + # Inih::Inih + # Tiff::Tiff unofficial::sqlite3::sqlite3 unofficial::minizip::minizip ZLIB::ZLIB libzip::zip - # WebP::WebP WebP::Sharpyuv Curl::Curl Jpeg::Jpeg Geotiff::Geotiff Lzma::Lzma - # Zstd::Zstd Bz2::Bz2 Absl::Absl + # WebP::WebP + # WebP::Sharpyuv + # Curl::Curl + # Jpeg::Jpeg + # Geotiff::Geotiff + # Lzma::Lzma + # Zstd::Zstd + # Bz2::Bz2 + # Absl::Absl poly2tri::poly2tri meshoptimizer::meshoptimizer ) if (IOS OR MACOS) - target_link_libraries(Input PUBLIC Tasn1::Tasn1) + target_link_libraries(Input PUBLIC Tasn1::Tasn1) endif () # target_link_libraries(Input PUBLIC OpenSSL::OpenSSL OpenSSL::Crypto) diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index 13f53a382..0cad22643 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -23,7 +23,10 @@ set(QGIS_PROVIDERS_LIST ) foreach (provider ${QGIS_PROVIDERS_LIST}) - find_library(QGIS_${provider}_LIBRARY NAMES ${provider}_a) + find_library( + QGIS_${provider}_LIBRARY + NAMES ${provider}_a + ) set(QGIS_REQUIRED_VARS ${QGIS_REQUIRED_VARS} QGIS_${provider}_LIBRARY) endforeach () diff --git a/cmake/FindSpatialindex.cmake b/cmake/FindSpatialindex.cmake index b4ee8bde8..6e4cd5173 100644 --- a/cmake/FindSpatialindex.cmake +++ b/cmake/FindSpatialindex.cmake @@ -1,8 +1,14 @@ # GPLv2 Licence -find_path(Spatialindex_INCLUDE_DIR spatialindex/RTree.h) +find_path( + Spatialindex_INCLUDE_DIR + spatialindex/RTree.h +) -find_library(Spatialindex_LIBRARY NAMES spatialindex spatialindex-64) +find_library( + Spatialindex_LIBRARY + NAMES spatialindex spatialindex-64 +) find_package_handle_standard_args( Spatialindex REQUIRED_VARS Spatialindex_LIBRARY Spatialindex_INCLUDE_DIR diff --git a/cmake/FindSpatialite.cmake b/cmake/FindSpatialite.cmake index 5b3198f41..6967c89de 100644 --- a/cmake/FindSpatialite.cmake +++ b/cmake/FindSpatialite.cmake @@ -1,8 +1,14 @@ # GPLv2 Licence -find_path(Spatialite_INCLUDE_DIR spatialite.h) +find_path( + Spatialite_INCLUDE_DIR + spatialite.h +) -find_library(Spatialite_LIBRARY NAMES spatialite) +find_library( + Spatialite_LIBRARY + NAMES spatialite +) find_package_handle_standard_args( Spatialite REQUIRED_VARS Spatialite_LIBRARY Spatialite_INCLUDE_DIR diff --git a/cmake/FindTasn1.cmake b/cmake/FindTasn1.cmake index da3921c20..2eb1caf12 100644 --- a/cmake/FindTasn1.cmake +++ b/cmake/FindTasn1.cmake @@ -8,9 +8,15 @@ if (LNX ) message(FATAL_ERROR "tasn1 is not available for this platform in input-SDK") else () - find_path(Tasn1_INCLUDE_DIR libtasn1.h) + find_path( + Tasn1_INCLUDE_DIR + libtasn1.h + ) - find_library(Tasn1_LIBRARY NAMES tasn1) + find_library( + Tasn1_LIBRARY + NAMES tasn1 + ) endif () find_package_handle_standard_args(Tasn1 REQUIRED_VARS Tasn1_LIBRARY Tasn1_INCLUDE_DIR) diff --git a/cmake/FindZLIB.cmake b/cmake/FindZLIB.cmake index 2b97c27c5..2c40aabc3 100644 --- a/cmake/FindZLIB.cmake +++ b/cmake/FindZLIB.cmake @@ -1,6 +1,9 @@ # GPLv2 Licence -find_library(ZLIB_LIBRARY NAMES z zlib libz) +find_library( + ZLIB_LIBRARY + NAMES z zlib libz +) find_package_handle_standard_args(ZLIB REQUIRED_VARS ZLIB_LIBRARY) diff --git a/vcpkg.json b/vcpkg.json index ff29b14a4..f9cf4e14e 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -52,6 +52,10 @@ "default-features": false, "features": ["webp", "zip", "lzma", "jpeg", "zstd"] }, + { + "name": "kdab-openssl", + "platform": "android" + }, "geodiff", "nu-book-zxing-cpp", "gdal", diff --git a/vcpkg/ports/gdal/cmake-project-include.cmake b/vcpkg/ports/gdal/cmake-project-include.cmake new file mode 100644 index 000000000..409b7b1a6 --- /dev/null +++ b/vcpkg/ports/gdal/cmake-project-include.cmake @@ -0,0 +1,13 @@ +if(GDAL_USE_KEA) + find_package(Kealib CONFIG REQUIRED) + add_library(KEA::KEA ALIAS Kealib::Kealib) + set(GDAL_CHECK_PACKAGE_KEA_NAMES Kealib CACHE INTERNAL "vcpkg") + set(GDAL_CHECK_PACKAGE_KEA_TARGETS Kealib::Kealib CACHE INTERNAL "vcpkg") +endif() + +if(GDAL_USE_WEBP) + find_package(WebP CONFIG REQUIRED) + add_library(WEBP::WebP ALIAS WebP::webp) + set(GDAL_CHECK_PACKAGE_WebP_NAMES WebP CACHE INTERNAL "vcpkg") + set(GDAL_CHECK_PACKAGE_WebP_TARGETS WebP::webp CACHE INTERNAL "vcpkg") +endif() diff --git a/vcpkg/ports/gdal/find-link-libraries.patch b/vcpkg/ports/gdal/find-link-libraries.patch new file mode 100644 index 000000000..a802e4264 --- /dev/null +++ b/vcpkg/ports/gdal/find-link-libraries.patch @@ -0,0 +1,109 @@ +diff --git a/cmake/modules/packages/FindFreeXL.cmake b/cmake/modules/packages/FindFreeXL.cmake +index 6c86fb8..0634412 100644 +--- a/cmake/modules/packages/FindFreeXL.cmake ++++ b/cmake/modules/packages/FindFreeXL.cmake +@@ -37,7 +37,15 @@ include(SelectLibraryConfigurations) + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_FREEXL QUIET freexl) ++ pkg_check_modules(PC_FREEXL QUIET IMPORTED_TARGET freexl) ++endif() ++if(PC_FREEXL_FOUND) ++ set(FREEXL_INCLUDE_DIR "${PC_FREEXL_INCLUDE_DIRS}" CACHE STRING "") ++ set(FREEXL_LIBRARY "${PC_FREEXL_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET FREEXL::freexl) ++ add_library(FREEXL::freexl INTERFACE IMPORTED) ++ set_target_properties(FREEXL::freexl PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_FREEXL) ++ endif() + endif() + + find_path(FREEXL_INCLUDE_DIR +diff --git a/cmake/modules/packages/FindOpenJPEG.cmake b/cmake/modules/packages/FindOpenJPEG.cmake +index c697484..6e83222 100644 +--- a/cmake/modules/packages/FindOpenJPEG.cmake ++++ b/cmake/modules/packages/FindOpenJPEG.cmake +@@ -32,9 +32,18 @@ endfunction() + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_OPENJPEG QUIET libopenjp2) ++ pkg_check_modules(PC_OPENJPEG QUIET IMPORTED_TARGET libopenjp2) + set(OpenJPEG_VERSION_STRING ${PC_OPENJPEG_VERSION}) + endif() ++if(PC_OPENJPEG_FOUND) ++ set(OPENJPEG_INCLUDE_DIR "${PC_OPENJPEG_INCLUDE_DIRS}" CACHE STRING "") ++ set(OPENJPEG_LIBRARY "${PC_OPENJPEG_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET OPENJPEG::OpenJPEG) ++ add_library(OPENJPEG::OpenJPEG INTERFACE IMPORTED) ++ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PC_OPENJPEG_INCLUDE_DIRS}") ++ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_OPENJPEG) ++ endif() ++endif() + + + find_path(OPENJPEG_INCLUDE_DIR opj_config.h +diff --git a/cmake/modules/packages/FindPoppler.cmake b/cmake/modules/packages/FindPoppler.cmake +index 3807ec0..8059eb4 100644 +--- a/cmake/modules/packages/FindPoppler.cmake ++++ b/cmake/modules/packages/FindPoppler.cmake +@@ -42,11 +42,19 @@ This module defines the following variables: + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_Poppler QUIET poppler) ++ pkg_check_modules(PC_Poppler QUIET IMPORTED_TARGET poppler) + if(PC_Poppler_VERSION) + set(Poppler_VERSION_STRING ${PC_Poppler_VERSION}) + endif() + endif() ++if(PC_Poppler_FOUND) ++ find_path(Poppler_INCLUDE_DIR NAMES Object.h PATHS ${PC_Poppler_INCLUDE_DIRS} NO_DEFAULT_PATH) ++ set(Poppler_LIBRARY "${PC_Poppler_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET Poppler::Poppler) ++ add_library(Poppler::Poppler INTERFACE IMPORTED) ++ set_target_properties(Poppler::Poppler PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler) ++ endif() ++endif() + find_path(Poppler_INCLUDE_DIR NAMES "poppler-config.h" "cpp/poppler-version.h" "qt5/poppler-qt5.h" "qt4/poppler-qt4.h" + "glib/poppler.h" + HINTS ${PC_Poppler_INCLUDE_DIRS} +@@ -77,6 +85,15 @@ endforeach() + foreach(_comp IN LISTS Poppler_known_components) + list(FIND Poppler_FIND_COMPONENTS "${_comp}" _nextcomp) + if(_nextcomp GREATER -1) ++ pkg_check_modules(PC_Poppler_${_comp} QUIET IMPORTED_TARGET ${Poppler_${_comp}_pkg_config}) ++ if(PC_Poppler_${_comp}_FOUND) ++ set(Poppler_${_comp}_INCLUDE_DIR "${PC_Poppler_${_comp}_INCLUDE_DIRS}" CACHE STRING "") ++ set(Poppler_${_comp}_LIBRARY "${PC_Poppler_${_comp}_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET Poppler::Poppler_${_comp}) ++ add_library(Poppler::${_comp} INTERFACE IMPORTED) ++ set_target_properties(Poppler::${_comp} PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler_${_comp}) ++ endif() ++ endif() + find_path(Poppler_${_comp}_INCLUDE_DIR + NAMES ${Poppler_${_comp}_header} + PATH_SUFFIXES poppler +diff --git a/cmake/modules/packages/FindSPATIALITE.cmake b/cmake/modules/packages/FindSPATIALITE.cmake +index 00612b0..6388719 100644 +--- a/cmake/modules/packages/FindSPATIALITE.cmake ++++ b/cmake/modules/packages/FindSPATIALITE.cmake +@@ -38,9 +38,17 @@ endif() + + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) +- pkg_check_modules(PC_SPATIALITE QUIET spatialite) ++ pkg_check_modules(PC_SPATIALITE QUIET IMPORTED_TARGET spatialite) + set(SPATIALITE_VERSION_STRING ${PC_SPATIALITE_VERSION}) + endif() ++if(PC_SPATIALITE_FOUND) ++ set(SPATIALITE_INCLUDE_DIR "${PC_SPATIALITE_INCLUDE_DIRS}" CACHE STRING "") ++ set(SPATIALITE_LIBRARY "${PC_SPATIALITE_LIBRARIES}" CACHE STRING "") ++ if(NOT TARGET SPATIALITE::SPATIALITE) ++ add_library(SPATIALITE::SPATIALITE INTERFACE IMPORTED) ++ set_target_properties(SPATIALITE::SPATIALITE PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_SPATIALITE) ++ endif() ++endif() + + find_path(SPATIALITE_INCLUDE_DIR + NAMES spatialite.h diff --git a/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch b/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch new file mode 100644 index 000000000..bf159fce5 --- /dev/null +++ b/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/helpers/GdalDriverHelper.cmake b/cmake/helpers/GdalDriverHelper.cmake +index 838f0fd..380e20d 100644 +--- a/cmake/helpers/GdalDriverHelper.cmake ++++ b/cmake/helpers/GdalDriverHelper.cmake +@@ -248,6 +248,10 @@ function(gdal_target_interfaces _TARGET) + if (_res) + target_compile_options(${_TARGET} PRIVATE ${_res}) + endif () ++ get_property(_res TARGET ${_LIB} PROPERTY INTERFACE_LINK_LIBRARIES) ++ if (_res) ++ gdal_target_interfaces(${_TARGET} ${_res}) ++ endif () + endif () + endforeach () + endfunction() diff --git a/vcpkg/ports/gdal/libkml.patch b/vcpkg/ports/gdal/libkml.patch new file mode 100644 index 000000000..ef25d06de --- /dev/null +++ b/vcpkg/ports/gdal/libkml.patch @@ -0,0 +1,46 @@ +diff --git a/cmake/modules/packages/FindLibKML.cmake b/cmake/modules/packages/FindLibKML.cmake +index 9418247..589b83d 100644 +--- a/cmake/modules/packages/FindLibKML.cmake ++++ b/cmake/modules/packages/FindLibKML.cmake +@@ -56,6 +56,8 @@ find_library(LIBKML_BASE_LIBRARY + HINTS ${PC_LIBKML_LIBRARY_DIRS} ) + mark_as_advanced(LIBKML_BASE_LIBRARY) + ++cmake_policy(PUSH) ++cmake_policy(SET CMP0057 NEW) + set(libkml_known_components DOM CONVENIENCE ENGINE REGIONATOR) + foreach(_comp IN LISTS libkml_known_components) + if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) +@@ -99,21 +101,20 @@ find_package_handle_standard_args(LibKML + if(LIBKML_FOUND) + set(LIBKML_INCLUDE_DIRS "${LIBKML_INCLUDE_DIR}") + set(LIBKML_LIBRARIES "${LIBKML_BASE_LIBRARY}") ++ find_package(LibKML CONFIG REQUIRED) + if(NOT TARGET LIBKML::LibKML) +- add_library(LIBKML::LibKML UNKNOWN IMPORTED) ++ add_library(LIBKML::LibKML INTERFACE IMPORTED) + set_target_properties(LIBKML::LibKML PROPERTIES +- INTERFACE_INCLUDE_DIRECTORIES "${LIBKML_INCLUDE_DIR}" +- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" +- IMPORTED_LOCATION "${LIBKML_BASE_LIBRARY}") ++ INTERFACE_LINK_LIBRARIES kmlbase) + endif() + foreach(_comp IN LISTS libkml_known_components) + if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) ++ string(TOLOWER ${_comp} _name) + list(APPEND LIBKML_LIBRARIES "${LIBKML_${_comp}_LIBRARY}") + if(NOT TARGET LIBKML::${_comp}) +- add_library(LIBKML::${_comp} UNKNOWN IMPORTED) ++ add_library(LIBKML::${_comp} INTERFACE IMPORTED) + set_target_properties(LIBKML::${_comp} PROPERTIES +- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" +- IMPORTED_LOCATION "${LIBKML_${_comp}_LIBRARY}") ++ INTERFACE_LINK_LIBRARIES kml${_name}) + endif() + endif() + endforeach() +@@ -129,3 +130,4 @@ if(LIBKML_FOUND) + endif() + endforeach() + endif() ++cmake_policy(POP) diff --git a/vcpkg/ports/gdal/portfile.cmake b/vcpkg/ports/gdal/portfile.cmake new file mode 100644 index 000000000..fbced9391 --- /dev/null +++ b/vcpkg/ports/gdal/portfile.cmake @@ -0,0 +1,148 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OSGeo/gdal + REF "v${VERSION}" # keep up to date with vcpkg-overlay/libjpeg-turbo version + SHA512 c974977789092058540ace0e9192a17b0f593e770822a885181ec6eed4323e2f7a7a61963667ae8c9c8c8c0d2d8fb80d194ab4d918e6d4851f39abd1e1c948bc + HEAD_REF master + PATCHES + find-link-libraries.patch + fix-gdal-target-interfaces.patch + libkml.patch + target-is-valid.patch +) + +# `vcpkg clean` stumbles over one subdir +file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") + +# Avoid abseil, no matter if vcpkg or system +vcpkg_replace_string("${SOURCE_PATH}/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h" [[__has_include("absl/strings/string_view.h")]] "(0)") + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_PNG_INTERNAL=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_JSONC_INTERNAL=ON) + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ICONV=ON) +if(GDAL_USE_ICONV AND VCPKG_TARGET_IS_WINDOWS) + list(APPEND FEATURE_OPTIONS -D_ICONV_SECOND_ARGUMENT_IS_NOT_CONST=ON) +endif() + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBXML2=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_TIFF=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_CURL=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_WEBP=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_SQLITE3=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOS=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOTIFF=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_SPATIALITE=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_EXPAT=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZLIB=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_FREEXL=ON) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_JPEG=ON) + + +list(APPEND FEATURE_OPTIONS -DGDAL_USE_KEA=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_POSTGRESQL=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_PCRE2=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_GIF=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_OPENJPEG=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_CFITSIO=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_HDF5=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_MYSQL=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_POPPLER=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_MSSQL_ODBC=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZSTD=OFF) +list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBKML=OFF) + +# Compatibility with older Android versions https://github.com/OSGeo/gdal/pull/5941 +if(VCPKG_TARGET_IS_ANDROID AND ANRDOID_PLATFORM VERSION_LESS 24 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) + list(APPEND FEATURE_OPTIONS -DBUILD_WITHOUT_64BIT_OFFSET=ON) +endif() + +# we want gdalinfo/ogrinfo on macOS to generate supported formats list +if(VCPKG_TARGET_IS_OSX) + list(APPEND FEATURE_OPTIONS -DBUILD_APPS=ON) +else() + list(APPEND FEATURE_OPTIONS -DBUILD_APPS=OFF) +endif() + +string(REPLACE "dynamic" "" qhull_target "Qhull::qhull${VCPKG_LIBRARY_LINKAGE}_r") + +# PCIDSK does not add compile interface defininions! +# do this instead of patching for now +# https://github.com/OSGeo/gdal/blob/af5b75ecc6b8d3cef36f2b6fecf085319d39a546/frmts/pcidsk/sdk/CMakeLists.txt#L84 +set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") +set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # for host pkgconf in PATH + ${FEATURE_OPTIONS} + -DBUILD_DOCS=OFF + -DBUILD_PYTHON_BINDINGS=OFF + -DBUILD_TESTING=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_CSharp=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON + -DGDAL_USE_INTERNAL_LIBS=OFF + -DGDAL_USE_EXTERNAL_LIBS=OFF + -DGDAL_BUILD_OPTIONAL_DRIVERS=ON + -DOGR_BUILD_OPTIONAL_DRIVERS=ON + -DGDAL_CHECK_PACKAGE_MySQL_NAMES=unofficial-libmariadb + -DGDAL_CHECK_PACKAGE_MySQL_TARGETS=unofficial::libmariadb + -DMYSQL_LIBRARIES=unofficial::libmariadb + -DGDAL_CHECK_PACKAGE_NetCDF_NAMES=netCDF + -DGDAL_CHECK_PACKAGE_NetCDF_TARGETS=netCDF::netcdf + -DGDAL_CHECK_PACKAGE_QHULL_NAMES=Qhull + "-DGDAL_CHECK_PACKAGE_QHULL_TARGETS=${qhull_target}" + "-DQHULL_LIBRARY=${qhull_target}" + -DCMAKE_PROJECT_INCLUDE="${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" + OPTIONS_DEBUG + -DBUILD_APPS=OFF + MAYBE_UNUSED_VARIABLES + QHULL_LIBRARY +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gdal) +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/gdal/GDALConfig.cmake" + "include(CMakeFindDependencyMacro)" + "include(CMakeFindDependencyMacro) +# gdal needs a pkg-config tool. A host dependency provides pkgconf. +get_filename_component(vcpkg_host_prefix \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" ABSOLUTE) +list(APPEND CMAKE_PROGRAM_PATH \"\${vcpkg_host_prefix}/tools/pkgconf\")" +) + +if(VCPKG_TARGET_IS_OSX) + vcpkg_copy_tools( + TOOL_NAMES + gdalinfo + ogrinfo + AUTO_CLEAN + ) +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/gdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/gdal-config") + +file(GLOB bin_files "${CURRENT_PACKAGES_DIR}/bin/*") +if(NOT bin_files) + file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/bin" + "${CURRENT_PACKAGES_DIR}/debug/bin" + ) +endif() + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_PACKAGES_DIR}\"" "") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/gdal/target-is-valid.patch b/vcpkg/ports/gdal/target-is-valid.patch new file mode 100644 index 000000000..10f3dcfcf --- /dev/null +++ b/vcpkg/ports/gdal/target-is-valid.patch @@ -0,0 +1,21 @@ +diff --git a/cmake/helpers/CheckDependentLibrariesCommon.cmake b/cmake/helpers/CheckDependentLibrariesCommon.cmake +index ebb3538..a4a6d69 100644 +--- a/cmake/helpers/CheckDependentLibrariesCommon.cmake ++++ b/cmake/helpers/CheckDependentLibrariesCommon.cmake +@@ -41,6 +41,7 @@ endif() + # https://github.com/OSGeo/gdal/issues/5324 + function (gdal_check_target_is_valid target res_var) + get_target_property(_interface_include_directories ${target} "INTERFACE_INCLUDE_DIRECTORIES") ++ get_target_property(_type ${target} "TYPE") + if(_interface_include_directories) + foreach(_dir IN LISTS _interface_include_directories) + if(NOT EXISTS "${_dir}") +@@ -54,7 +55,7 @@ function (gdal_check_target_is_valid target res_var) + # property, but a GeoTIFF_INCLUDE_DIRS variable. + set_target_properties(${target} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GeoTIFF_INCLUDE_DIRS}") +- else() ++ elseif(NOT _type STREQUAL "INTERFACE" AND _type STREQUAL "ALIAS") + message(WARNING "Target ${target} has no INTERFACE_INCLUDE_DIRECTORIES property. Ignoring that target.") + set(${res_var} FALSE PARENT_SCOPE) + return() diff --git a/vcpkg/ports/gdal/usage b/vcpkg/ports/gdal/usage new file mode 100644 index 000000000..6982a9a24 --- /dev/null +++ b/vcpkg/ports/gdal/usage @@ -0,0 +1,4 @@ +The package GDAL provides CMake targets: + + find_package(GDAL CONFIG REQUIRED) + target_link_libraries(main PRIVATE GDAL::GDAL) diff --git a/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..5b70b673b --- /dev/null +++ b/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,23 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0054 NEW) + +list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") +list(APPEND ARGS "CONFIG") +# The current port version should satisfy GDAL 3.0 ... 3.5 +list(GET ARGS 1 vcpkg_gdal_maybe_version) +if(vcpkg_gdal_maybe_version MATCHES "(^3\$|^3[.][0-5])") + list(REMOVE_AT ARGS "1") +endif() +unset(vcpkg_gdal_maybe_version) +_find_package(${ARGS} CONFIG) +if(GDAL_FOUND) + get_filename_component(vcpkg_gdal_prefix "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) + set(GDAL_INCLUDE_DIR "${vcpkg_gdal_prefix}/include" CACHE INTERNAL "") + set(GDAL_INCLUDE_DIRS "${GDAL_INCLUDE_DIR}") + set(GDAL_LIBRARY GDAL::GDAL CACHE INTERNAL "") + set(GDAL_LIBRARIES "${GDAL_LIBRARY}") + unset(vcpkg_gdal_prefix) +endif() + +cmake_policy(POP) diff --git a/vcpkg/ports/gdal/vcpkg.json b/vcpkg/ports/gdal/vcpkg.json new file mode 100644 index 000000000..335ff27ef --- /dev/null +++ b/vcpkg/ports/gdal/vcpkg.json @@ -0,0 +1,39 @@ +{ + "name": "gdal", + "version-semver": "3.10.2", + "port-version": 0, + "description": "The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data", + "homepage": "https://gdal.org", + "license": null, + "supports": "!uwp", + "dependencies": [ + "proj", + "tiff", + "zlib", + "sqlite3", + "curl", + "geos", + "freexl", + "libspatialindex", + "libspatialite", + "protobuf", + "exiv2", + "libiconv", + "libxml2", + "libgeotiff", + "expat", + "libjpeg-turbo", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true + } + ] +} diff --git a/vcpkg/ports/json-c/pkgconfig.patch b/vcpkg/ports/json-c/pkgconfig.patch new file mode 100644 index 000000000..893406ed5 --- /dev/null +++ b/vcpkg/ports/json-c/pkgconfig.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ffb1db3dc..a82ed8619 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -273,7 +273,7 @@ install( + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + ) + +-if (UNIX OR MINGW OR CYGWIN) ++if (1) + SET(prefix ${CMAKE_INSTALL_PREFIX}) + # exec_prefix is prefix by default and CMake does not have the + # concept. diff --git a/vcpkg/ports/json-c/portfile.cmake b/vcpkg/ports/json-c/portfile.cmake new file mode 100644 index 000000000..d0893ebee --- /dev/null +++ b/vcpkg/ports/json-c/portfile.cmake @@ -0,0 +1,24 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO json-c/json-c + REF eae040a84a479ccad1d1c48314345c51ecf1a4a4 + SHA512 18d8a31b341830b04676cad13fbc0608fb75a323522161ac8fd0bb5058db82c1c261d504696a1e12f4b03eb0967632885580ff81d808adf2f1dff7e32d131ba0 + HEAD_REF master + PATCHES pkgconfig.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) +vcpkg_fixup_pkgconfig() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/vcpkg/ports/json-c/vcpkg.json b/vcpkg/ports/json-c/vcpkg.json new file mode 100644 index 000000000..ff61b336e --- /dev/null +++ b/vcpkg/ports/json-c/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "json-c", + "version-string": "2019-09-10", + "port-version": 2, + "description": "A JSON implementation in C", + "homepage": "https://github.com/json-c/json-c" +} diff --git a/vcpkg/ports/kdab-openssl/portfile.cmake b/vcpkg/ports/kdab-openssl/portfile.cmake new file mode 100644 index 000000000..a42acf2b3 --- /dev/null +++ b/vcpkg/ports/kdab-openssl/portfile.cmake @@ -0,0 +1,30 @@ +set(KDAB_OPENSSL_GIT_TAG "82c850cbc602ca4d20c82552e618b0a98b196f3c") + +# on Android we need openssl shared libraries for some QT network modules +if(NOT VCPKG_TARGET_IS_ANDROID) + message(FATAL_ERROR "KDAB-openssl shared libraries only needed on Android") +else() + vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/KDAB/android_openssl/archive/${KDAB_OPENSSL_GIT_TAG}.tar.gz" + FILENAME "kdab-openssl-${VERSION}.tar.gz" + SHA512 7f61c1fc0f6f38eac5da81234194b9fe5bcbf575c968ae90b8a734466aa818ce87b167defc4a60af166266bfafeaa03c6e6b8cb27fd39cdf214d464613f0c4d8 + ) + + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" + ) + + if (${TARGET_TRIPLET} STREQUAL "arm-android") + set(OPENSSL_ARCH "armeabi-v7a") + elseif (${TARGET_TRIPLET} STREQUAL "arm64-android") + set(OPENSSL_ARCH "arm64-v8a") + else() + message(FATAL_ERROR "KDAB-openssl unsupported platform ${TARGET_TRIPLET}") + endif() + + file(INSTALL ${SOURCE_PATH}/ssl_3/include/openssl/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/kdab-openssl/ ) + file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libssl_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) + file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libcrypto_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) +endif() diff --git a/vcpkg/ports/kdab-openssl/vcpkg.json b/vcpkg/ports/kdab-openssl/vcpkg.json new file mode 100644 index 000000000..6f16afda0 --- /dev/null +++ b/vcpkg/ports/kdab-openssl/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "kdab-openssl", + "version": "3.1.1", + "description": "OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols", + "homepage": "https://www.openssl.org", + "license": "Apache-2.0", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch b/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch new file mode 100644 index 000000000..0c90e50ef --- /dev/null +++ b/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch @@ -0,0 +1,14 @@ +diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h" +index 6dc011b..158ccdd 100644 +--- "a/lib/loop_wchar.h" ++++ "b/lib/loop_wchar.h" +@@ -37,7 +37,7 @@ + # include + # define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ + /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ +- extern size_t mbrtowc (); ++// extern size_t mbrtowc (); + # ifdef mbstate_t + # define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) + # define mbsinit(ps) 1 + \ No newline at end of file diff --git a/vcpkg/ports/libiconv/0003-Add-export.patch b/vcpkg/ports/libiconv/0003-Add-export.patch new file mode 100644 index 000000000..c8d131d2e --- /dev/null +++ b/vcpkg/ports/libiconv/0003-Add-export.patch @@ -0,0 +1,12 @@ +diff -uNr libiconv-1.16/libcharset/include/libcharset.h.in libiconv-1.16-work/libcharset/include/libcharset.h.in +--- libiconv-1.16/libcharset/include/libcharset.h.in 2018-09-17 19:07:42.000000000 +0300 ++++ libiconv-1.16-work/libcharset/include/libcharset.h.in 2019-12-04 17:15:50.000000000 +0300 +@@ -33,7 +33,7 @@ + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +-extern void libcharset_set_relocation_prefix (const char *orig_prefix, ++extern void LIBCHARSET_DLL_EXPORTED libcharset_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + + diff --git a/vcpkg/ports/libiconv/0004-ModuleFileName.patch b/vcpkg/ports/libiconv/0004-ModuleFileName.patch new file mode 100644 index 000000000..15ceb2a41 --- /dev/null +++ b/vcpkg/ports/libiconv/0004-ModuleFileName.patch @@ -0,0 +1,13 @@ +diff --git a/lib/relocatable.c b/lib/relocatable.c +index 89b6c27..1561894 100644 +--- a/lib/relocatable.c ++++ b/lib/relocatable.c +@@ -329,7 +329,7 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) + /* The DLL is being loaded into an application's address range. */ + static char location[MAX_PATH]; + +- if (!GetModuleFileName (module_handle, location, sizeof (location))) ++ if (!GetModuleFileNameA (module_handle, location, sizeof (location))) + /* Shouldn't happen. */ + return FALSE; + diff --git a/vcpkg/ports/libiconv/portfile.cmake b/vcpkg/ports/libiconv/portfile.cmake new file mode 100644 index 000000000..8bf88682c --- /dev/null +++ b/vcpkg/ports/libiconv/portfile.cmake @@ -0,0 +1,53 @@ +if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID AND NOT VCPKG_TARGET_IS_IOS) + set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/iconv") + file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") + return() +endif() + +set(LIBICONV_VERSION 1.16) + +vcpkg_download_distfile(ARCHIVE + URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" + FILENAME "libiconv-${LIBICONV_VERSION}.tar.gz" + SHA512 365dac0b34b4255a0066e8033a8b3db4bdb94b9b57a9dca17ebf2d779139fe935caf51a465d17fd8ae229ec4b926f3f7025264f37243432075e5583925bb77b7 +) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${LIBICONV_VERSION} + PATCHES + 0002-Config-for-MSVC.patch + 0003-Add-export.patch + 0004-ModuleFileName.patch +) + +if (NOT VCPKG_TARGET_IS_ANDROID) + list(APPEND OPTIONS --enable-relocatable) +endif() + +vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + DETERMINE_BUILD_TRIPLET + USE_WRAPPERS + OPTIONS + --enable-extra-encodings + --without-libiconv-prefix + --without-libintl-prefix + ${OPTIONS} +) +vcpkg_install_make() + +vcpkg_copy_pdbs() +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") + +set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}") # share contains unneeded doc files + +# Please keep, the default usage is broken +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libiconv/usage b/vcpkg/ports/libiconv/usage new file mode 100644 index 000000000..db47c33e8 --- /dev/null +++ b/vcpkg/ports/libiconv/usage @@ -0,0 +1,4 @@ +The package libiconv provides CMake targets: + + find_package(Iconv) + target_link_libraries(main PRIVATE Iconv::Iconv) diff --git a/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..8e25449ae --- /dev/null +++ b/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,21 @@ +include(SelectLibraryConfigurations) + +_find_package(${ARGS}) +if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) + find_path(CHARSET_INCLUDE_DIR NAMES "libcharset.h" HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") + find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug") + find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") + select_library_configurations(CHARSET) + if(NOT TARGET Iconv::Charset) + add_library(Iconv::Charset INTERFACE IMPORTED) + set_target_properties(Iconv::Charset PROPERTIES + INTERFACE_LINK_LIBRARIES "\$<\$>:${CHARSET_LIBRARY_RELEASE}>;\$<\$:${CHARSET_LIBRARY_DEBUG}>" + INTERFACE_INCLUDE_DIRECTORIES "${CHARSET_INCLUDE_DIRS}") + endif() + if(CHARSET_LIBRARIES) + list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES}) + if(TARGET Iconv::Iconv) + set_property(TARGET Iconv::Iconv APPEND PROPERTY INTERFACE_LINK_LIBRARIES Iconv::Charset) + endif() + endif() +endif() diff --git a/vcpkg/ports/libiconv/vcpkg.json b/vcpkg/ports/libiconv/vcpkg.json new file mode 100644 index 000000000..b567aee18 --- /dev/null +++ b/vcpkg/ports/libiconv/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "libiconv", + "version": "1.16", + "port-version": 13, + "description": "GNU Unicode text conversion", + "homepage": "https://www.gnu.org/software/libiconv/" +} diff --git a/vcpkg/ports/libjpeg-turbo/CMakeLists.txt b/vcpkg/ports/libjpeg-turbo/CMakeLists.txt new file mode 100644 index 000000000..e1fa17184 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/CMakeLists.txt @@ -0,0 +1,82 @@ +# see https://github.com/OSGeo/gdal/blob/master/frmts/jpeg/libjpeg/CMakeLists.txt +cmake_minimum_required(VERSION 3.6) +project(JPEG) + +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +add_library( + jpeg ${JPEG_BUILD_TYPE} + jcapimin.c + jchuff.h + jconfig.h + jdapimin.c + jdct.h + jdmarker.c + jdtrans.c + jidctflt.c + jmemmgr.c + jquant2.c + jcapistd.c + jcinit.c + jcparam.c + jdapistd.c + jddctmgr.c + jdmaster.c + jerror.c + jidctfst.c + jmemsys.h + jutils.c + jccoefct.c + jcmainct.c + jcphuff.c + jdatadst.c + jdhuff.c + jdmerge.c + jerror.h + jidctint.c + jmorecfg.h + jversion.h + jccolor.c + jcmarker.c + jcprepct.c + jdatasrc.c + jdhuff.h + jdphuff.c + jfdctflt.c + jidctred.c + jpegint.h + jcdctmgr.c + jcmaster.c + jcsample.c + jdcoefct.c + jdinput.c + jdpostct.c + jfdctfst.c + jinclude.h + jpeglib.h + jchuff.c + jcomapi.c + jctrans.c + jdcolor.c + jdmainct.c + jdsample.c + jfdctint.c + jmemnobs.c + jquant1.c) + +target_include_directories(jpeg PRIVATE $ $/..) +# target_compile_options(libjpeg PRIVATE ${GDAL_C_WARNING_FLAGS} ${GDAL_SOFTWARNFLAGS}) + +target_compile_definitions(jpeg PRIVATE -DDEFAULT_MAX_MEM=500000000L) +target_compile_definitions(jpeg PUBLIC -DRENAME_INTERNAL_LIBJPEG_SYMBOLS) + +# produce position independent code, default is on when building a shared library +# option(GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE "Set ON to produce -fPIC code" ${BUILD_SHARED_LIBS}) +# set_property(TARGET jpeg PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE}) +# target_sources(${GDAL_LIB_TARGET_NAME} PRIVATE $) + +configure_file(libjpeg.pc.in libjpeg.pc @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjpeg.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) + +INSTALL(TARGETS jpeg) +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include FILES_MATCHING PATTERN "*.h") \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/cpl_port.h b/vcpkg/ports/libjpeg-turbo/cpl_port.h new file mode 100644 index 000000000..30fe16696 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/cpl_port.h @@ -0,0 +1,13 @@ +#ifndef CPL_BASE_H_INCLUDED_TWEAKED +#define CPL_BASE_H_INCLUDED_TWEAKED + +#if defined(__GNUC__) && __GNUC__ >= 4 +/** Qualifier for an argument that is unused */ +# define CPL_UNUSED __attribute((__unused__)) +#else +/* TODO: add cases for other compilers */ +/** Qualifier for an argument that is unused */ +# define CPL_UNUSED +#endif + +#endif /* ndef CPL_BASE_H_INCLUDED_TWEAKED */ \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in b/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in new file mode 100644 index 000000000..ddc7882e7 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in @@ -0,0 +1,8 @@ +prefix=@CMAKE_INSTALL_PREFIX@ + +Name: libjpeg +Version: 6b +Description: jpeg with renamed symbols +URL: https://gdal.org +Libs: -L${prefix}/lib -ljpeg +Cflags: -I${prefix}/include -DRENAME_INTERNAL_JPEG_SYMBOLS \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/portfile.cmake b/vcpkg/ports/libjpeg-turbo/portfile.cmake new file mode 100644 index 000000000..6428bf1e5 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/portfile.cmake @@ -0,0 +1,34 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OSGeo/gdal + REF "v${VERSION}" # keep up to date with vcpkg-overlay/gdal version + SHA512 dfc7ccf5c1a3184fa93be762a880b7631faa4cd178cd72df8f5fd8a6296edafc56de2594617bebcb75ddf19ed4471dafcb574b22d7e9217dedfd7ea72c9247f2 + HEAD_REF master +) + +# `vcpkg clean` stumbles over one subdir +file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") + +file(REMOVE "${SOURCE_PATH}/frmts/jpeg/libjpeg/CMakeLists.txt") +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/cpl_port.h DESTINATION ${SOURCE_PATH}/frmts/jpeg/) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/libjpeg.pc.in DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="STATIC") +else() + list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="SHARED") +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/frmts/jpeg/libjpeg" + OPTIONS + ${LINK_OPTIONS} +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jpeg") +file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..28456a89f --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,19 @@ +find_path(JPEG_INCLUDE_DIRS NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) +find_library(JPEG_LIBRARY NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + JPEG + REQUIRED_VARS JPEG_LIBRARY JPEG_INCLUDE_DIRS +) + +if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) + add_library(JPEG::JPEG UNKNOWN IMPORTED) + set_target_properties(JPEG::JPEG PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${JPEG_LIBRARY}") + + set_target_properties(JPEG::JPEG PROPERTIES INTERFACE_COMPILE_OPTIONS "-DRENAME_INTERNAL_LIBJPEG_SYMBOLS") +endif() \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg.json b/vcpkg/ports/libjpeg-turbo/vcpkg.json new file mode 100644 index 000000000..f2113622e --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/vcpkg.json @@ -0,0 +1,22 @@ +{ + "name": "libjpeg-turbo", + "version-semver": "3.7.0", + "description": "JPEG image codec; taken from GDAL so on iOS it has renamed symbols and does not clash with Qt JPEG; this is NOT jpeg-turbo - name used so we do not need to patch all other libraries that uses JPEG", + "homepage": "https://gdal.org", + "license": null, + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true + } + ] +} diff --git a/vcpkg/ports/liblzma/add_support_ios.patch b/vcpkg/ports/liblzma/add_support_ios.patch new file mode 100644 index 000000000..79741639b --- /dev/null +++ b/vcpkg/ports/liblzma/add_support_ios.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 52439b3..0b5e371 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -574,6 +574,7 @@ if(HAVE_GETOPT_LONG) + + install(TARGETS xzdec + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xzdec) + + if(UNIX) +@@ -701,6 +702,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) + + install(TARGETS xz + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xz) + + if(UNIX) diff --git a/vcpkg/ports/liblzma/build-tools.patch b/vcpkg/ports/liblzma/build-tools.patch new file mode 100644 index 000000000..759345ef2 --- /dev/null +++ b/vcpkg/ports/liblzma/build-tools.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 03b8301..820d08e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -584,6 +584,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config.cmake" + COMPONENT liblzma_Development) + + ++if(BUILD_TOOLS) + ############################################################################# + # getopt_long + ############################################################################# +@@ -793,6 +794,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) + endforeach() + endif() + endif() ++endif() + + + ############################################################################# diff --git a/vcpkg/ports/liblzma/fix_config_include.patch b/vcpkg/ports/liblzma/fix_config_include.patch new file mode 100644 index 000000000..91dc4c13b --- /dev/null +++ b/vcpkg/ports/liblzma/fix_config_include.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 34c6aca00..7b3708ab2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -413,6 +413,7 @@ if(WIN32) + if(BUILD_SHARED_LIBS) + # Add the Windows resource file for liblzma.dll. + target_sources(liblzma PRIVATE src/liblzma/liblzma_w32res.rc) ++ target_include_directories(liblzma PRIVATE windows/vs2019) + + set_target_properties(liblzma PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" diff --git a/vcpkg/ports/liblzma/portfile.cmake b/vcpkg/ports/liblzma/portfile.cmake new file mode 100644 index 000000000..0fdc38dff --- /dev/null +++ b/vcpkg/ports/liblzma/portfile.cmake @@ -0,0 +1,86 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO tukaani-project/xz + REF "v${VERSION}" + SHA512 c28461123562564e030f3f733f078bc4c840e87598d9f4b718d4bca639120d8133f969c45d7bdc62f33f081d789ec0f14a1791fb7da18515682bfe3c0c7362e0 + HEAD_REF master + PATCHES + fix_config_include.patch + win_output_name.patch # Fix output name on Windows. Autotool build does not generate lib prefixed libraries on windows. + add_support_ios.patch # add install bundle info for support ios + build-tools.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + tools BUILD_TOOLS +) + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") + set(WASM_OPTIONS -DCMAKE_C_BYTE_ORDER=LITTLE_ENDIAN -DCMAKE_CXX_BYTE_ORDER=LITTLE_ENDIAN) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + ${WASM_OPTIONS} + -DBUILD_TESTING=OFF + -DCREATE_XZ_SYMLINKS=OFF + -DCREATE_LZMA_SYMLINKS=OFF + -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT= # using flags from (vcpkg) toolchain + MAYBE_UNUSED_VARIABLES + CMAKE_MSVC_DEBUG_INFORMATION_FORMAT + CREATE_XZ_SYMLINKS + CREATE_LZMA_SYMLINKS +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +set(exec_prefix "\${prefix}") +set(libdir "\${prefix}/lib") +set(includedir "\${prefix}/include") +set(PACKAGE_URL https://tukaani.org/xz/) +set(PACKAGE_VERSION 5.4.3) +if(NOT VCPKG_TARGET_IS_WINDOWS) + set(PTHREAD_CFLAGS -pthread) +endif() +set(prefix "${CURRENT_INSTALLED_DIR}") +configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/liblzma.pc" @ONLY) +if (NOT VCPKG_BUILD_TYPE) + set(prefix "${CURRENT_INSTALLED_DIR}/debug") + configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/liblzma.pc" @ONLY) +endif() +vcpkg_fixup_pkgconfig() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/liblzma) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "1") +else() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "0") +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/share/man" +) + +set(TOOLS xz xzdec) +foreach(_tool IN LISTS TOOLS) + if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + list(REMOVE_ITEM TOOLS ${_tool}) + endif() +endforeach() +if(TOOLS) + vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/liblzma/usage b/vcpkg/ports/liblzma/usage new file mode 100644 index 000000000..b1461c93f --- /dev/null +++ b/vcpkg/ports/liblzma/usage @@ -0,0 +1,9 @@ +liblzma is compatible with built-in CMake targets: + + find_package(LibLZMA REQUIRED) + target_link_libraries(main PRIVATE LibLZMA::LibLZMA) + +liblzma provides CMake targets: + + find_package(liblzma CONFIG REQUIRED) + target_link_libraries(main PRIVATE liblzma::liblzma) diff --git a/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..826cdba06 --- /dev/null +++ b/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,64 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +set(z_vcpkg_liblzma_fixup_needed 0) +if(NOT "CONFIG" IN_LIST ARGS AND NOT "NO_MODULE" IN_LIST ARGS AND NOT CMAKE_DISABLE_FIND_PACKAGE_LibLZMA) + get_filename_component(z_vcpkg_liblzma_prefix "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) + get_filename_component(z_vcpkg_liblzma_prefix "${z_vcpkg_liblzma_prefix}" DIRECTORY) + find_path(LIBLZMA_INCLUDE_DIR NAMES lzma.h PATHS "${z_vcpkg_liblzma_prefix}/include" NO_DEFAULT_PATH) + # liblzma doesn't use a debug postfix, but FindLibLZMA.cmake expects it + find_library(LIBLZMA_LIBRARY_RELEASE NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/lib" NO_DEFAULT_PATH) + find_library(LIBLZMA_LIBRARY_DEBUG NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/debug/lib" NO_DEFAULT_PATH) + unset(z_vcpkg_liblzma_prefix) + if(CMAKE_VERSION VERSION_LESS 3.16) + # Older versions of FindLibLZMA.cmake need a single lib in LIBLZMA_LIBRARY. + set(z_vcpkg_liblzma_fixup_needed 1) + set(LIBLZMA_LIBRARY "${LIBLZMA_LIBRARY_RELEASE}" CACHE INTERNAL "") + elseif(NOT TARGET LibLZMA::LibLZMA) + set(z_vcpkg_liblzma_fixup_needed 1) + endif() + # Known values, and required. Skip expensive tests. + set(LIBLZMA_HAS_AUTO_DECODER 1 CACHE INTERNAL "") + set(LIBLZMA_HAS_EASY_ENCODER 1 CACHE INTERNAL "") + set(LIBLZMA_HAS_LZMA_PRESET 1 CACHE INTERNAL "") +endif() + +_find_package(${ARGS}) + +if(z_vcpkg_liblzma_fixup_needed) + include(SelectLibraryConfigurations) + select_library_configurations(LIBLZMA) + if(NOT TARGET LibLZMA::LibLZMA) + # Backfill LibLZMA::LibLZMA to versions of cmake before 3.14 + add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED) + if(DEFINED LIBLZMA_INCLUDE_DIRS) + set_target_properties(LibLZMA::LibLZMA PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${LIBLZMA_INCLUDE_DIRS}") + endif() + set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(LibLZMA::LibLZMA PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" + IMPORTED_LOCATION_RELEASE "${LIBLZMA_LIBRARY_RELEASE}") + if(EXISTS "${LIBLZMA_LIBRARY}") + set_target_properties(LibLZMA::LibLZMA PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${LIBLZMA_LIBRARY}") + endif() + endif() + if(LIBLZMA_LIBRARY_DEBUG) + # Backfill debug variant to versions of cmake before 3.16 + set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBLZMA_LIBRARY_DEBUG}") + endif() +endif() +if(LIBLZMA_LIBRARIES AND NOT "Threads::Threads" IN_LIST LIBLZMA_LIBRARIES) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads) + list(APPEND LIBLZMA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) + if(TARGET LibLZMA::LibLZMA) + set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) + endif() +endif() +unset(z_vcpkg_liblzma_fixup_needed) +cmake_policy(POP) diff --git a/vcpkg/ports/liblzma/vcpkg.json b/vcpkg/ports/liblzma/vcpkg.json new file mode 100644 index 000000000..e9168357c --- /dev/null +++ b/vcpkg/ports/liblzma/vcpkg.json @@ -0,0 +1,23 @@ +{ + "name": "liblzma", + "version": "5.4.4", + "description": "Compression library with an API similar to that of zlib.", + "homepage": "https://tukaani.org/xz/", + "license": null, + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tools": { + "description": "Build tools", + "supports": "!windows, mingw" + } + } +} diff --git a/vcpkg/ports/liblzma/win_output_name.patch b/vcpkg/ports/liblzma/win_output_name.patch new file mode 100644 index 000000000..9a845bdba --- /dev/null +++ b/vcpkg/ports/liblzma/win_output_name.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0c6d4b7..62a824a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -868,8 +868,11 @@ set_target_properties(liblzma PROPERTIES + + # It's liblzma.so or liblzma.dll, not libliblzma.so or lzma.dll. + # Avoid the name lzma.dll because it would conflict with LZMA SDK. +- PREFIX "" ++ OUTPUT_NAME lzma + ) ++if(WIN32 AND NOT MINGW) ++ set_target_properties(liblzma PROPERTIES RUNTIME_OUTPUT_NAME liblzma) ++endif() + + # Create liblzma-config-version.cmake. + # diff --git a/vcpkg/ports/libpq/Makefile b/vcpkg/ports/libpq/Makefile new file mode 100644 index 000000000..67994f4ba --- /dev/null +++ b/vcpkg/ports/libpq/Makefile @@ -0,0 +1,54 @@ +subdir = . +top_builddir = . +include src/Makefile.global + +ifeq ($(LIBPQ_LIBRARY_TYPE), static) +LIBPQ_INSTALL_LIBS = install-stlib +endif + +ifeq ($(LIBPQ_LIBRARY_TYPE), shared) +ifeq ($(LIBPQ_USING_MINGW), yes) +# The import library name is the same as the static library name +EXTRA_TARGET = install-lib-static +endif +endif + +.PHONY: all +all: + $(MAKE) -C src/include + $(MAKE) -C src/common + $(MAKE) -C src/port + $(MAKE) -C src/interfaces/libpq all-$(LIBPQ_LIBRARY_TYPE)-lib + $(MAKE) -C src/interfaces/ecpg/include + $(MAKE) -C src/interfaces/ecpg/pgtypeslib + $(MAKE) -C src/interfaces/ecpg/ecpglib + $(MAKE) -C src/interfaces/ecpg/compatlib +ifeq ($(LIBPQ_ENABLE_TOOLS), yes) + $(MAKE) -C src/interfaces/ecpg/preproc + $(MAKE) -C src/fe_utils + $(MAKE) -C src/bin +else + $(MAKE) -C src/bin/pg_config +endif + +.PHONY: install-stlib +install-stlib: + $(MAKE) -C src/common install -o all + rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a' + $(MAKE) -C src/port install -o all + rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a' + +.PHONY: install +install: $(LIBPQ_INSTALL_LIBS) + $(MAKE) -C src/include install + $(MAKE) -C src/interfaces/libpq $(EXTRA_TARGET) install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib-pc install -o all -o install-lib + $(MAKE) -C src/interfaces/ecpg/include install + $(MAKE) -C src/interfaces/ecpg/pgtypeslib install + $(MAKE) -C src/interfaces/ecpg/ecpglib install + $(MAKE) -C src/interfaces/ecpg/compatlib install +ifeq ($(LIBPQ_ENABLE_TOOLS), yes) + $(MAKE) -C src/interfaces/ecpg/preproc install + $(MAKE) -C src/bin install +else + $(MAKE) -C src/bin/pg_config install +endif diff --git a/vcpkg/ports/libpq/android/unversioned_so.patch b/vcpkg/ports/libpq/android/unversioned_so.patch new file mode 100644 index 000000000..42096a367 --- /dev/null +++ b/vcpkg/ports/libpq/android/unversioned_so.patch @@ -0,0 +1,16 @@ +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index f94d59d1c597..8ca51ca03f75 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -183,6 +183,11 @@ endif + ifeq ($(PORTNAME), linux) + LINK.shared = $(COMPILER) -shared + ifdef soname ++ ifneq (,$(findstring linux-android,$(host_os))) ++ # Android uses unversioned shared libraries ++ shlib = $(shlib_bare) ++ soname = $(shlib_bare) ++ endif + LINK.shared += -Wl,-soname,$(soname) + endif + BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ diff --git a/vcpkg/ports/libpq/build-msvc.cmake b/vcpkg/ports/libpq/build-msvc.cmake new file mode 100644 index 000000000..34d969487 --- /dev/null +++ b/vcpkg/ports/libpq/build-msvc.cmake @@ -0,0 +1,80 @@ +function(build_msvc build_type source_path) + if(build_type STREQUAL "DEBUG") + set(vcpkg_configuration "Debug") + set(label "${TARGET_TRIPLET}-dbg") + set(packages_dir "${CURRENT_PACKAGES_DIR}/debug") + else() + set(vcpkg_configuration "Release") + set(label "${TARGET_TRIPLET}-rel") + set(packages_dir "${CURRENT_PACKAGES_DIR}") + endif() + + set(build_path "${CURRENT_BUILDTREES_DIR}/${label}") + file(REMOVE_RECURSE "${build_path}") + file(COPY "${source_path}/" DESTINATION "${build_path}") + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${build_path}/src/include/port/win32.h" "__declspec (dllimport)" "") + endif() + vcpkg_replace_string("${build_path}/src/tools/msvc/MSBuildProject.pm" "perl " "\"${PERL}\" ") + configure_file("${CURRENT_PORT_DIR}/libpq.props.in" "${build_path}/libpq.props" @ONLY) + configure_file("${CURRENT_PORT_DIR}/vcpkg-libs.props.in" "${build_path}/vcpkg-libs.props" @ONLY) + set(config "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n\n") + foreach(var IN ITEMS VCPKG_TARGET_ARCHITECTURE VCPKG_LIBRARY_LINKAGE VCPKG_CRT_LINKAGE) + string(APPEND config "\$config->{${var}} = \"${${var}}\";\n") + endforeach() + foreach(option IN ITEMS icu lz4 nls openssl python tcl xml xslt zlib zstd) + if(option IN_LIST FEATURES) + string(APPEND config "\$config->{${option}} = \"${CURRENT_INSTALLED_DIR}\";\n") + endif() + endforeach() + if("openssl" IN_LIST FEATURES) + file(STRINGS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/openssl.pc" OPENSSL_VERSION REGEX "Version:") + string(APPEND config "\$config->{openssl_version} = '${OPENSSL_VERSION}';\n") + endif() + string(APPEND config "\$config->{python_version} = '3.${PYTHON_VERSION_MINOR}';\n") + string(APPEND config "\$config->{tcl_version} = '90';\n") + file(WRITE "${build_path}/src/tools/msvc/config.pl" "${config}") + + set(build_in_parallel "-m") + set(build_targets libpq libecpg_compat) + set(install_target core) + if(HAS_TOOLS AND NOT build_type STREQUAL "DEBUG") + set(build_in_parallel "") # mitigate winflex races + set(build_targets client) + set(install_target client) + endif() + + string(REPLACE "x86" "Win32" platform "${VCPKG_TARGET_ARCHITECTURE}") + vcpkg_get_windows_sdk(VCPKG_TARGET_PLATFORM_VERSION) + set(ENV{MSBFLAGS} "\ + /p:Platform=${platform} \ + /p:PlatformToolset=${VCPKG_PLATFORM_TOOLSET} \ + /p:VCPkgLocalAppDataDisabled=true \ + /p:UseIntelMKL=No \ + /p:WindowsTargetPlatformVersion=${VCPKG_TARGET_PLATFORM_VERSION} \ + /p:VcpkgConfiguration=${vcpkg_configuration} \ + ${build_in_parallel} \ + /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets;${build_path}/vcpkg-libs.props\" \ + /p:VcpkgTriplet=${TARGET_TRIPLET} \ + /p:VcpkgCurrentInstalledDir=\"${CURRENT_INSTALLED_DIR}\" \ + /p:ForceImportAfterCppTargets=\"${build_path}/libpq.props\" \ + ") + + message(STATUS "Building ${label}") + foreach(target IN LISTS build_targets) + string(REPLACE "client" "" target "${target}") + vcpkg_execute_required_process( + COMMAND "${PERL}" build.pl ${build_type} ${target} + WORKING_DIRECTORY "${build_path}/src/tools/msvc" + LOGNAME "build-${target}-${label}" + ) + endforeach() + + message(STATUS "Installing ${label}") + vcpkg_execute_required_process( + COMMAND "${PERL}" install.pl "${packages_dir}" ${install_target} + WORKING_DIRECTORY "${build_path}/src/tools/msvc" + LOGNAME "install-${label}" + ) +endfunction() diff --git a/vcpkg/ports/libpq/libpq.props.in b/vcpkg/ports/libpq/libpq.props.in new file mode 100644 index 000000000..223e528fe --- /dev/null +++ b/vcpkg/ports/libpq/libpq.props.in @@ -0,0 +1,25 @@ + + + + + %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_DEBUG@ + + + %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG@ + + + %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ + + + + + %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_RELEASE@ + + + %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE@ + + + %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ + + + diff --git a/vcpkg/ports/libpq/portfile.cmake b/vcpkg/ports/libpq/portfile.cmake new file mode 100644 index 000000000..782205437 --- /dev/null +++ b/vcpkg/ports/libpq/portfile.cmake @@ -0,0 +1,160 @@ +vcpkg_download_distfile(ARCHIVE + URLS "https://ftp.postgresql.org/pub/source/v${VERSION}/postgresql-${VERSION}.tar.bz2" + FILENAME "postgresql-${VERSION}.tar.bz2" + SHA512 3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf +) + +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES + unix/installdirs.patch + unix/fix-configure.patch + unix/single-linkage.patch + unix/no-server-tools.patch + unix/mingw-install.patch + unix/python.patch + windows/macro-def.patch + windows/win_bison_flex.patch + windows/msbuild.patch + windows/spin_delay.patch + android/unversioned_so.patch +) + +file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*") +string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}") +set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") + +if("client" IN_LIST FEATURES) + set(HAS_TOOLS TRUE) +else() + set(HAS_TOOLS FALSE) +endif() + +set(required_programs PERL) +if(VCPKG_TARGET_IS_WINDOWS) + list(APPEND required_programs BISON FLEX) +endif() +foreach(program_name IN LISTS required_programs) + # Need to rename win_bison and win_flex to just bison and flex + vcpkg_find_acquire_program(${program_name}) + get_filename_component(program_dir ${${program_name}} DIRECTORY) + vcpkg_add_to_path(PREPEND "${program_dir}") +endforeach() + +vcpkg_cmake_get_vars(cmake_vars_file) +include("${cmake_vars_file}") + +if(VCPKG_DETECTED_MSVC) + if("nls" IN_LIST FEATURES) + vcpkg_acquire_msys(MSYS_ROOT PACKAGES gettext) + vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") + endif() + if("xml" IN_LIST FEATURES) + x_vcpkg_pkgconfig_get_modules( + PREFIX PC_LIBXML2 + MODULES --msvc-syntax libxml-2.0 + LIBS + ) + separate_arguments(LIBXML2_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXML2_LIBS_DEBUG}") + separate_arguments(LIBXML2_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXML2_LIBS_RELEASE}") + endif() + if("xslt" IN_LIST FEATURES) + x_vcpkg_pkgconfig_get_modules( + PREFIX PC_LIBXSLT + MODULES --msvc-syntax libxslt + LIBS + ) + separate_arguments(LIBXSLT_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXSLT_LIBS_DEBUG}") + separate_arguments(LIBXSLT_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXSLT_LIBS_RELEASE}") + endif() + + include("${CMAKE_CURRENT_LIST_DIR}/build-msvc.cmake") + if(NOT VCPKG_BUILD_TYPE) + build_msvc(DEBUG "${SOURCE_PATH}") + endif() + build_msvc(RELEASE "${SOURCE_PATH}") + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") + endif() + + if(HAS_TOOLS) + vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") + else() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") + endif() +else() + file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}") + + vcpkg_list(SET BUILD_OPTS) + foreach(option IN ITEMS icu lz4 nls openssl readline xml xslt zlib zstd) + if(option IN_LIST FEATURES) + list(APPEND BUILD_OPTS --with-${option}) + else() + list(APPEND BUILD_OPTS --without-${option}) + endif() + endforeach() + if("nls" IN_LIST FEATURES) + set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}") + if(VCPKG_TARGET_IS_ANDROID) + list(APPEND BUILD_OPTS [[LIBS=$LIBS -liconv]]) + endif() + endif() + if("python" IN_LIST FEATURES) + list(APPEND BUILD_OPTS --with-python=3.${PYTHON_VERSION_MINOR}) + vcpkg_find_acquire_program(PYTHON3) + list(APPEND BUILD_OPTS "PYTHON=${PYTHON3}") + endif() + if(VCPKG_TARGET_IS_ANDROID) # AND CMAKE_SYSTEM_VERSION LESS 26) + list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no) + endif() + if(VCPKG_DETECTED_CMAKE_OSX_SYSROOT) + list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") + endif() + vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + COPY_SOURCE + AUTOCONFIG + ADDITIONAL_MSYS_PACKAGES autoconf-archive + DIRECT_PACKAGES + "https://mirror.msys2.org/msys/x86_64/tzcode-2023c-1-x86_64.pkg.tar.zst" + 7550b843964744607f736a7138f10c6cd92489406a1b84ac71d9a9d8aa16bc69048aa1b24e1f49291b010347047008194c334ca9c632e17fa8245e85549e3c7a + OPTIONS + ${BUILD_OPTS} + OPTIONS_DEBUG + --enable-debug + ) + + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(ENV{LIBPQ_LIBRARY_TYPE} shared) + else() + set(ENV{LIBPQ_LIBRARY_TYPE} static) + endif() + if(VCPKG_TARGET_IS_MINGW) + set(ENV{LIBPQ_USING_MINGW} yes) + endif() + if(HAS_TOOLS) + set(ENV{LIBPQ_ENABLE_TOOLS} yes) + endif() + vcpkg_install_make() + + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") +endif() + +vcpkg_fixup_pkgconfig() +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/doc" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/symbols" + "${CURRENT_PACKAGES_DIR}/debug/tools" + "${CURRENT_PACKAGES_DIR}/symbols" + "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" +) + +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") diff --git a/vcpkg/ports/libpq/unix/fix-configure.patch b/vcpkg/ports/libpq/unix/fix-configure.patch new file mode 100644 index 000000000..29c764635 --- /dev/null +++ b/vcpkg/ports/libpq/unix/fix-configure.patch @@ -0,0 +1,79 @@ +diff --git a/configure.ac b/configure.ac +index 7f97248..48ff1a1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,7 +19,8 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros + + AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) + +-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. ++cross_compiling=yes # Avoid conftest loading shared objects ++m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required. + Untested combinations of 'autoconf' and PostgreSQL versions are not + recommended. You can remove the check from 'configure.ac' but it is then + your responsibility whether the result works or not.])]) +@@ -1311,7 +1312,8 @@ if test "$enable_thread_safety" = yes; then + fi + + if test "$with_readline" = yes; then +- PGAC_CHECK_READLINE ++ PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no]) ++ LIBS="$READLINE_LIBS $LIBS" + if test x"$pgac_cv_check_readline" = x"no"; then + AC_MSG_ERROR([readline library not found + If you have readline already installed, see config.log for details on the +@@ -1321,7 +1323,7 @@ Use --without-readline to disable readline support.]) + fi + + if test "$with_zlib" = yes; then +- AC_CHECK_LIB(z, inflate, [], ++ PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"], + [AC_MSG_ERROR([zlib library not found + If you have zlib already installed, see config.log for details on the + failure. It is possible the compiler isn't looking in the proper directory. +@@ -1370,6 +1372,9 @@ if test "$with_ssl" = openssl ; then + # Minimum required OpenSSL version is 1.0.1 + AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L], + [Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.]) ++ PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) ++ PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) ++ if false ; then + if test "$PORTNAME" != "win32"; then + AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) + AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) +@@ -1377,6 +1382,7 @@ if test "$with_ssl" = openssl ; then + AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])]) + AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])]) + fi ++ fi + # Functions introduced in OpenSSL 1.0.2. LibreSSL does not have + # SSL_CTX_set_cert_cb(). + AC_CHECK_FUNCS([X509_get_signature_nid SSL_CTX_set_cert_cb]) +@@ -1403,19 +1409,23 @@ if test "$with_pam" = yes ; then + fi + + if test "$with_libxml" = yes ; then +- AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) ++ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) ++ LIBS="$LIBXML2_LIBS $LIBS" + fi + + if test "$with_libxslt" = yes ; then +- AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) ++ PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) ++ LIBS="$LIBXSLT_LIBS $LIBS" + fi + + if test "$with_lz4" = yes ; then +- AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) ++ PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) ++ LIBS="$LZ4_LIBS $LIBS" + fi + + if test "$with_zstd" = yes ; then +- AC_CHECK_LIB(zstd, ZSTD_compress, [], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) ++ PKG_CHECK_MODULES([ZSTD], [libzstd], [AC_DEFINE(HAVE_LIBZSTD,1,[Define to 1 if with zstd])], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) ++ LIBS="$ZSTD_LIBS $LIBS" + fi + + # Note: We can test for libldap_r only after we know PTHREAD_LIBS; diff --git a/vcpkg/ports/libpq/unix/installdirs.patch b/vcpkg/ports/libpq/unix/installdirs.patch new file mode 100644 index 000000000..ae6653f90 --- /dev/null +++ b/vcpkg/ports/libpq/unix/installdirs.patch @@ -0,0 +1,48 @@ +diff --git a/src/Makefile.global.in b/src/Makefile.global.in +index 5dacc4d..a9a797e 100644 +--- a/src/Makefile.global.in ++++ b/src/Makefile.global.in +@@ -100,14 +100,14 @@ datarootdir := @datarootdir@ + + bindir := @bindir@ + +-datadir := @datadir@ ++datadir := @datadir@/postgresql + ifeq "$(findstring pgsql, $(datadir))" "" + ifeq "$(findstring postgres, $(datadir))" "" + override datadir := $(datadir)/postgresql + endif + endif + +-sysconfdir := @sysconfdir@ ++sysconfdir := @sysconfdir@/postgresql + ifeq "$(findstring pgsql, $(sysconfdir))" "" + ifeq "$(findstring postgres, $(sysconfdir))" "" + override sysconfdir := $(sysconfdir)/postgresql +@@ -116,7 +116,7 @@ endif + + libdir := @libdir@ + +-pkglibdir = $(libdir) ++pkglibdir = $(libdir)/postgresql + ifeq "$(findstring pgsql, $(pkglibdir))" "" + ifeq "$(findstring postgres, $(pkglibdir))" "" + override pkglibdir := $(pkglibdir)/postgresql +@@ -125,7 +125,7 @@ endif + + includedir := @includedir@ + +-pkgincludedir = $(includedir) ++pkgincludedir = $(includedir)/postgresql + ifeq "$(findstring pgsql, $(pkgincludedir))" "" + ifeq "$(findstring postgres, $(pkgincludedir))" "" + override pkgincludedir := $(pkgincludedir)/postgresql +@@ -134,7 +134,7 @@ endif + + mandir := @mandir@ + +-docdir := @docdir@ ++docdir := @docdir@/postgresql + ifeq "$(findstring pgsql, $(docdir))" "" + ifeq "$(findstring postgres, $(docdir))" "" + override docdir := $(docdir)/postgresql diff --git a/vcpkg/ports/libpq/unix/mingw-install.patch b/vcpkg/ports/libpq/unix/mingw-install.patch new file mode 100644 index 000000000..ffeea023c --- /dev/null +++ b/vcpkg/ports/libpq/unix/mingw-install.patch @@ -0,0 +1,36 @@ +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index 16255d7..51e9ed2 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -85,7 +85,11 @@ else + # Naming convention for dynamically loadable modules + shlib = $(NAME)$(DLSUFFIX) + endif ++ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) ++stlib = lib$(NAME).dll.a ++else + stlib = lib$(NAME).a ++endif + + ifndef soname + # additional flags for backend modules +@@ -468,6 +472,9 @@ endif + else # no soname + $(INSTALL_SHLIB) $< '$(DESTDIR)$(pkglibdir)/$(shlib)' + endif ++ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) ++ mv '$(DESTDIR)$(libdir)/$(shlib)' '$(DESTDIR)$(libdir)/../bin/$(shlib)' ++endif + + + installdirs-lib: +@@ -476,6 +483,9 @@ ifdef soname + else + $(MKDIR_P) '$(DESTDIR)$(pkglibdir)' + endif ++ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) ++ $(MKDIR_P) '$(DESTDIR)$(libdir)/../bin' ++endif + + + ## diff --git a/vcpkg/ports/libpq/unix/no-server-tools.patch b/vcpkg/ports/libpq/unix/no-server-tools.patch new file mode 100644 index 000000000..f83682afb --- /dev/null +++ b/vcpkg/ports/libpq/unix/no-server-tools.patch @@ -0,0 +1,37 @@ +diff --git a/src/bin/Makefile b/src/bin/Makefile +index 7f9dde9..bc6d835 100644 +--- a/src/bin/Makefile ++++ b/src/bin/Makefile +@@ -13,29 +13,20 @@ subdir = src/bin + top_builddir = ../.. + include $(top_builddir)/src/Makefile.global + ++.NOTPARALLEL: ++# incl. https://www.postgresql.org/docs/current/reference-client.html ++# excl. https://www.postgresql.org/docs/current/reference-server.html + SUBDIRS = \ +- initdb \ + pg_amcheck \ +- pg_archivecleanup \ + pg_basebackup \ +- pg_checksums \ + pg_config \ +- pg_controldata \ +- pg_ctl \ + pg_dump \ +- pg_resetwal \ +- pg_rewind \ +- pg_test_fsync \ +- pg_test_timing \ +- pg_upgrade \ + pg_verifybackup \ +- pg_waldump \ + pgbench \ + psql \ + scripts + + ifeq ($(PORTNAME), win32) +-SUBDIRS += pgevent + else + ALWAYS_SUBDIRS += pgevent + endif diff --git a/vcpkg/ports/libpq/unix/python.patch b/vcpkg/ports/libpq/unix/python.patch new file mode 100644 index 000000000..7d8f58d4a --- /dev/null +++ b/vcpkg/ports/libpq/unix/python.patch @@ -0,0 +1,35 @@ +diff --git a/configure.ac b/configure.ac +index 7f97248992..33b6c84fc4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -891,7 +891,9 @@ AC_SUBST(with_perl) + # Optionally build Python modules (PL/Python) + # + AC_MSG_CHECKING([whether to build Python modules]) +-PGAC_ARG_BOOL(with, python, no, [build Python modules (PL/Python)]) ++PGAC_ARG_OPTARG(with, python, [PYTHON_VERSION], [build Python modules (PL/Python)], ++ [], ++ [python_version=$withval]) + AC_MSG_RESULT([$with_python]) + AC_SUBST(with_python) + +@@ -1214,7 +1216,18 @@ fi + + if test "$with_python" = yes; then + PGAC_PATH_PYTHON +- PGAC_CHECK_PYTHON_EMBED_SETUP ++ python_majorversion=3 ++ PKG_CHECK_MODULES(PYTHON_EMBED, python-${python_version}-embed) ++ python_includespec="${PYTHON_EMBED_CFLAGS}" ++ python_libdir=[$(echo " ${PYTHON_EMBED_LIBS}" | sed -e 's/\( -L[^ ]*\).*/\1/' -e 's/^.* -L//')] ++ python_libspec="${PYTHON_EMBED_LIBS}" ++ python_additional_libs="" ++ AC_SUBST(python_majorversion) ++ AC_SUBST(python_version) ++ AC_SUBST(python_includespec) ++ AC_SUBST(python_libdir) ++ AC_SUBST(python_libspec) ++ AC_SUBST(python_additional_libs) + fi + + if test x"$cross_compiling" = x"yes" && test -z "$with_system_tzdata"; then diff --git a/vcpkg/ports/libpq/unix/single-linkage.patch b/vcpkg/ports/libpq/unix/single-linkage.patch new file mode 100644 index 000000000..dd149c7d3 --- /dev/null +++ b/vcpkg/ports/libpq/unix/single-linkage.patch @@ -0,0 +1,56 @@ +diff --git a/src/Makefile.shlib b/src/Makefile.shlib +index 551023c..16255d7 100644 +--- a/src/Makefile.shlib ++++ b/src/Makefile.shlib +@@ -260,10 +260,14 @@ endif + + .PHONY: all-lib all-static-lib all-shared-lib + ++ifndef LIBPQ_LIBRARY_TYPE + all-lib: all-shared-lib + ifdef soname + # no static library when building a dynamically loadable module + all-lib: all-static-lib ++endif ++else ++all-lib: all-$(LIBPQ_LIBRARY_TYPE)-lib + all-lib: lib$(NAME).pc + endif + +@@ -417,9 +421,13 @@ endif # PORTNAME == cygwin || PORTNAME == win32 + ## + + .PHONY: install-lib install-lib-static install-lib-shared installdirs-lib ++ifndef LIBPQ_LIBRARY_TYPE + install-lib: install-lib-shared + ifdef soname + install-lib: install-lib-static ++endif ++else ++install-lib: install-lib-$(LIBPQ_LIBRARY_TYPE) + install-lib: install-lib-pc + endif + +diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile +index 8abdb09..185461e 100644 +--- a/src/interfaces/libpq/Makefile ++++ b/src/interfaces/libpq/Makefile +@@ -115,6 +115,7 @@ backend_src = $(top_srcdir)/src/backend + # Also skip the test on platforms where libpq infrastructure may be provided + # by statically-linked libraries, as we can't expect them to honor this + # coding rule. ++ifeq ($(LIBPQ_LIBRARY_TYPE), shared) + libpq-refs-stamp: $(shlib) + ifneq ($(enable_coverage), yes) + ifeq (,$(filter aix solaris,$(PORTNAME))) +@@ -124,6 +125,10 @@ ifeq (,$(filter aix solaris,$(PORTNAME))) + endif + endif + touch $@ ++else ++.PHONY: libpq-refs-stamp ++libpq-refs-stamp: ++endif + + # Make dependencies on pg_config_paths.h visible in all builds. + fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h diff --git a/vcpkg/ports/libpq/usage b/vcpkg/ports/libpq/usage new file mode 100644 index 000000000..8dfcd2754 --- /dev/null +++ b/vcpkg/ports/libpq/usage @@ -0,0 +1,4 @@ +The package libpq provides CMake integration: + + find_package(PostgreSQL REQUIRED) + target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL) diff --git a/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..6f1432570 --- /dev/null +++ b/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,72 @@ +# Give the CMake module a little bit of help to find the debug libraries +find_library(PostgreSQL_LIBRARY_DEBUG +NAMES pq +PATHS + "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" +NO_DEFAULT_PATH +) +_find_package(${ARGS}) +if(PostgreSQL_FOUND AND NOT "@VCPKG_TARGET_IS_WINDOWS@") + find_library(PostgreSQL_DL_LIBRARY NAMES dl) + if(PostgreSQL_DL_LIBRARY) + list(APPEND PostgreSQL_LIBRARIES "dl") + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") + endif() + endif() +endif() +if(PostgreSQL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") + include(SelectLibraryConfigurations) + foreach(LIB_ITEM libpgport libpgcommon pgport pgcommon) + find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE + NAMES ${LIB_ITEM} + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH + ) + if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE) + set_property( + TARGET PostgreSQL::PostgreSQL + APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE}>" + ) + endif() + + find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG + NAMES ${LIB_ITEM} + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH + ) + if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) + set_property( + TARGET PostgreSQL::PostgreSQL + APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG}>" + ) + endif() + + if (PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE OR PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) + select_library_configurations(PostgreSQL_${LIB_ITEM}) + list(APPEND PostgreSQL_LIBRARIES ${PostgreSQL_${LIB_ITEM}_LIBRARY}) + endif() + endforeach() + if(WIN32) + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Secur32.lib") + endif() + list(APPEND PostgreSQL_LIBRARIES Secur32.lib) + endif() + cmake_policy(PUSH) + cmake_policy(SET CMP0057 NEW) + set(Z_VCPKG_PORT_FEATURES "@FEATURES@") + if("openssl" IN_LIST Z_VCPKG_PORT_FEATURES) + find_package(OpenSSL REQUIRED) + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenSSL::SSL") + endif() + list(APPEND PostgreSQL_LIBRARIES OpenSSL::SSL) + endif() + if(WIN32) + if(TARGET PostgreSQL::PostgreSQL) + set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Wldap32.lib") + endif() + list(APPEND PostgreSQL_LIBRARIES Wldap32.lib) + endif() + unset(Z_VCPKG_PORT_FEATURES) + cmake_policy(POP) +endif() diff --git a/vcpkg/ports/libpq/vcpkg-libs.props.in b/vcpkg/ports/libpq/vcpkg-libs.props.in new file mode 100644 index 000000000..cb7e5f92c --- /dev/null +++ b/vcpkg/ports/libpq/vcpkg-libs.props.in @@ -0,0 +1,31 @@ + + + + @CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib; + @CURRENT_INSTALLED_DIR@/debug/lib/lz4d.lib + @CURRENT_INSTALLED_DIR@/debug/lib/intl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/debug/lib/charset.lib + @CURRENT_INSTALLED_DIR@/debug/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib + @CURRENT_INSTALLED_DIR@/debug/lib/python3@PYTHON_VERSION_MINOR@_d.lib + @CURRENT_INSTALLED_DIR@/debug/lib/tcl90g.lib + @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sg.lib + @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sgx.lib + @LIBXML2_LIBS_DEBUG@ + @LIBXSLT_LIBS_DEBUG@ + @CURRENT_INSTALLED_DIR@/debug/lib/zlibd.lib + @CURRENT_INSTALLED_DIR@/debug/lib/zstd.lib + + + @CURRENT_INSTALLED_DIR@/lib/icuin.lib;@CURRENT_INSTALLED_DIR@/lib/icuuc.lib;@CURRENT_INSTALLED_DIR@/lib/icudt.lib; + @CURRENT_INSTALLED_DIR@/lib/lz4.lib + @CURRENT_INSTALLED_DIR@/lib/intl.lib;@CURRENT_INSTALLED_DIR@/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/lib/charset.lib + @CURRENT_INSTALLED_DIR@/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib + @CURRENT_INSTALLED_DIR@/lib/python3@PYTHON_VERSION_MINOR@.lib + @CURRENT_INSTALLED_DIR@/lib/tcl90.lib + @CURRENT_INSTALLED_DIR@/lib/tcl90s.lib + @CURRENT_INSTALLED_DIR@/lib/tcl90sx.lib + @LIBXML2_LIBS_RELEASE@ + @LIBXSLT_LIBS_RELEASE@ + @CURRENT_INSTALLED_DIR@/lib/zlib.lib + @CURRENT_INSTALLED_DIR@/lib/zstd.lib + + diff --git a/vcpkg/ports/libpq/vcpkg.json b/vcpkg/ports/libpq/vcpkg.json new file mode 100644 index 000000000..772c1a995 --- /dev/null +++ b/vcpkg/ports/libpq/vcpkg.json @@ -0,0 +1,195 @@ +{ + "name": "libpq", + "version": "16.2", + "port-version": 1, + "description": "The official database access API of postgresql", + "homepage": "https://www.postgresql.org/", + "license": "PostgreSQL", + "supports": "!uwp", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "bonjour" + ], + "platform": "osx" + }, + { + "name": "vcpkg-cmake-get-vars", + "host": true + }, + { + "name": "vcpkg-pkgconfig-get-modules", + "host": true, + "platform": "windows & !mingw" + } + ], + "default-features": [ + "lz4", + "openssl", + "zlib" + ], + "features": { + "all": { + "description": "Build all supported features", + "dependencies": [ + { + "name": "libpq", + "features": [ + "client", + "icu", + "xml", + "xslt", + "zstd" + ] + }, + { + "name": "libpq", + "features": [ + "bonjour" + ], + "platform": "osx" + }, + { + "name": "libpq", + "features": [ + "nls" + ], + "platform": "!osx" + }, + { + "name": "libpq", + "features": [ + "readline" + ], + "platform": "!windows" + }, + { + "name": "libpq", + "features": [ + "python" + ], + "platform": "!android & !mingw" + }, + { + "name": "libpq", + "features": [ + "tcl" + ], + "platform": "windows & !mingw & !arm" + } + ] + }, + "bonjour": { + "description": "Build with Bonjour support", + "supports": "osx" + }, + "client": { + "description": "Build all client tools and libraries" + }, + "icu": { + "description": "Build with support for the ICU library", + "dependencies": [ + "icu" + ] + }, + "lz4": { + "description": "Use lz4", + "dependencies": [ + "lz4" + ] + }, + "nls": { + "description": "Native Language Support", + "supports": "!osx", + "dependencies": [ + "gettext", + { + "name": "gettext", + "host": true, + "features": [ + "tools" + ], + "platform": "!windows, mingw" + } + ] + }, + "openssl": { + "description": "support for encrypted client connections and random number generation on platforms that do not have \"/dev/urandom\" (except windows)", + "dependencies": [ + "openssl" + ] + }, + "python": { + "$supports": "!(windows & (static | mingw))", + "description": "build the PL/Python server programming language", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "client" + ] + }, + "python3" + ] + }, + "readline": { + "description": "Use readline", + "supports": "!windows, mingw", + "dependencies": [ + "readline" + ] + }, + "tcl": { + "$supports": "!(windows & (static | mingw))", + "description": "build the PL/Tcl procedural language", + "supports": "windows & !mingw", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "client" + ] + }, + "tcl" + ] + }, + "xml": { + "description": "Build with libxml", + "dependencies": [ + { + "name": "libxml2", + "default-features": false + } + ] + }, + "xslt": { + "description": "Build with libxslt", + "dependencies": [ + { + "name": "libpq", + "default-features": false, + "features": [ + "xml" + ] + }, + "libxslt" + ] + }, + "zlib": { + "description": "Use zlib", + "dependencies": [ + "zlib" + ] + }, + "zstd": { + "description": "Use zstd", + "dependencies": [ + "zstd" + ] + } + } +} diff --git a/vcpkg/ports/libpq/windows/macro-def.patch b/vcpkg/ports/libpq/windows/macro-def.patch new file mode 100644 index 000000000..1d16c1270 --- /dev/null +++ b/vcpkg/ports/libpq/windows/macro-def.patch @@ -0,0 +1,18 @@ +diff --git a/src/include/common/checksum_helper.h b/src/include/common/checksum_helper.h +index cac7570ea..d0ca1243c 100644 +--- a/src/include/common/checksum_helper.h ++++ b/src/include/common/checksum_helper.h +@@ -33,7 +28,13 @@ + */ + typedef enum pg_checksum_type + { ++#pragma push_macro("CHECKSUM_TYPE_NONE") ++#ifdef CHECKSUM_TYPE_NONE ++// winioctl.h defines CHECKSUM_TYPE_NONE to 0 as a macro. ++#undef CHECKSUM_TYPE_NONE ++#endif + CHECKSUM_TYPE_NONE, ++#pragma pop_macro("CHECKSUM_TYPE_NONE") + CHECKSUM_TYPE_CRC32C, + CHECKSUM_TYPE_SHA224, + CHECKSUM_TYPE_SHA256, diff --git a/vcpkg/ports/libpq/windows/msbuild.patch b/vcpkg/ports/libpq/windows/msbuild.patch new file mode 100644 index 000000000..e6c70ad09 --- /dev/null +++ b/vcpkg/ports/libpq/windows/msbuild.patch @@ -0,0 +1,398 @@ +diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm +index 05548d7..097db91 100644 +--- a/src/tools/msvc/Install.pm ++++ b/src/tools/msvc/Install.pm +@@ -53,6 +53,11 @@ sub Install + my $target = shift; + $insttype = shift; + $insttype = "all" unless ($insttype); ++ if ($insttype eq 'core') ++ { ++ $insttype = 'client'; ++ @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' ); ++ } + + # if called from vcregress, the config will be passed to us + # so no need to re-include these +@@ -89,7 +94,7 @@ sub Install + my $majorver = DetermineMajorVersion(); + print "Installing version $majorver for $conf in $target\n"; + +- my @client_dirs = ('bin', 'lib', 'share', 'symbols'); ++ my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq'); + my @all_dirs = ( + @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib', + 'share/extension', 'share/timezonesets', 'share/tsearch_data'); +@@ -117,11 +122,11 @@ sub Install + } + }, + @top_dir); +- CopySetOfFiles('config files', $sample_files, $target . '/share/'); ++ CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/'); + CopyFiles( + 'Import libraries', + $target . '/lib/', +- "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib", ++ "$conf\\", "libpgcommon\\libpgcommon.lib", + "libpgport\\libpgport.lib"); + CopyContribFiles($config, $target); + CopyIncludeFiles($target); +@@ -293,7 +298,16 @@ sub CopySolutionOutput + { + if ($1 == 1) + { +- push(@{ $install_list{'bin'} }, "exe"); ++ push(@{ $install_list{'tools\\libpq'} }, "exe"); ++ } ++ elsif ($1 == 2) ++ { ++ push(@{ $install_list{'bin'} }, "dll"); ++ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins ++ } ++ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet ++ { ++ push(@{ $install_list{'lib'} }, "lib"); + } + elsif ($1 == 2) + { +@@ -317,7 +331,16 @@ sub CopySolutionOutput + { + if ($1 eq 'Application') + { +- push(@{ $install_list{'bin'} }, "exe"); ++ push(@{ $install_list{'tools\\libpq'} }, "exe"); ++ } ++ elsif ($1 eq 'DynamicLibrary') ++ { ++ push(@{ $install_list{'bin'} }, "dll"); ++ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins ++ } ++ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet ++ { ++ push(@{ $install_list{'lib'} }, "lib"); + } + elsif ($1 eq 'DynamicLibrary') + { +@@ -350,7 +373,8 @@ sub CopySolutionOutput + || croak "Could not copy $pf.$ext\n"; + } + } +- lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb") ++ $1 ne 'DynamicLibrary' || ++ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb") + || croak "Could not copy $pf.pdb\n"; + print "."; + } +@@ -453,7 +477,7 @@ sub CopySubdirFiles + foreach my $f (split /\s+/, $flist) + { + lcopy("$subdir/$module/$f.control", +- "$target/share/extension/$f.control") ++ "$target/share/libpq/extension/$f.control") + || croak("Could not copy file $f.control in contrib $module"); + print '.'; + } +@@ -471,7 +495,7 @@ sub CopySubdirFiles + foreach my $f (split /\s+/, $flist) + { + lcopy("$subdir/$module/$f", +- "$target/share/$moduledir/" . basename($f)) ++ "$target/share/libpq/$moduledir/" . basename($f)) + || croak("Could not copy file $f in contrib $module"); + print '.'; + } +@@ -486,7 +510,7 @@ sub CopySubdirFiles + foreach my $f (split /\s+/, $flist) + { + lcopy("$subdir/$module/$f", +- "$target/share/tsearch_data/" . basename($f)) ++ "$target/share/libpq/tsearch_data/" . basename($f)) + || croak("Could not copy file $f in $subdir $module"); + print '.'; + } +@@ -549,7 +573,7 @@ sub CopySubdirFiles + if ($module eq 'spi'); + foreach my $f (split /\s+/, $flist) + { +- lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f") ++ lcopy("$subdir/$module/$f", "$target/share/libpq/doc/$moduledir/$f") + || croak("Could not copy file $f in contrib $module"); + print '.'; + } +@@ -675,7 +699,7 @@ sub GenerateNLSFiles + my $majorver = shift; + + print "Installing NLS files..."; +- EnsureDirectories($target, "share/locale"); ++ EnsureDirectories($target, "share/libpq/locale"); + my @flist; + File::Find::find( + { +@@ -697,12 +721,12 @@ sub GenerateNLSFiles + next unless /([^\/]+)\.po/; + $lang = $1; + +- EnsureDirectories($target, "share/locale/$lang", +- "share/locale/$lang/LC_MESSAGES"); ++ EnsureDirectories($target, "share/libpq/locale/$lang", ++ "share/libpq/locale/$lang/LC_MESSAGES"); + my @args = ( +- "$nlspath\\bin\\msgfmt", ++ "msgfmt", + '-o', +- "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", ++ "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", + $_); + system(@args) && croak("Could not run msgfmt on $dir\\$_"); + print "."; +diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm +index 62fec1f..ecb1b86 100644 +--- a/src/tools/msvc/MSBuildProject.pm ++++ b/src/tools/msvc/MSBuildProject.pm +@@ -80,14 +80,14 @@ EOF + print $f < + EOF +- ++ my $maybe_dll = $self->{solution}->{options}->{VCPKG_CRT_LINKAGE} eq 'dynamic' ? "DLL" : ''; + $self->WriteItemDefinitionGroup( + $f, 'Debug', + { + defs => "_DEBUG;DEBUG=1", + opt => 'Disabled', + strpool => 'false', +- runtime => 'MultiThreadedDebugDLL' ++ runtime => 'MultiThreadedDebug' . $maybe_dll + }); + $self->WriteItemDefinitionGroup( + $f, +@@ -96,7 +96,7 @@ EOF + defs => "", + opt => 'Full', + strpool => 'true', +- runtime => 'MultiThreadedDLL' ++ runtime => 'MultiThreaded' . $maybe_dll + }); + return; + } +@@ -266,6 +266,8 @@ sub WriteConfigurationPropertyGroup + ($self->{type} eq "exe") + ? 'Application' + : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary'); ++ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') ++ { $cfgtype =~ s/DynamicLibrary/StaticLibrary/; } + + print $f < +@@ -311,7 +313,9 @@ sub WriteItemDefinitionGroup + my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';'); + + my $targetmachine = +- $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64'; ++ 'Machine' . uc($self->{platform}); ++ $targetmachine =~ s/WIN32/X86/; ++ my $randomizebase = ($self->{platform} =~ /^ARM/) ? 'true' : 'false'; + my $arch = $self->{platform} eq 'Win32' ? 'x86' : 'x86_64'; + + my $includes = join ';', @{ $self->{includes} }, ""; +diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm +index 9e05eb9..8ac0a5d 100644 +--- a/src/tools/msvc/Mkvcbuild.pm ++++ b/src/tools/msvc/Mkvcbuild.pm +@@ -125,8 +125,10 @@ sub mkvcbuild + + if ($vsVersion >= '9.00') + { ++ if ($solution->{platform} !~ /^ARM/) { + push(@pgportfiles, 'pg_crc32c_sse42_choose.c'); + push(@pgportfiles, 'pg_crc32c_sse42.c'); ++ } + push(@pgportfiles, 'pg_crc32c_sb8.c'); + } + else +@@ -208,6 +210,7 @@ sub mkvcbuild + 'syncrep_gram.y'); + $postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l', + 'jsonpath_gram.y'); ++ ($config->{VCPKG_LIBRARY_LINKAGE} eq 'dynamic') && + $postgres->AddDefine('BUILDING_DLL'); + $postgres->AddLibrary('secur32.lib'); + $postgres->AddLibrary('ws2_32.lib'); +@@ -252,12 +255,13 @@ sub mkvcbuild + $pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include'); + $pltcl->AddReference($postgres); + +- for my $tclver (qw(86t 86 85 84)) ++ my $v = $solution->{options}->{tcl_version}; ++ for my $tclver ( ("${v}","${v}s","${v}sx") ) + { + my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib"; + if (-e $tcllib) + { +- $pltcl->AddLibrary($tcllib); ++ $pltcl->AddLibrary("\$(VcpkgTcl${tclver}Libs)"); + $found = 1; + last; + } +@@ -512,8 +516,7 @@ sub mkvcbuild + . "print(str(sys.version_info[0])+str(sys.version_info[1]))"; + my $prefixcmd = + qq("$solution->{options}->{python}\\python" -c "$pythonprog"); +- my $pyout = `$prefixcmd`; +- die "Could not query for python version!\n" if $?; ++ my $pyout = "$solution->{options}->{python}\n$solution->{options}->{python_version}"; + my ($pyprefix, $pyver) = split(/\r?\n/, $pyout); + + # Sometimes (always?) if python is not present, the execution +@@ -529,8 +532,8 @@ sub mkvcbuild + + my $plpython = $solution->AddProject('plpython' . $pymajorver, + 'dll', 'PLs', 'src/pl/plpython'); +- $plpython->AddIncludeDir($pyprefix . '/include'); +- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib"); ++ $plpython->AddIncludeDir($pyprefix . "/include/python$pyver"); ++ $plpython->AddLibrary('$(VcpkgPythonLibs)'); + $plpython->AddReference($postgres); + + # Add transform modules dependent on plpython +diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm +index 0507ad0..48caab9 100644 +--- a/src/tools/msvc/Project.pm ++++ b/src/tools/msvc/Project.pm +@@ -167,6 +167,11 @@ sub AddReference + } + $self->AddLibrary( + "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib"); ++ ++ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') ++ { ++ map { $self->AddLibrary($_) } @{ $ref->{libraries} }; ++ } + } + return; + } +diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm +index b6d31c3..27d89fc 100644 +--- a/src/tools/msvc/Solution.pm ++++ b/src/tools/msvc/Solution.pm +@@ -63,6 +63,11 @@ sub DeterminePlatform + my $self = shift; + + if ($^O eq "MSWin32") ++ { ++ $self->{platform} = uc($self->{options}->{VCPKG_TARGET_ARCHITECTURE}); ++ $self->{platform} =~ s/^X86$/Win32/; ++ } ++ elsif (0) + { + # Examine CL help output to determine if we are in 32 or 64-bit mode. + my $output = `cl /help 2>&1`; +@@ -124,6 +129,9 @@ sub copyFile + sub GetOpenSSLVersion + { + my $self = shift; ++ if ($self->{options}->{openssl_version} =~ /(\d+)\.(\d+)\.(\d+)/m) { ++ return ($1, $2, $3); ++ } + + # Attempt to get OpenSSL version and location. This assumes that + # openssl.exe is in the specified directory. +@@ -148,7 +156,7 @@ sub GetOpenSSLVersion + sub GenerateFiles + { + my $self = shift; +- my $bits = $self->{platform} eq 'Win32' ? 32 : 64; ++ my $bits = $self->{platform} =~ /64/ ? 64 : 32; + my $ac_init_found = 0; + my $package_name; + my $package_version; +@@ -440,7 +448,7 @@ sub GenerateFiles + USE_PAM => undef, + USE_SLICING_BY_8_CRC32C => undef, + USE_SSE42_CRC32C => undef, +- USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1, ++ USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => $self->{platform} =~ /^ARM/ ? undef : 1, + USE_SYSTEMD => undef, + USE_SYSV_SEMAPHORES => undef, + USE_SYSV_SHARED_MEMORY => undef, +@@ -725,14 +733,14 @@ sub GenerateFiles + || confess "Could not open pg_config_paths.h"; + print $o <{options}->{zlib}) + { + $proj->AddIncludeDir($self->{options}->{zlib} . '\include'); +- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib'); ++ $proj->AddLibrary('$(VcpkgZlibLibs)'); + } + if ($self->{options}->{openssl}) + { + $proj->AddIncludeDir($self->{options}->{openssl} . '\include'); ++ $proj->AddLibrary('$(VcpkgOpensslLibs)'); ++ } ++ elsif (0) ++ { + my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); + + # Starting at version 1.1.0 the OpenSSL installers have +@@ -1032,7 +1044,7 @@ sub AddProject + if ($self->{options}->{nls}) + { + $proj->AddIncludeDir($self->{options}->{nls} . '\include'); +- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib'); ++ $proj->AddLibrary('$(VcpkgNlsLibs)'); + } + if ($self->{options}->{gss}) + { +@@ -1065,6 +1077,10 @@ sub AddProject + if ($self->{options}->{icu}) + { + $proj->AddIncludeDir($self->{options}->{icu} . '\include'); ++ $proj->AddLibrary('$(VcpkgIcuLibs)'); ++ } ++ elsif (0) ++ { + if ($self->{platform} eq 'Win32') + { + $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); +@@ -1082,22 +1098,22 @@ sub AddProject + { + $proj->AddIncludeDir($self->{options}->{xml} . '\include'); + $proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2'); +- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); ++ $proj->AddLibrary('$(VcpkgXmlLibs)'); + } + if ($self->{options}->{xslt}) + { + $proj->AddIncludeDir($self->{options}->{xslt} . '\include'); +- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); ++ $proj->AddLibrary('$(VcpkgXsltLibs)'); + } + if ($self->{options}->{lz4}) + { + $proj->AddIncludeDir($self->{options}->{lz4} . '\include'); +- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib'); ++ $proj->AddLibrary('$(VcpkgLz4Libs)'); + } + if ($self->{options}->{zstd}) + { + $proj->AddIncludeDir($self->{options}->{zstd} . '\include'); +- $proj->AddLibrary($self->{options}->{zstd} . '\lib\libzstd.lib'); ++ $proj->AddLibrary('$(VcpkgZstdLibs)'); + } + if ($self->{options}->{uuid}) + { diff --git a/vcpkg/ports/libpq/windows/spin_delay.patch b/vcpkg/ports/libpq/windows/spin_delay.patch new file mode 100644 index 000000000..163e8e6ef --- /dev/null +++ b/vcpkg/ports/libpq/windows/spin_delay.patch @@ -0,0 +1,24 @@ +diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h +index 4d3ffc7..658b1a1 100644 +--- a/src/include/storage/s_lock.h ++++ b/src/include/storage/s_lock.h +@@ -953,12 +953,18 @@ typedef LONG slock_t; + /* If using Visual C++ on Win64, inline assembly is unavailable. + * Use a _mm_pause intrinsic instead of rep nop. + */ +-#if defined(_WIN64) ++#if defined(_M_X64) && !defined(_M_ARM64EC) + static __forceinline void + spin_delay(void) + { + _mm_pause(); + } ++#elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) ++static __forceinline void ++spin_delay(void) ++{ ++ __yield(); ++} + #else + static __forceinline void + spin_delay(void) diff --git a/vcpkg/ports/libpq/windows/win_bison_flex.patch b/vcpkg/ports/libpq/windows/win_bison_flex.patch new file mode 100644 index 000000000..fc8230193 --- /dev/null +++ b/vcpkg/ports/libpq/windows/win_bison_flex.patch @@ -0,0 +1,42 @@ +diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl +index 25df669..373bedd 100644 +--- a/src/tools/msvc/pgbison.pl ++++ b/src/tools/msvc/pgbison.pl +@@ -13,7 +13,7 @@ use File::Basename; + + do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; + +-my ($bisonver) = `bison -V`; # grab first line ++my ($bisonver) = `win_bison -V`; # grab first line + $bisonver = (split(/\s+/, $bisonver))[3]; # grab version number + + unless ($bisonver ge '2.3') +@@ -51,5 +51,5 @@ my $headerflag = ($make =~ /^$basetarg:\s+BISONFLAGS\b.*-d/m ? '-d' : ''); + + my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : ""; + +-system("bison $nodep $headerflag $input -o $output"); ++system("win_bison $nodep $headerflag $input -o $output"); + exit $? >> 8; +diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl +index c308a08..0807ce7 100644 +--- a/src/tools/msvc/pgflex.pl ++++ b/src/tools/msvc/pgflex.pl +@@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning'; + + do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; + +-my ($flexver) = `flex -V`; # grab first line ++my ($flexver) = `win_flex -V`; # grab first line + $flexver = (split(/\s+/, $flexver))[1]; + $flexver =~ s/[^0-9.]//g; + my @verparts = split(/\./, $flexver); +@@ -52,7 +52,7 @@ close($mf); + my $basetarg = basename($output); + my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : ''); + +-system("flex $flexflags -o$output $input"); ++system("win_flex $flexflags -o$output $input"); + if ($? == 0) + { + diff --git a/vcpkg/ports/libtasn1/portfile.cmake b/vcpkg/ports/libtasn1/portfile.cmake new file mode 100644 index 000000000..ce464c769 --- /dev/null +++ b/vcpkg/ports/libtasn1/portfile.cmake @@ -0,0 +1,31 @@ +vcpkg_download_distfile(ARCHIVE + https://ftp.gnu.org/pub/gnu/libtasn1/libtasn1-${VERSION_libtasn1}.tar.gz + + URLS "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" + "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" + FILENAME "libtasn1-${VERSION}.tar.gz" + SHA512 287f5eddfb5e21762d9f14d11997e56b953b980b2b03a97ed4cd6d37909bda1ed7d2cdff9da5d270a21d863ab7e54be6b85c05f1075ac5d8f0198997cf335ef4 +) +vcpkg_extract_source_archive(SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" +) + +string(APPEND VCPKG_C_FLAGS " -Wno-implicit-function-declaration") +string(APPEND VCPKG_CXX_FLAGS " -Wno-implicit-function-declaration") + +vcpkg_list(SET OPTIONS) +vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + DETERMINE_BUILD_TRIPLET + USE_WRAPPERS + OPTIONS + --enable-extra-encodings + --disable-doc + --disable-valgrind-tests + --disable-gcc-warnings + --disable-silent-rules + ${OPTIONS} +) +vcpkg_install_make() + diff --git a/vcpkg/ports/libtasn1/vcpkg.json b/vcpkg/ports/libtasn1/vcpkg.json new file mode 100644 index 000000000..7950a5cc2 --- /dev/null +++ b/vcpkg/ports/libtasn1/vcpkg.json @@ -0,0 +1,8 @@ +{ + "name": "libtasn1", + "version": "4.19.0", + "port-version": 0, + "description": "GNU Abstract Syntax Notation One (ASN.1) and Distinguished Encoding Rules (DER) manipulation", + "homepage": "https://www.gnu.org/software/libtasn1/", + "license": null +} diff --git a/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch b/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch new file mode 100644 index 000000000..744fce107 --- /dev/null +++ b/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch @@ -0,0 +1,72 @@ +diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" +index 1f84c2c9e..f72ee9d8d 100644 +--- "a/CMakeLists.txt" ++++ "b/CMakeLists.txt" +@@ -58,6 +58,7 @@ set(QCA_SUFFIX "qt5") + if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) + set(STATIC_PLUGINS ON) + add_definitions(-DQT_STATICPLUGIN) ++ add_definitions(-DQCA_STATIC) + set(PLUGIN_TYPE "STATIC") + else() + set(PLUGIN_TYPE "MODULE") +@@ -266,10 +267,17 @@ if(DEVELOPER_MODE) + add_definitions(-DDEVELOPER_MODE) + + # To prefer plugins from build tree when run qca from build tree +- file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf +-"[Paths] +-Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} +-") ++ if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) ++ file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf ++ "[Paths] ++ Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} ++ ") ++ else() ++ file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf ++ "[Paths] ++ Plugins=${CMAKE_BINARY_DIR}/bin/${QCA_LIB_NAME} ++ ") ++ endif() + endif() + + if (APPLE) +@@ -309,7 +317,7 @@ else() + set( qca_CERTSTORE "${CMAKE_CURRENT_SOURCE_DIR}/certs/rootcerts.pem") + # note that INSTALL_FILES targets are relative to the current installation prefix... + if(NOT DEVELOPER_MODE) +- install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/certs") ++ install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/share/qca/certs") + endif() + endif() + message(STATUS "certstore path: " ${qca_CERTSTORE}) +@@ -390,10 +398,10 @@ endif() + include(CMakePackageConfigHelpers) + configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/QcaConfig.cmake.in" +- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" +- INSTALL_DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} ++ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" ++ INSTALL_DESTINATION ${CMAKE_BINARY_DIR}/share/qca/cmake + ) +-write_basic_config_version_file("${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) ++write_basic_config_version_file("${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) + + if(NOT DEVELOPER_MODE) + +@@ -461,10 +469,10 @@ if(NOT DEVELOPER_MODE) + endif() + endif() + +- install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) ++ install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) + install(FILES +- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" +- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" +- DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} ++ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" ++ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" ++ DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake + ) + endif() diff --git a/vcpkg/ports/qca-qt6/0002-fix-build-error.patch b/vcpkg/ports/qca-qt6/0002-fix-build-error.patch new file mode 100644 index 000000000..5515d21f7 --- /dev/null +++ b/vcpkg/ports/qca-qt6/0002-fix-build-error.patch @@ -0,0 +1,26 @@ +From 8d67288a3dde7e535ff747715f96f98282a3bf67 Mon Sep 17 00:00:00 2001 +From: Matthias Kuhn +Date: Fri, 3 Dec 2021 15:17:25 +0100 +Subject: [PATCH] Ifdef codecs + +--- + cmake/modules/QcaMacro.cmake | 9 --------- + plugins/qca-ossl/qca-ossl.cpp | 6 ++++++ + 2 files changed, 6 insertions(+), 9 deletions(-) + +diff --git a/cmake/modules/QcaMacro.cmake b/cmake/modules/QcaMacro.cmake +index 80af6e84..ba86310d 100644 +--- a/cmake/modules/QcaMacro.cmake ++++ b/cmake/modules/QcaMacro.cmake +@@ -65,10 +65,6 @@ macro(add_qca_test TARGET DESCRIPTION) + endmacro(add_qca_test) + + macro(install_pdb TARGET INSTALL_PATH) +- if(MSVC) +- install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS Debug) +- install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS RelWithDebInfo) +- endif() + endmacro(install_pdb) + + macro(normalize_path PATH) + diff --git a/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch b/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch new file mode 100644 index 000000000..d894000d6 --- /dev/null +++ b/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch @@ -0,0 +1,28 @@ +From f32f5ae8b8b49653bfff87f2f882862bcaa8c3f1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= + =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= +Date: Mon, 20 Mar 2023 16:21:18 +0100 +Subject: [PATCH] Define NOMINMAX to fix building qca-botan plugin with MSVC + +--- + plugins/qca-botan/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/plugins/qca-botan/CMakeLists.txt b/plugins/qca-botan/CMakeLists.txt +index 11c0d20..9b8b978 100644 +--- a/plugins/qca-botan/CMakeLists.txt ++++ b/plugins/qca-botan/CMakeLists.txt +@@ -11,6 +11,10 @@ if(BOTAN_FOUND) + set(QCA_BOTAN_SOURCES qca-botan.cpp) + add_library(qca-botan ${PLUGIN_TYPE} ${QCA_BOTAN_SOURCES}) + ++ if(MSVC) ++ target_compile_definitions(qca-botan PRIVATE NOMINMAX) ++ endif() ++ + if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE") + set_property(TARGET qca-botan PROPERTY SUFFIX ".dylib") + endif() +-- +2.40.0.windows.1 + diff --git a/vcpkg/ports/qca-qt6/connect_fix.patch b/vcpkg/ports/qca-qt6/connect_fix.patch new file mode 100644 index 000000000..0a2aa1377 --- /dev/null +++ b/vcpkg/ports/qca-qt6/connect_fix.patch @@ -0,0 +1,29 @@ +diff --git a/src/qca_safeobj.h b/src/qca_safeobj.h +index 5c47adad..20570b27 100644 +--- a/src/qca_safeobj.h ++++ b/src/qca_safeobj.h +@@ -57,7 +57,7 @@ public Q_SLOTS: + } + + Q_SIGNALS: +- void activated(); ++ void activated(QSocketDescriptor socket, QSocketNotifier::Type type); + + private: + QSocketNotifier *sn; +diff --git a/src/support/qpipe.cpp b/src/support/qpipe.cpp +index 122e96a8..2d9d8ab7 100644 +--- a/src/support/qpipe.cpp ++++ b/src/support/qpipe.cpp +@@ -1075,8 +1075,10 @@ public Q_SLOTS: + #endif + } + +- void sn_read_activated() ++ void sn_read_activated(QSocketDescriptor socket, QSocketNotifier::Type type) + { ++ Q_UNUSED(socket) ++ Q_UNUSED(type) + #ifdef Q_OS_UNIX + if (blockReadNotify) + return; diff --git a/vcpkg/ports/qca-qt6/ios.patch b/vcpkg/ports/qca-qt6/ios.patch new file mode 100644 index 000000000..06d53bd2c --- /dev/null +++ b/vcpkg/ports/qca-qt6/ios.patch @@ -0,0 +1,13 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 47773219..0e2b90ac 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -52,7 +52,7 @@ SET( SOURCES + + IF (WIN32) + SET( SOURCES ${SOURCES} qca_systemstore_win.cpp ) +-elseif(APPLE AND NOT IOS) ++elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set( SOURCES ${SOURCES} qca_systemstore_mac.cpp) + else() + SET( SOURCES ${SOURCES} qca_systemstore_flatfile.cpp ) diff --git a/vcpkg/ports/qca-qt6/mk-ca-bundle.pl b/vcpkg/ports/qca-qt6/mk-ca-bundle.pl new file mode 100644 index 000000000..9574f1dbf --- /dev/null +++ b/vcpkg/ports/qca-qt6/mk-ca-bundle.pl @@ -0,0 +1,554 @@ +#!/usr/bin/perl -w +# *************************************************************************** +# * _ _ ____ _ +# * Project ___| | | | _ \| | +# * / __| | | | |_) | | +# * | (__| |_| | _ <| |___ +# * \___|\___/|_| \_\_____| +# * +# * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. +# * +# * This software is licensed as described in the file COPYING, which +# * you should have received as part of this distribution. The terms +# * are also available at https://curl.haxx.se/docs/copyright.html. +# * +# * You may opt to use, copy, modify, merge, publish, distribute and/or sell +# * copies of the Software, and permit persons to whom the Software is +# * furnished to do so, under the terms of the COPYING file. +# * +# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# * KIND, either express or implied. +# * +# *************************************************************************** +# This Perl script creates a fresh ca-bundle.crt file for use with libcurl. +# It downloads certdata.txt from Mozilla's source tree (see URL below), +# then parses certdata.txt and extracts CA Root Certificates into PEM format. +# These are then processed with the OpenSSL commandline tool to produce the +# final ca-bundle.crt file. +# The script is based on the parse-certs script written by Roland Krikava. +# This Perl script works on almost any platform since its only external +# dependency is the OpenSSL commandline tool for optional text listing. +# Hacked by Guenter Knauf. +# +use Encode; +use Getopt::Std; +use MIME::Base64; +use strict; +use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w); +use List::Util; +use Text::Wrap; +my $MOD_SHA = "Digest::SHA"; +eval "require $MOD_SHA"; +if ($@) { + $MOD_SHA = "Digest::SHA::PurePerl"; + eval "require $MOD_SHA"; +} +eval "require LWP::UserAgent"; + +my %urls = ( + 'nss' => + 'https://hg.mozilla.org/projects/nss/raw-file/tip/lib/ckfw/builtins/certdata.txt', + 'central' => + 'https://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', + 'aurora' => + 'https://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', + 'beta' => + 'https://hg.mozilla.org/releases/mozilla-beta/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', + 'release' => + 'https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', +); + +$opt_d = 'release'; + +# If the OpenSSL commandline is not in search path you can configure it here! +my $openssl = 'openssl'; + +my $version = '1.27'; + +$opt_w = 76; # default base64 encoded lines length + +# default cert types to include in the output (default is to include CAs which may issue SSL server certs) +my $default_mozilla_trust_purposes = "SERVER_AUTH"; +my $default_mozilla_trust_levels = "TRUSTED_DELEGATOR"; +$opt_p = $default_mozilla_trust_purposes . ":" . $default_mozilla_trust_levels; + +my @valid_mozilla_trust_purposes = ( + "DIGITAL_SIGNATURE", + "NON_REPUDIATION", + "KEY_ENCIPHERMENT", + "DATA_ENCIPHERMENT", + "KEY_AGREEMENT", + "KEY_CERT_SIGN", + "CRL_SIGN", + "SERVER_AUTH", + "CLIENT_AUTH", + "CODE_SIGNING", + "EMAIL_PROTECTION", + "IPSEC_END_SYSTEM", + "IPSEC_TUNNEL", + "IPSEC_USER", + "TIME_STAMPING", + "STEP_UP_APPROVED" +); + +my @valid_mozilla_trust_levels = ( + "TRUSTED_DELEGATOR", # CAs + "NOT_TRUSTED", # Don't trust these certs. + "MUST_VERIFY_TRUST", # This explicitly tells us that it ISN'T a CA but is otherwise ok. In other words, this should tell the app to ignore any other sources that claim this is a CA. + "TRUSTED" # This cert is trusted, but only for itself and not for delegates (i.e. it is not a CA). +); + +my $default_signature_algorithms = $opt_s = "MD5"; + +my @valid_signature_algorithms = ( + "MD5", + "SHA1", + "SHA256", + "SHA384", + "SHA512" +); + +$0 =~ s@.*(/|\\)@@; +$Getopt::Std::STANDARD_HELP_VERSION = 1; +getopts('bd:fhiklmnp:qs:tuvw:'); + +if(!defined($opt_d)) { + # to make plain "-d" use not cause warnings, and actually still work + $opt_d = 'release'; +} + +# Use predefined URL or else custom URL specified on command line. +my $url; +if(defined($urls{$opt_d})) { + $url = $urls{$opt_d}; + if(!$opt_k && $url !~ /^https:\/\//i) { + die "The URL for '$opt_d' is not HTTPS. Use -k to override (insecure).\n"; + } +} +else { + $url = $opt_d; +} + +my $curl = `curl -V`; + +if ($opt_i) { + print ("=" x 78 . "\n"); + print "Script Version : $version\n"; + print "Perl Version : $]\n"; + print "Operating System Name : $^O\n"; + print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n"; + print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n"; + print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n" if($LWP::UserAgent::VERSION); + print "LWP.pm Version : ${LWP::VERSION}\n" if($LWP::VERSION); + print "Digest::SHA.pm Version : ${Digest::SHA::VERSION}\n" if ($Digest::SHA::VERSION); + print "Digest::SHA::PurePerl.pm Version : ${Digest::SHA::PurePerl::VERSION}\n" if ($Digest::SHA::PurePerl::VERSION); + print ("=" x 78 . "\n"); +} + +sub warning_message() { + if ( $opt_d =~ m/^risk$/i ) { # Long Form Warning and Exit + print "Warning: Use of this script may pose some risk:\n"; + print "\n"; + print " 1) If you use HTTP URLs they are subject to a man in the middle attack\n"; + print " 2) Default to 'release', but more recent updates may be found in other trees\n"; + print " 3) certdata.txt file format may change, lag time to update this script\n"; + print " 4) Generally unwise to blindly trust CAs without manual review & verification\n"; + print " 5) Mozilla apps use additional security checks aren't represented in certdata\n"; + print " 6) Use of this script will make a security engineer grind his teeth and\n"; + print " swear at you. ;)\n"; + exit; + } else { # Short Form Warning + print "Warning: Use of this script may pose some risk, -d risk for more details.\n"; + } +} + +sub HELP_MESSAGE() { + print "Usage:\t${0} [-b] [-d] [-f] [-i] [-k] [-l] [-n] [-p] [-q] [-s] [-t] [-u] [-v] [-w] []\n"; + print "\t-b\tbackup an existing version of ca-bundle.crt\n"; + print "\t-d\tspecify Mozilla tree to pull certdata.txt or custom URL\n"; + print "\t\t Valid names are:\n"; + print "\t\t ", join( ", ", map { ( $_ =~ m/$opt_d/ ) ? "$_ (default)" : "$_" } sort keys %urls ), "\n"; + print "\t-f\tforce rebuild even if certdata.txt is current\n"; + print "\t-i\tprint version info about used modules\n"; + print "\t-k\tallow URLs other than HTTPS, enable HTTP fallback (insecure)\n"; + print "\t-l\tprint license info about certdata.txt\n"; + print "\t-m\tinclude meta data in output\n"; + print "\t-n\tno download of certdata.txt (to use existing)\n"; + print wrap("\t","\t\t", "-p\tlist of Mozilla trust purposes and levels for certificates to include in output. Takes the form of a comma separated list of purposes, a colon, and a comma separated list of levels. (default: $default_mozilla_trust_purposes:$default_mozilla_trust_levels)"), "\n"; + print "\t\t Valid purposes are:\n"; + print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_purposes ) ), "\n"; + print "\t\t Valid levels are:\n"; + print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_levels ) ), "\n"; + print "\t-q\tbe really quiet (no progress output at all)\n"; + print wrap("\t","\t\t", "-s\tcomma separated list of certificate signatures/hashes to output in plain text mode. (default: $default_signature_algorithms)\n"); + print "\t\t Valid signature algorithms are:\n"; + print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_signature_algorithms ) ), "\n"; + print "\t-t\tinclude plain text listing of certificates\n"; + print "\t-u\tunlink (remove) certdata.txt after processing\n"; + print "\t-v\tbe verbose and print out processed CAs\n"; + print "\t-w \twrap base64 output lines after chars (default: ${opt_w})\n"; + exit; +} + +sub VERSION_MESSAGE() { + print "${0} version ${version} running Perl ${]} on ${^O}\n"; +} + +warning_message() unless ($opt_q || $url =~ m/^(ht|f)tps:/i ); +HELP_MESSAGE() if ($opt_h); + +sub report($@) { + my $output = shift; + + print STDERR $output . "\n" unless $opt_q; +} + +sub is_in_list($@) { + my $target = shift; + + return defined(List::Util::first { $target eq $_ } @_); +} + +# Parses $param_string as a case insensitive comma separated list with optional whitespace +# validates that only allowed parameters are supplied +sub parse_csv_param($$@) { + my $description = shift; + my $param_string = shift; + my @valid_values = @_; + + my @values = map { + s/^\s+//; # strip leading spaces + s/\s+$//; # strip trailing spaces + uc $_ # return the modified string as upper case + } split( ',', $param_string ); + + # Find all values which are not in the list of valid values or "ALL" + my @invalid = grep { !is_in_list($_,"ALL",@valid_values) } @values; + + if ( scalar(@invalid) > 0 ) { + # Tell the user which parameters were invalid and print the standard help message which will exit + print "Error: Invalid ", $description, scalar(@invalid) == 1 ? ": " : "s: ", join( ", ", map { "\"$_\"" } @invalid ), "\n"; + HELP_MESSAGE(); + } + + @values = @valid_values if ( is_in_list("ALL",@values) ); + + return @values; +} + +sub sha256 { + my $result; + if ($Digest::SHA::VERSION || $Digest::SHA::PurePerl::VERSION) { + open(FILE, $_[0]) or die "Can't open '$_[0]': $!"; + binmode(FILE); + $result = $MOD_SHA->new(256)->addfile(*FILE)->hexdigest; + close(FILE); + } else { + # Use OpenSSL command if Perl Digest::SHA modules not available + $result = `"$openssl" dgst -r -sha256 "$_[0]"`; + $result =~ s/^([0-9a-f]{64}) .+/$1/is; + } + return $result; +} + + +sub oldhash { + my $hash = ""; + open(C, "<$_[0]") || return 0; + while() { + chomp; + if($_ =~ /^\#\# SHA256: (.*)/) { + $hash = $1; + last; + } + } + close(C); + return $hash; +} + +if ( $opt_p !~ m/:/ ) { + print "Error: Mozilla trust identifier list must include both purposes and levels\n"; + HELP_MESSAGE(); +} + +(my $included_mozilla_trust_purposes_string, my $included_mozilla_trust_levels_string) = split( ':', $opt_p ); +my @included_mozilla_trust_purposes = parse_csv_param( "trust purpose", $included_mozilla_trust_purposes_string, @valid_mozilla_trust_purposes ); +my @included_mozilla_trust_levels = parse_csv_param( "trust level", $included_mozilla_trust_levels_string, @valid_mozilla_trust_levels ); + +my @included_signature_algorithms = parse_csv_param( "signature algorithm", $opt_s, @valid_signature_algorithms ); + +sub should_output_cert(%) { + my %trust_purposes_by_level = @_; + + foreach my $level (@included_mozilla_trust_levels) { + # for each level we want to output, see if any of our desired purposes are included + return 1 if ( defined( List::Util::first { is_in_list( $_, @included_mozilla_trust_purposes ) } @{$trust_purposes_by_level{$level}} ) ); + } + + return 0; +} + +my $crt = $ARGV[0] || 'ca-bundle.crt'; +(my $txt = $url) =~ s@(.*/|\?.*)@@g; + +my $stdout = $crt eq '-'; +my $resp; +my $fetched; + +my $oldhash = oldhash($crt); + +report "SHA256 of old file: $oldhash"; + +if(!$opt_n) { + report "Downloading $txt ..."; + + # If we have an HTTPS URL then use curl + if($url =~ /^https:\/\//i) { + if($curl) { + if($curl =~ /^Protocols:.* https( |$)/m) { + report "Get certdata with curl!"; + my $proto = !$opt_k ? "--proto =https" : ""; + my $quiet = $opt_q ? "-s" : ""; + my @out = `curl -w %{response_code} $proto $quiet -o "$txt" "$url"`; + if(@out && $out[0] == 200) { + $fetched = 1; + report "Downloaded $txt"; + } + else { + report "Failed downloading via HTTPS with curl"; + if(-e $txt && !unlink($txt)) { + report "Failed to remove '$txt': $!"; + } + } + } + else { + report "curl lacks https support"; + } + } + else { + report "curl not found"; + } + } + + # If nothing was fetched then use LWP + if(!$fetched) { + if($url =~ /^https:\/\//i) { + report "Falling back to HTTP"; + $url =~ s/^https:\/\//http:\/\//i; + } + if(!$opt_k) { + report "URLs other than HTTPS are disabled by default, to enable use -k"; + exit 1; + } + report "Get certdata with LWP!"; + if(!defined(${LWP::UserAgent::VERSION})) { + report "LWP is not available (LWP::UserAgent not found)"; + exit 1; + } + my $ua = new LWP::UserAgent(agent => "$0/$version"); + $ua->env_proxy(); + $resp = $ua->mirror($url, $txt); + if($resp && $resp->code eq '304') { + report "Not modified"; + exit 0 if -e $crt && !$opt_f; + } + else { + $fetched = 1; + report "Downloaded $txt"; + } + if(!$resp || $resp->code !~ /^(?:200|304)$/) { + report "Unable to download latest data: " + . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed"); + exit 1 if -e $crt || ! -r $txt; + } + } +} + +my $filedate = $resp ? $resp->last_modified : (stat($txt))[9]; +my $datesrc = "as of"; +if(!$filedate) { + # mxr.mozilla.org gave us a time, hg.mozilla.org does not! + $filedate = time(); + $datesrc="downloaded on"; +} + +# get the hash from the download file +my $newhash= sha256($txt); + +if(!$opt_f && $oldhash eq $newhash) { + report "Downloaded file identical to previous run\'s source file. Exiting"; + exit; +} + +report "SHA256 of new file: $newhash"; + +my $currentdate = scalar gmtime($filedate); + +my $format = $opt_t ? "plain text and " : ""; +if( $stdout ) { + open(CRT, '> -') or die "Couldn't open STDOUT: $!\n"; +} else { + open(CRT,">$crt.~") or die "Couldn't open $crt.~: $!\n"; +} +print CRT <) { + if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { + print CRT; + print if ($opt_l); + while () { + print CRT; + print if ($opt_l); + last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); + } + } + elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) { + push @precert, $_; + next; + } + elsif(/^#|^\s*$/) { + undef @precert; + next; + } + chomp; + + # this is a match for the start of a certificate + if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { + $start_of_cert = 1 + } + if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { + $caname = $1; + } + my %trust_purposes_by_level; + if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { + my $data; + while () { + last if (/^END/); + chomp; + my @octets = split(/\\/); + shift @octets; + for (@octets) { + $data .= chr(oct); + } + } + # scan forwards until the trust part + while () { + last if (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/); + chomp; + } + # now scan the trust part to determine how we should trust this cert + while () { + last if (/^#/); + if (/^CKA_TRUST_([A-Z_]+)\s+CK_TRUST\s+CKT_NSS_([A-Z_]+)\s*$/) { + if ( !is_in_list($1,@valid_mozilla_trust_purposes) ) { + report "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2"; + } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) { + report "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2"; + } else { + push @{$trust_purposes_by_level{$2}}, $1; + } + } + } + + if ( !should_output_cert(%trust_purposes_by_level) ) { + $skipnum ++; + } else { + my $encoded = MIME::Base64::encode_base64($data, ''); + $encoded =~ s/(.{1,${opt_w}})/$1\n/g; + my $pem = "-----BEGIN CERTIFICATE-----\n" + . $encoded + . "-----END CERTIFICATE-----\n"; + print CRT "\n$caname\n"; + print CRT @precert if($opt_m); + my $maxStringLength = length(decode('UTF-8', $caname, Encode::FB_CROAK)); + if ($opt_t) { + foreach my $key (keys %trust_purposes_by_level) { + my $string = $key . ": " . join(", ", @{$trust_purposes_by_level{$key}}); + $maxStringLength = List::Util::max( length($string), $maxStringLength ); + print CRT $string . "\n"; + } + } + print CRT ("=" x $maxStringLength . "\n"); + if (!$opt_t) { + print CRT $pem; + } else { + my $pipe = ""; + foreach my $hash (@included_signature_algorithms) { + $pipe = "|$openssl x509 -" . $hash . " -fingerprint -noout -inform PEM"; + if (!$stdout) { + $pipe .= " >> $crt.~"; + close(CRT) or die "Couldn't close $crt.~: $!"; + } + open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + if (!$stdout) { + open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; + } + } + $pipe = "|$openssl x509 -text -inform PEM"; + if (!$stdout) { + $pipe .= " >> $crt.~"; + close(CRT) or die "Couldn't close $crt.~: $!"; + } + open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + if (!$stdout) { + open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; + } + } + report "Parsing: $caname" if ($opt_v); + $certnum ++; + $start_of_cert = 0; + } + undef @precert; + } + +} +close(TXT) or die "Couldn't close $txt: $!\n"; +close(CRT) or die "Couldn't close $crt.~: $!\n"; +unless( $stdout ) { + if ($opt_b && -e $crt) { + my $bk = 1; + while (-e "$crt.~${bk}~") { + $bk++; + } + rename $crt, "$crt.~${bk}~" or die "Failed to create backup $crt.~$bk}~: $!\n"; + } elsif( -e $crt ) { + unlink( $crt ) or die "Failed to remove $crt: $!\n"; + } + rename "$crt.~", $crt or die "Failed to rename $crt.~ to $crt: $!\n"; +} +if($opt_u && -e $txt && !unlink($txt)) { + report "Failed to remove $txt: $!\n"; +} +report "Done ($certnum CA certs processed, $skipnum skipped)."; diff --git a/vcpkg/ports/qca-qt6/portfile.cmake b/vcpkg/ports/qca-qt6/portfile.cmake new file mode 100644 index 000000000..74ab67e3a --- /dev/null +++ b/vcpkg/ports/qca-qt6/portfile.cmake @@ -0,0 +1,95 @@ +# This portfile adds the Qt Cryptographic Arcitecture +# Changes to the original build: +# No -qt5 suffix, which is recommended just for Linux +# Output directories according to vcpkg +# Updated certstore. See certstore.pem in the output dirs +# +vcpkg_find_acquire_program(PERL) +get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +vcpkg_add_to_path("${PERL_EXE_PATH}") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/qca + REF "v${VERSION}" + SHA512 956d36058db61498c492fc9b5345b45ca75a5e8214fcbf358273dfacdd5980c1394394652536d9332df05f29fc912d0781338bcca403d98de1285bb8b1216402 + PATCHES + 0001-fix-path-for-vcpkg.patch + 0002-fix-build-error.patch + 0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch + ios.patch + connect_fix.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/Qca) + set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/bin/Qca) +else() + set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/Qca) + set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/lib/Qca) +endif() + +# According to: +# https://www.openssl.org/docs/faq.html#USER16 +# it is up to developers or admins to maintain CAs. +# So we do it here: +message(STATUS "Importing certstore") +file(REMOVE "${SOURCE_PATH}/certs/rootcerts.pem") +# Using file(DOWNLOAD) to use https +file(DOWNLOAD https://raw.githubusercontent.com/mozilla/gecko-dev/master/security/nss/lib/ckfw/builtins/certdata.txt + "${CURRENT_BUILDTREES_DIR}/cert/certdata.txt" + TLS_VERIFY ON +) +vcpkg_execute_required_process( + COMMAND "${PERL}" "${CMAKE_CURRENT_LIST_DIR}/mk-ca-bundle.pl" -n "${SOURCE_PATH}/certs/rootcerts.pem" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/cert" + LOGNAME ca-bundle +) +message(STATUS "Importing certstore done") + +if(VCPKG_CROSSCOMPILING) + list(APPEND QCA_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND QCA_OPTIONS -DQT_ADDITIONAL_PACKAGES_PREFIX_PATH=${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND QCA_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) +endif() + +list(APPEND QCA_OPTIONS -DWITH_gnupg_PLUGIN=no) +# Configure and build +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_WITH_QT6=ON + -DUSE_RELATIVE_PATHS=ON + -DBUILD_TESTS=OFF + -DBUILD_TOOLS=OFF + -DQCA_SUFFIX=OFF + -DQCA_FEATURE_INSTALL_DIR=share/qca/mkspecs/features + -DOSX_FRAMEWORK=OFF + -DQT6=ON + ${QCA_OPTIONS} + OPTIONS_DEBUG + -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_DEBUG} + OPTIONS_RELEASE + -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_RELEASE} +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH share/qca/cmake) +file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" QCA_CONFIG_FILE) +string(REGEX REPLACE "PACKAGE_PREFIX_DIR \"(.*)\" ABSOLUTE" + [[PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE]] + QCA_CONFIG_FILE "${QCA_CONFIG_FILE}" +) +file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" "${QCA_CONFIG_FILE}") + +# Remove unneeded dirs +file(REMOVE_RECURSE + "${CURRENT_BUILDTREES_DIR}/share/man" + "${CURRENT_PACKAGES_DIR}/share/man" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +# Handle copyright +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/qca-qt6/vcpkg.json b/vcpkg/ports/qca-qt6/vcpkg.json new file mode 100644 index 000000000..ecb7027ee --- /dev/null +++ b/vcpkg/ports/qca-qt6/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "qca-qt6", + "version": "2.3.9", + "description": "Qt Cryptographic Architecture (QCA).", + "homepage": "https://cgit.kde.org/qca.git/", + "dependencies": [ + "qt6", + "openssl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qgis-qt6/applocal.ps1 b/vcpkg/ports/qgis-qt6/applocal.ps1 new file mode 100644 index 000000000..10119875d --- /dev/null +++ b/vcpkg/ports/qgis-qt6/applocal.ps1 @@ -0,0 +1,125 @@ +[cmdletbinding()] +param([string]$targetBinary, [string]$installedDir, [string]$tlogFile, [string]$copiedFilesLog, [string]$outputDir) + +$g_searched = @{} +# Note: installedDir is actually the bin\ directory. +$g_install_root = Split-Path $installedDir -parent +$g_is_debug = $g_install_root -match '(.*\\)?debug(\\)?$' + +# Ensure we create the copied files log, even if we don't end up copying any files +if ($copiedFilesLog) +{ + Set-Content -Path $copiedFilesLog -Value "" -Encoding UTF8 +} + +# Note: this function signature is depended upon by the qtdeploy.ps1 script introduced in 5.7.1-7 +function deployBinary([string]$targetBinaryDir, [string]$SourceDir, [string]$targetBinaryName) { + if (Test-Path "$targetBinaryDir\$targetBinaryName") { + $sourceModTime = (Get-Item $SourceDir\$targetBinaryName).LastWriteTime + $destModTime = (Get-Item $targetBinaryDir\$targetBinaryName).LastWriteTime + if ($destModTime -lt $sourceModTime) { + Write-Verbose " ${targetBinaryName}: Updating $SourceDir\$targetBinaryName" + Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir + } else { + Write-Verbose " ${targetBinaryName}: already present" + } + } + else { + Write-Verbose " ${targetBinaryName}: Copying $SourceDir\$targetBinaryName" + Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir + } + if ($copiedFilesLog) { Add-Content $copiedFilesLog "$targetBinaryDir\$targetBinaryName" -Encoding UTF8 } + if ($tlogFile) { Add-Content $tlogFile "$targetBinaryDir\$targetBinaryName" -Encoding Unicode } +} + + +Write-Verbose "Resolving base path $targetBinary..." +try +{ + $baseBinaryPath = Resolve-Path $targetBinary -erroraction stop + $baseTargetBinaryDir = Split-Path $baseBinaryPath -parent + if (![string]::IsNullOrEmpty($outputDir)) { + if (Test-Path "$outputDir\$_"){ + $baseTargetBinaryDir = $outputDir + } else { + Write-Error " ${outputDir} not found" + return + } + } +} +catch [System.Management.Automation.ItemNotFoundException] +{ + return +} + +# Note: this function signature is depended upon by the qtdeploy.ps1 script +function resolve([string]$targetBinary) { + Write-Verbose "Resolving $targetBinary..." + try + { + $targetBinaryPath = Resolve-Path $targetBinary -erroraction stop + } + catch [System.Management.Automation.ItemNotFoundException] + { + return + } + $targetBinaryDir = Split-Path $targetBinaryPath -parent + + $a = $(dumpbin /DEPENDENTS $targetBinary | ? { $_ -match "^ [^ ].*\.dll" } | % { $_ -replace "^ ","" }) + $a | % { + if ([string]::IsNullOrEmpty($_)) { + return + } + if ($g_searched.ContainsKey($_)) { + Write-Verbose " ${_}: previously searched - Skip" + return + } + $g_searched.Set_Item($_, $true) + if (Test-Path "$installedDir\$_") { + deployBinary $baseTargetBinaryDir $installedDir "$_" + if (Test-Path function:\deployPluginsIfQt) { deployPluginsIfQt $baseTargetBinaryDir "$g_install_root\plugins" "$_" } + if (Test-Path function:\deployOpenNI2) { deployOpenNI2 $targetBinaryDir "$g_install_root" "$_" } + if (Test-Path function:\deployPluginsIfMagnum) { + if ($g_is_debug) { + deployPluginsIfMagnum $targetBinaryDir "$g_install_root\bin\magnum-d" "$_" + } else { + deployPluginsIfMagnum $targetBinaryDir "$g_install_root\bin\magnum" "$_" + } + } + if (Test-Path function:\deployAzureKinectSensorSDK) { deployAzureKinectSensorSDK $targetBinaryDir "$g_install_root" "$_" } + resolve "$baseTargetBinaryDir\$_" + } elseif (Test-Path "$targetBinaryDir\$_") { + Write-Verbose " ${_}: $_ not found in vcpkg; locally deployed" + resolve "$targetBinaryDir\$_" + } else { + Write-Verbose " ${_}: $installedDir\$_ not found" + } + } + Write-Verbose "Done Resolving $targetBinary." +} + +# Note: This is a hack to make Qt5 work. +# Introduced with Qt package version 5.7.1-7 +if (Test-Path "$g_install_root\plugins\qtdeploy.ps1") { + . "$g_install_root\plugins\qtdeploy.ps1" +} + +# Note: This is a hack to make OpenNI2 work. +if (Test-Path "$g_install_root\bin\OpenNI2\openni2deploy.ps1") { + . "$g_install_root\bin\OpenNI2\openni2deploy.ps1" +} + +# Note: This is a hack to make Magnum work. +if (Test-Path "$g_install_root\bin\magnum\magnumdeploy.ps1") { + . "$g_install_root\bin\magnum\magnumdeploy.ps1" +} elseif (Test-Path "$g_install_root\bin\magnum-d\magnumdeploy.ps1") { + . "$g_install_root\bin\magnum-d\magnumdeploy.ps1" +} + +# Note: This is a hack to make Azure Kinect Sensor SDK work. +if (Test-Path "$g_install_root\tools\azure-kinect-sensor-sdk\k4adeploy.ps1") { + . "$g_install_root\tools\azure-kinect-sensor-sdk\k4adeploy.ps1" +} + +resolve($targetBinary) +Write-Verbose $($g_searched | out-string) diff --git a/vcpkg/ports/qgis-qt6/cmakelists.patch b/vcpkg/ports/qgis-qt6/cmakelists.patch new file mode 100644 index 000000000..d2b22c7d2 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/cmakelists.patch @@ -0,0 +1,39 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -387,6 +387,7 @@ if(WITH_CORE) + message(STATUS "Found Geos: ${GEOS_VERSION} ${GEOS_DIR}") + find_package(GDAL REQUIRED) + message(STATUS "Found GDAL: ${GDAL_VERSION} ${GDAL_DIR}") ++ set(GDAL_LIBRARY ${GDAL_LIBRARIES}) + find_package(EXPAT REQUIRED) + find_package(Spatialindex REQUIRED) + find_package(LibZip REQUIRED) +@@ -409,7 +410,8 @@ if(WITH_CORE) + find_package(ZLIB REQUIRED) # for decompression of vector tiles in MBTiles file + message(STATUS "Found zlib: ${ZLIB_LIBRARIES}") + +- find_package(EXIV2 REQUIRED) ++ find_package(exiv2 REQUIRED) ++ set(EXIV2_LIBRARY exiv2lib) + + # optional + if (WITH_POSTGRESQL) +@@ -604,6 +606,10 @@ if(WITH_CORE) + else() + find_package(Qt5Keychain CONFIG REQUIRED) + endif() ++ set(QTKEYCHAIN_INCLUDE_DIR ${QTKEYCHAIN_INCLUDE_DIRS}/qt6keychain) ++ set(QTKEYCHAIN_LIBRARY ${QTKEYCHAIN_LIBRARIES}) ++ set(QTKEYCHAIN_FOUND ${Qt6Keychain_FOUND}) ++ + # Master password hash and authentication encryption + find_package(QCA REQUIRED) + # Check for runtime dependency of qca-ossl plugin +@@ -818,6 +824,7 @@ endif() + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + # disable macros that offend std::numeric_limits::min()/max() + add_definitions(-DNOMINMAX) ++ add_definitions(/bigobj) + endif() + + # Prevent build when Qt api deprecated before this Qt version is used: diff --git a/vcpkg/ports/qgis-qt6/crssync.patch b/vcpkg/ports/qgis-qt6/crssync.patch new file mode 100644 index 000000000..f3f28c349 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/crssync.patch @@ -0,0 +1,13 @@ +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -16,7 +16,9 @@ add_subdirectory(crssync) + + add_subdirectory(providers) + +-add_subdirectory(crssync) ++if (NOT FORCE_STATIC_LIBS) ++ add_subdirectory(crssync) ++endif() + + if (WITH_CRASH_HANDLER) + add_subdirectory(crashhandler) diff --git a/vcpkg/ports/qgis-qt6/libxml2.patch b/vcpkg/ports/qgis-qt6/libxml2.patch new file mode 100644 index 000000000..2d4bfd105 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/libxml2.patch @@ -0,0 +1,11 @@ +--- a/src/providers/mdal/CMakeLists.txt ++++ b/src/providers/mdal/CMakeLists.txt +@@ -16,7 +16,7 @@ find_package(LibXml2) + endif() + find_package(HDF5) + find_package(NetCDF) +-find_package(LibXml2) ++find_package(libxml2 CONFIG) + + ######################################################## + # Compile internal MDAL diff --git a/vcpkg/ports/qgis-qt6/portfile.cmake b/vcpkg/ports/qgis-qt6/portfile.cmake new file mode 100644 index 000000000..31ada00de --- /dev/null +++ b/vcpkg/ports/qgis-qt6/portfile.cmake @@ -0,0 +1,301 @@ +set(QGIS_REF 55d788f1f80183bd52fd8045c1fbed5e6260f194) # final-3_40_4 +set(QGIS_SHA512 6eb3e2259fda72f7e2e8203d951b891963d52d47128793af02dfa989a467ba5524ab7a1019b4cf4acfd9e70c21635bd7b8577dc452d5cf7b98fcf7ce03d97b9f) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO qgis/QGIS + REF ${QGIS_REF} + SHA512 ${QGIS_SHA512} + PATCHES + cmakelists.patch + crssync.patch + libxml2.patch +) + +file(REMOVE ${SOURCE_PATH}/cmake/FindQtKeychain.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindGDAL.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindGEOS.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindEXIV2.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindExpat.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindIconv.cmake) + +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) +vcpkg_add_to_path(${PYTHON3_PATH}) +vcpkg_add_to_path(${PYTHON3_PATH}/Scripts) +set(PYTHON_EXECUTABLE ${PYTHON3}) + +list(APPEND QGIS_OPTIONS -DFORCE_STATIC_LIBS:BOOL=ON) +list(APPEND QGIS_OPTIONS -DWITH_SPATIALITE:BOOL=ON) +list(APPEND QGIS_OPTIONS -DBUILD_WITH_QT6:BOOL=ON) + +list(APPEND QGIS_OPTIONS -DENABLE_TESTS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QTWEBKIT:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GRASS7:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QSPATIALITE:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DUSE_OPENCL:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_BINDINGS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GUI:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_DESKTOP:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_CUSTOM_WIDGETS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_SERVER_PLUGINS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_SERVER:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QGIS_PROCESS:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_PDAL:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_EPT:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_3D:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_DRACO:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_COPC=OFF) +list(APPEND QGIS_OPTIONS -DWITH_ANALYSIS=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GRASS=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GEOREFERENCER:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QTMOBILITY:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DENABLE_TESTS=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QWTPOLAR=OFF) +list(APPEND QGIS_OPTIONS -DWITH_GUI=OFF) +list(APPEND QGIS_OPTIONS -DWITH_APIDOC=OFF) +list(APPEND QGIS_OPTIONS -DWITH_ASTYLE=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QT5SERIALPORT=OFF) +list(APPEND QGIS_OPTIONS -DWITH_QUICK:BOOL=OFF) +list(APPEND QGIS_OPTIONS -DQGIS_MACAPP_FRAMEWORK=FALSE) +list(APPEND QGIS_OPTIONS -DWITH_QTSERIALPORT=FALSE) + +# Configure debug and release library paths +macro(FIND_LIB_OPTIONS basename relname debname suffix libsuffix) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}${relname}${libsuffix}" ${basename}_LIBRARY_RELEASE) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}${debname}${libsuffix}" ${basename}_LIBRARY_DEBUG) + if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE ) + list(APPEND QGIS_OPTIONS_RELEASE -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_RELEASE}) + list(APPEND QGIS_OPTIONS_DEBUG -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_DEBUG}) + elseif( ${basename}_LIBRARY_RELEASE ) + list(APPEND QGIS_OPTIONS -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_RELEASE}) + elseif( ${basename}_LIBRARY_DEBUG ) + list(APPEND QGIS_OPTIONS -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_DEBUG}) + endif() +endmacro() + +# QGIS likes to install auth and providers to different locations on each platform +# let's keep things clean and tidy and put them at a predictable location +list(APPEND QGIS_OPTIONS -DQGIS_PLUGIN_SUBDIR=lib) + +# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else +# let's keep things clean and tidy and put them at a predictable location +list(APPEND QGIS_OPTIONS -DQGIS_INCLUDE_SUBDIR=include/qgis) + + +if(VCPKG_TARGET_IS_WINDOWS) + ############################################################################## + #Install pip + # if(NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe") + # MESSAGE(STATUS "Install pip for Python Begin ...") + # vcpkg_download_distfile( + # GET_PIP_PATH + # URLS https://bootstrap.pypa.io/pip/3.5/get-pip.py + # FILENAME get-pip.py + # SHA512 a408dd74e69a2c3259e06669562bebfff676156a1a3b2f8ba6594ed308e3f94afdf79257688e59b02bf02bd7f6ecbea510fc6665b403149031f14bcc08308a47 + # ) + + # vcpkg_execute_required_process( + # COMMAND "${PYTHON_EXECUTABLE}" "${GET_PIP_PATH}" + # WORKING_DIRECTORY ${PYTHON3_PATH} + # LOGNAME pip + # ) + + # vcpkg_execute_required_process( + # COMMAND "${PYTHON_EXECUTABLE}" -m pip install --upgrade pip + # WORKING_DIRECTORY ${PYTHON3_PATH} + # LOGNAME pip + # ) + # MESSAGE(STATUS "Install pip for Python End") + # endif (NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe") + ############################################################################## + + list(APPEND QGIS_OPTIONS -DBISON_EXECUTABLE="${BISON}") + list(APPEND QGIS_OPTIONS -DFLEX_EXECUTABLE="${FLEX}") + + # list(APPEND QGIS_OPTIONS -DPYUIC_PROGRAM=${PYTHON3_PATH}/Scripts/pyuic5.exe) + # list(APPEND QGIS_OPTIONS -DPYRCC_PROGRAM=${PYTHON3_PATH}/Scripts/pyrcc5.exe) + # list(APPEND QGIS_OPTIONS -DQT_LRELEASE_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/qt5-tools/bin/lrelease.exe) + + # qgis_gui depends on Qt5UiTools, and Qt5UiTools is a static library. + # If Qt5_EXCLUDE_STATIC_DEPENDENCIES is not set, it will add the QT release library that it depends on. + # so that in debug mode, it will reference both the qt debug library and the release library. + # In Debug mode, add Qt5_EXCLUDE_STATIC_DEPENDENCIES to avoid this bug + list(APPEND QGIS_OPTIONS_DEBUG -DQt5_EXCLUDE_STATIC_DEPENDENCIES:BOOL=ON) + + FIND_LIB_OPTIONS(GDAL gdal gdald LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(GEOS geos_c geos_cd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(GSL gsl gsld LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(GSLCBLAS gslcblas gslcblasd LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(POSTGRES libpq libpq LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(PROJ proj proj_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(PYTHON python39 python39_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + FIND_LIB_OPTIONS(QCA qca qcad LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + + FIND_LIB_OPTIONS(QTKEYCHAIN qt6keychain qt6keychaind LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # FIND_LIB_OPTIONS(QSCINTILLA qscintilla2_qt5 qscintilla2_qt5d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + + # if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # FIND_LIB_OPTIONS(ZSTD zstd_static zstd_staticd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) + # endif() + + set(SPATIALINDEX_LIB_NAME spatialindex) + if( VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" ) + set( SPATIALINDEX_LIB_NAME "spatialindex-64" ) + else() + set( SPATIALINDEX_LIB_NAME "spatialindex-32" ) + endif() + FIND_LIB_OPTIONS(SPATIALINDEX ${SPATIALINDEX_LIB_NAME} ${SPATIALINDEX_LIB_NAME}d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) +endif() + +if(VCPKG_TARGET_IS_IOS) + if(NOT EXISTS "$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") + MESSAGE(FATAL_ERROR "missing libQt6Bundled_Poly2Tri") + endif() + # on iOS (static) Qt ships Poly2Tri ( but without headers :( ) + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) + list(APPEND QGIS_OPTIONS -Dpoly2tri_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include/poly2tri) + list(APPEND QGIS_OPTIONS_DEBUG -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri_debug.a") + list(APPEND QGIS_OPTIONS_RELEASE -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") +else() + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + #PREFER_NINJA + OPTIONS ${QGIS_OPTIONS} + OPTIONS_DEBUG ${QGIS_OPTIONS_DEBUG} + OPTIONS_RELEASE ${QGIS_OPTIONS_RELEASE} +) + +vcpkg_install_cmake() + +function(copy_path basepath targetdir) + file(GLOB ${basepath}_PATH ${CURRENT_PACKAGES_DIR}/${basepath}/*) + if( ${basepath}_PATH ) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath}) + file(COPY ${${basepath}_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath}) + endif() + + if(EXISTS "${CURRENT_PACKAGES_DIR}/${basepath}/") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${basepath}/) + endif() +endfunction() + + +if(VCPKG_TARGET_IS_WINDOWS) + file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) + if(QGIS_TOOL_PATH) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + file(REMOVE_RECURSE ${QGIS_TOOL_PATH}) + file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/* ) + file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + endif() + + file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) + if(QGIS_TOOL_PATH_DEBUG) + if("debug-tools" IN_LIST FEATURES) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) + file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) + file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG}) + file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/* ) + file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) + else() + file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG}) + endif() + endif() + + copy_path(doc share) + copy_path(i18n share) + copy_path(icons share) + copy_path(images share) + copy_path(plugins tools) + copy_path(resources share) + copy_path(svg share) + + # Extend vcpkg_copy_tool_dependencies to support the export of dll and exe dependencies in different directories to the same directory, + # and support the copy of debug dependencies + function(vcpkg_copy_tool_dependencies_ex TOOL_DIR OUTPUT_DIR SEARCH_DIR) + find_program(PS_EXE powershell PATHS ${DOWNLOADS}/tool) + if (PS_EXE-NOTFOUND) + message(FATAL_ERROR "Could not find powershell in vcpkg tools, please open an issue to report this.") + endif() + macro(search_for_dependencies PATH_TO_SEARCH) + file(GLOB TOOLS ${TOOL_DIR}/*.exe ${TOOL_DIR}/*.dll) + foreach(TOOL ${TOOLS}) + vcpkg_execute_required_process( + COMMAND ${PS_EXE} -noprofile -executionpolicy Bypass -nologo + -file ${CMAKE_CURRENT_LIST_DIR}/applocal.ps1 + -targetBinary ${TOOL} + -installedDir ${PATH_TO_SEARCH} + -outputDir ${OUTPUT_DIR} + WORKING_DIRECTORY ${VCPKG_ROOT_DIR} + LOGNAME copy-tool-dependencies + ) + endforeach() + endmacro() + search_for_dependencies(${CURRENT_PACKAGES_DIR}/${SEARCH_DIR}) + search_for_dependencies(${CURRENT_INSTALLED_DIR}/${SEARCH_DIR}) + endfunction() + + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/plugins ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) + if("debug-tools" IN_LIST FEATURES) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/plugins ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) + endif() + if("server" IN_LIST FEATURES) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) + if("debug-tools" IN_LIST FEATURES) + vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) + endif() + endif() + + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) + file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake) +else() + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) + if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libqt_poly2tri.a") + set(QT_POLY2TRI_DIR_RELEASE "${CURRENT_INSTALLED_DIR}/lib") + set(QT_POLY2TRI_DIR_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") + elseif(EXISTS "${Qt6_DIR}/../../libqt_poly2tri.a") + set(QT_POLY2TRI_DIR_RELEASE "${Qt6_DIR}/../..") + set(QT_POLY2TRI_DIR_DEBUG "${Qt6_DIR}/../..") + else() + list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri) + endif() + if(DEFINED QT_POLY2TRI_DIR_RELEASE) + list(APPEND QGIS_OPTIONS -DPoly2Tri_INCLUDE_DIR:PATH=${CMAKE_CURRENT_LIST_DIR}/poly2tri) + list(APPEND QGIS_OPTIONS_DEBUG -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_DEBUG}/debug/lib/libqt_poly2tri_debug.a) # static qt only + list(APPEND QGIS_OPTIONS_RELEASE -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_RELEASE}/lib/libqt_poly2tri.a) # static qt only + endif() +endif() + +if(VCPKG_TARGET_IS_OSX) + copy_path(resources share) +endif() + +file(GLOB QGIS_CMAKE_PATH ${CURRENT_PACKAGES_DIR}/*.cmake) +if(QGIS_CMAKE_PATH) + file(COPY ${QGIS_CMAKE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmake/${PORT}) + file(REMOVE_RECURSE ${QGIS_CMAKE_PATH}) +endif() + +file(GLOB QGIS_CMAKE_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.cmake) +if( QGIS_CMAKE_PATH_DEBUG ) + file(REMOVE_RECURSE ${QGIS_CMAKE_PATH_DEBUG}) +endif() + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include +) +file(REMOVE_RECURSE # Added for debug porpose + ${CURRENT_PACKAGES_DIR}/debug/share +) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file diff --git a/vcpkg/ports/qgis-qt6/vcpkg.json b/vcpkg/ports/qgis-qt6/vcpkg.json new file mode 100644 index 000000000..f573e12e5 --- /dev/null +++ b/vcpkg/ports/qgis-qt6/vcpkg.json @@ -0,0 +1,40 @@ +{ + "name": "qgis-qt6", + "version": "3.40.4", + "port-version": 0, + "homepage": "https://qgis.org", + "description": "QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)", + "dependencies": [ + "expat", + "libxml2", + "libzip", + "zlib", + "libspatialindex", + "libspatialite", + "gdal", + "exiv2", + "libpq", + "protobuf", + "proj", + "geos", + "qt6", + "qca-qt6", + "qtkeychain-qt6", + { + "name": "libtasn1", + "platform": "osx | ios" + }, + { + "name": "qt6-poly2tri", + "platform": "ios" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qt6-poly2tri/portfile.cmake b/vcpkg/ports/qt6-poly2tri/portfile.cmake new file mode 100644 index 000000000..edbaed6fa --- /dev/null +++ b/vcpkg/ports/qt6-poly2tri/portfile.cmake @@ -0,0 +1,18 @@ +# on iOS (static) Qt ships Poly2Tri ( but without headers :( ) +if(NOT VCPKG_TARGET_IS_IOS) + message(FATAL_ERROR "qt poly2tri only needed on iOS") +else() + vcpkg_download_distfile(ARCHIVE + URLS "https://download.qt.io/archive/qt/6.8/${VERSION}/submodules/qtpositioning-everywhere-src-${VERSION}.zip" + FILENAME "qtpositioning-${VERSION}.zip" + SHA512 cd216c94ef2d35e48bd9b8d7cf3d5c71f8afba379044601737e062f0de88c10a5c931a63b0f05436355ab464918400f7704908ec9c46c79eee74d790e678ae47 + ) + + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" + ) + + file(INSTALL ${SOURCE_PATH}/src/3rdparty/poly2tri DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h") +endif() diff --git a/vcpkg/ports/qt6-poly2tri/vcpkg.json b/vcpkg/ports/qt6-poly2tri/vcpkg.json new file mode 100644 index 000000000..ee1436085 --- /dev/null +++ b/vcpkg/ports/qt6-poly2tri/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "qt6-poly2tri", + "version": "6.8.3", + "port-version": 0, + "description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", + "homepage": "https://www.qt.io/", + "license": null, + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/vcpkg/ports/qt6/copyright b/vcpkg/ports/qt6/copyright new file mode 100644 index 000000000..6bf924cd1 --- /dev/null +++ b/vcpkg/ports/qt6/copyright @@ -0,0 +1,175 @@ + GNU LESSER GENERAL PUBLIC LICENSE + + The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. + Contact: http://www.qt.io/licensing/ + + You may use, distribute and copy the Qt Toolkit under the terms of + GNU Lesser General Public License version 3, which is displayed below. + This license makes reference to the version 3 of the GNU General + Public License, which you can find in the LICENSE.GPLv3 file. + +------------------------------------------------------------------------- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright © 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies of this +licensedocument, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + +0. Additional Definitions. + + As used herein, “this License” refers to version 3 of the GNU Lesser +General Public License, and the “GNU GPL” refers to version 3 of the +GNU General Public License. + + “The Library” refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An “Application” is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A “Combined Work” is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the “Linked +Version”. + + The “Minimal Corresponding Source” for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The “Corresponding Application Code” for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort + to ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + +3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this + license document. + +4. Combined Works. + + You may convey a Combined Work under terms of your choice that, taken +together, effectively do not restrict modification of the portions of +the Library contained in the Combined Work and reverse engineering for +debugging such modifications, if you also do each of the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this + license document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of + this License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with + the Library. A suitable mechanism is one that (a) uses at run + time a copy of the Library already present on the user's + computer system, and (b) will operate properly with a modified + version of the Library that is interface-compatible with the + Linked Version. + + e) Provide Installation Information, but only if you would + otherwise be required to provide such information under section 6 + of the GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the Application + with a modified version of the Linked Version. (If you use option + 4d0, the Installation Information must accompany the Minimal + Corresponding Source and Corresponding Application Code. If you + use option 4d1, you must provide the Installation Information in + the manner specified by section 6 of the GNU GPL for conveying + Corresponding Source.) + +5. Combined Libraries. + + You may place library facilities that are a work based on the Library +side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities, conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of + it is a work based on the Library, and explaining where to find + the accompanying uncombined form of the same work. + +6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +as you received it specifies that a certain numbered version of the +GNU Lesser General Public License “or any later version” applies to +it, you have the option of following the terms and conditions either +of that published version or of any later version published by the +Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, +you may choose any version of the GNU Lesser General Public License +ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the Library. + diff --git a/vcpkg/ports/qt6/portfile.cmake b/vcpkg/ports/qt6/portfile.cmake new file mode 100644 index 000000000..6d9df585f --- /dev/null +++ b/vcpkg/ports/qt6/portfile.cmake @@ -0,0 +1,3 @@ +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) diff --git a/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..7f30acc45 --- /dev/null +++ b/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,196 @@ +set(QT_MODULES + Qt6 + Qt6Designer + Qt63DAnimation + Qt63DCore + Qt63DExtras + Qt63DInput + Qt63DLogic + Qt63DQuick + Qt63DQuickAnimation + Qt63DQuickExtras + Qt63DQuickInput + Qt63DQuickRender + Qt63DQuickScene2D + Qt63DRender + Qt6AccessibilitySupport + Qt6AttributionsScannerTools + Qt6Bluetooth + Qt6Bootstrap + Qt6BundledPcre2 + Qt6BundledLibpng + Qt6BundledHarfbuzz + Qt6BundledFreetype + Qt6BuildInternals + Qt6Bundled_Clip2Tri + Qt6BundledFreetype + Qt6BundledGlslang_Glslang + Qt6BundledGlslang_Oglcompiler + Qt6BundledGlslang_Osdependent + Qt6BundledGlslang_Spirv + Qt6BundledHarfbuzz + Qt6BundledLibjpeg + Qt6BundledLibpng + Qt6BundledPcre2 + Qt6BundledResonanceAudio + Qt6BundledSpirv_Cross + Qt6Bundled_Clip2Tri + Qt6Bundled_Clipper + Qt6Bundled_Poly2Tri + Qt6BundledPcre2 + Qt6HostInfo + Qt6Linguist + Qt6QmlDomPrivate + Qt6QmlIntegration + Qt6Tools + Qt6UiPlugin + Qt6Bluetooth + Qt6BundledLibjpeg + Qt6BundledLibpng + Qt6Bundled_Clipper + Qt6Charts + Qt6ChartsQml + Qt6ClipboardSupport + Qt6Concurrent + Qt6Core + Qt6Core5Compat + Qt6DeviceDiscoverySupport + Qt6DocTools + Qt6EntryPointPrivate + Qt6EdidSupport + Qt6EglSupport + Qt6EntryPointPrivate + Qt6EventDispatcherSupport + Qt6FbSupport + Qt6FFmpegMediaPluginImplPrivate + Qt6FontDatabaseSupport + Qt6Gamepad + Qt6Gui + Qt6GraphicsSupport + Qt6Help + Qt6HostInfo + Qt6InputSupport + Qt6LabsAnimation + Qt6LabsFolderListModel + Qt6LabsQmlModels + Qt6LabsSettings + Qt6LabsSharedImage + Qt6LabsWavefrontMesh + Qt6Location + Qt6MacExtras + Qt6Multimedia + Qt6MultimediaQuick + Qt6MultimediaQuickPrivate + Qt6MultimediaWidgets + Qt6Network + Qt6Nfc + Qt6OpenGL + Qt6OpenGLExtensions + Qt6OpenGLWidgets + Qt6PacketProtocol + Qt6PacketProtocolPrivate + Qt6PlatformCompositorSupport + Qt6PngPrivate + Qt6Positioning + Qt6PositioningQuick + Qt6PrintSupport + Qt6Qml + Qt6QmlCompilerPrivate + Qt6QmlCore + Qt6QmlDebugPrivate + Qt6QmlDomPrivate + Qt6QmlIntegration + Qt6QmlLocalStorage + Qt6QmlMeta + Qt6QmlModels + Qt6QmlWorkerScript + Qt6QmlXmlListModel + Qt6Quick + Qt6Quick3DUtils + Qt6QuickControls2 + Qt6QuickControls2Impl + Qt6QuickControls2ImplPrivate + Qt6QuickDialogs2 + Qt6QuickDialogs2QuickImpl + Qt6QuickDialogs2Utils + Qt6QuickEffectsPrivate + Qt6QuickLayouts + Qt6QuickParticlesPrivate + Qt6QuickShapesPrivate + Qt6QuickTemplates2 + Qt6QuickTest + Qt6QuickWidgets + Qt6RemoteObjects + Qt6RepParser + Qt6Scxml + Qt6Sensors + Qt6SensorsQuick + Qt6SerialPort + Qt6ServiceSupport + Qt6Sql + Qt6Svg + Qt6SvgWidgets + Qt6Test + Qt6TextToSpeech + Qt6ThemeSupport + Qt6UiPlugin + Qt6UiTools + Qt6VulkanSupport + Qt6WebChannel + Qt6WebSockets + Qt6WebView + Qt6WebViewQuick + Qt6Widgets + Qt6Xml + Qt6XmlPatterns + Qt6Zlib + Qt6BundledPcre2 +) + +set(Qt6_ROOT_DIR $ENV{Qt6_DIR}/lib/cmake) + +if(EXISTS ${Qt6_ROOT_DIR}) + MESSAGE(STATUS "Using Qt6 CMAKE dir: ${Qt6_ROOT_DIR}") +else() + MESSAGE(FATAL_ERROR "Qt6 installation not found: ${Qt6_ROOT_DIR}; Do you have Qt6_DIR environment variable set?") +endif() + +foreach(MOD ${QT_MODULES}) + if(EXISTS ${Qt6_ROOT_DIR}/${MOD}) + set(${MOD}_DIR ${Qt6_ROOT_DIR}/${MOD}) + MESSAGE(STATUS "Qt6 ${MOD} found: ${Qt6_ROOT_DIR}/${MOD}") + else() + # Not all modules are on all platforms + MESSAGE(STATUS "Skipped -- Qt6 ${MOD}: ${Qt6_ROOT_DIR}/${MOD}") + endif() +endforeach() + +### HOST +# These modules are not in iOS/Android Qt, but they are needed for Qt +set(QT_HOST_MODULES + Qt6CoreTools + Qt6LinguistTools + Qt6WidgetsTools + Qt6GuiTools + Qt6QmlTools + Qt6QmlImportScanner +) + +set(Qt6_ROOT_HOST_DIR $ENV{QT_HOST_PATH}/lib/cmake) +if(EXISTS ${Qt6_ROOT_HOST_DIR}) + MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable QT_HOST_PATH ${Qt6_ROOT_HOST_DIR}") +else() + MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable Qt6_DIR; for iOS or Android you need to set QT_HOST_PATH environment variable instead.") + set(Qt6_ROOT_HOST_DIR ${Qt6_ROOT_DIR}) +endif() + +foreach(MOD ${QT_HOST_MODULES}) + if(EXISTS ${Qt6_ROOT_HOST_DIR}/${MOD}) + set(${MOD}_DIR ${Qt6_ROOT_HOST_DIR}/${MOD}) + MESSAGE(STATUS "Qt6 HOST ${MOD} found: ${Qt6_ROOT_HOST_DIR}/${MOD}") + else() + MESSAGE(STATUS "Skipped -- Qt6 HOST ${MOD} not found: ${Qt6_ROOT_HOST_DIR}/${MOD}") + endif() +endforeach() + +_find_package(${ARGS}) \ No newline at end of file diff --git a/vcpkg/ports/qt6/vcpkg.json b/vcpkg/ports/qt6/vcpkg.json new file mode 100644 index 000000000..c26238389 --- /dev/null +++ b/vcpkg/ports/qt6/vcpkg.json @@ -0,0 +1,6 @@ +{ + "name": "qt6", + "version-string": "6.8.3", + "description": "Qt6 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", + "homepage": "https://www.qt.io/" +} \ No newline at end of file diff --git a/vcpkg/ports/qtkeychain-qt6/portfile.cmake b/vcpkg/ports/qtkeychain-qt6/portfile.cmake index 25e75075f..f17f6fd9d 100644 --- a/vcpkg/ports/qtkeychain-qt6/portfile.cmake +++ b/vcpkg/ports/qtkeychain-qt6/portfile.cmake @@ -34,6 +34,7 @@ vcpkg_cmake_configure( -DBUILD_WITH_QT6=ON ${QTKEYCHAIN_OPTIONS} ) + vcpkg_cmake_install() vcpkg_copy_pdbs() diff --git a/vcpkg/ports/qtkeychain-qt6/vcpkg.json b/vcpkg/ports/qtkeychain-qt6/vcpkg.json index dd42992d0..4d80ded99 100644 --- a/vcpkg/ports/qtkeychain-qt6/vcpkg.json +++ b/vcpkg/ports/qtkeychain-qt6/vcpkg.json @@ -26,4 +26,4 @@ "host": true } ] -} \ No newline at end of file +} diff --git a/vcpkg/ports/tiff/FindCMath.patch b/vcpkg/ports/tiff/FindCMath.patch new file mode 100644 index 000000000..70654cf80 --- /dev/null +++ b/vcpkg/ports/tiff/FindCMath.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/FindCMath.cmake b/cmake/FindCMath.cmake +index ad92218..dd42aba 100644 +--- a/cmake/FindCMath.cmake ++++ b/cmake/FindCMath.cmake +@@ -31,7 +31,7 @@ include(CheckSymbolExists) + include(CheckLibraryExists) + + check_symbol_exists(pow "math.h" CMath_HAVE_LIBC_POW) +-find_library(CMath_LIBRARY NAMES m) ++find_library(CMath_LIBRARY NAMES m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) + + if(NOT CMath_HAVE_LIBC_POW) + set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) diff --git a/vcpkg/ports/tiff/portfile.cmake b/vcpkg/ports/tiff/portfile.cmake new file mode 100644 index 000000000..01af6b41b --- /dev/null +++ b/vcpkg/ports/tiff/portfile.cmake @@ -0,0 +1,95 @@ +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.com + OUT_SOURCE_PATH SOURCE_PATH + REPO libtiff/libtiff + REF "v${VERSION}" + SHA512 859331284cd28df56c44644a355ecdd8eece19f0d5cd3e693e37c0fe37115091e46943ffbad784e84af1b39a6fd81cd196af2d4fefe86369258f89050dafaa84 + HEAD_REF master + PATCHES + FindCMath.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + cxx cxx + jpeg jpeg + jpeg CMAKE_REQUIRE_FIND_PACKAGE_JPEG + lzma lzma + lzma CMAKE_REQUIRE_FIND_PACKAGE_liblzma + tools tiff-tools + webp webp + webp CMAKE_REQUIRE_FIND_PACKAGE_WebP + zip zlib + zip CMAKE_REQUIRE_FIND_PACKAGE_ZLIB + zstd zstd + zstd CMAKE_REQUIRE_FIND_PACKAGE_ZSTD +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON + -Dtiff-docs=OFF + -Dtiff-contrib=OFF + -Dtiff-tests=OFF + -Dlibdeflate=OFF + -Djbig=OFF # This is disabled by default due to GPL/Proprietary licensing. + -Djpeg12=OFF + -Dlerc=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON + -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON + -DZSTD_HAVE_DECOMPRESS_STREAM=ON + -DHAVE_JPEGTURBO_DUAL_MODE_8_12=OFF + OPTIONS_DEBUG + -DCMAKE_DEBUG_POSTFIX=d # tiff sets "d" for MSVC only. + MAYBE_UNUSED_VARIABLES + ZSTD_HAVE_DECOMPRESS_STREAM +) + +vcpkg_cmake_install() + +# CMake config wasn't packaged in the past and is not yet usable now, +# cf. https://gitlab.com/libtiff/libtiff/-/merge_requests/496 +# vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tiff") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") + +set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libtiff-4.pc") +if(EXISTS "${_file}") + vcpkg_replace_string("${_file}" "-ltiff" "-ltiffd") +endif() +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) + +if ("tools" IN_LIST FEATURES) + vcpkg_copy_tools(TOOL_NAMES + fax2ps + fax2tiff + pal2rgb + ppm2tiff + raw2tiff + tiff2bw + tiff2pdf + tiff2ps + tiff2rgba + tiffcmp + tiffcp + tiffcrop + tiffdither + tiffdump + tiffinfo + tiffmedian + tiffset + tiffsplit + AUTO_CLEAN + ) +endif() + +vcpkg_copy_pdbs() +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") diff --git a/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in new file mode 100644 index 000000000..ff0ddc0bc --- /dev/null +++ b/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in @@ -0,0 +1,81 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +set(z_vcpkg_tiff_find_options "") +if("REQUIRED" IN_LIST ARGS) + list(APPEND z_vcpkg_tiff_find_options "REQUIRED") +endif() +if("QUIET" IN_LIST ARGS) + list(APPEND z_vcpkg_tiff_find_options "QUIET") +endif() + +_find_package(${ARGS}) + +include(SelectLibraryConfigurations) + +if(TIFF_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") + set(z_vcpkg_tiff_link_libraries "") + set(z_vcpkg_tiff_libraries "") + if("@webp@") + find_package(WebP CONFIG ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${WebP_LIBRARIES}) + endif() + if("@lzma@") + find_package(LibLZMA ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${LIBLZMA_LIBRARIES}) + endif() + if("@jpeg@") + find_package(JPEG ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${JPEG_LIBRARIES}) + endif() + if("@zstd@") + find_package(zstd CONFIG ${z_vcpkg_tiff_find_options}) + set(z_vcpkg_tiff_zstd_target_property "IMPORTED_LOCATION_") + if(TARGET zstd::libzstd_shared) + set(z_vcpkg_tiff_zstd "\$") + set(z_vcpkg_tiff_zstd_target zstd::libzstd_shared) + if(WIN32) + set(z_vcpkg_tiff_zstd_target_property "IMPORTED_IMPLIB_") + endif() + else() + set(z_vcpkg_tiff_zstd "\$") + set(z_vcpkg_tiff_zstd_target zstd::libzstd_static) + endif() + get_target_property(z_vcpkg_tiff_zstd_configs "${z_vcpkg_tiff_zstd_target}" IMPORTED_CONFIGURATIONS) + foreach(z_vcpkg_config IN LISTS z_vcpkg_tiff_zstd_configs) + get_target_property(ZSTD_LIBRARY_${z_vcpkg_config} "${z_vcpkg_tiff_zstd_target}" "${z_vcpkg_tiff_zstd_target_property}${z_vcpkg_config}") + endforeach() + select_library_configurations(ZSTD) + if(NOT TARGET ZSTD::ZSTD) + add_library(ZSTD::ZSTD INTERFACE IMPORTED) + set_property(TARGET ZSTD::ZSTD APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_zstd}) + endif() + list(APPEND z_vcpkg_tiff_libraries ${ZSTD_LIBRARIES}) + list(APPEND z_vcpkg_tiff_link_libraries ${z_vcpkg_tiff_zstd}) + unset(z_vcpkg_tiff_zstd) + unset(z_vcpkg_tiff_zstd_configs) + unset(z_vcpkg_config) + unset(z_vcpkg_tiff_zstd_target) + endif() + if("@zlib@") + find_package(ZLIB ${z_vcpkg_tiff_find_options}) + list(APPEND z_vcpkg_tiff_link_libraries "\$") + list(APPEND z_vcpkg_tiff_libraries ${ZLIB_LIBRARIES}) + endif() + if(UNIX) + list(APPEND z_vcpkg_tiff_link_libraries m) + list(APPEND z_vcpkg_tiff_libraries m) + endif() + + if(TARGET TIFF::TIFF) + set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_link_libraries}) + endif() + list(APPEND TIFF_LIBRARIES ${z_vcpkg_tiff_libraries}) + unset(z_vcpkg_tiff_link_libraries) + unset(z_vcpkg_tiff_libraries) +endif() +unset(z_vcpkg_tiff_find_options) +cmake_policy(POP) diff --git a/vcpkg/ports/tiff/vcpkg.json b/vcpkg/ports/tiff/vcpkg.json new file mode 100644 index 000000000..5efdd8116 --- /dev/null +++ b/vcpkg/ports/tiff/vcpkg.json @@ -0,0 +1,61 @@ +{ + "name": "tiff", + "version": "4.5.1", + "port-version": 2, + "description": "A library that supports the manipulation of TIFF image files", + "homepage": "https://libtiff.gitlab.io/libtiff/", + "license": "libtiff", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "jpeg", + "lzma", + "zip" + ], + "features": { + "cxx": { + "description": "Build C++ libtiffxx library" + }, + "jpeg": { + "description": "Support JPEG compression in TIFF image files", + "dependencies": [ + "libjpeg-turbo" + ] + }, + "lzma": { + "description": "Support LZMA compression in TIFF image files", + "dependencies": [ + "liblzma" + ] + }, + "tools": { + "description": "Build tools" + }, + "webp": { + "description": "Support WEBP compression in TIFF image files", + "dependencies": [ + "libwebp" + ] + }, + "zip": { + "description": "Support ZIP/deflate compression in TIFF image files", + "dependencies": [ + "zlib" + ] + }, + "zstd": { + "description": "Support ZSTD compression in TIFF image files", + "dependencies": [ + "zstd" + ] + } + } +} diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 3446fd7c0..e59d2f150 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -19,14 +19,22 @@ set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=O set(ANDROIDAPI "28") # when changed change CMakeLists.txt set(ANDROID_PLATFORM "android-${ANDROIDAPI}") set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") -set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}") set(ANDROID_STL "c++_shared") - + if (NOT DEFINED ENV{ANDROID_SDK_ROOT}) message(FATAL_ERROR "Set required environment variable ANDROID_SDK_ROOT.") endif () set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) - + +if(DEFINED ENV{ANDROIDAPI}) + set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +endif() + set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") + set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index a0123c870..3dd585ecc 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -26,4 +26,12 @@ endif () set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) set(VCPKG_CXX_FLAGS "-fstack-protector-strong") -set(VCPKG_C_FLAGS "-fstack-protector-strong") \ No newline at end of file +set(VCPKG_C_FLAGS "-fstack-protector-strong") + +if(DEFINED ENV{ANDROIDAPI}) + set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +endif() + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) diff --git a/vcpkg/triplets/arm64-ios.cmake b/vcpkg/triplets/arm64-ios.cmake index 8469a37c2..6d9866ef6 100644 --- a/vcpkg/triplets/arm64-ios.cmake +++ b/vcpkg/triplets/arm64-ios.cmake @@ -4,8 +4,14 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) set(VCPKG_OSX_ARCHITECTURES arm64) -set(VCPKG_OSX_DEPLOYMENT_TARGET 16.0) +if(DEFINED ENV{DEPLOYMENT_TARGET}) + set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +endif() set(VCPKG_BUILD_TYPE release) set(VCPKG_CXX_FLAGS "-fvisibility=hidden") set(VCPKG_C_FLAGS "-fvisibility=hidden") + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake +set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-osx.cmake b/vcpkg/triplets/arm64-osx.cmake index 058bcc539..cf3b7ea23 100644 --- a/vcpkg/triplets/arm64-osx.cmake +++ b/vcpkg/triplets/arm64-osx.cmake @@ -6,9 +6,11 @@ set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES arm64) set(VCPKG_BUILD_TYPE release) -set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) - +if(DEFINED ENV{DEPLOYMENT_TARGET}) + set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +endif() # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake index bfd3bb43f..5d8162c13 100644 --- a/vcpkg/triplets/x64-osx.cmake +++ b/vcpkg/triplets/x64-osx.cmake @@ -12,3 +12,4 @@ set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-windows.cmake b/vcpkg/triplets/x64-windows.cmake index f6c40253a..9e31900b1 100644 --- a/vcpkg/triplets/x64-windows.cmake +++ b/vcpkg/triplets/x64-windows.cmake @@ -2,3 +2,5 @@ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_BUILD_TYPE release) + +set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake \ No newline at end of file From d774f4b651c24b62defb274e3c024614326f82e2 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 14:50:55 +0200 Subject: [PATCH 070/118] group macos builds to one --- .github/workflows/android.yml | 7 +++++++ .github/workflows/ios.yml | 2 +- .github/workflows/macos.yml | 34 ++++++++++++++++++++++++++++++++++ .github/workflows/win.yml | 3 +++ scripts/create_dmg.sh | 2 ++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 9d9c4a0c3..e521a6065 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -221,6 +221,13 @@ jobs: export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_ABI=${{ matrix.ANDROID_ABI }} + export Qt6_DIR=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/${{ matrix.QT_ARCH }} + export QT_HOST_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos + export PATH=${{ env.VCPKG_ROOT }}:$PATH + export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} + export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} + export ANDROID_ABI=${{ matrix.ANDROID_ABI }} + cmake \ -DCMAKE_BUILD_TYPE=Release \ -DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 1d5cff2d1..03fa6b9ef 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -3,7 +3,7 @@ name: iOS Build on: push: paths: - - 'vcpkg-overlay/**' + - 'vcpkg/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 2708a0288..4474fec64 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -31,6 +31,7 @@ concurrency: cancel-in-progress: true jobs: + build: macos_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) runs-on: macos-15 @@ -133,6 +134,7 @@ jobs: ninja - name: run tests + if: ${{ matrix.triplet != 'x64-osx' }} env: TEST_MERGIN_URL: https://app.dev.merginmaps.com/ TEST_API_USERNAME: test_mobileapp2 @@ -185,6 +187,38 @@ jobs: export DMG_PATH=merginmaps-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.dmg ./mm/scripts/create_dmg.sh + - name: Download app + uses: actions/download-artifact@v4 + with: + pattern: input-app-* + path: | + artifacts + + - name: Create universal app + run: | + mkdir -p x64 + gtar --strip-components=4 -zxf ./artifacts/input-app-x64-osx/input-app-x64-osx.tar.gz -C x64 + mkdir -p arm64 + gtar --strip-components=4 -zxf ./artifacts/input-app-arm64-osx/input-app-arm64-osx.tar.gz -C arm64 + pip install lipomerge + lipomerge ./x64 ./arm64 universal + + - name: Create dmg + run: | + if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then + echo "${{ secrets.APPLE_DEVELOPER_ID_P12_BASE64 }}" | base64 --decode > cert.p12 + export P12_PATH=cert.p12 + export P12_PASSWORD=${{ secrets.APPLE_DEVELOPER_ID_P12_PASSWORD }} + export API_KEY_ID=${{ secrets.IOS_APPSTORE_KEY_ID }} + export API_KEY_ISSUER_ID=${{ secrets.IOS_APPSTORE_ISSUER_ID }} + echo "${{ secrets.IOS_APPSTORE_PRIVATE_KEY }}" > authkey.p8 + export API_KEY_PATH=authkey.p8 + fi + + export APP_PATH=$(pwd)/universal/Input.app + export DMG_PATH=merginmaps_app.dmg + ./scripts/create_dmg.sh + - name: Upload dmg uses: actions/upload-artifact@v4 id: artifact-macos diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index eca517338..f89036e9e 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -1,5 +1,8 @@ name: win64 Build +# TODO remove +skip: true + on: push: paths: diff --git a/scripts/create_dmg.sh b/scripts/create_dmg.sh index 0c54a2a41..2525b46bd 100755 --- a/scripts/create_dmg.sh +++ b/scripts/create_dmg.sh @@ -26,6 +26,8 @@ fi create-dmg --volname "Mergin Maps Mobile App Installer" \ --hide-extension "Input.app" \ + --volicon "./platform/macos/installer.icns" \ + --background "./platform/macos/installer_background.png" \ --window-pos 200 120 \ --window-size 512 320 \ --icon-size 100 \ From 2e415e92d0e2ddbaf0fa7c66af7a02afa491f68b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 14:57:03 +0200 Subject: [PATCH 071/118] fix cmake format --- .github/workflows/android.yml | 4 ++-- app/CMakeLists.txt | 26 ++++++-------------------- cmake/FindQGIS.cmake | 7 ++----- cmake/FindSpatialindex.cmake | 10 ++-------- cmake/FindSpatialite.cmake | 10 ++-------- cmake/FindTasn1.cmake | 10 ++-------- cmake/FindZLIB.cmake | 5 +---- 7 files changed, 17 insertions(+), 55 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e521a6065..5d5bb5190 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,9 +1,9 @@ -name: android Build +name: Android Build on: push: paths: - - 'vcpkg-overlay/**' + - 'vcpkg/**' - 'vcpkg.json' - 'VCPKG_BASELINE' - 'app/**' diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 93642ea87..308b7d70a 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -517,9 +517,7 @@ target_link_libraries( Spatialite::Spatialite ) -#if (NOT LNX) -# target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) -#endif () +# if (NOT LNX) target_link_libraries(Input PUBLIC Charset::Charset Iconv::Iconv) endif () # target_link_libraries(Input PUBLIC Xml2::Xml2) @@ -529,33 +527,21 @@ target_link_libraries( GEOS::geos_c # Geos::Geos protobuf::libprotobuf-lite - # Utf8::utf8_range - # Utf8::utf8_validity - # Expat::Expat - # Freexl::Freexl + # Utf8::utf8_range Utf8::utf8_validity Expat::Expat Freexl::Freexl Exiv2::exiv2lib - # Inih::Inireader - # Inih::Inih - # Tiff::Tiff + # Inih::Inireader Inih::Inih Tiff::Tiff unofficial::sqlite3::sqlite3 unofficial::minizip::minizip ZLIB::ZLIB libzip::zip - # WebP::WebP - # WebP::Sharpyuv - # Curl::Curl - # Jpeg::Jpeg - # Geotiff::Geotiff - # Lzma::Lzma - # Zstd::Zstd - # Bz2::Bz2 - # Absl::Absl + # WebP::WebP WebP::Sharpyuv Curl::Curl Jpeg::Jpeg Geotiff::Geotiff Lzma::Lzma + # Zstd::Zstd Bz2::Bz2 Absl::Absl poly2tri::poly2tri meshoptimizer::meshoptimizer ) if (IOS OR MACOS) - target_link_libraries(Input PUBLIC Tasn1::Tasn1) + target_link_libraries(Input PUBLIC Tasn1::Tasn1) endif () # target_link_libraries(Input PUBLIC OpenSSL::OpenSSL OpenSSL::Crypto) diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index 0cad22643..a3b94e871 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,5 +1,5 @@ # GPLv2 Licence -find_path(QGIS_INCLUDE_DIR qgis.h PATH_SUFFIXES qgis) +find_path(QGIS_INCLUDE_DIR qgis.hPATH_SUFFIXES qgis) find_library(QGIS_CORE_LIBRARY NAMES qgis_core) find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES share/qgis/resources) @@ -23,10 +23,7 @@ set(QGIS_PROVIDERS_LIST ) foreach (provider ${QGIS_PROVIDERS_LIST}) - find_library( - QGIS_${provider}_LIBRARY - NAMES ${provider}_a - ) + find_library(QGIS_${provider}_LIBRARY NAMES ${provider}_a) set(QGIS_REQUIRED_VARS ${QGIS_REQUIRED_VARS} QGIS_${provider}_LIBRARY) endforeach () diff --git a/cmake/FindSpatialindex.cmake b/cmake/FindSpatialindex.cmake index 6e4cd5173..b4ee8bde8 100644 --- a/cmake/FindSpatialindex.cmake +++ b/cmake/FindSpatialindex.cmake @@ -1,14 +1,8 @@ # GPLv2 Licence -find_path( - Spatialindex_INCLUDE_DIR - spatialindex/RTree.h -) +find_path(Spatialindex_INCLUDE_DIR spatialindex/RTree.h) -find_library( - Spatialindex_LIBRARY - NAMES spatialindex spatialindex-64 -) +find_library(Spatialindex_LIBRARY NAMES spatialindex spatialindex-64) find_package_handle_standard_args( Spatialindex REQUIRED_VARS Spatialindex_LIBRARY Spatialindex_INCLUDE_DIR diff --git a/cmake/FindSpatialite.cmake b/cmake/FindSpatialite.cmake index 6967c89de..5b3198f41 100644 --- a/cmake/FindSpatialite.cmake +++ b/cmake/FindSpatialite.cmake @@ -1,14 +1,8 @@ # GPLv2 Licence -find_path( - Spatialite_INCLUDE_DIR - spatialite.h -) +find_path(Spatialite_INCLUDE_DIR spatialite.h) -find_library( - Spatialite_LIBRARY - NAMES spatialite -) +find_library(Spatialite_LIBRARY NAMES spatialite) find_package_handle_standard_args( Spatialite REQUIRED_VARS Spatialite_LIBRARY Spatialite_INCLUDE_DIR diff --git a/cmake/FindTasn1.cmake b/cmake/FindTasn1.cmake index 2eb1caf12..da3921c20 100644 --- a/cmake/FindTasn1.cmake +++ b/cmake/FindTasn1.cmake @@ -8,15 +8,9 @@ if (LNX ) message(FATAL_ERROR "tasn1 is not available for this platform in input-SDK") else () - find_path( - Tasn1_INCLUDE_DIR - libtasn1.h - ) + find_path(Tasn1_INCLUDE_DIR libtasn1.h) - find_library( - Tasn1_LIBRARY - NAMES tasn1 - ) + find_library(Tasn1_LIBRARY NAMES tasn1) endif () find_package_handle_standard_args(Tasn1 REQUIRED_VARS Tasn1_LIBRARY Tasn1_INCLUDE_DIR) diff --git a/cmake/FindZLIB.cmake b/cmake/FindZLIB.cmake index 2c40aabc3..2b97c27c5 100644 --- a/cmake/FindZLIB.cmake +++ b/cmake/FindZLIB.cmake @@ -1,9 +1,6 @@ # GPLv2 Licence -find_library( - ZLIB_LIBRARY - NAMES z zlib libz -) +find_library(ZLIB_LIBRARY NAMES z zlib libz) find_package_handle_standard_args(ZLIB REQUIRED_VARS ZLIB_LIBRARY) From 241ad20e0ce6c69cc06b4946ba70b6b4b5277edf Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 16 Apr 2025 15:03:30 +0200 Subject: [PATCH 072/118] fix macos yml --- .github/workflows/macos.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 4474fec64..8c3aaf2d3 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -31,7 +31,6 @@ concurrency: cancel-in-progress: true jobs: - build: macos_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) runs-on: macos-15 From 7d2636b44313f0a61ff640fb0b0e4101cd720bff Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 15:24:45 +0200 Subject: [PATCH 073/118] use Qt from vcpkg --- .github/workflows/macos.yml | 4 +- CMakeLists.txt | 10 +- INSTALL.md | 2 + app/android/assets/qgis-data/proj/copyright | 34 ++ app/android/assets/qgis-data/proj/usage | 9 + cmake/FindQGIS.cmake | 2 +- vcpkg.json | 4 - vcpkg/ports/gdal/cmake-project-include.cmake | 13 - vcpkg/ports/gdal/find-link-libraries.patch | 109 ---- .../gdal/fix-gdal-target-interfaces.patch | 15 - vcpkg/ports/gdal/libkml.patch | 46 -- vcpkg/ports/gdal/portfile.cmake | 148 ----- vcpkg/ports/gdal/target-is-valid.patch | 21 - vcpkg/ports/gdal/usage | 4 - vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake | 23 - vcpkg/ports/gdal/vcpkg.json | 39 -- vcpkg/ports/json-c/pkgconfig.patch | 13 - vcpkg/ports/json-c/portfile.cmake | 24 - vcpkg/ports/json-c/vcpkg.json | 7 - vcpkg/ports/kdab-openssl/portfile.cmake | 30 - vcpkg/ports/kdab-openssl/vcpkg.json | 17 - .../ports/libiconv/0002-Config-for-MSVC.patch | 14 - vcpkg/ports/libiconv/0003-Add-export.patch | 12 - .../ports/libiconv/0004-ModuleFileName.patch | 13 - vcpkg/ports/libiconv/portfile.cmake | 53 -- vcpkg/ports/libiconv/usage | 4 - .../ports/libiconv/vcpkg-cmake-wrapper.cmake | 21 - vcpkg/ports/libiconv/vcpkg.json | 7 - vcpkg/ports/libjpeg-turbo/CMakeLists.txt | 82 --- vcpkg/ports/libjpeg-turbo/cpl_port.h | 13 - vcpkg/ports/libjpeg-turbo/libjpeg.pc.in | 8 - vcpkg/ports/libjpeg-turbo/portfile.cmake | 34 -- .../libjpeg-turbo/vcpkg-cmake-wrapper.cmake | 19 - vcpkg/ports/libjpeg-turbo/vcpkg.json | 22 - vcpkg/ports/liblzma/add_support_ios.patch | 20 - vcpkg/ports/liblzma/build-tools.patch | 20 - vcpkg/ports/liblzma/fix_config_include.patch | 12 - vcpkg/ports/liblzma/portfile.cmake | 86 --- vcpkg/ports/liblzma/usage | 9 - vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake | 64 -- vcpkg/ports/liblzma/vcpkg.json | 23 - vcpkg/ports/liblzma/win_output_name.patch | 17 - vcpkg/ports/libpq/Makefile | 54 -- .../ports/libpq/android/unversioned_so.patch | 16 - vcpkg/ports/libpq/build-msvc.cmake | 80 --- vcpkg/ports/libpq/libpq.props.in | 25 - vcpkg/ports/libpq/portfile.cmake | 160 ----- vcpkg/ports/libpq/unix/fix-configure.patch | 79 --- vcpkg/ports/libpq/unix/installdirs.patch | 48 -- vcpkg/ports/libpq/unix/mingw-install.patch | 36 -- vcpkg/ports/libpq/unix/no-server-tools.patch | 37 -- vcpkg/ports/libpq/unix/python.patch | 35 -- vcpkg/ports/libpq/unix/single-linkage.patch | 56 -- vcpkg/ports/libpq/usage | 4 - vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake | 72 --- vcpkg/ports/libpq/vcpkg-libs.props.in | 31 - vcpkg/ports/libpq/vcpkg.json | 195 ------ vcpkg/ports/libpq/windows/macro-def.patch | 18 - vcpkg/ports/libpq/windows/msbuild.patch | 398 ------------- vcpkg/ports/libpq/windows/spin_delay.patch | 24 - .../ports/libpq/windows/win_bison_flex.patch | 42 -- vcpkg/ports/libtasn1/portfile.cmake | 31 - vcpkg/ports/libtasn1/vcpkg.json | 8 - .../qca-qt6/0001-fix-path-for-vcpkg.patch | 72 --- .../ports/qca-qt6/0002-fix-build-error.patch | 26 - ...-NOMINMAX-for-botan-plugin-with-MSVC.patch | 28 - vcpkg/ports/qca-qt6/connect_fix.patch | 29 - vcpkg/ports/qca-qt6/ios.patch | 13 - vcpkg/ports/qca-qt6/mk-ca-bundle.pl | 554 ------------------ vcpkg/ports/qca-qt6/portfile.cmake | 95 --- vcpkg/ports/qca-qt6/vcpkg.json | 18 - vcpkg/ports/qgis-qt6/applocal.ps1 | 125 ---- vcpkg/ports/qgis-qt6/cmakelists.patch | 39 -- vcpkg/ports/qgis-qt6/crssync.patch | 13 - vcpkg/ports/qgis-qt6/libxml2.patch | 11 - vcpkg/ports/qgis-qt6/portfile.cmake | 301 ---------- vcpkg/ports/qgis-qt6/vcpkg.json | 40 -- vcpkg/ports/qgis/portfile.cmake | 20 + vcpkg/ports/qt6-poly2tri/portfile.cmake | 18 - vcpkg/ports/qt6-poly2tri/vcpkg.json | 18 - vcpkg/ports/qt6/copyright | 175 ------ vcpkg/ports/qt6/portfile.cmake | 3 - vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake | 196 ------- vcpkg/ports/qt6/vcpkg.json | 6 - vcpkg/ports/qtkeychain-qt6/portfile.cmake | 1 - vcpkg/ports/qtkeychain-qt6/vcpkg.json | 2 +- vcpkg/ports/tiff/FindCMath.patch | 13 - vcpkg/ports/tiff/portfile.cmake | 95 --- vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in | 81 --- vcpkg/ports/tiff/vcpkg.json | 61 -- vcpkg/triplets/arm-android.cmake | 7 +- vcpkg/triplets/arm64-ios.cmake | 6 +- vcpkg/triplets/arm64-osx.cmake | 3 +- vcpkg/triplets/x64-linux.cmake | 2 +- vcpkg/triplets/x64-osx.cmake | 2 - vcpkg/triplets/x64-windows.cmake | 6 +- 96 files changed, 85 insertions(+), 4570 deletions(-) create mode 100644 app/android/assets/qgis-data/proj/copyright create mode 100644 app/android/assets/qgis-data/proj/usage delete mode 100644 vcpkg/ports/gdal/cmake-project-include.cmake delete mode 100644 vcpkg/ports/gdal/find-link-libraries.patch delete mode 100644 vcpkg/ports/gdal/fix-gdal-target-interfaces.patch delete mode 100644 vcpkg/ports/gdal/libkml.patch delete mode 100644 vcpkg/ports/gdal/portfile.cmake delete mode 100644 vcpkg/ports/gdal/target-is-valid.patch delete mode 100644 vcpkg/ports/gdal/usage delete mode 100644 vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/gdal/vcpkg.json delete mode 100644 vcpkg/ports/json-c/pkgconfig.patch delete mode 100644 vcpkg/ports/json-c/portfile.cmake delete mode 100644 vcpkg/ports/json-c/vcpkg.json delete mode 100644 vcpkg/ports/kdab-openssl/portfile.cmake delete mode 100644 vcpkg/ports/kdab-openssl/vcpkg.json delete mode 100644 vcpkg/ports/libiconv/0002-Config-for-MSVC.patch delete mode 100644 vcpkg/ports/libiconv/0003-Add-export.patch delete mode 100644 vcpkg/ports/libiconv/0004-ModuleFileName.patch delete mode 100644 vcpkg/ports/libiconv/portfile.cmake delete mode 100644 vcpkg/ports/libiconv/usage delete mode 100644 vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/libiconv/vcpkg.json delete mode 100644 vcpkg/ports/libjpeg-turbo/CMakeLists.txt delete mode 100644 vcpkg/ports/libjpeg-turbo/cpl_port.h delete mode 100644 vcpkg/ports/libjpeg-turbo/libjpeg.pc.in delete mode 100644 vcpkg/ports/libjpeg-turbo/portfile.cmake delete mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/libjpeg-turbo/vcpkg.json delete mode 100644 vcpkg/ports/liblzma/add_support_ios.patch delete mode 100644 vcpkg/ports/liblzma/build-tools.patch delete mode 100644 vcpkg/ports/liblzma/fix_config_include.patch delete mode 100644 vcpkg/ports/liblzma/portfile.cmake delete mode 100644 vcpkg/ports/liblzma/usage delete mode 100644 vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/liblzma/vcpkg.json delete mode 100644 vcpkg/ports/liblzma/win_output_name.patch delete mode 100644 vcpkg/ports/libpq/Makefile delete mode 100644 vcpkg/ports/libpq/android/unversioned_so.patch delete mode 100644 vcpkg/ports/libpq/build-msvc.cmake delete mode 100644 vcpkg/ports/libpq/libpq.props.in delete mode 100644 vcpkg/ports/libpq/portfile.cmake delete mode 100644 vcpkg/ports/libpq/unix/fix-configure.patch delete mode 100644 vcpkg/ports/libpq/unix/installdirs.patch delete mode 100644 vcpkg/ports/libpq/unix/mingw-install.patch delete mode 100644 vcpkg/ports/libpq/unix/no-server-tools.patch delete mode 100644 vcpkg/ports/libpq/unix/python.patch delete mode 100644 vcpkg/ports/libpq/unix/single-linkage.patch delete mode 100644 vcpkg/ports/libpq/usage delete mode 100644 vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/libpq/vcpkg-libs.props.in delete mode 100644 vcpkg/ports/libpq/vcpkg.json delete mode 100644 vcpkg/ports/libpq/windows/macro-def.patch delete mode 100644 vcpkg/ports/libpq/windows/msbuild.patch delete mode 100644 vcpkg/ports/libpq/windows/spin_delay.patch delete mode 100644 vcpkg/ports/libpq/windows/win_bison_flex.patch delete mode 100644 vcpkg/ports/libtasn1/portfile.cmake delete mode 100644 vcpkg/ports/libtasn1/vcpkg.json delete mode 100644 vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch delete mode 100644 vcpkg/ports/qca-qt6/0002-fix-build-error.patch delete mode 100644 vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch delete mode 100644 vcpkg/ports/qca-qt6/connect_fix.patch delete mode 100644 vcpkg/ports/qca-qt6/ios.patch delete mode 100644 vcpkg/ports/qca-qt6/mk-ca-bundle.pl delete mode 100644 vcpkg/ports/qca-qt6/portfile.cmake delete mode 100644 vcpkg/ports/qca-qt6/vcpkg.json delete mode 100644 vcpkg/ports/qgis-qt6/applocal.ps1 delete mode 100644 vcpkg/ports/qgis-qt6/cmakelists.patch delete mode 100644 vcpkg/ports/qgis-qt6/crssync.patch delete mode 100644 vcpkg/ports/qgis-qt6/libxml2.patch delete mode 100644 vcpkg/ports/qgis-qt6/portfile.cmake delete mode 100644 vcpkg/ports/qgis-qt6/vcpkg.json delete mode 100644 vcpkg/ports/qt6-poly2tri/portfile.cmake delete mode 100644 vcpkg/ports/qt6-poly2tri/vcpkg.json delete mode 100644 vcpkg/ports/qt6/copyright delete mode 100644 vcpkg/ports/qt6/portfile.cmake delete mode 100644 vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake delete mode 100644 vcpkg/ports/qt6/vcpkg.json delete mode 100644 vcpkg/ports/tiff/FindCMath.patch delete mode 100644 vcpkg/ports/tiff/portfile.cmake delete mode 100644 vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in delete mode 100644 vcpkg/ports/tiff/vcpkg.json diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 8c3aaf2d3..7dfa0de82 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -57,7 +57,6 @@ jobs: uses: maxim-lobanov/setup-xcode@v1.6.0 with: xcode-version: ${{ env.XC_VERSION }} - - name: Extract Mergin API_KEY env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} @@ -133,7 +132,6 @@ jobs: ninja - name: run tests - if: ${{ matrix.triplet != 'x64-osx' }} env: TEST_MERGIN_URL: https://app.dev.merginmaps.com/ TEST_API_USERNAME: test_mobileapp2 @@ -214,7 +212,7 @@ jobs: export API_KEY_PATH=authkey.p8 fi - export APP_PATH=$(pwd)/universal/Input.app + export APP_PATH=${{ github.workspace }}/install-mm/Input.app export DMG_PATH=merginmaps_app.dmg ./scripts/create_dmg.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bf006fe6..8648211a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,13 @@ if (ANDROID_ABI) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) - set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets + if (DEFINED ENV{ANDROIDAPI}) + set(ANDROIDAPI $ENV{ANDROIDAPI}) + else () + message(FATAL_ERROR "ANDROIDAPI not defined as env variable") + endif () + # set(ANDROIDAPI "28") +# when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets # *-android.cmake set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change @@ -45,7 +51,7 @@ if (IOS) set(PLATFORM "OS") set(ENABLE_ARC FALSE) set(ENABLE_BITCODE FALSE) - set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") # when changed change triplets arm64-ios.cmake + # set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") # when changed change triplets arm64-ios.cmake endif () if (APPLE AND NOT IOS) diff --git a/INSTALL.md b/INSTALL.md index eda6b3fa9..f40d6b0cb 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -114,6 +114,8 @@ in the file `VCPKG_BASELINE` in the repository. chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh ``` +======= +>>>>>>> df49e97f (use Qt from vcpkg) ## 2.4 ccache diff --git a/app/android/assets/qgis-data/proj/copyright b/app/android/assets/qgis-data/proj/copyright new file mode 100644 index 000000000..d46f95cd6 --- /dev/null +++ b/app/android/assets/qgis-data/proj/copyright @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. Frank Warmerdam placed +everything under the following MIT style license because he believed it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright +holder, but he didn't mean to imply he did the work. Essentially all work was +done by Gerald Evenden. + +Copyright information can be found in source files. + + -------------- + + 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/app/android/assets/qgis-data/proj/usage b/app/android/assets/qgis-data/proj/usage new file mode 100644 index 000000000..06eb04dee --- /dev/null +++ b/app/android/assets/qgis-data/proj/usage @@ -0,0 +1,9 @@ +proj provides CMake targets: + + find_package(PROJ CONFIG REQUIRED) + target_link_libraries(main PRIVATE PROJ::proj) + +proj provides pkg-config modules: + + # Coordinate transformation software library + proj diff --git a/cmake/FindQGIS.cmake b/cmake/FindQGIS.cmake index a3b94e871..13f53a382 100644 --- a/cmake/FindQGIS.cmake +++ b/cmake/FindQGIS.cmake @@ -1,5 +1,5 @@ # GPLv2 Licence -find_path(QGIS_INCLUDE_DIR qgis.hPATH_SUFFIXES qgis) +find_path(QGIS_INCLUDE_DIR qgis.h PATH_SUFFIXES qgis) find_library(QGIS_CORE_LIBRARY NAMES qgis_core) find_path(QGIS_RESOURCE_DIR qgis.db PATH_SUFFIXES share/qgis/resources) diff --git a/vcpkg.json b/vcpkg.json index f9cf4e14e..ff29b14a4 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -52,10 +52,6 @@ "default-features": false, "features": ["webp", "zip", "lzma", "jpeg", "zstd"] }, - { - "name": "kdab-openssl", - "platform": "android" - }, "geodiff", "nu-book-zxing-cpp", "gdal", diff --git a/vcpkg/ports/gdal/cmake-project-include.cmake b/vcpkg/ports/gdal/cmake-project-include.cmake deleted file mode 100644 index 409b7b1a6..000000000 --- a/vcpkg/ports/gdal/cmake-project-include.cmake +++ /dev/null @@ -1,13 +0,0 @@ -if(GDAL_USE_KEA) - find_package(Kealib CONFIG REQUIRED) - add_library(KEA::KEA ALIAS Kealib::Kealib) - set(GDAL_CHECK_PACKAGE_KEA_NAMES Kealib CACHE INTERNAL "vcpkg") - set(GDAL_CHECK_PACKAGE_KEA_TARGETS Kealib::Kealib CACHE INTERNAL "vcpkg") -endif() - -if(GDAL_USE_WEBP) - find_package(WebP CONFIG REQUIRED) - add_library(WEBP::WebP ALIAS WebP::webp) - set(GDAL_CHECK_PACKAGE_WebP_NAMES WebP CACHE INTERNAL "vcpkg") - set(GDAL_CHECK_PACKAGE_WebP_TARGETS WebP::webp CACHE INTERNAL "vcpkg") -endif() diff --git a/vcpkg/ports/gdal/find-link-libraries.patch b/vcpkg/ports/gdal/find-link-libraries.patch deleted file mode 100644 index a802e4264..000000000 --- a/vcpkg/ports/gdal/find-link-libraries.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff --git a/cmake/modules/packages/FindFreeXL.cmake b/cmake/modules/packages/FindFreeXL.cmake -index 6c86fb8..0634412 100644 ---- a/cmake/modules/packages/FindFreeXL.cmake -+++ b/cmake/modules/packages/FindFreeXL.cmake -@@ -37,7 +37,15 @@ include(SelectLibraryConfigurations) - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_FREEXL QUIET freexl) -+ pkg_check_modules(PC_FREEXL QUIET IMPORTED_TARGET freexl) -+endif() -+if(PC_FREEXL_FOUND) -+ set(FREEXL_INCLUDE_DIR "${PC_FREEXL_INCLUDE_DIRS}" CACHE STRING "") -+ set(FREEXL_LIBRARY "${PC_FREEXL_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET FREEXL::freexl) -+ add_library(FREEXL::freexl INTERFACE IMPORTED) -+ set_target_properties(FREEXL::freexl PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_FREEXL) -+ endif() - endif() - - find_path(FREEXL_INCLUDE_DIR -diff --git a/cmake/modules/packages/FindOpenJPEG.cmake b/cmake/modules/packages/FindOpenJPEG.cmake -index c697484..6e83222 100644 ---- a/cmake/modules/packages/FindOpenJPEG.cmake -+++ b/cmake/modules/packages/FindOpenJPEG.cmake -@@ -32,9 +32,18 @@ endfunction() - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_OPENJPEG QUIET libopenjp2) -+ pkg_check_modules(PC_OPENJPEG QUIET IMPORTED_TARGET libopenjp2) - set(OpenJPEG_VERSION_STRING ${PC_OPENJPEG_VERSION}) - endif() -+if(PC_OPENJPEG_FOUND) -+ set(OPENJPEG_INCLUDE_DIR "${PC_OPENJPEG_INCLUDE_DIRS}" CACHE STRING "") -+ set(OPENJPEG_LIBRARY "${PC_OPENJPEG_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET OPENJPEG::OpenJPEG) -+ add_library(OPENJPEG::OpenJPEG INTERFACE IMPORTED) -+ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PC_OPENJPEG_INCLUDE_DIRS}") -+ set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_OPENJPEG) -+ endif() -+endif() - - - find_path(OPENJPEG_INCLUDE_DIR opj_config.h -diff --git a/cmake/modules/packages/FindPoppler.cmake b/cmake/modules/packages/FindPoppler.cmake -index 3807ec0..8059eb4 100644 ---- a/cmake/modules/packages/FindPoppler.cmake -+++ b/cmake/modules/packages/FindPoppler.cmake -@@ -42,11 +42,19 @@ This module defines the following variables: - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_Poppler QUIET poppler) -+ pkg_check_modules(PC_Poppler QUIET IMPORTED_TARGET poppler) - if(PC_Poppler_VERSION) - set(Poppler_VERSION_STRING ${PC_Poppler_VERSION}) - endif() - endif() -+if(PC_Poppler_FOUND) -+ find_path(Poppler_INCLUDE_DIR NAMES Object.h PATHS ${PC_Poppler_INCLUDE_DIRS} NO_DEFAULT_PATH) -+ set(Poppler_LIBRARY "${PC_Poppler_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET Poppler::Poppler) -+ add_library(Poppler::Poppler INTERFACE IMPORTED) -+ set_target_properties(Poppler::Poppler PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler) -+ endif() -+endif() - find_path(Poppler_INCLUDE_DIR NAMES "poppler-config.h" "cpp/poppler-version.h" "qt5/poppler-qt5.h" "qt4/poppler-qt4.h" - "glib/poppler.h" - HINTS ${PC_Poppler_INCLUDE_DIRS} -@@ -77,6 +85,15 @@ endforeach() - foreach(_comp IN LISTS Poppler_known_components) - list(FIND Poppler_FIND_COMPONENTS "${_comp}" _nextcomp) - if(_nextcomp GREATER -1) -+ pkg_check_modules(PC_Poppler_${_comp} QUIET IMPORTED_TARGET ${Poppler_${_comp}_pkg_config}) -+ if(PC_Poppler_${_comp}_FOUND) -+ set(Poppler_${_comp}_INCLUDE_DIR "${PC_Poppler_${_comp}_INCLUDE_DIRS}" CACHE STRING "") -+ set(Poppler_${_comp}_LIBRARY "${PC_Poppler_${_comp}_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET Poppler::Poppler_${_comp}) -+ add_library(Poppler::${_comp} INTERFACE IMPORTED) -+ set_target_properties(Poppler::${_comp} PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler_${_comp}) -+ endif() -+ endif() - find_path(Poppler_${_comp}_INCLUDE_DIR - NAMES ${Poppler_${_comp}_header} - PATH_SUFFIXES poppler -diff --git a/cmake/modules/packages/FindSPATIALITE.cmake b/cmake/modules/packages/FindSPATIALITE.cmake -index 00612b0..6388719 100644 ---- a/cmake/modules/packages/FindSPATIALITE.cmake -+++ b/cmake/modules/packages/FindSPATIALITE.cmake -@@ -38,9 +38,17 @@ endif() - - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_SPATIALITE QUIET spatialite) -+ pkg_check_modules(PC_SPATIALITE QUIET IMPORTED_TARGET spatialite) - set(SPATIALITE_VERSION_STRING ${PC_SPATIALITE_VERSION}) - endif() -+if(PC_SPATIALITE_FOUND) -+ set(SPATIALITE_INCLUDE_DIR "${PC_SPATIALITE_INCLUDE_DIRS}" CACHE STRING "") -+ set(SPATIALITE_LIBRARY "${PC_SPATIALITE_LIBRARIES}" CACHE STRING "") -+ if(NOT TARGET SPATIALITE::SPATIALITE) -+ add_library(SPATIALITE::SPATIALITE INTERFACE IMPORTED) -+ set_target_properties(SPATIALITE::SPATIALITE PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_SPATIALITE) -+ endif() -+endif() - - find_path(SPATIALITE_INCLUDE_DIR - NAMES spatialite.h diff --git a/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch b/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch deleted file mode 100644 index bf159fce5..000000000 --- a/vcpkg/ports/gdal/fix-gdal-target-interfaces.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/cmake/helpers/GdalDriverHelper.cmake b/cmake/helpers/GdalDriverHelper.cmake -index 838f0fd..380e20d 100644 ---- a/cmake/helpers/GdalDriverHelper.cmake -+++ b/cmake/helpers/GdalDriverHelper.cmake -@@ -248,6 +248,10 @@ function(gdal_target_interfaces _TARGET) - if (_res) - target_compile_options(${_TARGET} PRIVATE ${_res}) - endif () -+ get_property(_res TARGET ${_LIB} PROPERTY INTERFACE_LINK_LIBRARIES) -+ if (_res) -+ gdal_target_interfaces(${_TARGET} ${_res}) -+ endif () - endif () - endforeach () - endfunction() diff --git a/vcpkg/ports/gdal/libkml.patch b/vcpkg/ports/gdal/libkml.patch deleted file mode 100644 index ef25d06de..000000000 --- a/vcpkg/ports/gdal/libkml.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/cmake/modules/packages/FindLibKML.cmake b/cmake/modules/packages/FindLibKML.cmake -index 9418247..589b83d 100644 ---- a/cmake/modules/packages/FindLibKML.cmake -+++ b/cmake/modules/packages/FindLibKML.cmake -@@ -56,6 +56,8 @@ find_library(LIBKML_BASE_LIBRARY - HINTS ${PC_LIBKML_LIBRARY_DIRS} ) - mark_as_advanced(LIBKML_BASE_LIBRARY) - -+cmake_policy(PUSH) -+cmake_policy(SET CMP0057 NEW) - set(libkml_known_components DOM CONVENIENCE ENGINE REGIONATOR) - foreach(_comp IN LISTS libkml_known_components) - if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) -@@ -99,21 +101,20 @@ find_package_handle_standard_args(LibKML - if(LIBKML_FOUND) - set(LIBKML_INCLUDE_DIRS "${LIBKML_INCLUDE_DIR}") - set(LIBKML_LIBRARIES "${LIBKML_BASE_LIBRARY}") -+ find_package(LibKML CONFIG REQUIRED) - if(NOT TARGET LIBKML::LibKML) -- add_library(LIBKML::LibKML UNKNOWN IMPORTED) -+ add_library(LIBKML::LibKML INTERFACE IMPORTED) - set_target_properties(LIBKML::LibKML PROPERTIES -- INTERFACE_INCLUDE_DIRECTORIES "${LIBKML_INCLUDE_DIR}" -- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" -- IMPORTED_LOCATION "${LIBKML_BASE_LIBRARY}") -+ INTERFACE_LINK_LIBRARIES kmlbase) - endif() - foreach(_comp IN LISTS libkml_known_components) - if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) -+ string(TOLOWER ${_comp} _name) - list(APPEND LIBKML_LIBRARIES "${LIBKML_${_comp}_LIBRARY}") - if(NOT TARGET LIBKML::${_comp}) -- add_library(LIBKML::${_comp} UNKNOWN IMPORTED) -+ add_library(LIBKML::${_comp} INTERFACE IMPORTED) - set_target_properties(LIBKML::${_comp} PROPERTIES -- IMPORTED_LINK_INTERFACE_LANGUAGES "C++" -- IMPORTED_LOCATION "${LIBKML_${_comp}_LIBRARY}") -+ INTERFACE_LINK_LIBRARIES kml${_name}) - endif() - endif() - endforeach() -@@ -129,3 +130,4 @@ if(LIBKML_FOUND) - endif() - endforeach() - endif() -+cmake_policy(POP) diff --git a/vcpkg/ports/gdal/portfile.cmake b/vcpkg/ports/gdal/portfile.cmake deleted file mode 100644 index fbced9391..000000000 --- a/vcpkg/ports/gdal/portfile.cmake +++ /dev/null @@ -1,148 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO OSGeo/gdal - REF "v${VERSION}" # keep up to date with vcpkg-overlay/libjpeg-turbo version - SHA512 c974977789092058540ace0e9192a17b0f593e770822a885181ec6eed4323e2f7a7a61963667ae8c9c8c8c0d2d8fb80d194ab4d918e6d4851f39abd1e1c948bc - HEAD_REF master - PATCHES - find-link-libraries.patch - fix-gdal-target-interfaces.patch - libkml.patch - target-is-valid.patch -) - -# `vcpkg clean` stumbles over one subdir -file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") - -# Avoid abseil, no matter if vcpkg or system -vcpkg_replace_string("${SOURCE_PATH}/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h" [[__has_include("absl/strings/string_view.h")]] "(0)") - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_PNG_INTERNAL=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_JSONC_INTERNAL=ON) - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ICONV=ON) -if(GDAL_USE_ICONV AND VCPKG_TARGET_IS_WINDOWS) - list(APPEND FEATURE_OPTIONS -D_ICONV_SECOND_ARGUMENT_IS_NOT_CONST=ON) -endif() - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBXML2=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_TIFF=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_CURL=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_WEBP=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_SQLITE3=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOS=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_GEOTIFF=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_SPATIALITE=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_EXPAT=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZLIB=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_FREEXL=ON) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_JPEG=ON) - - -list(APPEND FEATURE_OPTIONS -DGDAL_USE_KEA=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_POSTGRESQL=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_PCRE2=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_GIF=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_OPENJPEG=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_CFITSIO=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_HDF5=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_MYSQL=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_POPPLER=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ODBC=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_MSSQL_ODBC=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_ZSTD=OFF) -list(APPEND FEATURE_OPTIONS -DGDAL_USE_LIBKML=OFF) - -# Compatibility with older Android versions https://github.com/OSGeo/gdal/pull/5941 -if(VCPKG_TARGET_IS_ANDROID AND ANRDOID_PLATFORM VERSION_LESS 24 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) - list(APPEND FEATURE_OPTIONS -DBUILD_WITHOUT_64BIT_OFFSET=ON) -endif() - -# we want gdalinfo/ogrinfo on macOS to generate supported formats list -if(VCPKG_TARGET_IS_OSX) - list(APPEND FEATURE_OPTIONS -DBUILD_APPS=ON) -else() - list(APPEND FEATURE_OPTIONS -DBUILD_APPS=OFF) -endif() - -string(REPLACE "dynamic" "" qhull_target "Qhull::qhull${VCPKG_LIBRARY_LINKAGE}_r") - -# PCIDSK does not add compile interface defininions! -# do this instead of patching for now -# https://github.com/OSGeo/gdal/blob/af5b75ecc6b8d3cef36f2b6fecf085319d39a546/frmts/pcidsk/sdk/CMakeLists.txt#L84 -set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") -set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DRENAME_INTERNAL_LIBJPEG_SYMBOLS") - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # for host pkgconf in PATH - ${FEATURE_OPTIONS} - -DBUILD_DOCS=OFF - -DBUILD_PYTHON_BINDINGS=OFF - -DBUILD_TESTING=OFF - -DCMAKE_DISABLE_FIND_PACKAGE_CSharp=ON - -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON - -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON - -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON - -DGDAL_USE_INTERNAL_LIBS=OFF - -DGDAL_USE_EXTERNAL_LIBS=OFF - -DGDAL_BUILD_OPTIONAL_DRIVERS=ON - -DOGR_BUILD_OPTIONAL_DRIVERS=ON - -DGDAL_CHECK_PACKAGE_MySQL_NAMES=unofficial-libmariadb - -DGDAL_CHECK_PACKAGE_MySQL_TARGETS=unofficial::libmariadb - -DMYSQL_LIBRARIES=unofficial::libmariadb - -DGDAL_CHECK_PACKAGE_NetCDF_NAMES=netCDF - -DGDAL_CHECK_PACKAGE_NetCDF_TARGETS=netCDF::netcdf - -DGDAL_CHECK_PACKAGE_QHULL_NAMES=Qhull - "-DGDAL_CHECK_PACKAGE_QHULL_TARGETS=${qhull_target}" - "-DQHULL_LIBRARY=${qhull_target}" - -DCMAKE_PROJECT_INCLUDE="${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" - OPTIONS_DEBUG - -DBUILD_APPS=OFF - MAYBE_UNUSED_VARIABLES - QHULL_LIBRARY -) - -vcpkg_cmake_install() -vcpkg_copy_pdbs() -vcpkg_fixup_pkgconfig() -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gdal) -vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/gdal/GDALConfig.cmake" - "include(CMakeFindDependencyMacro)" - "include(CMakeFindDependencyMacro) -# gdal needs a pkg-config tool. A host dependency provides pkgconf. -get_filename_component(vcpkg_host_prefix \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" ABSOLUTE) -list(APPEND CMAKE_PROGRAM_PATH \"\${vcpkg_host_prefix}/tools/pkgconf\")" -) - -if(VCPKG_TARGET_IS_OSX) - vcpkg_copy_tools( - TOOL_NAMES - gdalinfo - ogrinfo - AUTO_CLEAN - ) -endif() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/gdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/gdal-config") - -file(GLOB bin_files "${CURRENT_PACKAGES_DIR}/bin/*") -if(NOT bin_files) - file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/bin" - "${CURRENT_PACKAGES_DIR}/debug/bin" - ) -endif() - -vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_PACKAGES_DIR}\"" "") - -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/gdal/target-is-valid.patch b/vcpkg/ports/gdal/target-is-valid.patch deleted file mode 100644 index 10f3dcfcf..000000000 --- a/vcpkg/ports/gdal/target-is-valid.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/cmake/helpers/CheckDependentLibrariesCommon.cmake b/cmake/helpers/CheckDependentLibrariesCommon.cmake -index ebb3538..a4a6d69 100644 ---- a/cmake/helpers/CheckDependentLibrariesCommon.cmake -+++ b/cmake/helpers/CheckDependentLibrariesCommon.cmake -@@ -41,6 +41,7 @@ endif() - # https://github.com/OSGeo/gdal/issues/5324 - function (gdal_check_target_is_valid target res_var) - get_target_property(_interface_include_directories ${target} "INTERFACE_INCLUDE_DIRECTORIES") -+ get_target_property(_type ${target} "TYPE") - if(_interface_include_directories) - foreach(_dir IN LISTS _interface_include_directories) - if(NOT EXISTS "${_dir}") -@@ -54,7 +55,7 @@ function (gdal_check_target_is_valid target res_var) - # property, but a GeoTIFF_INCLUDE_DIRS variable. - set_target_properties(${target} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${GeoTIFF_INCLUDE_DIRS}") -- else() -+ elseif(NOT _type STREQUAL "INTERFACE" AND _type STREQUAL "ALIAS") - message(WARNING "Target ${target} has no INTERFACE_INCLUDE_DIRECTORIES property. Ignoring that target.") - set(${res_var} FALSE PARENT_SCOPE) - return() diff --git a/vcpkg/ports/gdal/usage b/vcpkg/ports/gdal/usage deleted file mode 100644 index 6982a9a24..000000000 --- a/vcpkg/ports/gdal/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package GDAL provides CMake targets: - - find_package(GDAL CONFIG REQUIRED) - target_link_libraries(main PRIVATE GDAL::GDAL) diff --git a/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 5b70b673b..000000000 --- a/vcpkg/ports/gdal/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,23 +0,0 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0054 NEW) - -list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") -list(APPEND ARGS "CONFIG") -# The current port version should satisfy GDAL 3.0 ... 3.5 -list(GET ARGS 1 vcpkg_gdal_maybe_version) -if(vcpkg_gdal_maybe_version MATCHES "(^3\$|^3[.][0-5])") - list(REMOVE_AT ARGS "1") -endif() -unset(vcpkg_gdal_maybe_version) -_find_package(${ARGS} CONFIG) -if(GDAL_FOUND) - get_filename_component(vcpkg_gdal_prefix "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) - set(GDAL_INCLUDE_DIR "${vcpkg_gdal_prefix}/include" CACHE INTERNAL "") - set(GDAL_INCLUDE_DIRS "${GDAL_INCLUDE_DIR}") - set(GDAL_LIBRARY GDAL::GDAL CACHE INTERNAL "") - set(GDAL_LIBRARIES "${GDAL_LIBRARY}") - unset(vcpkg_gdal_prefix) -endif() - -cmake_policy(POP) diff --git a/vcpkg/ports/gdal/vcpkg.json b/vcpkg/ports/gdal/vcpkg.json deleted file mode 100644 index 335ff27ef..000000000 --- a/vcpkg/ports/gdal/vcpkg.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "gdal", - "version-semver": "3.10.2", - "port-version": 0, - "description": "The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data", - "homepage": "https://gdal.org", - "license": null, - "supports": "!uwp", - "dependencies": [ - "proj", - "tiff", - "zlib", - "sqlite3", - "curl", - "geos", - "freexl", - "libspatialindex", - "libspatialite", - "protobuf", - "exiv2", - "libiconv", - "libxml2", - "libgeotiff", - "expat", - "libjpeg-turbo", - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - }, - { - "name": "vcpkg-pkgconfig-get-modules", - "host": true - } - ] -} diff --git a/vcpkg/ports/json-c/pkgconfig.patch b/vcpkg/ports/json-c/pkgconfig.patch deleted file mode 100644 index 893406ed5..000000000 --- a/vcpkg/ports/json-c/pkgconfig.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ffb1db3dc..a82ed8619 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -273,7 +273,7 @@ install( - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} - ) - --if (UNIX OR MINGW OR CYGWIN) -+if (1) - SET(prefix ${CMAKE_INSTALL_PREFIX}) - # exec_prefix is prefix by default and CMake does not have the - # concept. diff --git a/vcpkg/ports/json-c/portfile.cmake b/vcpkg/ports/json-c/portfile.cmake deleted file mode 100644 index d0893ebee..000000000 --- a/vcpkg/ports/json-c/portfile.cmake +++ /dev/null @@ -1,24 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO json-c/json-c - REF eae040a84a479ccad1d1c48314345c51ecf1a4a4 - SHA512 18d8a31b341830b04676cad13fbc0608fb75a323522161ac8fd0bb5058db82c1c261d504696a1e12f4b03eb0967632885580ff81d808adf2f1dff7e32d131ba0 - HEAD_REF master - PATCHES pkgconfig.patch -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA -) - -vcpkg_install_cmake() - -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) -vcpkg_fixup_pkgconfig() -vcpkg_copy_pdbs() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -# Handle copyright -configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/vcpkg/ports/json-c/vcpkg.json b/vcpkg/ports/json-c/vcpkg.json deleted file mode 100644 index ff61b336e..000000000 --- a/vcpkg/ports/json-c/vcpkg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "json-c", - "version-string": "2019-09-10", - "port-version": 2, - "description": "A JSON implementation in C", - "homepage": "https://github.com/json-c/json-c" -} diff --git a/vcpkg/ports/kdab-openssl/portfile.cmake b/vcpkg/ports/kdab-openssl/portfile.cmake deleted file mode 100644 index a42acf2b3..000000000 --- a/vcpkg/ports/kdab-openssl/portfile.cmake +++ /dev/null @@ -1,30 +0,0 @@ -set(KDAB_OPENSSL_GIT_TAG "82c850cbc602ca4d20c82552e618b0a98b196f3c") - -# on Android we need openssl shared libraries for some QT network modules -if(NOT VCPKG_TARGET_IS_ANDROID) - message(FATAL_ERROR "KDAB-openssl shared libraries only needed on Android") -else() - vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/KDAB/android_openssl/archive/${KDAB_OPENSSL_GIT_TAG}.tar.gz" - FILENAME "kdab-openssl-${VERSION}.tar.gz" - SHA512 7f61c1fc0f6f38eac5da81234194b9fe5bcbf575c968ae90b8a734466aa818ce87b167defc4a60af166266bfafeaa03c6e6b8cb27fd39cdf214d464613f0c4d8 - ) - - vcpkg_extract_source_archive( - SOURCE_PATH - ARCHIVE "${ARCHIVE}" - SOURCE_BASE "v${VERSION}" - ) - - if (${TARGET_TRIPLET} STREQUAL "arm-android") - set(OPENSSL_ARCH "armeabi-v7a") - elseif (${TARGET_TRIPLET} STREQUAL "arm64-android") - set(OPENSSL_ARCH "arm64-v8a") - else() - message(FATAL_ERROR "KDAB-openssl unsupported platform ${TARGET_TRIPLET}") - endif() - - file(INSTALL ${SOURCE_PATH}/ssl_3/include/openssl/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/kdab-openssl/ ) - file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libssl_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) - file(INSTALL ${SOURCE_PATH}/ssl_3/${OPENSSL_ARCH}/libcrypto_3.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib/kdab-openssl/) -endif() diff --git a/vcpkg/ports/kdab-openssl/vcpkg.json b/vcpkg/ports/kdab-openssl/vcpkg.json deleted file mode 100644 index 6f16afda0..000000000 --- a/vcpkg/ports/kdab-openssl/vcpkg.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "kdab-openssl", - "version": "3.1.1", - "description": "OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols", - "homepage": "https://www.openssl.org", - "license": "Apache-2.0", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch b/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch deleted file mode 100644 index 0c90e50ef..000000000 --- a/vcpkg/ports/libiconv/0002-Config-for-MSVC.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h" -index 6dc011b..158ccdd 100644 ---- "a/lib/loop_wchar.h" -+++ "b/lib/loop_wchar.h" -@@ -37,7 +37,7 @@ - # include - # define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ - /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ -- extern size_t mbrtowc (); -+// extern size_t mbrtowc (); - # ifdef mbstate_t - # define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) - # define mbsinit(ps) 1 - \ No newline at end of file diff --git a/vcpkg/ports/libiconv/0003-Add-export.patch b/vcpkg/ports/libiconv/0003-Add-export.patch deleted file mode 100644 index c8d131d2e..000000000 --- a/vcpkg/ports/libiconv/0003-Add-export.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -uNr libiconv-1.16/libcharset/include/libcharset.h.in libiconv-1.16-work/libcharset/include/libcharset.h.in ---- libiconv-1.16/libcharset/include/libcharset.h.in 2018-09-17 19:07:42.000000000 +0300 -+++ libiconv-1.16-work/libcharset/include/libcharset.h.in 2019-12-04 17:15:50.000000000 +0300 -@@ -33,7 +33,7 @@ - by the corresponding pathname with the current prefix instead. Both - prefixes should be directory names without trailing slash (i.e. use "" - instead of "/"). */ --extern void libcharset_set_relocation_prefix (const char *orig_prefix, -+extern void LIBCHARSET_DLL_EXPORTED libcharset_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - - diff --git a/vcpkg/ports/libiconv/0004-ModuleFileName.patch b/vcpkg/ports/libiconv/0004-ModuleFileName.patch deleted file mode 100644 index 15ceb2a41..000000000 --- a/vcpkg/ports/libiconv/0004-ModuleFileName.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/relocatable.c b/lib/relocatable.c -index 89b6c27..1561894 100644 ---- a/lib/relocatable.c -+++ b/lib/relocatable.c -@@ -329,7 +329,7 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) - /* The DLL is being loaded into an application's address range. */ - static char location[MAX_PATH]; - -- if (!GetModuleFileName (module_handle, location, sizeof (location))) -+ if (!GetModuleFileNameA (module_handle, location, sizeof (location))) - /* Shouldn't happen. */ - return FALSE; - diff --git a/vcpkg/ports/libiconv/portfile.cmake b/vcpkg/ports/libiconv/portfile.cmake deleted file mode 100644 index 8bf88682c..000000000 --- a/vcpkg/ports/libiconv/portfile.cmake +++ /dev/null @@ -1,53 +0,0 @@ -if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID AND NOT VCPKG_TARGET_IS_IOS) - set(VCPKG_POLICY_EMPTY_PACKAGE enabled) - file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/iconv") - file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") - return() -endif() - -set(LIBICONV_VERSION 1.16) - -vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" - FILENAME "libiconv-${LIBICONV_VERSION}.tar.gz" - SHA512 365dac0b34b4255a0066e8033a8b3db4bdb94b9b57a9dca17ebf2d779139fe935caf51a465d17fd8ae229ec4b926f3f7025264f37243432075e5583925bb77b7 -) -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - REF ${LIBICONV_VERSION} - PATCHES - 0002-Config-for-MSVC.patch - 0003-Add-export.patch - 0004-ModuleFileName.patch -) - -if (NOT VCPKG_TARGET_IS_ANDROID) - list(APPEND OPTIONS --enable-relocatable) -endif() - -vcpkg_configure_make( - SOURCE_PATH "${SOURCE_PATH}" - DETERMINE_BUILD_TRIPLET - USE_WRAPPERS - OPTIONS - --enable-extra-encodings - --without-libiconv-prefix - --without-libintl-prefix - ${OPTIONS} -) -vcpkg_install_make() - -vcpkg_copy_pdbs() -vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") -vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") - -file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") - -set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}") # share contains unneeded doc files - -# Please keep, the default usage is broken -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libiconv/usage b/vcpkg/ports/libiconv/usage deleted file mode 100644 index db47c33e8..000000000 --- a/vcpkg/ports/libiconv/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package libiconv provides CMake targets: - - find_package(Iconv) - target_link_libraries(main PRIVATE Iconv::Iconv) diff --git a/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 8e25449ae..000000000 --- a/vcpkg/ports/libiconv/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,21 +0,0 @@ -include(SelectLibraryConfigurations) - -_find_package(${ARGS}) -if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) - find_path(CHARSET_INCLUDE_DIR NAMES "libcharset.h" HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") - find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug") - find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") - select_library_configurations(CHARSET) - if(NOT TARGET Iconv::Charset) - add_library(Iconv::Charset INTERFACE IMPORTED) - set_target_properties(Iconv::Charset PROPERTIES - INTERFACE_LINK_LIBRARIES "\$<\$>:${CHARSET_LIBRARY_RELEASE}>;\$<\$:${CHARSET_LIBRARY_DEBUG}>" - INTERFACE_INCLUDE_DIRECTORIES "${CHARSET_INCLUDE_DIRS}") - endif() - if(CHARSET_LIBRARIES) - list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES}) - if(TARGET Iconv::Iconv) - set_property(TARGET Iconv::Iconv APPEND PROPERTY INTERFACE_LINK_LIBRARIES Iconv::Charset) - endif() - endif() -endif() diff --git a/vcpkg/ports/libiconv/vcpkg.json b/vcpkg/ports/libiconv/vcpkg.json deleted file mode 100644 index b567aee18..000000000 --- a/vcpkg/ports/libiconv/vcpkg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "libiconv", - "version": "1.16", - "port-version": 13, - "description": "GNU Unicode text conversion", - "homepage": "https://www.gnu.org/software/libiconv/" -} diff --git a/vcpkg/ports/libjpeg-turbo/CMakeLists.txt b/vcpkg/ports/libjpeg-turbo/CMakeLists.txt deleted file mode 100644 index e1fa17184..000000000 --- a/vcpkg/ports/libjpeg-turbo/CMakeLists.txt +++ /dev/null @@ -1,82 +0,0 @@ -# see https://github.com/OSGeo/gdal/blob/master/frmts/jpeg/libjpeg/CMakeLists.txt -cmake_minimum_required(VERSION 3.6) -project(JPEG) - -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - -add_library( - jpeg ${JPEG_BUILD_TYPE} - jcapimin.c - jchuff.h - jconfig.h - jdapimin.c - jdct.h - jdmarker.c - jdtrans.c - jidctflt.c - jmemmgr.c - jquant2.c - jcapistd.c - jcinit.c - jcparam.c - jdapistd.c - jddctmgr.c - jdmaster.c - jerror.c - jidctfst.c - jmemsys.h - jutils.c - jccoefct.c - jcmainct.c - jcphuff.c - jdatadst.c - jdhuff.c - jdmerge.c - jerror.h - jidctint.c - jmorecfg.h - jversion.h - jccolor.c - jcmarker.c - jcprepct.c - jdatasrc.c - jdhuff.h - jdphuff.c - jfdctflt.c - jidctred.c - jpegint.h - jcdctmgr.c - jcmaster.c - jcsample.c - jdcoefct.c - jdinput.c - jdpostct.c - jfdctfst.c - jinclude.h - jpeglib.h - jchuff.c - jcomapi.c - jctrans.c - jdcolor.c - jdmainct.c - jdsample.c - jfdctint.c - jmemnobs.c - jquant1.c) - -target_include_directories(jpeg PRIVATE $ $/..) -# target_compile_options(libjpeg PRIVATE ${GDAL_C_WARNING_FLAGS} ${GDAL_SOFTWARNFLAGS}) - -target_compile_definitions(jpeg PRIVATE -DDEFAULT_MAX_MEM=500000000L) -target_compile_definitions(jpeg PUBLIC -DRENAME_INTERNAL_LIBJPEG_SYMBOLS) - -# produce position independent code, default is on when building a shared library -# option(GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE "Set ON to produce -fPIC code" ${BUILD_SHARED_LIBS}) -# set_property(TARGET jpeg PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE}) -# target_sources(${GDAL_LIB_TARGET_NAME} PRIVATE $) - -configure_file(libjpeg.pc.in libjpeg.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjpeg.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) - -INSTALL(TARGETS jpeg) -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include FILES_MATCHING PATTERN "*.h") \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/cpl_port.h b/vcpkg/ports/libjpeg-turbo/cpl_port.h deleted file mode 100644 index 30fe16696..000000000 --- a/vcpkg/ports/libjpeg-turbo/cpl_port.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef CPL_BASE_H_INCLUDED_TWEAKED -#define CPL_BASE_H_INCLUDED_TWEAKED - -#if defined(__GNUC__) && __GNUC__ >= 4 -/** Qualifier for an argument that is unused */ -# define CPL_UNUSED __attribute((__unused__)) -#else -/* TODO: add cases for other compilers */ -/** Qualifier for an argument that is unused */ -# define CPL_UNUSED -#endif - -#endif /* ndef CPL_BASE_H_INCLUDED_TWEAKED */ \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in b/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in deleted file mode 100644 index ddc7882e7..000000000 --- a/vcpkg/ports/libjpeg-turbo/libjpeg.pc.in +++ /dev/null @@ -1,8 +0,0 @@ -prefix=@CMAKE_INSTALL_PREFIX@ - -Name: libjpeg -Version: 6b -Description: jpeg with renamed symbols -URL: https://gdal.org -Libs: -L${prefix}/lib -ljpeg -Cflags: -I${prefix}/include -DRENAME_INTERNAL_JPEG_SYMBOLS \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/portfile.cmake b/vcpkg/ports/libjpeg-turbo/portfile.cmake deleted file mode 100644 index 6428bf1e5..000000000 --- a/vcpkg/ports/libjpeg-turbo/portfile.cmake +++ /dev/null @@ -1,34 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO OSGeo/gdal - REF "v${VERSION}" # keep up to date with vcpkg-overlay/gdal version - SHA512 dfc7ccf5c1a3184fa93be762a880b7631faa4cd178cd72df8f5fd8a6296edafc56de2594617bebcb75ddf19ed4471dafcb574b22d7e9217dedfd7ea72c9247f2 - HEAD_REF master -) - -# `vcpkg clean` stumbles over one subdir -file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") - -file(REMOVE "${SOURCE_PATH}/frmts/jpeg/libjpeg/CMakeLists.txt") -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/cpl_port.h DESTINATION ${SOURCE_PATH}/frmts/jpeg/) -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/libjpeg.pc.in DESTINATION ${SOURCE_PATH}/frmts/jpeg/libjpeg/) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="STATIC") -else() - list(APPEND LINK_OPTIONS -DJPEG_BUILD_TYPE="SHARED") -endif() - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}/frmts/jpeg/libjpeg" - OPTIONS - ${LINK_OPTIONS} -) - -vcpkg_cmake_install() -vcpkg_copy_pdbs() -vcpkg_fixup_pkgconfig() - -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jpeg") -file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 28456a89f..000000000 --- a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,19 +0,0 @@ -find_path(JPEG_INCLUDE_DIRS NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) -find_library(JPEG_LIBRARY NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - JPEG - REQUIRED_VARS JPEG_LIBRARY JPEG_INCLUDE_DIRS -) - -if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) - add_library(JPEG::JPEG UNKNOWN IMPORTED) - set_target_properties(JPEG::JPEG PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") - set_target_properties(JPEG::JPEG PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${JPEG_LIBRARY}") - - set_target_properties(JPEG::JPEG PROPERTIES INTERFACE_COMPILE_OPTIONS "-DRENAME_INTERNAL_LIBJPEG_SYMBOLS") -endif() \ No newline at end of file diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg.json b/vcpkg/ports/libjpeg-turbo/vcpkg.json deleted file mode 100644 index f2113622e..000000000 --- a/vcpkg/ports/libjpeg-turbo/vcpkg.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "libjpeg-turbo", - "version-semver": "3.7.0", - "description": "JPEG image codec; taken from GDAL so on iOS it has renamed symbols and does not clash with Qt JPEG; this is NOT jpeg-turbo - name used so we do not need to patch all other libraries that uses JPEG", - "homepage": "https://gdal.org", - "license": null, - "supports": "!uwp", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - }, - { - "name": "vcpkg-pkgconfig-get-modules", - "host": true - } - ] -} diff --git a/vcpkg/ports/liblzma/add_support_ios.patch b/vcpkg/ports/liblzma/add_support_ios.patch deleted file mode 100644 index 79741639b..000000000 --- a/vcpkg/ports/liblzma/add_support_ios.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 52439b3..0b5e371 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -574,6 +574,7 @@ if(HAVE_GETOPT_LONG) - - install(TARGETS xzdec - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" -+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" - COMPONENT xzdec) - - if(UNIX) -@@ -701,6 +702,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) - - install(TARGETS xz - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" -+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" - COMPONENT xz) - - if(UNIX) diff --git a/vcpkg/ports/liblzma/build-tools.patch b/vcpkg/ports/liblzma/build-tools.patch deleted file mode 100644 index 759345ef2..000000000 --- a/vcpkg/ports/liblzma/build-tools.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 03b8301..820d08e 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -584,6 +584,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config.cmake" - COMPONENT liblzma_Development) - - -+if(BUILD_TOOLS) - ############################################################################# - # getopt_long - ############################################################################# -@@ -793,6 +794,7 @@ if(NOT MSVC AND HAVE_GETOPT_LONG) - endforeach() - endif() - endif() -+endif() - - - ############################################################################# diff --git a/vcpkg/ports/liblzma/fix_config_include.patch b/vcpkg/ports/liblzma/fix_config_include.patch deleted file mode 100644 index 91dc4c13b..000000000 --- a/vcpkg/ports/liblzma/fix_config_include.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 34c6aca00..7b3708ab2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -413,6 +413,7 @@ if(WIN32) - if(BUILD_SHARED_LIBS) - # Add the Windows resource file for liblzma.dll. - target_sources(liblzma PRIVATE src/liblzma/liblzma_w32res.rc) -+ target_include_directories(liblzma PRIVATE windows/vs2019) - - set_target_properties(liblzma PROPERTIES - LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" diff --git a/vcpkg/ports/liblzma/portfile.cmake b/vcpkg/ports/liblzma/portfile.cmake deleted file mode 100644 index 0fdc38dff..000000000 --- a/vcpkg/ports/liblzma/portfile.cmake +++ /dev/null @@ -1,86 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO tukaani-project/xz - REF "v${VERSION}" - SHA512 c28461123562564e030f3f733f078bc4c840e87598d9f4b718d4bca639120d8133f969c45d7bdc62f33f081d789ec0f14a1791fb7da18515682bfe3c0c7362e0 - HEAD_REF master - PATCHES - fix_config_include.patch - win_output_name.patch # Fix output name on Windows. Autotool build does not generate lib prefixed libraries on windows. - add_support_ios.patch # add install bundle info for support ios - build-tools.patch -) - -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - tools BUILD_TOOLS -) - -if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") - set(WASM_OPTIONS -DCMAKE_C_BYTE_ORDER=LITTLE_ENDIAN -DCMAKE_CXX_BYTE_ORDER=LITTLE_ENDIAN) -endif() - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${FEATURE_OPTIONS} - ${WASM_OPTIONS} - -DBUILD_TESTING=OFF - -DCREATE_XZ_SYMLINKS=OFF - -DCREATE_LZMA_SYMLINKS=OFF - -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT= # using flags from (vcpkg) toolchain - MAYBE_UNUSED_VARIABLES - CMAKE_MSVC_DEBUG_INFORMATION_FORMAT - CREATE_XZ_SYMLINKS - CREATE_LZMA_SYMLINKS -) -vcpkg_cmake_install() -vcpkg_copy_pdbs() - -set(exec_prefix "\${prefix}") -set(libdir "\${prefix}/lib") -set(includedir "\${prefix}/include") -set(PACKAGE_URL https://tukaani.org/xz/) -set(PACKAGE_VERSION 5.4.3) -if(NOT VCPKG_TARGET_IS_WINDOWS) - set(PTHREAD_CFLAGS -pthread) -endif() -set(prefix "${CURRENT_INSTALLED_DIR}") -configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/liblzma.pc" @ONLY) -if (NOT VCPKG_BUILD_TYPE) - set(prefix "${CURRENT_INSTALLED_DIR}/debug") - configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/liblzma.pc" @ONLY) -endif() -vcpkg_fixup_pkgconfig() - -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/liblzma) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "1") -else() - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "0") -endif() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/share/man" -) - -set(TOOLS xz xzdec) -foreach(_tool IN LISTS TOOLS) - if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") - list(REMOVE_ITEM TOOLS ${_tool}) - endif() -endforeach() -if(TOOLS) - vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) -endif() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") -endif() - -file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/liblzma/usage b/vcpkg/ports/liblzma/usage deleted file mode 100644 index b1461c93f..000000000 --- a/vcpkg/ports/liblzma/usage +++ /dev/null @@ -1,9 +0,0 @@ -liblzma is compatible with built-in CMake targets: - - find_package(LibLZMA REQUIRED) - target_link_libraries(main PRIVATE LibLZMA::LibLZMA) - -liblzma provides CMake targets: - - find_package(liblzma CONFIG REQUIRED) - target_link_libraries(main PRIVATE liblzma::liblzma) diff --git a/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 826cdba06..000000000 --- a/vcpkg/ports/liblzma/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,64 +0,0 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0057 NEW) -set(z_vcpkg_liblzma_fixup_needed 0) -if(NOT "CONFIG" IN_LIST ARGS AND NOT "NO_MODULE" IN_LIST ARGS AND NOT CMAKE_DISABLE_FIND_PACKAGE_LibLZMA) - get_filename_component(z_vcpkg_liblzma_prefix "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) - get_filename_component(z_vcpkg_liblzma_prefix "${z_vcpkg_liblzma_prefix}" DIRECTORY) - find_path(LIBLZMA_INCLUDE_DIR NAMES lzma.h PATHS "${z_vcpkg_liblzma_prefix}/include" NO_DEFAULT_PATH) - # liblzma doesn't use a debug postfix, but FindLibLZMA.cmake expects it - find_library(LIBLZMA_LIBRARY_RELEASE NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/lib" NO_DEFAULT_PATH) - find_library(LIBLZMA_LIBRARY_DEBUG NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/debug/lib" NO_DEFAULT_PATH) - unset(z_vcpkg_liblzma_prefix) - if(CMAKE_VERSION VERSION_LESS 3.16) - # Older versions of FindLibLZMA.cmake need a single lib in LIBLZMA_LIBRARY. - set(z_vcpkg_liblzma_fixup_needed 1) - set(LIBLZMA_LIBRARY "${LIBLZMA_LIBRARY_RELEASE}" CACHE INTERNAL "") - elseif(NOT TARGET LibLZMA::LibLZMA) - set(z_vcpkg_liblzma_fixup_needed 1) - endif() - # Known values, and required. Skip expensive tests. - set(LIBLZMA_HAS_AUTO_DECODER 1 CACHE INTERNAL "") - set(LIBLZMA_HAS_EASY_ENCODER 1 CACHE INTERNAL "") - set(LIBLZMA_HAS_LZMA_PRESET 1 CACHE INTERNAL "") -endif() - -_find_package(${ARGS}) - -if(z_vcpkg_liblzma_fixup_needed) - include(SelectLibraryConfigurations) - select_library_configurations(LIBLZMA) - if(NOT TARGET LibLZMA::LibLZMA) - # Backfill LibLZMA::LibLZMA to versions of cmake before 3.14 - add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED) - if(DEFINED LIBLZMA_INCLUDE_DIRS) - set_target_properties(LibLZMA::LibLZMA PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${LIBLZMA_INCLUDE_DIRS}") - endif() - set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY - IMPORTED_CONFIGURATIONS RELEASE) - set_target_properties(LibLZMA::LibLZMA PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" - IMPORTED_LOCATION_RELEASE "${LIBLZMA_LIBRARY_RELEASE}") - if(EXISTS "${LIBLZMA_LIBRARY}") - set_target_properties(LibLZMA::LibLZMA PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${LIBLZMA_LIBRARY}") - endif() - endif() - if(LIBLZMA_LIBRARY_DEBUG) - # Backfill debug variant to versions of cmake before 3.16 - set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBLZMA_LIBRARY_DEBUG}") - endif() -endif() -if(LIBLZMA_LIBRARIES AND NOT "Threads::Threads" IN_LIST LIBLZMA_LIBRARIES) - set(THREADS_PREFER_PTHREAD_FLAG TRUE) - find_package(Threads) - list(APPEND LIBLZMA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) - if(TARGET LibLZMA::LibLZMA) - set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) - endif() -endif() -unset(z_vcpkg_liblzma_fixup_needed) -cmake_policy(POP) diff --git a/vcpkg/ports/liblzma/vcpkg.json b/vcpkg/ports/liblzma/vcpkg.json deleted file mode 100644 index e9168357c..000000000 --- a/vcpkg/ports/liblzma/vcpkg.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "liblzma", - "version": "5.4.4", - "description": "Compression library with an API similar to that of zlib.", - "homepage": "https://tukaani.org/xz/", - "license": null, - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ], - "features": { - "tools": { - "description": "Build tools", - "supports": "!windows, mingw" - } - } -} diff --git a/vcpkg/ports/liblzma/win_output_name.patch b/vcpkg/ports/liblzma/win_output_name.patch deleted file mode 100644 index 9a845bdba..000000000 --- a/vcpkg/ports/liblzma/win_output_name.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0c6d4b7..62a824a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -868,8 +868,11 @@ set_target_properties(liblzma PROPERTIES - - # It's liblzma.so or liblzma.dll, not libliblzma.so or lzma.dll. - # Avoid the name lzma.dll because it would conflict with LZMA SDK. -- PREFIX "" -+ OUTPUT_NAME lzma - ) -+if(WIN32 AND NOT MINGW) -+ set_target_properties(liblzma PROPERTIES RUNTIME_OUTPUT_NAME liblzma) -+endif() - - # Create liblzma-config-version.cmake. - # diff --git a/vcpkg/ports/libpq/Makefile b/vcpkg/ports/libpq/Makefile deleted file mode 100644 index 67994f4ba..000000000 --- a/vcpkg/ports/libpq/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -subdir = . -top_builddir = . -include src/Makefile.global - -ifeq ($(LIBPQ_LIBRARY_TYPE), static) -LIBPQ_INSTALL_LIBS = install-stlib -endif - -ifeq ($(LIBPQ_LIBRARY_TYPE), shared) -ifeq ($(LIBPQ_USING_MINGW), yes) -# The import library name is the same as the static library name -EXTRA_TARGET = install-lib-static -endif -endif - -.PHONY: all -all: - $(MAKE) -C src/include - $(MAKE) -C src/common - $(MAKE) -C src/port - $(MAKE) -C src/interfaces/libpq all-$(LIBPQ_LIBRARY_TYPE)-lib - $(MAKE) -C src/interfaces/ecpg/include - $(MAKE) -C src/interfaces/ecpg/pgtypeslib - $(MAKE) -C src/interfaces/ecpg/ecpglib - $(MAKE) -C src/interfaces/ecpg/compatlib -ifeq ($(LIBPQ_ENABLE_TOOLS), yes) - $(MAKE) -C src/interfaces/ecpg/preproc - $(MAKE) -C src/fe_utils - $(MAKE) -C src/bin -else - $(MAKE) -C src/bin/pg_config -endif - -.PHONY: install-stlib -install-stlib: - $(MAKE) -C src/common install -o all - rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a' - $(MAKE) -C src/port install -o all - rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a' - -.PHONY: install -install: $(LIBPQ_INSTALL_LIBS) - $(MAKE) -C src/include install - $(MAKE) -C src/interfaces/libpq $(EXTRA_TARGET) install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib-pc install -o all -o install-lib - $(MAKE) -C src/interfaces/ecpg/include install - $(MAKE) -C src/interfaces/ecpg/pgtypeslib install - $(MAKE) -C src/interfaces/ecpg/ecpglib install - $(MAKE) -C src/interfaces/ecpg/compatlib install -ifeq ($(LIBPQ_ENABLE_TOOLS), yes) - $(MAKE) -C src/interfaces/ecpg/preproc install - $(MAKE) -C src/bin install -else - $(MAKE) -C src/bin/pg_config install -endif diff --git a/vcpkg/ports/libpq/android/unversioned_so.patch b/vcpkg/ports/libpq/android/unversioned_so.patch deleted file mode 100644 index 42096a367..000000000 --- a/vcpkg/ports/libpq/android/unversioned_so.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/Makefile.shlib b/src/Makefile.shlib -index f94d59d1c597..8ca51ca03f75 100644 ---- a/src/Makefile.shlib -+++ b/src/Makefile.shlib -@@ -183,6 +183,11 @@ endif - ifeq ($(PORTNAME), linux) - LINK.shared = $(COMPILER) -shared - ifdef soname -+ ifneq (,$(findstring linux-android,$(host_os))) -+ # Android uses unversioned shared libraries -+ shlib = $(shlib_bare) -+ soname = $(shlib_bare) -+ endif - LINK.shared += -Wl,-soname,$(soname) - endif - BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ diff --git a/vcpkg/ports/libpq/build-msvc.cmake b/vcpkg/ports/libpq/build-msvc.cmake deleted file mode 100644 index 34d969487..000000000 --- a/vcpkg/ports/libpq/build-msvc.cmake +++ /dev/null @@ -1,80 +0,0 @@ -function(build_msvc build_type source_path) - if(build_type STREQUAL "DEBUG") - set(vcpkg_configuration "Debug") - set(label "${TARGET_TRIPLET}-dbg") - set(packages_dir "${CURRENT_PACKAGES_DIR}/debug") - else() - set(vcpkg_configuration "Release") - set(label "${TARGET_TRIPLET}-rel") - set(packages_dir "${CURRENT_PACKAGES_DIR}") - endif() - - set(build_path "${CURRENT_BUILDTREES_DIR}/${label}") - file(REMOVE_RECURSE "${build_path}") - file(COPY "${source_path}/" DESTINATION "${build_path}") - - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_replace_string("${build_path}/src/include/port/win32.h" "__declspec (dllimport)" "") - endif() - vcpkg_replace_string("${build_path}/src/tools/msvc/MSBuildProject.pm" "perl " "\"${PERL}\" ") - configure_file("${CURRENT_PORT_DIR}/libpq.props.in" "${build_path}/libpq.props" @ONLY) - configure_file("${CURRENT_PORT_DIR}/vcpkg-libs.props.in" "${build_path}/vcpkg-libs.props" @ONLY) - set(config "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n\n") - foreach(var IN ITEMS VCPKG_TARGET_ARCHITECTURE VCPKG_LIBRARY_LINKAGE VCPKG_CRT_LINKAGE) - string(APPEND config "\$config->{${var}} = \"${${var}}\";\n") - endforeach() - foreach(option IN ITEMS icu lz4 nls openssl python tcl xml xslt zlib zstd) - if(option IN_LIST FEATURES) - string(APPEND config "\$config->{${option}} = \"${CURRENT_INSTALLED_DIR}\";\n") - endif() - endforeach() - if("openssl" IN_LIST FEATURES) - file(STRINGS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/openssl.pc" OPENSSL_VERSION REGEX "Version:") - string(APPEND config "\$config->{openssl_version} = '${OPENSSL_VERSION}';\n") - endif() - string(APPEND config "\$config->{python_version} = '3.${PYTHON_VERSION_MINOR}';\n") - string(APPEND config "\$config->{tcl_version} = '90';\n") - file(WRITE "${build_path}/src/tools/msvc/config.pl" "${config}") - - set(build_in_parallel "-m") - set(build_targets libpq libecpg_compat) - set(install_target core) - if(HAS_TOOLS AND NOT build_type STREQUAL "DEBUG") - set(build_in_parallel "") # mitigate winflex races - set(build_targets client) - set(install_target client) - endif() - - string(REPLACE "x86" "Win32" platform "${VCPKG_TARGET_ARCHITECTURE}") - vcpkg_get_windows_sdk(VCPKG_TARGET_PLATFORM_VERSION) - set(ENV{MSBFLAGS} "\ - /p:Platform=${platform} \ - /p:PlatformToolset=${VCPKG_PLATFORM_TOOLSET} \ - /p:VCPkgLocalAppDataDisabled=true \ - /p:UseIntelMKL=No \ - /p:WindowsTargetPlatformVersion=${VCPKG_TARGET_PLATFORM_VERSION} \ - /p:VcpkgConfiguration=${vcpkg_configuration} \ - ${build_in_parallel} \ - /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets;${build_path}/vcpkg-libs.props\" \ - /p:VcpkgTriplet=${TARGET_TRIPLET} \ - /p:VcpkgCurrentInstalledDir=\"${CURRENT_INSTALLED_DIR}\" \ - /p:ForceImportAfterCppTargets=\"${build_path}/libpq.props\" \ - ") - - message(STATUS "Building ${label}") - foreach(target IN LISTS build_targets) - string(REPLACE "client" "" target "${target}") - vcpkg_execute_required_process( - COMMAND "${PERL}" build.pl ${build_type} ${target} - WORKING_DIRECTORY "${build_path}/src/tools/msvc" - LOGNAME "build-${target}-${label}" - ) - endforeach() - - message(STATUS "Installing ${label}") - vcpkg_execute_required_process( - COMMAND "${PERL}" install.pl "${packages_dir}" ${install_target} - WORKING_DIRECTORY "${build_path}/src/tools/msvc" - LOGNAME "install-${label}" - ) -endfunction() diff --git a/vcpkg/ports/libpq/libpq.props.in b/vcpkg/ports/libpq/libpq.props.in deleted file mode 100644 index 223e528fe..000000000 --- a/vcpkg/ports/libpq/libpq.props.in +++ /dev/null @@ -1,25 +0,0 @@ - - - - - %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_DEBUG@ - - - %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG@ - - - %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ - - - - - %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_RELEASE@ - - - %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE@ - - - %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ - - - diff --git a/vcpkg/ports/libpq/portfile.cmake b/vcpkg/ports/libpq/portfile.cmake deleted file mode 100644 index 782205437..000000000 --- a/vcpkg/ports/libpq/portfile.cmake +++ /dev/null @@ -1,160 +0,0 @@ -vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.postgresql.org/pub/source/v${VERSION}/postgresql-${VERSION}.tar.bz2" - FILENAME "postgresql-${VERSION}.tar.bz2" - SHA512 3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf -) - -vcpkg_extract_source_archive( - SOURCE_PATH - ARCHIVE "${ARCHIVE}" - PATCHES - unix/installdirs.patch - unix/fix-configure.patch - unix/single-linkage.patch - unix/no-server-tools.patch - unix/mingw-install.patch - unix/python.patch - windows/macro-def.patch - windows/win_bison_flex.patch - windows/msbuild.patch - windows/spin_delay.patch - android/unversioned_so.patch -) - -file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*") -string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}") -set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") - -if("client" IN_LIST FEATURES) - set(HAS_TOOLS TRUE) -else() - set(HAS_TOOLS FALSE) -endif() - -set(required_programs PERL) -if(VCPKG_TARGET_IS_WINDOWS) - list(APPEND required_programs BISON FLEX) -endif() -foreach(program_name IN LISTS required_programs) - # Need to rename win_bison and win_flex to just bison and flex - vcpkg_find_acquire_program(${program_name}) - get_filename_component(program_dir ${${program_name}} DIRECTORY) - vcpkg_add_to_path(PREPEND "${program_dir}") -endforeach() - -vcpkg_cmake_get_vars(cmake_vars_file) -include("${cmake_vars_file}") - -if(VCPKG_DETECTED_MSVC) - if("nls" IN_LIST FEATURES) - vcpkg_acquire_msys(MSYS_ROOT PACKAGES gettext) - vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") - endif() - if("xml" IN_LIST FEATURES) - x_vcpkg_pkgconfig_get_modules( - PREFIX PC_LIBXML2 - MODULES --msvc-syntax libxml-2.0 - LIBS - ) - separate_arguments(LIBXML2_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXML2_LIBS_DEBUG}") - separate_arguments(LIBXML2_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXML2_LIBS_RELEASE}") - endif() - if("xslt" IN_LIST FEATURES) - x_vcpkg_pkgconfig_get_modules( - PREFIX PC_LIBXSLT - MODULES --msvc-syntax libxslt - LIBS - ) - separate_arguments(LIBXSLT_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXSLT_LIBS_DEBUG}") - separate_arguments(LIBXSLT_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXSLT_LIBS_RELEASE}") - endif() - - include("${CMAKE_CURRENT_LIST_DIR}/build-msvc.cmake") - if(NOT VCPKG_BUILD_TYPE) - build_msvc(DEBUG "${SOURCE_PATH}") - endif() - build_msvc(RELEASE "${SOURCE_PATH}") - - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") - endif() - - if(HAS_TOOLS) - vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") - else() - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") - endif() -else() - file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}") - - vcpkg_list(SET BUILD_OPTS) - foreach(option IN ITEMS icu lz4 nls openssl readline xml xslt zlib zstd) - if(option IN_LIST FEATURES) - list(APPEND BUILD_OPTS --with-${option}) - else() - list(APPEND BUILD_OPTS --without-${option}) - endif() - endforeach() - if("nls" IN_LIST FEATURES) - set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}") - if(VCPKG_TARGET_IS_ANDROID) - list(APPEND BUILD_OPTS [[LIBS=$LIBS -liconv]]) - endif() - endif() - if("python" IN_LIST FEATURES) - list(APPEND BUILD_OPTS --with-python=3.${PYTHON_VERSION_MINOR}) - vcpkg_find_acquire_program(PYTHON3) - list(APPEND BUILD_OPTS "PYTHON=${PYTHON3}") - endif() - if(VCPKG_TARGET_IS_ANDROID) # AND CMAKE_SYSTEM_VERSION LESS 26) - list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no) - endif() - if(VCPKG_DETECTED_CMAKE_OSX_SYSROOT) - list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") - endif() - vcpkg_configure_make( - SOURCE_PATH "${SOURCE_PATH}" - COPY_SOURCE - AUTOCONFIG - ADDITIONAL_MSYS_PACKAGES autoconf-archive - DIRECT_PACKAGES - "https://mirror.msys2.org/msys/x86_64/tzcode-2023c-1-x86_64.pkg.tar.zst" - 7550b843964744607f736a7138f10c6cd92489406a1b84ac71d9a9d8aa16bc69048aa1b24e1f49291b010347047008194c334ca9c632e17fa8245e85549e3c7a - OPTIONS - ${BUILD_OPTS} - OPTIONS_DEBUG - --enable-debug - ) - - if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(ENV{LIBPQ_LIBRARY_TYPE} shared) - else() - set(ENV{LIBPQ_LIBRARY_TYPE} static) - endif() - if(VCPKG_TARGET_IS_MINGW) - set(ENV{LIBPQ_USING_MINGW} yes) - endif() - if(HAS_TOOLS) - set(ENV{LIBPQ_ENABLE_TOOLS} yes) - endif() - vcpkg_install_make() - - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") -endif() - -vcpkg_fixup_pkgconfig() -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY) - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/doc" - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/debug/symbols" - "${CURRENT_PACKAGES_DIR}/debug/tools" - "${CURRENT_PACKAGES_DIR}/symbols" - "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" -) - -file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") diff --git a/vcpkg/ports/libpq/unix/fix-configure.patch b/vcpkg/ports/libpq/unix/fix-configure.patch deleted file mode 100644 index 29c764635..000000000 --- a/vcpkg/ports/libpq/unix/fix-configure.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 7f97248..48ff1a1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -19,7 +19,8 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros - - AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) - --m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. -+cross_compiling=yes # Avoid conftest loading shared objects -+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required. - Untested combinations of 'autoconf' and PostgreSQL versions are not - recommended. You can remove the check from 'configure.ac' but it is then - your responsibility whether the result works or not.])]) -@@ -1311,7 +1312,8 @@ if test "$enable_thread_safety" = yes; then - fi - - if test "$with_readline" = yes; then -- PGAC_CHECK_READLINE -+ PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no]) -+ LIBS="$READLINE_LIBS $LIBS" - if test x"$pgac_cv_check_readline" = x"no"; then - AC_MSG_ERROR([readline library not found - If you have readline already installed, see config.log for details on the -@@ -1321,7 +1323,7 @@ Use --without-readline to disable readline support.]) - fi - - if test "$with_zlib" = yes; then -- AC_CHECK_LIB(z, inflate, [], -+ PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"], - [AC_MSG_ERROR([zlib library not found - If you have zlib already installed, see config.log for details on the - failure. It is possible the compiler isn't looking in the proper directory. -@@ -1370,6 +1372,9 @@ if test "$with_ssl" = openssl ; then - # Minimum required OpenSSL version is 1.0.1 - AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L], - [Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.]) -+ PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) -+ PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) -+ if false ; then - if test "$PORTNAME" != "win32"; then - AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) - AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) -@@ -1377,6 +1382,7 @@ if test "$with_ssl" = openssl ; then - AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])]) - AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])]) - fi -+ fi - # Functions introduced in OpenSSL 1.0.2. LibreSSL does not have - # SSL_CTX_set_cert_cb(). - AC_CHECK_FUNCS([X509_get_signature_nid SSL_CTX_set_cert_cb]) -@@ -1403,19 +1409,23 @@ if test "$with_pam" = yes ; then - fi - - if test "$with_libxml" = yes ; then -- AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) -+ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) -+ LIBS="$LIBXML2_LIBS $LIBS" - fi - - if test "$with_libxslt" = yes ; then -- AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) -+ PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) -+ LIBS="$LIBXSLT_LIBS $LIBS" - fi - - if test "$with_lz4" = yes ; then -- AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) -+ PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) -+ LIBS="$LZ4_LIBS $LIBS" - fi - - if test "$with_zstd" = yes ; then -- AC_CHECK_LIB(zstd, ZSTD_compress, [], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) -+ PKG_CHECK_MODULES([ZSTD], [libzstd], [AC_DEFINE(HAVE_LIBZSTD,1,[Define to 1 if with zstd])], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) -+ LIBS="$ZSTD_LIBS $LIBS" - fi - - # Note: We can test for libldap_r only after we know PTHREAD_LIBS; diff --git a/vcpkg/ports/libpq/unix/installdirs.patch b/vcpkg/ports/libpq/unix/installdirs.patch deleted file mode 100644 index ae6653f90..000000000 --- a/vcpkg/ports/libpq/unix/installdirs.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/src/Makefile.global.in b/src/Makefile.global.in -index 5dacc4d..a9a797e 100644 ---- a/src/Makefile.global.in -+++ b/src/Makefile.global.in -@@ -100,14 +100,14 @@ datarootdir := @datarootdir@ - - bindir := @bindir@ - --datadir := @datadir@ -+datadir := @datadir@/postgresql - ifeq "$(findstring pgsql, $(datadir))" "" - ifeq "$(findstring postgres, $(datadir))" "" - override datadir := $(datadir)/postgresql - endif - endif - --sysconfdir := @sysconfdir@ -+sysconfdir := @sysconfdir@/postgresql - ifeq "$(findstring pgsql, $(sysconfdir))" "" - ifeq "$(findstring postgres, $(sysconfdir))" "" - override sysconfdir := $(sysconfdir)/postgresql -@@ -116,7 +116,7 @@ endif - - libdir := @libdir@ - --pkglibdir = $(libdir) -+pkglibdir = $(libdir)/postgresql - ifeq "$(findstring pgsql, $(pkglibdir))" "" - ifeq "$(findstring postgres, $(pkglibdir))" "" - override pkglibdir := $(pkglibdir)/postgresql -@@ -125,7 +125,7 @@ endif - - includedir := @includedir@ - --pkgincludedir = $(includedir) -+pkgincludedir = $(includedir)/postgresql - ifeq "$(findstring pgsql, $(pkgincludedir))" "" - ifeq "$(findstring postgres, $(pkgincludedir))" "" - override pkgincludedir := $(pkgincludedir)/postgresql -@@ -134,7 +134,7 @@ endif - - mandir := @mandir@ - --docdir := @docdir@ -+docdir := @docdir@/postgresql - ifeq "$(findstring pgsql, $(docdir))" "" - ifeq "$(findstring postgres, $(docdir))" "" - override docdir := $(docdir)/postgresql diff --git a/vcpkg/ports/libpq/unix/mingw-install.patch b/vcpkg/ports/libpq/unix/mingw-install.patch deleted file mode 100644 index ffeea023c..000000000 --- a/vcpkg/ports/libpq/unix/mingw-install.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/src/Makefile.shlib b/src/Makefile.shlib -index 16255d7..51e9ed2 100644 ---- a/src/Makefile.shlib -+++ b/src/Makefile.shlib -@@ -85,7 +85,11 @@ else - # Naming convention for dynamically loadable modules - shlib = $(NAME)$(DLSUFFIX) - endif -+ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) -+stlib = lib$(NAME).dll.a -+else - stlib = lib$(NAME).a -+endif - - ifndef soname - # additional flags for backend modules -@@ -468,6 +472,9 @@ endif - else # no soname - $(INSTALL_SHLIB) $< '$(DESTDIR)$(pkglibdir)/$(shlib)' - endif -+ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) -+ mv '$(DESTDIR)$(libdir)/$(shlib)' '$(DESTDIR)$(libdir)/../bin/$(shlib)' -+endif - - - installdirs-lib: -@@ -476,6 +483,9 @@ ifdef soname - else - $(MKDIR_P) '$(DESTDIR)$(pkglibdir)' - endif -+ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) -+ $(MKDIR_P) '$(DESTDIR)$(libdir)/../bin' -+endif - - - ## diff --git a/vcpkg/ports/libpq/unix/no-server-tools.patch b/vcpkg/ports/libpq/unix/no-server-tools.patch deleted file mode 100644 index f83682afb..000000000 --- a/vcpkg/ports/libpq/unix/no-server-tools.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/src/bin/Makefile b/src/bin/Makefile -index 7f9dde9..bc6d835 100644 ---- a/src/bin/Makefile -+++ b/src/bin/Makefile -@@ -13,29 +13,20 @@ subdir = src/bin - top_builddir = ../.. - include $(top_builddir)/src/Makefile.global - -+.NOTPARALLEL: -+# incl. https://www.postgresql.org/docs/current/reference-client.html -+# excl. https://www.postgresql.org/docs/current/reference-server.html - SUBDIRS = \ -- initdb \ - pg_amcheck \ -- pg_archivecleanup \ - pg_basebackup \ -- pg_checksums \ - pg_config \ -- pg_controldata \ -- pg_ctl \ - pg_dump \ -- pg_resetwal \ -- pg_rewind \ -- pg_test_fsync \ -- pg_test_timing \ -- pg_upgrade \ - pg_verifybackup \ -- pg_waldump \ - pgbench \ - psql \ - scripts - - ifeq ($(PORTNAME), win32) --SUBDIRS += pgevent - else - ALWAYS_SUBDIRS += pgevent - endif diff --git a/vcpkg/ports/libpq/unix/python.patch b/vcpkg/ports/libpq/unix/python.patch deleted file mode 100644 index 7d8f58d4a..000000000 --- a/vcpkg/ports/libpq/unix/python.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 7f97248992..33b6c84fc4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -891,7 +891,9 @@ AC_SUBST(with_perl) - # Optionally build Python modules (PL/Python) - # - AC_MSG_CHECKING([whether to build Python modules]) --PGAC_ARG_BOOL(with, python, no, [build Python modules (PL/Python)]) -+PGAC_ARG_OPTARG(with, python, [PYTHON_VERSION], [build Python modules (PL/Python)], -+ [], -+ [python_version=$withval]) - AC_MSG_RESULT([$with_python]) - AC_SUBST(with_python) - -@@ -1214,7 +1216,18 @@ fi - - if test "$with_python" = yes; then - PGAC_PATH_PYTHON -- PGAC_CHECK_PYTHON_EMBED_SETUP -+ python_majorversion=3 -+ PKG_CHECK_MODULES(PYTHON_EMBED, python-${python_version}-embed) -+ python_includespec="${PYTHON_EMBED_CFLAGS}" -+ python_libdir=[$(echo " ${PYTHON_EMBED_LIBS}" | sed -e 's/\( -L[^ ]*\).*/\1/' -e 's/^.* -L//')] -+ python_libspec="${PYTHON_EMBED_LIBS}" -+ python_additional_libs="" -+ AC_SUBST(python_majorversion) -+ AC_SUBST(python_version) -+ AC_SUBST(python_includespec) -+ AC_SUBST(python_libdir) -+ AC_SUBST(python_libspec) -+ AC_SUBST(python_additional_libs) - fi - - if test x"$cross_compiling" = x"yes" && test -z "$with_system_tzdata"; then diff --git a/vcpkg/ports/libpq/unix/single-linkage.patch b/vcpkg/ports/libpq/unix/single-linkage.patch deleted file mode 100644 index dd149c7d3..000000000 --- a/vcpkg/ports/libpq/unix/single-linkage.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/src/Makefile.shlib b/src/Makefile.shlib -index 551023c..16255d7 100644 ---- a/src/Makefile.shlib -+++ b/src/Makefile.shlib -@@ -260,10 +260,14 @@ endif - - .PHONY: all-lib all-static-lib all-shared-lib - -+ifndef LIBPQ_LIBRARY_TYPE - all-lib: all-shared-lib - ifdef soname - # no static library when building a dynamically loadable module - all-lib: all-static-lib -+endif -+else -+all-lib: all-$(LIBPQ_LIBRARY_TYPE)-lib - all-lib: lib$(NAME).pc - endif - -@@ -417,9 +421,13 @@ endif # PORTNAME == cygwin || PORTNAME == win32 - ## - - .PHONY: install-lib install-lib-static install-lib-shared installdirs-lib -+ifndef LIBPQ_LIBRARY_TYPE - install-lib: install-lib-shared - ifdef soname - install-lib: install-lib-static -+endif -+else -+install-lib: install-lib-$(LIBPQ_LIBRARY_TYPE) - install-lib: install-lib-pc - endif - -diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile -index 8abdb09..185461e 100644 ---- a/src/interfaces/libpq/Makefile -+++ b/src/interfaces/libpq/Makefile -@@ -115,6 +115,7 @@ backend_src = $(top_srcdir)/src/backend - # Also skip the test on platforms where libpq infrastructure may be provided - # by statically-linked libraries, as we can't expect them to honor this - # coding rule. -+ifeq ($(LIBPQ_LIBRARY_TYPE), shared) - libpq-refs-stamp: $(shlib) - ifneq ($(enable_coverage), yes) - ifeq (,$(filter aix solaris,$(PORTNAME))) -@@ -124,6 +125,10 @@ ifeq (,$(filter aix solaris,$(PORTNAME))) - endif - endif - touch $@ -+else -+.PHONY: libpq-refs-stamp -+libpq-refs-stamp: -+endif - - # Make dependencies on pg_config_paths.h visible in all builds. - fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h diff --git a/vcpkg/ports/libpq/usage b/vcpkg/ports/libpq/usage deleted file mode 100644 index 8dfcd2754..000000000 --- a/vcpkg/ports/libpq/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package libpq provides CMake integration: - - find_package(PostgreSQL REQUIRED) - target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL) diff --git a/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 6f1432570..000000000 --- a/vcpkg/ports/libpq/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,72 +0,0 @@ -# Give the CMake module a little bit of help to find the debug libraries -find_library(PostgreSQL_LIBRARY_DEBUG -NAMES pq -PATHS - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" -NO_DEFAULT_PATH -) -_find_package(${ARGS}) -if(PostgreSQL_FOUND AND NOT "@VCPKG_TARGET_IS_WINDOWS@") - find_library(PostgreSQL_DL_LIBRARY NAMES dl) - if(PostgreSQL_DL_LIBRARY) - list(APPEND PostgreSQL_LIBRARIES "dl") - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") - endif() - endif() -endif() -if(PostgreSQL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") - include(SelectLibraryConfigurations) - foreach(LIB_ITEM libpgport libpgcommon pgport pgcommon) - find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE - NAMES ${LIB_ITEM} - PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH - ) - if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE) - set_property( - TARGET PostgreSQL::PostgreSQL - APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE}>" - ) - endif() - - find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG - NAMES ${LIB_ITEM} - PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH - ) - if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) - set_property( - TARGET PostgreSQL::PostgreSQL - APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG}>" - ) - endif() - - if (PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE OR PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) - select_library_configurations(PostgreSQL_${LIB_ITEM}) - list(APPEND PostgreSQL_LIBRARIES ${PostgreSQL_${LIB_ITEM}_LIBRARY}) - endif() - endforeach() - if(WIN32) - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Secur32.lib") - endif() - list(APPEND PostgreSQL_LIBRARIES Secur32.lib) - endif() - cmake_policy(PUSH) - cmake_policy(SET CMP0057 NEW) - set(Z_VCPKG_PORT_FEATURES "@FEATURES@") - if("openssl" IN_LIST Z_VCPKG_PORT_FEATURES) - find_package(OpenSSL REQUIRED) - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenSSL::SSL") - endif() - list(APPEND PostgreSQL_LIBRARIES OpenSSL::SSL) - endif() - if(WIN32) - if(TARGET PostgreSQL::PostgreSQL) - set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Wldap32.lib") - endif() - list(APPEND PostgreSQL_LIBRARIES Wldap32.lib) - endif() - unset(Z_VCPKG_PORT_FEATURES) - cmake_policy(POP) -endif() diff --git a/vcpkg/ports/libpq/vcpkg-libs.props.in b/vcpkg/ports/libpq/vcpkg-libs.props.in deleted file mode 100644 index cb7e5f92c..000000000 --- a/vcpkg/ports/libpq/vcpkg-libs.props.in +++ /dev/null @@ -1,31 +0,0 @@ - - - - @CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib; - @CURRENT_INSTALLED_DIR@/debug/lib/lz4d.lib - @CURRENT_INSTALLED_DIR@/debug/lib/intl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/debug/lib/charset.lib - @CURRENT_INSTALLED_DIR@/debug/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib - @CURRENT_INSTALLED_DIR@/debug/lib/python3@PYTHON_VERSION_MINOR@_d.lib - @CURRENT_INSTALLED_DIR@/debug/lib/tcl90g.lib - @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sg.lib - @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sgx.lib - @LIBXML2_LIBS_DEBUG@ - @LIBXSLT_LIBS_DEBUG@ - @CURRENT_INSTALLED_DIR@/debug/lib/zlibd.lib - @CURRENT_INSTALLED_DIR@/debug/lib/zstd.lib - - - @CURRENT_INSTALLED_DIR@/lib/icuin.lib;@CURRENT_INSTALLED_DIR@/lib/icuuc.lib;@CURRENT_INSTALLED_DIR@/lib/icudt.lib; - @CURRENT_INSTALLED_DIR@/lib/lz4.lib - @CURRENT_INSTALLED_DIR@/lib/intl.lib;@CURRENT_INSTALLED_DIR@/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/lib/charset.lib - @CURRENT_INSTALLED_DIR@/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib - @CURRENT_INSTALLED_DIR@/lib/python3@PYTHON_VERSION_MINOR@.lib - @CURRENT_INSTALLED_DIR@/lib/tcl90.lib - @CURRENT_INSTALLED_DIR@/lib/tcl90s.lib - @CURRENT_INSTALLED_DIR@/lib/tcl90sx.lib - @LIBXML2_LIBS_RELEASE@ - @LIBXSLT_LIBS_RELEASE@ - @CURRENT_INSTALLED_DIR@/lib/zlib.lib - @CURRENT_INSTALLED_DIR@/lib/zstd.lib - - diff --git a/vcpkg/ports/libpq/vcpkg.json b/vcpkg/ports/libpq/vcpkg.json deleted file mode 100644 index 772c1a995..000000000 --- a/vcpkg/ports/libpq/vcpkg.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "name": "libpq", - "version": "16.2", - "port-version": 1, - "description": "The official database access API of postgresql", - "homepage": "https://www.postgresql.org/", - "license": "PostgreSQL", - "supports": "!uwp", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "bonjour" - ], - "platform": "osx" - }, - { - "name": "vcpkg-cmake-get-vars", - "host": true - }, - { - "name": "vcpkg-pkgconfig-get-modules", - "host": true, - "platform": "windows & !mingw" - } - ], - "default-features": [ - "lz4", - "openssl", - "zlib" - ], - "features": { - "all": { - "description": "Build all supported features", - "dependencies": [ - { - "name": "libpq", - "features": [ - "client", - "icu", - "xml", - "xslt", - "zstd" - ] - }, - { - "name": "libpq", - "features": [ - "bonjour" - ], - "platform": "osx" - }, - { - "name": "libpq", - "features": [ - "nls" - ], - "platform": "!osx" - }, - { - "name": "libpq", - "features": [ - "readline" - ], - "platform": "!windows" - }, - { - "name": "libpq", - "features": [ - "python" - ], - "platform": "!android & !mingw" - }, - { - "name": "libpq", - "features": [ - "tcl" - ], - "platform": "windows & !mingw & !arm" - } - ] - }, - "bonjour": { - "description": "Build with Bonjour support", - "supports": "osx" - }, - "client": { - "description": "Build all client tools and libraries" - }, - "icu": { - "description": "Build with support for the ICU library", - "dependencies": [ - "icu" - ] - }, - "lz4": { - "description": "Use lz4", - "dependencies": [ - "lz4" - ] - }, - "nls": { - "description": "Native Language Support", - "supports": "!osx", - "dependencies": [ - "gettext", - { - "name": "gettext", - "host": true, - "features": [ - "tools" - ], - "platform": "!windows, mingw" - } - ] - }, - "openssl": { - "description": "support for encrypted client connections and random number generation on platforms that do not have \"/dev/urandom\" (except windows)", - "dependencies": [ - "openssl" - ] - }, - "python": { - "$supports": "!(windows & (static | mingw))", - "description": "build the PL/Python server programming language", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "client" - ] - }, - "python3" - ] - }, - "readline": { - "description": "Use readline", - "supports": "!windows, mingw", - "dependencies": [ - "readline" - ] - }, - "tcl": { - "$supports": "!(windows & (static | mingw))", - "description": "build the PL/Tcl procedural language", - "supports": "windows & !mingw", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "client" - ] - }, - "tcl" - ] - }, - "xml": { - "description": "Build with libxml", - "dependencies": [ - { - "name": "libxml2", - "default-features": false - } - ] - }, - "xslt": { - "description": "Build with libxslt", - "dependencies": [ - { - "name": "libpq", - "default-features": false, - "features": [ - "xml" - ] - }, - "libxslt" - ] - }, - "zlib": { - "description": "Use zlib", - "dependencies": [ - "zlib" - ] - }, - "zstd": { - "description": "Use zstd", - "dependencies": [ - "zstd" - ] - } - } -} diff --git a/vcpkg/ports/libpq/windows/macro-def.patch b/vcpkg/ports/libpq/windows/macro-def.patch deleted file mode 100644 index 1d16c1270..000000000 --- a/vcpkg/ports/libpq/windows/macro-def.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/src/include/common/checksum_helper.h b/src/include/common/checksum_helper.h -index cac7570ea..d0ca1243c 100644 ---- a/src/include/common/checksum_helper.h -+++ b/src/include/common/checksum_helper.h -@@ -33,7 +28,13 @@ - */ - typedef enum pg_checksum_type - { -+#pragma push_macro("CHECKSUM_TYPE_NONE") -+#ifdef CHECKSUM_TYPE_NONE -+// winioctl.h defines CHECKSUM_TYPE_NONE to 0 as a macro. -+#undef CHECKSUM_TYPE_NONE -+#endif - CHECKSUM_TYPE_NONE, -+#pragma pop_macro("CHECKSUM_TYPE_NONE") - CHECKSUM_TYPE_CRC32C, - CHECKSUM_TYPE_SHA224, - CHECKSUM_TYPE_SHA256, diff --git a/vcpkg/ports/libpq/windows/msbuild.patch b/vcpkg/ports/libpq/windows/msbuild.patch deleted file mode 100644 index e6c70ad09..000000000 --- a/vcpkg/ports/libpq/windows/msbuild.patch +++ /dev/null @@ -1,398 +0,0 @@ -diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm -index 05548d7..097db91 100644 ---- a/src/tools/msvc/Install.pm -+++ b/src/tools/msvc/Install.pm -@@ -53,6 +53,11 @@ sub Install - my $target = shift; - $insttype = shift; - $insttype = "all" unless ($insttype); -+ if ($insttype eq 'core') -+ { -+ $insttype = 'client'; -+ @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' ); -+ } - - # if called from vcregress, the config will be passed to us - # so no need to re-include these -@@ -89,7 +94,7 @@ sub Install - my $majorver = DetermineMajorVersion(); - print "Installing version $majorver for $conf in $target\n"; - -- my @client_dirs = ('bin', 'lib', 'share', 'symbols'); -+ my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq'); - my @all_dirs = ( - @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib', - 'share/extension', 'share/timezonesets', 'share/tsearch_data'); -@@ -117,11 +122,11 @@ sub Install - } - }, - @top_dir); -- CopySetOfFiles('config files', $sample_files, $target . '/share/'); -+ CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/'); - CopyFiles( - 'Import libraries', - $target . '/lib/', -- "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib", -+ "$conf\\", "libpgcommon\\libpgcommon.lib", - "libpgport\\libpgport.lib"); - CopyContribFiles($config, $target); - CopyIncludeFiles($target); -@@ -293,7 +298,16 @@ sub CopySolutionOutput - { - if ($1 == 1) - { -- push(@{ $install_list{'bin'} }, "exe"); -+ push(@{ $install_list{'tools\\libpq'} }, "exe"); -+ } -+ elsif ($1 == 2) -+ { -+ push(@{ $install_list{'bin'} }, "dll"); -+ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins -+ } -+ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet -+ { -+ push(@{ $install_list{'lib'} }, "lib"); - } - elsif ($1 == 2) - { -@@ -317,7 +331,16 @@ sub CopySolutionOutput - { - if ($1 eq 'Application') - { -- push(@{ $install_list{'bin'} }, "exe"); -+ push(@{ $install_list{'tools\\libpq'} }, "exe"); -+ } -+ elsif ($1 eq 'DynamicLibrary') -+ { -+ push(@{ $install_list{'bin'} }, "dll"); -+ push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins -+ } -+ elsif ($is_sharedlib) # forced to static lib by vcpkg triplet -+ { -+ push(@{ $install_list{'lib'} }, "lib"); - } - elsif ($1 eq 'DynamicLibrary') - { -@@ -350,7 +373,8 @@ sub CopySolutionOutput - || croak "Could not copy $pf.$ext\n"; - } - } -- lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb") -+ $1 ne 'DynamicLibrary' || -+ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb") - || croak "Could not copy $pf.pdb\n"; - print "."; - } -@@ -453,7 +477,7 @@ sub CopySubdirFiles - foreach my $f (split /\s+/, $flist) - { - lcopy("$subdir/$module/$f.control", -- "$target/share/extension/$f.control") -+ "$target/share/libpq/extension/$f.control") - || croak("Could not copy file $f.control in contrib $module"); - print '.'; - } -@@ -471,7 +495,7 @@ sub CopySubdirFiles - foreach my $f (split /\s+/, $flist) - { - lcopy("$subdir/$module/$f", -- "$target/share/$moduledir/" . basename($f)) -+ "$target/share/libpq/$moduledir/" . basename($f)) - || croak("Could not copy file $f in contrib $module"); - print '.'; - } -@@ -486,7 +510,7 @@ sub CopySubdirFiles - foreach my $f (split /\s+/, $flist) - { - lcopy("$subdir/$module/$f", -- "$target/share/tsearch_data/" . basename($f)) -+ "$target/share/libpq/tsearch_data/" . basename($f)) - || croak("Could not copy file $f in $subdir $module"); - print '.'; - } -@@ -549,7 +573,7 @@ sub CopySubdirFiles - if ($module eq 'spi'); - foreach my $f (split /\s+/, $flist) - { -- lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f") -+ lcopy("$subdir/$module/$f", "$target/share/libpq/doc/$moduledir/$f") - || croak("Could not copy file $f in contrib $module"); - print '.'; - } -@@ -675,7 +699,7 @@ sub GenerateNLSFiles - my $majorver = shift; - - print "Installing NLS files..."; -- EnsureDirectories($target, "share/locale"); -+ EnsureDirectories($target, "share/libpq/locale"); - my @flist; - File::Find::find( - { -@@ -697,12 +721,12 @@ sub GenerateNLSFiles - next unless /([^\/]+)\.po/; - $lang = $1; - -- EnsureDirectories($target, "share/locale/$lang", -- "share/locale/$lang/LC_MESSAGES"); -+ EnsureDirectories($target, "share/libpq/locale/$lang", -+ "share/libpq/locale/$lang/LC_MESSAGES"); - my @args = ( -- "$nlspath\\bin\\msgfmt", -+ "msgfmt", - '-o', -- "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", -+ "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", - $_); - system(@args) && croak("Could not run msgfmt on $dir\\$_"); - print "."; -diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm -index 62fec1f..ecb1b86 100644 ---- a/src/tools/msvc/MSBuildProject.pm -+++ b/src/tools/msvc/MSBuildProject.pm -@@ -80,14 +80,14 @@ EOF - print $f < - EOF -- -+ my $maybe_dll = $self->{solution}->{options}->{VCPKG_CRT_LINKAGE} eq 'dynamic' ? "DLL" : ''; - $self->WriteItemDefinitionGroup( - $f, 'Debug', - { - defs => "_DEBUG;DEBUG=1", - opt => 'Disabled', - strpool => 'false', -- runtime => 'MultiThreadedDebugDLL' -+ runtime => 'MultiThreadedDebug' . $maybe_dll - }); - $self->WriteItemDefinitionGroup( - $f, -@@ -96,7 +96,7 @@ EOF - defs => "", - opt => 'Full', - strpool => 'true', -- runtime => 'MultiThreadedDLL' -+ runtime => 'MultiThreaded' . $maybe_dll - }); - return; - } -@@ -266,6 +266,8 @@ sub WriteConfigurationPropertyGroup - ($self->{type} eq "exe") - ? 'Application' - : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary'); -+ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') -+ { $cfgtype =~ s/DynamicLibrary/StaticLibrary/; } - - print $f < -@@ -311,7 +313,9 @@ sub WriteItemDefinitionGroup - my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';'); - - my $targetmachine = -- $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64'; -+ 'Machine' . uc($self->{platform}); -+ $targetmachine =~ s/WIN32/X86/; -+ my $randomizebase = ($self->{platform} =~ /^ARM/) ? 'true' : 'false'; - my $arch = $self->{platform} eq 'Win32' ? 'x86' : 'x86_64'; - - my $includes = join ';', @{ $self->{includes} }, ""; -diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm -index 9e05eb9..8ac0a5d 100644 ---- a/src/tools/msvc/Mkvcbuild.pm -+++ b/src/tools/msvc/Mkvcbuild.pm -@@ -125,8 +125,10 @@ sub mkvcbuild - - if ($vsVersion >= '9.00') - { -+ if ($solution->{platform} !~ /^ARM/) { - push(@pgportfiles, 'pg_crc32c_sse42_choose.c'); - push(@pgportfiles, 'pg_crc32c_sse42.c'); -+ } - push(@pgportfiles, 'pg_crc32c_sb8.c'); - } - else -@@ -208,6 +210,7 @@ sub mkvcbuild - 'syncrep_gram.y'); - $postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l', - 'jsonpath_gram.y'); -+ ($config->{VCPKG_LIBRARY_LINKAGE} eq 'dynamic') && - $postgres->AddDefine('BUILDING_DLL'); - $postgres->AddLibrary('secur32.lib'); - $postgres->AddLibrary('ws2_32.lib'); -@@ -252,12 +255,13 @@ sub mkvcbuild - $pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include'); - $pltcl->AddReference($postgres); - -- for my $tclver (qw(86t 86 85 84)) -+ my $v = $solution->{options}->{tcl_version}; -+ for my $tclver ( ("${v}","${v}s","${v}sx") ) - { - my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib"; - if (-e $tcllib) - { -- $pltcl->AddLibrary($tcllib); -+ $pltcl->AddLibrary("\$(VcpkgTcl${tclver}Libs)"); - $found = 1; - last; - } -@@ -512,8 +516,7 @@ sub mkvcbuild - . "print(str(sys.version_info[0])+str(sys.version_info[1]))"; - my $prefixcmd = - qq("$solution->{options}->{python}\\python" -c "$pythonprog"); -- my $pyout = `$prefixcmd`; -- die "Could not query for python version!\n" if $?; -+ my $pyout = "$solution->{options}->{python}\n$solution->{options}->{python_version}"; - my ($pyprefix, $pyver) = split(/\r?\n/, $pyout); - - # Sometimes (always?) if python is not present, the execution -@@ -529,8 +532,8 @@ sub mkvcbuild - - my $plpython = $solution->AddProject('plpython' . $pymajorver, - 'dll', 'PLs', 'src/pl/plpython'); -- $plpython->AddIncludeDir($pyprefix . '/include'); -- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib"); -+ $plpython->AddIncludeDir($pyprefix . "/include/python$pyver"); -+ $plpython->AddLibrary('$(VcpkgPythonLibs)'); - $plpython->AddReference($postgres); - - # Add transform modules dependent on plpython -diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm -index 0507ad0..48caab9 100644 ---- a/src/tools/msvc/Project.pm -+++ b/src/tools/msvc/Project.pm -@@ -167,6 +167,11 @@ sub AddReference - } - $self->AddLibrary( - "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib"); -+ -+ if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') -+ { -+ map { $self->AddLibrary($_) } @{ $ref->{libraries} }; -+ } - } - return; - } -diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm -index b6d31c3..27d89fc 100644 ---- a/src/tools/msvc/Solution.pm -+++ b/src/tools/msvc/Solution.pm -@@ -63,6 +63,11 @@ sub DeterminePlatform - my $self = shift; - - if ($^O eq "MSWin32") -+ { -+ $self->{platform} = uc($self->{options}->{VCPKG_TARGET_ARCHITECTURE}); -+ $self->{platform} =~ s/^X86$/Win32/; -+ } -+ elsif (0) - { - # Examine CL help output to determine if we are in 32 or 64-bit mode. - my $output = `cl /help 2>&1`; -@@ -124,6 +129,9 @@ sub copyFile - sub GetOpenSSLVersion - { - my $self = shift; -+ if ($self->{options}->{openssl_version} =~ /(\d+)\.(\d+)\.(\d+)/m) { -+ return ($1, $2, $3); -+ } - - # Attempt to get OpenSSL version and location. This assumes that - # openssl.exe is in the specified directory. -@@ -148,7 +156,7 @@ sub GetOpenSSLVersion - sub GenerateFiles - { - my $self = shift; -- my $bits = $self->{platform} eq 'Win32' ? 32 : 64; -+ my $bits = $self->{platform} =~ /64/ ? 64 : 32; - my $ac_init_found = 0; - my $package_name; - my $package_version; -@@ -440,7 +448,7 @@ sub GenerateFiles - USE_PAM => undef, - USE_SLICING_BY_8_CRC32C => undef, - USE_SSE42_CRC32C => undef, -- USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1, -+ USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => $self->{platform} =~ /^ARM/ ? undef : 1, - USE_SYSTEMD => undef, - USE_SYSV_SEMAPHORES => undef, - USE_SYSV_SHARED_MEMORY => undef, -@@ -725,14 +733,14 @@ sub GenerateFiles - || confess "Could not open pg_config_paths.h"; - print $o <{options}->{zlib}) - { - $proj->AddIncludeDir($self->{options}->{zlib} . '\include'); -- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib'); -+ $proj->AddLibrary('$(VcpkgZlibLibs)'); - } - if ($self->{options}->{openssl}) - { - $proj->AddIncludeDir($self->{options}->{openssl} . '\include'); -+ $proj->AddLibrary('$(VcpkgOpensslLibs)'); -+ } -+ elsif (0) -+ { - my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); - - # Starting at version 1.1.0 the OpenSSL installers have -@@ -1032,7 +1044,7 @@ sub AddProject - if ($self->{options}->{nls}) - { - $proj->AddIncludeDir($self->{options}->{nls} . '\include'); -- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib'); -+ $proj->AddLibrary('$(VcpkgNlsLibs)'); - } - if ($self->{options}->{gss}) - { -@@ -1065,6 +1077,10 @@ sub AddProject - if ($self->{options}->{icu}) - { - $proj->AddIncludeDir($self->{options}->{icu} . '\include'); -+ $proj->AddLibrary('$(VcpkgIcuLibs)'); -+ } -+ elsif (0) -+ { - if ($self->{platform} eq 'Win32') - { - $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); -@@ -1082,22 +1098,22 @@ sub AddProject - { - $proj->AddIncludeDir($self->{options}->{xml} . '\include'); - $proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2'); -- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); -+ $proj->AddLibrary('$(VcpkgXmlLibs)'); - } - if ($self->{options}->{xslt}) - { - $proj->AddIncludeDir($self->{options}->{xslt} . '\include'); -- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); -+ $proj->AddLibrary('$(VcpkgXsltLibs)'); - } - if ($self->{options}->{lz4}) - { - $proj->AddIncludeDir($self->{options}->{lz4} . '\include'); -- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib'); -+ $proj->AddLibrary('$(VcpkgLz4Libs)'); - } - if ($self->{options}->{zstd}) - { - $proj->AddIncludeDir($self->{options}->{zstd} . '\include'); -- $proj->AddLibrary($self->{options}->{zstd} . '\lib\libzstd.lib'); -+ $proj->AddLibrary('$(VcpkgZstdLibs)'); - } - if ($self->{options}->{uuid}) - { diff --git a/vcpkg/ports/libpq/windows/spin_delay.patch b/vcpkg/ports/libpq/windows/spin_delay.patch deleted file mode 100644 index 163e8e6ef..000000000 --- a/vcpkg/ports/libpq/windows/spin_delay.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h -index 4d3ffc7..658b1a1 100644 ---- a/src/include/storage/s_lock.h -+++ b/src/include/storage/s_lock.h -@@ -953,12 +953,18 @@ typedef LONG slock_t; - /* If using Visual C++ on Win64, inline assembly is unavailable. - * Use a _mm_pause intrinsic instead of rep nop. - */ --#if defined(_WIN64) -+#if defined(_M_X64) && !defined(_M_ARM64EC) - static __forceinline void - spin_delay(void) - { - _mm_pause(); - } -+#elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) -+static __forceinline void -+spin_delay(void) -+{ -+ __yield(); -+} - #else - static __forceinline void - spin_delay(void) diff --git a/vcpkg/ports/libpq/windows/win_bison_flex.patch b/vcpkg/ports/libpq/windows/win_bison_flex.patch deleted file mode 100644 index fc8230193..000000000 --- a/vcpkg/ports/libpq/windows/win_bison_flex.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl -index 25df669..373bedd 100644 ---- a/src/tools/msvc/pgbison.pl -+++ b/src/tools/msvc/pgbison.pl -@@ -13,7 +13,7 @@ use File::Basename; - - do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; - --my ($bisonver) = `bison -V`; # grab first line -+my ($bisonver) = `win_bison -V`; # grab first line - $bisonver = (split(/\s+/, $bisonver))[3]; # grab version number - - unless ($bisonver ge '2.3') -@@ -51,5 +51,5 @@ my $headerflag = ($make =~ /^$basetarg:\s+BISONFLAGS\b.*-d/m ? '-d' : ''); - - my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : ""; - --system("bison $nodep $headerflag $input -o $output"); -+system("win_bison $nodep $headerflag $input -o $output"); - exit $? >> 8; -diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl -index c308a08..0807ce7 100644 ---- a/src/tools/msvc/pgflex.pl -+++ b/src/tools/msvc/pgflex.pl -@@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning'; - - do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; - --my ($flexver) = `flex -V`; # grab first line -+my ($flexver) = `win_flex -V`; # grab first line - $flexver = (split(/\s+/, $flexver))[1]; - $flexver =~ s/[^0-9.]//g; - my @verparts = split(/\./, $flexver); -@@ -52,7 +52,7 @@ close($mf); - my $basetarg = basename($output); - my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : ''); - --system("flex $flexflags -o$output $input"); -+system("win_flex $flexflags -o$output $input"); - if ($? == 0) - { - diff --git a/vcpkg/ports/libtasn1/portfile.cmake b/vcpkg/ports/libtasn1/portfile.cmake deleted file mode 100644 index ce464c769..000000000 --- a/vcpkg/ports/libtasn1/portfile.cmake +++ /dev/null @@ -1,31 +0,0 @@ -vcpkg_download_distfile(ARCHIVE - https://ftp.gnu.org/pub/gnu/libtasn1/libtasn1-${VERSION_libtasn1}.tar.gz - - URLS "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" - "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" - FILENAME "libtasn1-${VERSION}.tar.gz" - SHA512 287f5eddfb5e21762d9f14d11997e56b953b980b2b03a97ed4cd6d37909bda1ed7d2cdff9da5d270a21d863ab7e54be6b85c05f1075ac5d8f0198997cf335ef4 -) -vcpkg_extract_source_archive(SOURCE_PATH - ARCHIVE "${ARCHIVE}" - SOURCE_BASE "v${VERSION}" -) - -string(APPEND VCPKG_C_FLAGS " -Wno-implicit-function-declaration") -string(APPEND VCPKG_CXX_FLAGS " -Wno-implicit-function-declaration") - -vcpkg_list(SET OPTIONS) -vcpkg_configure_make( - SOURCE_PATH "${SOURCE_PATH}" - DETERMINE_BUILD_TRIPLET - USE_WRAPPERS - OPTIONS - --enable-extra-encodings - --disable-doc - --disable-valgrind-tests - --disable-gcc-warnings - --disable-silent-rules - ${OPTIONS} -) -vcpkg_install_make() - diff --git a/vcpkg/ports/libtasn1/vcpkg.json b/vcpkg/ports/libtasn1/vcpkg.json deleted file mode 100644 index 7950a5cc2..000000000 --- a/vcpkg/ports/libtasn1/vcpkg.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "libtasn1", - "version": "4.19.0", - "port-version": 0, - "description": "GNU Abstract Syntax Notation One (ASN.1) and Distinguished Encoding Rules (DER) manipulation", - "homepage": "https://www.gnu.org/software/libtasn1/", - "license": null -} diff --git a/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch b/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch deleted file mode 100644 index 744fce107..000000000 --- a/vcpkg/ports/qca-qt6/0001-fix-path-for-vcpkg.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" -index 1f84c2c9e..f72ee9d8d 100644 ---- "a/CMakeLists.txt" -+++ "b/CMakeLists.txt" -@@ -58,6 +58,7 @@ set(QCA_SUFFIX "qt5") - if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) - set(STATIC_PLUGINS ON) - add_definitions(-DQT_STATICPLUGIN) -+ add_definitions(-DQCA_STATIC) - set(PLUGIN_TYPE "STATIC") - else() - set(PLUGIN_TYPE "MODULE") -@@ -266,10 +267,17 @@ if(DEVELOPER_MODE) - add_definitions(-DDEVELOPER_MODE) - - # To prefer plugins from build tree when run qca from build tree -- file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf --"[Paths] --Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} --") -+ if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) -+ file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf -+ "[Paths] -+ Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} -+ ") -+ else() -+ file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf -+ "[Paths] -+ Plugins=${CMAKE_BINARY_DIR}/bin/${QCA_LIB_NAME} -+ ") -+ endif() - endif() - - if (APPLE) -@@ -309,7 +317,7 @@ else() - set( qca_CERTSTORE "${CMAKE_CURRENT_SOURCE_DIR}/certs/rootcerts.pem") - # note that INSTALL_FILES targets are relative to the current installation prefix... - if(NOT DEVELOPER_MODE) -- install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/certs") -+ install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/share/qca/certs") - endif() - endif() - message(STATUS "certstore path: " ${qca_CERTSTORE}) -@@ -390,10 +398,10 @@ endif() - include(CMakePackageConfigHelpers) - configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/QcaConfig.cmake.in" -- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" -- INSTALL_DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} -+ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" -+ INSTALL_DESTINATION ${CMAKE_BINARY_DIR}/share/qca/cmake - ) --write_basic_config_version_file("${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) -+write_basic_config_version_file("${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) - - if(NOT DEVELOPER_MODE) - -@@ -461,10 +469,10 @@ if(NOT DEVELOPER_MODE) - endif() - endif() - -- install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) -+ install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) - install(FILES -- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" -- "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" -- DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} -+ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" -+ "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" -+ DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake - ) - endif() diff --git a/vcpkg/ports/qca-qt6/0002-fix-build-error.patch b/vcpkg/ports/qca-qt6/0002-fix-build-error.patch deleted file mode 100644 index 5515d21f7..000000000 --- a/vcpkg/ports/qca-qt6/0002-fix-build-error.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8d67288a3dde7e535ff747715f96f98282a3bf67 Mon Sep 17 00:00:00 2001 -From: Matthias Kuhn -Date: Fri, 3 Dec 2021 15:17:25 +0100 -Subject: [PATCH] Ifdef codecs - ---- - cmake/modules/QcaMacro.cmake | 9 --------- - plugins/qca-ossl/qca-ossl.cpp | 6 ++++++ - 2 files changed, 6 insertions(+), 9 deletions(-) - -diff --git a/cmake/modules/QcaMacro.cmake b/cmake/modules/QcaMacro.cmake -index 80af6e84..ba86310d 100644 ---- a/cmake/modules/QcaMacro.cmake -+++ b/cmake/modules/QcaMacro.cmake -@@ -65,10 +65,6 @@ macro(add_qca_test TARGET DESCRIPTION) - endmacro(add_qca_test) - - macro(install_pdb TARGET INSTALL_PATH) -- if(MSVC) -- install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS Debug) -- install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS RelWithDebInfo) -- endif() - endmacro(install_pdb) - - macro(normalize_path PATH) - diff --git a/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch b/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch deleted file mode 100644 index d894000d6..000000000 --- a/vcpkg/ports/qca-qt6/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f32f5ae8b8b49653bfff87f2f882862bcaa8c3f1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= - =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= -Date: Mon, 20 Mar 2023 16:21:18 +0100 -Subject: [PATCH] Define NOMINMAX to fix building qca-botan plugin with MSVC - ---- - plugins/qca-botan/CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/plugins/qca-botan/CMakeLists.txt b/plugins/qca-botan/CMakeLists.txt -index 11c0d20..9b8b978 100644 ---- a/plugins/qca-botan/CMakeLists.txt -+++ b/plugins/qca-botan/CMakeLists.txt -@@ -11,6 +11,10 @@ if(BOTAN_FOUND) - set(QCA_BOTAN_SOURCES qca-botan.cpp) - add_library(qca-botan ${PLUGIN_TYPE} ${QCA_BOTAN_SOURCES}) - -+ if(MSVC) -+ target_compile_definitions(qca-botan PRIVATE NOMINMAX) -+ endif() -+ - if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE") - set_property(TARGET qca-botan PROPERTY SUFFIX ".dylib") - endif() --- -2.40.0.windows.1 - diff --git a/vcpkg/ports/qca-qt6/connect_fix.patch b/vcpkg/ports/qca-qt6/connect_fix.patch deleted file mode 100644 index 0a2aa1377..000000000 --- a/vcpkg/ports/qca-qt6/connect_fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/src/qca_safeobj.h b/src/qca_safeobj.h -index 5c47adad..20570b27 100644 ---- a/src/qca_safeobj.h -+++ b/src/qca_safeobj.h -@@ -57,7 +57,7 @@ public Q_SLOTS: - } - - Q_SIGNALS: -- void activated(); -+ void activated(QSocketDescriptor socket, QSocketNotifier::Type type); - - private: - QSocketNotifier *sn; -diff --git a/src/support/qpipe.cpp b/src/support/qpipe.cpp -index 122e96a8..2d9d8ab7 100644 ---- a/src/support/qpipe.cpp -+++ b/src/support/qpipe.cpp -@@ -1075,8 +1075,10 @@ public Q_SLOTS: - #endif - } - -- void sn_read_activated() -+ void sn_read_activated(QSocketDescriptor socket, QSocketNotifier::Type type) - { -+ Q_UNUSED(socket) -+ Q_UNUSED(type) - #ifdef Q_OS_UNIX - if (blockReadNotify) - return; diff --git a/vcpkg/ports/qca-qt6/ios.patch b/vcpkg/ports/qca-qt6/ios.patch deleted file mode 100644 index 06d53bd2c..000000000 --- a/vcpkg/ports/qca-qt6/ios.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 47773219..0e2b90ac 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -52,7 +52,7 @@ SET( SOURCES - - IF (WIN32) - SET( SOURCES ${SOURCES} qca_systemstore_win.cpp ) --elseif(APPLE AND NOT IOS) -+elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set( SOURCES ${SOURCES} qca_systemstore_mac.cpp) - else() - SET( SOURCES ${SOURCES} qca_systemstore_flatfile.cpp ) diff --git a/vcpkg/ports/qca-qt6/mk-ca-bundle.pl b/vcpkg/ports/qca-qt6/mk-ca-bundle.pl deleted file mode 100644 index 9574f1dbf..000000000 --- a/vcpkg/ports/qca-qt6/mk-ca-bundle.pl +++ /dev/null @@ -1,554 +0,0 @@ -#!/usr/bin/perl -w -# *************************************************************************** -# * _ _ ____ _ -# * Project ___| | | | _ \| | -# * / __| | | | |_) | | -# * | (__| |_| | _ <| |___ -# * \___|\___/|_| \_\_____| -# * -# * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. -# * -# * This software is licensed as described in the file COPYING, which -# * you should have received as part of this distribution. The terms -# * are also available at https://curl.haxx.se/docs/copyright.html. -# * -# * You may opt to use, copy, modify, merge, publish, distribute and/or sell -# * copies of the Software, and permit persons to whom the Software is -# * furnished to do so, under the terms of the COPYING file. -# * -# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# * KIND, either express or implied. -# * -# *************************************************************************** -# This Perl script creates a fresh ca-bundle.crt file for use with libcurl. -# It downloads certdata.txt from Mozilla's source tree (see URL below), -# then parses certdata.txt and extracts CA Root Certificates into PEM format. -# These are then processed with the OpenSSL commandline tool to produce the -# final ca-bundle.crt file. -# The script is based on the parse-certs script written by Roland Krikava. -# This Perl script works on almost any platform since its only external -# dependency is the OpenSSL commandline tool for optional text listing. -# Hacked by Guenter Knauf. -# -use Encode; -use Getopt::Std; -use MIME::Base64; -use strict; -use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w); -use List::Util; -use Text::Wrap; -my $MOD_SHA = "Digest::SHA"; -eval "require $MOD_SHA"; -if ($@) { - $MOD_SHA = "Digest::SHA::PurePerl"; - eval "require $MOD_SHA"; -} -eval "require LWP::UserAgent"; - -my %urls = ( - 'nss' => - 'https://hg.mozilla.org/projects/nss/raw-file/tip/lib/ckfw/builtins/certdata.txt', - 'central' => - 'https://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', - 'aurora' => - 'https://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', - 'beta' => - 'https://hg.mozilla.org/releases/mozilla-beta/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', - 'release' => - 'https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', -); - -$opt_d = 'release'; - -# If the OpenSSL commandline is not in search path you can configure it here! -my $openssl = 'openssl'; - -my $version = '1.27'; - -$opt_w = 76; # default base64 encoded lines length - -# default cert types to include in the output (default is to include CAs which may issue SSL server certs) -my $default_mozilla_trust_purposes = "SERVER_AUTH"; -my $default_mozilla_trust_levels = "TRUSTED_DELEGATOR"; -$opt_p = $default_mozilla_trust_purposes . ":" . $default_mozilla_trust_levels; - -my @valid_mozilla_trust_purposes = ( - "DIGITAL_SIGNATURE", - "NON_REPUDIATION", - "KEY_ENCIPHERMENT", - "DATA_ENCIPHERMENT", - "KEY_AGREEMENT", - "KEY_CERT_SIGN", - "CRL_SIGN", - "SERVER_AUTH", - "CLIENT_AUTH", - "CODE_SIGNING", - "EMAIL_PROTECTION", - "IPSEC_END_SYSTEM", - "IPSEC_TUNNEL", - "IPSEC_USER", - "TIME_STAMPING", - "STEP_UP_APPROVED" -); - -my @valid_mozilla_trust_levels = ( - "TRUSTED_DELEGATOR", # CAs - "NOT_TRUSTED", # Don't trust these certs. - "MUST_VERIFY_TRUST", # This explicitly tells us that it ISN'T a CA but is otherwise ok. In other words, this should tell the app to ignore any other sources that claim this is a CA. - "TRUSTED" # This cert is trusted, but only for itself and not for delegates (i.e. it is not a CA). -); - -my $default_signature_algorithms = $opt_s = "MD5"; - -my @valid_signature_algorithms = ( - "MD5", - "SHA1", - "SHA256", - "SHA384", - "SHA512" -); - -$0 =~ s@.*(/|\\)@@; -$Getopt::Std::STANDARD_HELP_VERSION = 1; -getopts('bd:fhiklmnp:qs:tuvw:'); - -if(!defined($opt_d)) { - # to make plain "-d" use not cause warnings, and actually still work - $opt_d = 'release'; -} - -# Use predefined URL or else custom URL specified on command line. -my $url; -if(defined($urls{$opt_d})) { - $url = $urls{$opt_d}; - if(!$opt_k && $url !~ /^https:\/\//i) { - die "The URL for '$opt_d' is not HTTPS. Use -k to override (insecure).\n"; - } -} -else { - $url = $opt_d; -} - -my $curl = `curl -V`; - -if ($opt_i) { - print ("=" x 78 . "\n"); - print "Script Version : $version\n"; - print "Perl Version : $]\n"; - print "Operating System Name : $^O\n"; - print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n"; - print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n"; - print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n" if($LWP::UserAgent::VERSION); - print "LWP.pm Version : ${LWP::VERSION}\n" if($LWP::VERSION); - print "Digest::SHA.pm Version : ${Digest::SHA::VERSION}\n" if ($Digest::SHA::VERSION); - print "Digest::SHA::PurePerl.pm Version : ${Digest::SHA::PurePerl::VERSION}\n" if ($Digest::SHA::PurePerl::VERSION); - print ("=" x 78 . "\n"); -} - -sub warning_message() { - if ( $opt_d =~ m/^risk$/i ) { # Long Form Warning and Exit - print "Warning: Use of this script may pose some risk:\n"; - print "\n"; - print " 1) If you use HTTP URLs they are subject to a man in the middle attack\n"; - print " 2) Default to 'release', but more recent updates may be found in other trees\n"; - print " 3) certdata.txt file format may change, lag time to update this script\n"; - print " 4) Generally unwise to blindly trust CAs without manual review & verification\n"; - print " 5) Mozilla apps use additional security checks aren't represented in certdata\n"; - print " 6) Use of this script will make a security engineer grind his teeth and\n"; - print " swear at you. ;)\n"; - exit; - } else { # Short Form Warning - print "Warning: Use of this script may pose some risk, -d risk for more details.\n"; - } -} - -sub HELP_MESSAGE() { - print "Usage:\t${0} [-b] [-d] [-f] [-i] [-k] [-l] [-n] [-p] [-q] [-s] [-t] [-u] [-v] [-w] []\n"; - print "\t-b\tbackup an existing version of ca-bundle.crt\n"; - print "\t-d\tspecify Mozilla tree to pull certdata.txt or custom URL\n"; - print "\t\t Valid names are:\n"; - print "\t\t ", join( ", ", map { ( $_ =~ m/$opt_d/ ) ? "$_ (default)" : "$_" } sort keys %urls ), "\n"; - print "\t-f\tforce rebuild even if certdata.txt is current\n"; - print "\t-i\tprint version info about used modules\n"; - print "\t-k\tallow URLs other than HTTPS, enable HTTP fallback (insecure)\n"; - print "\t-l\tprint license info about certdata.txt\n"; - print "\t-m\tinclude meta data in output\n"; - print "\t-n\tno download of certdata.txt (to use existing)\n"; - print wrap("\t","\t\t", "-p\tlist of Mozilla trust purposes and levels for certificates to include in output. Takes the form of a comma separated list of purposes, a colon, and a comma separated list of levels. (default: $default_mozilla_trust_purposes:$default_mozilla_trust_levels)"), "\n"; - print "\t\t Valid purposes are:\n"; - print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_purposes ) ), "\n"; - print "\t\t Valid levels are:\n"; - print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_levels ) ), "\n"; - print "\t-q\tbe really quiet (no progress output at all)\n"; - print wrap("\t","\t\t", "-s\tcomma separated list of certificate signatures/hashes to output in plain text mode. (default: $default_signature_algorithms)\n"); - print "\t\t Valid signature algorithms are:\n"; - print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_signature_algorithms ) ), "\n"; - print "\t-t\tinclude plain text listing of certificates\n"; - print "\t-u\tunlink (remove) certdata.txt after processing\n"; - print "\t-v\tbe verbose and print out processed CAs\n"; - print "\t-w \twrap base64 output lines after chars (default: ${opt_w})\n"; - exit; -} - -sub VERSION_MESSAGE() { - print "${0} version ${version} running Perl ${]} on ${^O}\n"; -} - -warning_message() unless ($opt_q || $url =~ m/^(ht|f)tps:/i ); -HELP_MESSAGE() if ($opt_h); - -sub report($@) { - my $output = shift; - - print STDERR $output . "\n" unless $opt_q; -} - -sub is_in_list($@) { - my $target = shift; - - return defined(List::Util::first { $target eq $_ } @_); -} - -# Parses $param_string as a case insensitive comma separated list with optional whitespace -# validates that only allowed parameters are supplied -sub parse_csv_param($$@) { - my $description = shift; - my $param_string = shift; - my @valid_values = @_; - - my @values = map { - s/^\s+//; # strip leading spaces - s/\s+$//; # strip trailing spaces - uc $_ # return the modified string as upper case - } split( ',', $param_string ); - - # Find all values which are not in the list of valid values or "ALL" - my @invalid = grep { !is_in_list($_,"ALL",@valid_values) } @values; - - if ( scalar(@invalid) > 0 ) { - # Tell the user which parameters were invalid and print the standard help message which will exit - print "Error: Invalid ", $description, scalar(@invalid) == 1 ? ": " : "s: ", join( ", ", map { "\"$_\"" } @invalid ), "\n"; - HELP_MESSAGE(); - } - - @values = @valid_values if ( is_in_list("ALL",@values) ); - - return @values; -} - -sub sha256 { - my $result; - if ($Digest::SHA::VERSION || $Digest::SHA::PurePerl::VERSION) { - open(FILE, $_[0]) or die "Can't open '$_[0]': $!"; - binmode(FILE); - $result = $MOD_SHA->new(256)->addfile(*FILE)->hexdigest; - close(FILE); - } else { - # Use OpenSSL command if Perl Digest::SHA modules not available - $result = `"$openssl" dgst -r -sha256 "$_[0]"`; - $result =~ s/^([0-9a-f]{64}) .+/$1/is; - } - return $result; -} - - -sub oldhash { - my $hash = ""; - open(C, "<$_[0]") || return 0; - while() { - chomp; - if($_ =~ /^\#\# SHA256: (.*)/) { - $hash = $1; - last; - } - } - close(C); - return $hash; -} - -if ( $opt_p !~ m/:/ ) { - print "Error: Mozilla trust identifier list must include both purposes and levels\n"; - HELP_MESSAGE(); -} - -(my $included_mozilla_trust_purposes_string, my $included_mozilla_trust_levels_string) = split( ':', $opt_p ); -my @included_mozilla_trust_purposes = parse_csv_param( "trust purpose", $included_mozilla_trust_purposes_string, @valid_mozilla_trust_purposes ); -my @included_mozilla_trust_levels = parse_csv_param( "trust level", $included_mozilla_trust_levels_string, @valid_mozilla_trust_levels ); - -my @included_signature_algorithms = parse_csv_param( "signature algorithm", $opt_s, @valid_signature_algorithms ); - -sub should_output_cert(%) { - my %trust_purposes_by_level = @_; - - foreach my $level (@included_mozilla_trust_levels) { - # for each level we want to output, see if any of our desired purposes are included - return 1 if ( defined( List::Util::first { is_in_list( $_, @included_mozilla_trust_purposes ) } @{$trust_purposes_by_level{$level}} ) ); - } - - return 0; -} - -my $crt = $ARGV[0] || 'ca-bundle.crt'; -(my $txt = $url) =~ s@(.*/|\?.*)@@g; - -my $stdout = $crt eq '-'; -my $resp; -my $fetched; - -my $oldhash = oldhash($crt); - -report "SHA256 of old file: $oldhash"; - -if(!$opt_n) { - report "Downloading $txt ..."; - - # If we have an HTTPS URL then use curl - if($url =~ /^https:\/\//i) { - if($curl) { - if($curl =~ /^Protocols:.* https( |$)/m) { - report "Get certdata with curl!"; - my $proto = !$opt_k ? "--proto =https" : ""; - my $quiet = $opt_q ? "-s" : ""; - my @out = `curl -w %{response_code} $proto $quiet -o "$txt" "$url"`; - if(@out && $out[0] == 200) { - $fetched = 1; - report "Downloaded $txt"; - } - else { - report "Failed downloading via HTTPS with curl"; - if(-e $txt && !unlink($txt)) { - report "Failed to remove '$txt': $!"; - } - } - } - else { - report "curl lacks https support"; - } - } - else { - report "curl not found"; - } - } - - # If nothing was fetched then use LWP - if(!$fetched) { - if($url =~ /^https:\/\//i) { - report "Falling back to HTTP"; - $url =~ s/^https:\/\//http:\/\//i; - } - if(!$opt_k) { - report "URLs other than HTTPS are disabled by default, to enable use -k"; - exit 1; - } - report "Get certdata with LWP!"; - if(!defined(${LWP::UserAgent::VERSION})) { - report "LWP is not available (LWP::UserAgent not found)"; - exit 1; - } - my $ua = new LWP::UserAgent(agent => "$0/$version"); - $ua->env_proxy(); - $resp = $ua->mirror($url, $txt); - if($resp && $resp->code eq '304') { - report "Not modified"; - exit 0 if -e $crt && !$opt_f; - } - else { - $fetched = 1; - report "Downloaded $txt"; - } - if(!$resp || $resp->code !~ /^(?:200|304)$/) { - report "Unable to download latest data: " - . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed"); - exit 1 if -e $crt || ! -r $txt; - } - } -} - -my $filedate = $resp ? $resp->last_modified : (stat($txt))[9]; -my $datesrc = "as of"; -if(!$filedate) { - # mxr.mozilla.org gave us a time, hg.mozilla.org does not! - $filedate = time(); - $datesrc="downloaded on"; -} - -# get the hash from the download file -my $newhash= sha256($txt); - -if(!$opt_f && $oldhash eq $newhash) { - report "Downloaded file identical to previous run\'s source file. Exiting"; - exit; -} - -report "SHA256 of new file: $newhash"; - -my $currentdate = scalar gmtime($filedate); - -my $format = $opt_t ? "plain text and " : ""; -if( $stdout ) { - open(CRT, '> -') or die "Couldn't open STDOUT: $!\n"; -} else { - open(CRT,">$crt.~") or die "Couldn't open $crt.~: $!\n"; -} -print CRT <) { - if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { - print CRT; - print if ($opt_l); - while () { - print CRT; - print if ($opt_l); - last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); - } - } - elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) { - push @precert, $_; - next; - } - elsif(/^#|^\s*$/) { - undef @precert; - next; - } - chomp; - - # this is a match for the start of a certificate - if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { - $start_of_cert = 1 - } - if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { - $caname = $1; - } - my %trust_purposes_by_level; - if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { - my $data; - while () { - last if (/^END/); - chomp; - my @octets = split(/\\/); - shift @octets; - for (@octets) { - $data .= chr(oct); - } - } - # scan forwards until the trust part - while () { - last if (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/); - chomp; - } - # now scan the trust part to determine how we should trust this cert - while () { - last if (/^#/); - if (/^CKA_TRUST_([A-Z_]+)\s+CK_TRUST\s+CKT_NSS_([A-Z_]+)\s*$/) { - if ( !is_in_list($1,@valid_mozilla_trust_purposes) ) { - report "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2"; - } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) { - report "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2"; - } else { - push @{$trust_purposes_by_level{$2}}, $1; - } - } - } - - if ( !should_output_cert(%trust_purposes_by_level) ) { - $skipnum ++; - } else { - my $encoded = MIME::Base64::encode_base64($data, ''); - $encoded =~ s/(.{1,${opt_w}})/$1\n/g; - my $pem = "-----BEGIN CERTIFICATE-----\n" - . $encoded - . "-----END CERTIFICATE-----\n"; - print CRT "\n$caname\n"; - print CRT @precert if($opt_m); - my $maxStringLength = length(decode('UTF-8', $caname, Encode::FB_CROAK)); - if ($opt_t) { - foreach my $key (keys %trust_purposes_by_level) { - my $string = $key . ": " . join(", ", @{$trust_purposes_by_level{$key}}); - $maxStringLength = List::Util::max( length($string), $maxStringLength ); - print CRT $string . "\n"; - } - } - print CRT ("=" x $maxStringLength . "\n"); - if (!$opt_t) { - print CRT $pem; - } else { - my $pipe = ""; - foreach my $hash (@included_signature_algorithms) { - $pipe = "|$openssl x509 -" . $hash . " -fingerprint -noout -inform PEM"; - if (!$stdout) { - $pipe .= " >> $crt.~"; - close(CRT) or die "Couldn't close $crt.~: $!"; - } - open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; - print TMP $pem; - close(TMP) or die "Couldn't close openssl pipe: $!"; - if (!$stdout) { - open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; - } - } - $pipe = "|$openssl x509 -text -inform PEM"; - if (!$stdout) { - $pipe .= " >> $crt.~"; - close(CRT) or die "Couldn't close $crt.~: $!"; - } - open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; - print TMP $pem; - close(TMP) or die "Couldn't close openssl pipe: $!"; - if (!$stdout) { - open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; - } - } - report "Parsing: $caname" if ($opt_v); - $certnum ++; - $start_of_cert = 0; - } - undef @precert; - } - -} -close(TXT) or die "Couldn't close $txt: $!\n"; -close(CRT) or die "Couldn't close $crt.~: $!\n"; -unless( $stdout ) { - if ($opt_b && -e $crt) { - my $bk = 1; - while (-e "$crt.~${bk}~") { - $bk++; - } - rename $crt, "$crt.~${bk}~" or die "Failed to create backup $crt.~$bk}~: $!\n"; - } elsif( -e $crt ) { - unlink( $crt ) or die "Failed to remove $crt: $!\n"; - } - rename "$crt.~", $crt or die "Failed to rename $crt.~ to $crt: $!\n"; -} -if($opt_u && -e $txt && !unlink($txt)) { - report "Failed to remove $txt: $!\n"; -} -report "Done ($certnum CA certs processed, $skipnum skipped)."; diff --git a/vcpkg/ports/qca-qt6/portfile.cmake b/vcpkg/ports/qca-qt6/portfile.cmake deleted file mode 100644 index 74ab67e3a..000000000 --- a/vcpkg/ports/qca-qt6/portfile.cmake +++ /dev/null @@ -1,95 +0,0 @@ -# This portfile adds the Qt Cryptographic Arcitecture -# Changes to the original build: -# No -qt5 suffix, which is recommended just for Linux -# Output directories according to vcpkg -# Updated certstore. See certstore.pem in the output dirs -# -vcpkg_find_acquire_program(PERL) -get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) -vcpkg_add_to_path("${PERL_EXE_PATH}") - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO KDE/qca - REF "v${VERSION}" - SHA512 956d36058db61498c492fc9b5345b45ca75a5e8214fcbf358273dfacdd5980c1394394652536d9332df05f29fc912d0781338bcca403d98de1285bb8b1216402 - PATCHES - 0001-fix-path-for-vcpkg.patch - 0002-fix-build-error.patch - 0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch - ios.patch - connect_fix.patch -) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/Qca) - set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/bin/Qca) -else() - set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/Qca) - set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/lib/Qca) -endif() - -# According to: -# https://www.openssl.org/docs/faq.html#USER16 -# it is up to developers or admins to maintain CAs. -# So we do it here: -message(STATUS "Importing certstore") -file(REMOVE "${SOURCE_PATH}/certs/rootcerts.pem") -# Using file(DOWNLOAD) to use https -file(DOWNLOAD https://raw.githubusercontent.com/mozilla/gecko-dev/master/security/nss/lib/ckfw/builtins/certdata.txt - "${CURRENT_BUILDTREES_DIR}/cert/certdata.txt" - TLS_VERIFY ON -) -vcpkg_execute_required_process( - COMMAND "${PERL}" "${CMAKE_CURRENT_LIST_DIR}/mk-ca-bundle.pl" -n "${SOURCE_PATH}/certs/rootcerts.pem" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/cert" - LOGNAME ca-bundle -) -message(STATUS "Importing certstore done") - -if(VCPKG_CROSSCOMPILING) - list(APPEND QCA_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) - list(APPEND QCA_OPTIONS -DQT_ADDITIONAL_PACKAGES_PREFIX_PATH=${CURRENT_HOST_INSTALLED_DIR}) - list(APPEND QCA_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) -endif() - -list(APPEND QCA_OPTIONS -DWITH_gnupg_PLUGIN=no) -# Configure and build -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - -DBUILD_WITH_QT6=ON - -DUSE_RELATIVE_PATHS=ON - -DBUILD_TESTS=OFF - -DBUILD_TOOLS=OFF - -DQCA_SUFFIX=OFF - -DQCA_FEATURE_INSTALL_DIR=share/qca/mkspecs/features - -DOSX_FRAMEWORK=OFF - -DQT6=ON - ${QCA_OPTIONS} - OPTIONS_DEBUG - -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_DEBUG} - OPTIONS_RELEASE - -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_RELEASE} -) - -vcpkg_cmake_install() - -vcpkg_cmake_config_fixup(CONFIG_PATH share/qca/cmake) -file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" QCA_CONFIG_FILE) -string(REGEX REPLACE "PACKAGE_PREFIX_DIR \"(.*)\" ABSOLUTE" - [[PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE]] - QCA_CONFIG_FILE "${QCA_CONFIG_FILE}" -) -file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" "${QCA_CONFIG_FILE}") - -# Remove unneeded dirs -file(REMOVE_RECURSE - "${CURRENT_BUILDTREES_DIR}/share/man" - "${CURRENT_PACKAGES_DIR}/share/man" - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -# Handle copyright -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/qca-qt6/vcpkg.json b/vcpkg/ports/qca-qt6/vcpkg.json deleted file mode 100644 index ecb7027ee..000000000 --- a/vcpkg/ports/qca-qt6/vcpkg.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "qca-qt6", - "version": "2.3.9", - "description": "Qt Cryptographic Architecture (QCA).", - "homepage": "https://cgit.kde.org/qca.git/", - "dependencies": [ - "qt6", - "openssl", - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/qgis-qt6/applocal.ps1 b/vcpkg/ports/qgis-qt6/applocal.ps1 deleted file mode 100644 index 10119875d..000000000 --- a/vcpkg/ports/qgis-qt6/applocal.ps1 +++ /dev/null @@ -1,125 +0,0 @@ -[cmdletbinding()] -param([string]$targetBinary, [string]$installedDir, [string]$tlogFile, [string]$copiedFilesLog, [string]$outputDir) - -$g_searched = @{} -# Note: installedDir is actually the bin\ directory. -$g_install_root = Split-Path $installedDir -parent -$g_is_debug = $g_install_root -match '(.*\\)?debug(\\)?$' - -# Ensure we create the copied files log, even if we don't end up copying any files -if ($copiedFilesLog) -{ - Set-Content -Path $copiedFilesLog -Value "" -Encoding UTF8 -} - -# Note: this function signature is depended upon by the qtdeploy.ps1 script introduced in 5.7.1-7 -function deployBinary([string]$targetBinaryDir, [string]$SourceDir, [string]$targetBinaryName) { - if (Test-Path "$targetBinaryDir\$targetBinaryName") { - $sourceModTime = (Get-Item $SourceDir\$targetBinaryName).LastWriteTime - $destModTime = (Get-Item $targetBinaryDir\$targetBinaryName).LastWriteTime - if ($destModTime -lt $sourceModTime) { - Write-Verbose " ${targetBinaryName}: Updating $SourceDir\$targetBinaryName" - Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir - } else { - Write-Verbose " ${targetBinaryName}: already present" - } - } - else { - Write-Verbose " ${targetBinaryName}: Copying $SourceDir\$targetBinaryName" - Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir - } - if ($copiedFilesLog) { Add-Content $copiedFilesLog "$targetBinaryDir\$targetBinaryName" -Encoding UTF8 } - if ($tlogFile) { Add-Content $tlogFile "$targetBinaryDir\$targetBinaryName" -Encoding Unicode } -} - - -Write-Verbose "Resolving base path $targetBinary..." -try -{ - $baseBinaryPath = Resolve-Path $targetBinary -erroraction stop - $baseTargetBinaryDir = Split-Path $baseBinaryPath -parent - if (![string]::IsNullOrEmpty($outputDir)) { - if (Test-Path "$outputDir\$_"){ - $baseTargetBinaryDir = $outputDir - } else { - Write-Error " ${outputDir} not found" - return - } - } -} -catch [System.Management.Automation.ItemNotFoundException] -{ - return -} - -# Note: this function signature is depended upon by the qtdeploy.ps1 script -function resolve([string]$targetBinary) { - Write-Verbose "Resolving $targetBinary..." - try - { - $targetBinaryPath = Resolve-Path $targetBinary -erroraction stop - } - catch [System.Management.Automation.ItemNotFoundException] - { - return - } - $targetBinaryDir = Split-Path $targetBinaryPath -parent - - $a = $(dumpbin /DEPENDENTS $targetBinary | ? { $_ -match "^ [^ ].*\.dll" } | % { $_ -replace "^ ","" }) - $a | % { - if ([string]::IsNullOrEmpty($_)) { - return - } - if ($g_searched.ContainsKey($_)) { - Write-Verbose " ${_}: previously searched - Skip" - return - } - $g_searched.Set_Item($_, $true) - if (Test-Path "$installedDir\$_") { - deployBinary $baseTargetBinaryDir $installedDir "$_" - if (Test-Path function:\deployPluginsIfQt) { deployPluginsIfQt $baseTargetBinaryDir "$g_install_root\plugins" "$_" } - if (Test-Path function:\deployOpenNI2) { deployOpenNI2 $targetBinaryDir "$g_install_root" "$_" } - if (Test-Path function:\deployPluginsIfMagnum) { - if ($g_is_debug) { - deployPluginsIfMagnum $targetBinaryDir "$g_install_root\bin\magnum-d" "$_" - } else { - deployPluginsIfMagnum $targetBinaryDir "$g_install_root\bin\magnum" "$_" - } - } - if (Test-Path function:\deployAzureKinectSensorSDK) { deployAzureKinectSensorSDK $targetBinaryDir "$g_install_root" "$_" } - resolve "$baseTargetBinaryDir\$_" - } elseif (Test-Path "$targetBinaryDir\$_") { - Write-Verbose " ${_}: $_ not found in vcpkg; locally deployed" - resolve "$targetBinaryDir\$_" - } else { - Write-Verbose " ${_}: $installedDir\$_ not found" - } - } - Write-Verbose "Done Resolving $targetBinary." -} - -# Note: This is a hack to make Qt5 work. -# Introduced with Qt package version 5.7.1-7 -if (Test-Path "$g_install_root\plugins\qtdeploy.ps1") { - . "$g_install_root\plugins\qtdeploy.ps1" -} - -# Note: This is a hack to make OpenNI2 work. -if (Test-Path "$g_install_root\bin\OpenNI2\openni2deploy.ps1") { - . "$g_install_root\bin\OpenNI2\openni2deploy.ps1" -} - -# Note: This is a hack to make Magnum work. -if (Test-Path "$g_install_root\bin\magnum\magnumdeploy.ps1") { - . "$g_install_root\bin\magnum\magnumdeploy.ps1" -} elseif (Test-Path "$g_install_root\bin\magnum-d\magnumdeploy.ps1") { - . "$g_install_root\bin\magnum-d\magnumdeploy.ps1" -} - -# Note: This is a hack to make Azure Kinect Sensor SDK work. -if (Test-Path "$g_install_root\tools\azure-kinect-sensor-sdk\k4adeploy.ps1") { - . "$g_install_root\tools\azure-kinect-sensor-sdk\k4adeploy.ps1" -} - -resolve($targetBinary) -Write-Verbose $($g_searched | out-string) diff --git a/vcpkg/ports/qgis-qt6/cmakelists.patch b/vcpkg/ports/qgis-qt6/cmakelists.patch deleted file mode 100644 index d2b22c7d2..000000000 --- a/vcpkg/ports/qgis-qt6/cmakelists.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -387,6 +387,7 @@ if(WITH_CORE) - message(STATUS "Found Geos: ${GEOS_VERSION} ${GEOS_DIR}") - find_package(GDAL REQUIRED) - message(STATUS "Found GDAL: ${GDAL_VERSION} ${GDAL_DIR}") -+ set(GDAL_LIBRARY ${GDAL_LIBRARIES}) - find_package(EXPAT REQUIRED) - find_package(Spatialindex REQUIRED) - find_package(LibZip REQUIRED) -@@ -409,7 +410,8 @@ if(WITH_CORE) - find_package(ZLIB REQUIRED) # for decompression of vector tiles in MBTiles file - message(STATUS "Found zlib: ${ZLIB_LIBRARIES}") - -- find_package(EXIV2 REQUIRED) -+ find_package(exiv2 REQUIRED) -+ set(EXIV2_LIBRARY exiv2lib) - - # optional - if (WITH_POSTGRESQL) -@@ -604,6 +606,10 @@ if(WITH_CORE) - else() - find_package(Qt5Keychain CONFIG REQUIRED) - endif() -+ set(QTKEYCHAIN_INCLUDE_DIR ${QTKEYCHAIN_INCLUDE_DIRS}/qt6keychain) -+ set(QTKEYCHAIN_LIBRARY ${QTKEYCHAIN_LIBRARIES}) -+ set(QTKEYCHAIN_FOUND ${Qt6Keychain_FOUND}) -+ - # Master password hash and authentication encryption - find_package(QCA REQUIRED) - # Check for runtime dependency of qca-ossl plugin -@@ -818,6 +824,7 @@ endif() - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") - # disable macros that offend std::numeric_limits::min()/max() - add_definitions(-DNOMINMAX) -+ add_definitions(/bigobj) - endif() - - # Prevent build when Qt api deprecated before this Qt version is used: diff --git a/vcpkg/ports/qgis-qt6/crssync.patch b/vcpkg/ports/qgis-qt6/crssync.patch deleted file mode 100644 index f3f28c349..000000000 --- a/vcpkg/ports/qgis-qt6/crssync.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -16,7 +16,9 @@ add_subdirectory(crssync) - - add_subdirectory(providers) - --add_subdirectory(crssync) -+if (NOT FORCE_STATIC_LIBS) -+ add_subdirectory(crssync) -+endif() - - if (WITH_CRASH_HANDLER) - add_subdirectory(crashhandler) diff --git a/vcpkg/ports/qgis-qt6/libxml2.patch b/vcpkg/ports/qgis-qt6/libxml2.patch deleted file mode 100644 index 2d4bfd105..000000000 --- a/vcpkg/ports/qgis-qt6/libxml2.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/providers/mdal/CMakeLists.txt -+++ b/src/providers/mdal/CMakeLists.txt -@@ -16,7 +16,7 @@ find_package(LibXml2) - endif() - find_package(HDF5) - find_package(NetCDF) --find_package(LibXml2) -+find_package(libxml2 CONFIG) - - ######################################################## - # Compile internal MDAL diff --git a/vcpkg/ports/qgis-qt6/portfile.cmake b/vcpkg/ports/qgis-qt6/portfile.cmake deleted file mode 100644 index 31ada00de..000000000 --- a/vcpkg/ports/qgis-qt6/portfile.cmake +++ /dev/null @@ -1,301 +0,0 @@ -set(QGIS_REF 55d788f1f80183bd52fd8045c1fbed5e6260f194) # final-3_40_4 -set(QGIS_SHA512 6eb3e2259fda72f7e2e8203d951b891963d52d47128793af02dfa989a467ba5524ab7a1019b4cf4acfd9e70c21635bd7b8577dc452d5cf7b98fcf7ce03d97b9f) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO qgis/QGIS - REF ${QGIS_REF} - SHA512 ${QGIS_SHA512} - PATCHES - cmakelists.patch - crssync.patch - libxml2.patch -) - -file(REMOVE ${SOURCE_PATH}/cmake/FindQtKeychain.cmake) -file(REMOVE ${SOURCE_PATH}/cmake/FindGDAL.cmake) -file(REMOVE ${SOURCE_PATH}/cmake/FindGEOS.cmake) -file(REMOVE ${SOURCE_PATH}/cmake/FindEXIV2.cmake) -file(REMOVE ${SOURCE_PATH}/cmake/FindExpat.cmake) -file(REMOVE ${SOURCE_PATH}/cmake/FindIconv.cmake) - -vcpkg_find_acquire_program(FLEX) -vcpkg_find_acquire_program(BISON) -vcpkg_find_acquire_program(PYTHON3) -get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) -vcpkg_add_to_path(${PYTHON3_PATH}) -vcpkg_add_to_path(${PYTHON3_PATH}/Scripts) -set(PYTHON_EXECUTABLE ${PYTHON3}) - -list(APPEND QGIS_OPTIONS -DFORCE_STATIC_LIBS:BOOL=ON) -list(APPEND QGIS_OPTIONS -DWITH_SPATIALITE:BOOL=ON) -list(APPEND QGIS_OPTIONS -DBUILD_WITH_QT6:BOOL=ON) - -list(APPEND QGIS_OPTIONS -DENABLE_TESTS:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QTWEBKIT:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_GRASS7:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QSPATIALITE:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DUSE_OPENCL:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_BINDINGS:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_GUI:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_DESKTOP:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_CUSTOM_WIDGETS:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_SERVER_PLUGINS:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_SERVER:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QGIS_PROCESS:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_PDAL:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_EPT:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_3D:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_DRACO:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_COPC=OFF) -list(APPEND QGIS_OPTIONS -DWITH_ANALYSIS=OFF) -list(APPEND QGIS_OPTIONS -DWITH_GRASS=OFF) -list(APPEND QGIS_OPTIONS -DWITH_GEOREFERENCER:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QTMOBILITY:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DENABLE_TESTS=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QWTPOLAR=OFF) -list(APPEND QGIS_OPTIONS -DWITH_GUI=OFF) -list(APPEND QGIS_OPTIONS -DWITH_APIDOC=OFF) -list(APPEND QGIS_OPTIONS -DWITH_ASTYLE=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QT5SERIALPORT=OFF) -list(APPEND QGIS_OPTIONS -DWITH_QUICK:BOOL=OFF) -list(APPEND QGIS_OPTIONS -DQGIS_MACAPP_FRAMEWORK=FALSE) -list(APPEND QGIS_OPTIONS -DWITH_QTSERIALPORT=FALSE) - -# Configure debug and release library paths -macro(FIND_LIB_OPTIONS basename relname debname suffix libsuffix) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}${relname}${libsuffix}" ${basename}_LIBRARY_RELEASE) - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}${debname}${libsuffix}" ${basename}_LIBRARY_DEBUG) - if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE ) - list(APPEND QGIS_OPTIONS_RELEASE -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_RELEASE}) - list(APPEND QGIS_OPTIONS_DEBUG -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_DEBUG}) - elseif( ${basename}_LIBRARY_RELEASE ) - list(APPEND QGIS_OPTIONS -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_RELEASE}) - elseif( ${basename}_LIBRARY_DEBUG ) - list(APPEND QGIS_OPTIONS -D${basename}_${suffix}:FILEPATH=${${basename}_LIBRARY_DEBUG}) - endif() -endmacro() - -# QGIS likes to install auth and providers to different locations on each platform -# let's keep things clean and tidy and put them at a predictable location -list(APPEND QGIS_OPTIONS -DQGIS_PLUGIN_SUBDIR=lib) - -# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else -# let's keep things clean and tidy and put them at a predictable location -list(APPEND QGIS_OPTIONS -DQGIS_INCLUDE_SUBDIR=include/qgis) - - -if(VCPKG_TARGET_IS_WINDOWS) - ############################################################################## - #Install pip - # if(NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe") - # MESSAGE(STATUS "Install pip for Python Begin ...") - # vcpkg_download_distfile( - # GET_PIP_PATH - # URLS https://bootstrap.pypa.io/pip/3.5/get-pip.py - # FILENAME get-pip.py - # SHA512 a408dd74e69a2c3259e06669562bebfff676156a1a3b2f8ba6594ed308e3f94afdf79257688e59b02bf02bd7f6ecbea510fc6665b403149031f14bcc08308a47 - # ) - - # vcpkg_execute_required_process( - # COMMAND "${PYTHON_EXECUTABLE}" "${GET_PIP_PATH}" - # WORKING_DIRECTORY ${PYTHON3_PATH} - # LOGNAME pip - # ) - - # vcpkg_execute_required_process( - # COMMAND "${PYTHON_EXECUTABLE}" -m pip install --upgrade pip - # WORKING_DIRECTORY ${PYTHON3_PATH} - # LOGNAME pip - # ) - # MESSAGE(STATUS "Install pip for Python End") - # endif (NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe") - ############################################################################## - - list(APPEND QGIS_OPTIONS -DBISON_EXECUTABLE="${BISON}") - list(APPEND QGIS_OPTIONS -DFLEX_EXECUTABLE="${FLEX}") - - # list(APPEND QGIS_OPTIONS -DPYUIC_PROGRAM=${PYTHON3_PATH}/Scripts/pyuic5.exe) - # list(APPEND QGIS_OPTIONS -DPYRCC_PROGRAM=${PYTHON3_PATH}/Scripts/pyrcc5.exe) - # list(APPEND QGIS_OPTIONS -DQT_LRELEASE_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/qt5-tools/bin/lrelease.exe) - - # qgis_gui depends on Qt5UiTools, and Qt5UiTools is a static library. - # If Qt5_EXCLUDE_STATIC_DEPENDENCIES is not set, it will add the QT release library that it depends on. - # so that in debug mode, it will reference both the qt debug library and the release library. - # In Debug mode, add Qt5_EXCLUDE_STATIC_DEPENDENCIES to avoid this bug - list(APPEND QGIS_OPTIONS_DEBUG -DQt5_EXCLUDE_STATIC_DEPENDENCIES:BOOL=ON) - - FIND_LIB_OPTIONS(GDAL gdal gdald LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - FIND_LIB_OPTIONS(GEOS geos_c geos_cd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - # FIND_LIB_OPTIONS(GSL gsl gsld LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - # FIND_LIB_OPTIONS(GSLCBLAS gslcblas gslcblasd LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - FIND_LIB_OPTIONS(POSTGRES libpq libpq LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - FIND_LIB_OPTIONS(PROJ proj proj_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - # FIND_LIB_OPTIONS(PYTHON python39 python39_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - FIND_LIB_OPTIONS(QCA qca qcad LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - - FIND_LIB_OPTIONS(QTKEYCHAIN qt6keychain qt6keychaind LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - # FIND_LIB_OPTIONS(QSCINTILLA qscintilla2_qt5 qscintilla2_qt5d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - - # if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") - # FIND_LIB_OPTIONS(ZSTD zstd_static zstd_staticd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) - # endif() - - set(SPATIALINDEX_LIB_NAME spatialindex) - if( VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" ) - set( SPATIALINDEX_LIB_NAME "spatialindex-64" ) - else() - set( SPATIALINDEX_LIB_NAME "spatialindex-32" ) - endif() - FIND_LIB_OPTIONS(SPATIALINDEX ${SPATIALINDEX_LIB_NAME} ${SPATIALINDEX_LIB_NAME}d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}) -endif() - -if(VCPKG_TARGET_IS_IOS) - if(NOT EXISTS "$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") - MESSAGE(FATAL_ERROR "missing libQt6Bundled_Poly2Tri") - endif() - # on iOS (static) Qt ships Poly2Tri ( but without headers :( ) - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) - list(APPEND QGIS_OPTIONS -Dpoly2tri_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include/poly2tri) - list(APPEND QGIS_OPTIONS_DEBUG -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri_debug.a") - list(APPEND QGIS_OPTIONS_RELEASE -Dpoly2tri_LIBRARY:PATH="$ENV{Qt6_DIR}/lib/libQt6Bundled_Poly2Tri.a") -else() - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) -endif() - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - #PREFER_NINJA - OPTIONS ${QGIS_OPTIONS} - OPTIONS_DEBUG ${QGIS_OPTIONS_DEBUG} - OPTIONS_RELEASE ${QGIS_OPTIONS_RELEASE} -) - -vcpkg_install_cmake() - -function(copy_path basepath targetdir) - file(GLOB ${basepath}_PATH ${CURRENT_PACKAGES_DIR}/${basepath}/*) - if( ${basepath}_PATH ) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath}) - file(COPY ${${basepath}_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath}) - endif() - - if(EXISTS "${CURRENT_PACKAGES_DIR}/${basepath}/") - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${basepath}/) - endif() -endfunction() - - -if(VCPKG_TARGET_IS_WINDOWS) - file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) - if(QGIS_TOOL_PATH) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) - file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) - file(REMOVE_RECURSE ${QGIS_TOOL_PATH}) - file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/* ) - file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) - endif() - - file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) - if(QGIS_TOOL_PATH_DEBUG) - if("debug-tools" IN_LIST FEATURES) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) - file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) - file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG}) - file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/* ) - file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin) - else() - file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG}) - endif() - endif() - - copy_path(doc share) - copy_path(i18n share) - copy_path(icons share) - copy_path(images share) - copy_path(plugins tools) - copy_path(resources share) - copy_path(svg share) - - # Extend vcpkg_copy_tool_dependencies to support the export of dll and exe dependencies in different directories to the same directory, - # and support the copy of debug dependencies - function(vcpkg_copy_tool_dependencies_ex TOOL_DIR OUTPUT_DIR SEARCH_DIR) - find_program(PS_EXE powershell PATHS ${DOWNLOADS}/tool) - if (PS_EXE-NOTFOUND) - message(FATAL_ERROR "Could not find powershell in vcpkg tools, please open an issue to report this.") - endif() - macro(search_for_dependencies PATH_TO_SEARCH) - file(GLOB TOOLS ${TOOL_DIR}/*.exe ${TOOL_DIR}/*.dll) - foreach(TOOL ${TOOLS}) - vcpkg_execute_required_process( - COMMAND ${PS_EXE} -noprofile -executionpolicy Bypass -nologo - -file ${CMAKE_CURRENT_LIST_DIR}/applocal.ps1 - -targetBinary ${TOOL} - -installedDir ${PATH_TO_SEARCH} - -outputDir ${OUTPUT_DIR} - WORKING_DIRECTORY ${VCPKG_ROOT_DIR} - LOGNAME copy-tool-dependencies - ) - endforeach() - endmacro() - search_for_dependencies(${CURRENT_PACKAGES_DIR}/${SEARCH_DIR}) - search_for_dependencies(${CURRENT_INSTALLED_DIR}/${SEARCH_DIR}) - endfunction() - - vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) - vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/plugins ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) - if("debug-tools" IN_LIST FEATURES) - vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) - vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/plugins ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) - endif() - if("server" IN_LIST FEATURES) - vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin bin) - if("debug-tools" IN_LIST FEATURES) - vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) - endif() - endif() - - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) - file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake) -else() - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) - if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libqt_poly2tri.a") - set(QT_POLY2TRI_DIR_RELEASE "${CURRENT_INSTALLED_DIR}/lib") - set(QT_POLY2TRI_DIR_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") - elseif(EXISTS "${Qt6_DIR}/../../libqt_poly2tri.a") - set(QT_POLY2TRI_DIR_RELEASE "${Qt6_DIR}/../..") - set(QT_POLY2TRI_DIR_DEBUG "${Qt6_DIR}/../..") - else() - list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri) - endif() - if(DEFINED QT_POLY2TRI_DIR_RELEASE) - list(APPEND QGIS_OPTIONS -DPoly2Tri_INCLUDE_DIR:PATH=${CMAKE_CURRENT_LIST_DIR}/poly2tri) - list(APPEND QGIS_OPTIONS_DEBUG -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_DEBUG}/debug/lib/libqt_poly2tri_debug.a) # static qt only - list(APPEND QGIS_OPTIONS_RELEASE -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_RELEASE}/lib/libqt_poly2tri.a) # static qt only - endif() -endif() - -if(VCPKG_TARGET_IS_OSX) - copy_path(resources share) -endif() - -file(GLOB QGIS_CMAKE_PATH ${CURRENT_PACKAGES_DIR}/*.cmake) -if(QGIS_CMAKE_PATH) - file(COPY ${QGIS_CMAKE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmake/${PORT}) - file(REMOVE_RECURSE ${QGIS_CMAKE_PATH}) -endif() - -file(GLOB QGIS_CMAKE_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.cmake) -if( QGIS_CMAKE_PATH_DEBUG ) - file(REMOVE_RECURSE ${QGIS_CMAKE_PATH_DEBUG}) -endif() - -file(REMOVE_RECURSE - ${CURRENT_PACKAGES_DIR}/debug/include -) -file(REMOVE_RECURSE # Added for debug porpose - ${CURRENT_PACKAGES_DIR}/debug/share -) - -# Handle copyright -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file diff --git a/vcpkg/ports/qgis-qt6/vcpkg.json b/vcpkg/ports/qgis-qt6/vcpkg.json deleted file mode 100644 index f573e12e5..000000000 --- a/vcpkg/ports/qgis-qt6/vcpkg.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "qgis-qt6", - "version": "3.40.4", - "port-version": 0, - "homepage": "https://qgis.org", - "description": "QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)", - "dependencies": [ - "expat", - "libxml2", - "libzip", - "zlib", - "libspatialindex", - "libspatialite", - "gdal", - "exiv2", - "libpq", - "protobuf", - "proj", - "geos", - "qt6", - "qca-qt6", - "qtkeychain-qt6", - { - "name": "libtasn1", - "platform": "osx | ios" - }, - { - "name": "qt6-poly2tri", - "platform": "ios" - }, - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/qgis/portfile.cmake b/vcpkg/ports/qgis/portfile.cmake index 43e6af380..917961f9b 100644 --- a/vcpkg/ports/qgis/portfile.cmake +++ b/vcpkg/ports/qgis/portfile.cmake @@ -179,6 +179,7 @@ function(copy_path basepath targetdir) endif() endfunction() + if(VCPKG_TARGET_IS_WINDOWS) file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(QGIS_TOOL_PATH) @@ -247,6 +248,25 @@ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) endif() endif() + + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) + file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake) +else() + list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) + if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libqt_poly2tri.a") + set(QT_POLY2TRI_DIR_RELEASE "${CURRENT_INSTALLED_DIR}/lib") + set(QT_POLY2TRI_DIR_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") + elseif(EXISTS "${Qt6_DIR}/../../libqt_poly2tri.a") + set(QT_POLY2TRI_DIR_RELEASE "${Qt6_DIR}/../..") + set(QT_POLY2TRI_DIR_DEBUG "${Qt6_DIR}/../..") + else() + list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri) + endif() + if(DEFINED QT_POLY2TRI_DIR_RELEASE) + list(APPEND QGIS_OPTIONS -DPoly2Tri_INCLUDE_DIR:PATH=${CMAKE_CURRENT_LIST_DIR}/poly2tri) + list(APPEND QGIS_OPTIONS_DEBUG -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_DEBUG}/debug/lib/libqt_poly2tri_debug.a) # static qt only + list(APPEND QGIS_OPTIONS_RELEASE -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_RELEASE}/lib/libqt_poly2tri.a) # static qt only + endif() endif() if(VCPKG_TARGET_IS_OSX) diff --git a/vcpkg/ports/qt6-poly2tri/portfile.cmake b/vcpkg/ports/qt6-poly2tri/portfile.cmake deleted file mode 100644 index edbaed6fa..000000000 --- a/vcpkg/ports/qt6-poly2tri/portfile.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# on iOS (static) Qt ships Poly2Tri ( but without headers :( ) -if(NOT VCPKG_TARGET_IS_IOS) - message(FATAL_ERROR "qt poly2tri only needed on iOS") -else() - vcpkg_download_distfile(ARCHIVE - URLS "https://download.qt.io/archive/qt/6.8/${VERSION}/submodules/qtpositioning-everywhere-src-${VERSION}.zip" - FILENAME "qtpositioning-${VERSION}.zip" - SHA512 cd216c94ef2d35e48bd9b8d7cf3d5c71f8afba379044601737e062f0de88c10a5c931a63b0f05436355ab464918400f7704908ec9c46c79eee74d790e678ae47 - ) - - vcpkg_extract_source_archive( - SOURCE_PATH - ARCHIVE "${ARCHIVE}" - SOURCE_BASE "v${VERSION}" - ) - - file(INSTALL ${SOURCE_PATH}/src/3rdparty/poly2tri DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h") -endif() diff --git a/vcpkg/ports/qt6-poly2tri/vcpkg.json b/vcpkg/ports/qt6-poly2tri/vcpkg.json deleted file mode 100644 index ee1436085..000000000 --- a/vcpkg/ports/qt6-poly2tri/vcpkg.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "qt6-poly2tri", - "version": "6.8.3", - "port-version": 0, - "description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", - "homepage": "https://www.qt.io/", - "license": null, - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} diff --git a/vcpkg/ports/qt6/copyright b/vcpkg/ports/qt6/copyright deleted file mode 100644 index 6bf924cd1..000000000 --- a/vcpkg/ports/qt6/copyright +++ /dev/null @@ -1,175 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - - The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. - Contact: http://www.qt.io/licensing/ - - You may use, distribute and copy the Qt Toolkit under the terms of - GNU Lesser General Public License version 3, which is displayed below. - This license makes reference to the version 3 of the GNU General - Public License, which you can find in the LICENSE.GPLv3 file. - -------------------------------------------------------------------------- - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright © 2007 Free Software Foundation, Inc. -Everyone is permitted to copy and distribute verbatim copies of this -licensedocument, but changing it is not allowed. - -This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - -0. Additional Definitions. - - As used herein, “this License” refers to version 3 of the GNU Lesser -General Public License, and the “GNU GPL” refers to version 3 of the -GNU General Public License. - - “The Library” refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An “Application” is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A “Combined Work” is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the “Linked -Version”. - - The “Minimal Corresponding Source” for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The “Corresponding Application Code” for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - -1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - -2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort - to ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - -3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this - license document. - -4. Combined Works. - - You may convey a Combined Work under terms of your choice that, taken -together, effectively do not restrict modification of the portions of -the Library contained in the Combined Work and reverse engineering for -debugging such modifications, if you also do each of the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this - license document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of - this License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with - the Library. A suitable mechanism is one that (a) uses at run - time a copy of the Library already present on the user's - computer system, and (b) will operate properly with a modified - version of the Library that is interface-compatible with the - Linked Version. - - e) Provide Installation Information, but only if you would - otherwise be required to provide such information under section 6 - of the GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the Application - with a modified version of the Linked Version. (If you use option - 4d0, the Installation Information must accompany the Minimal - Corresponding Source and Corresponding Application Code. If you - use option 4d1, you must provide the Installation Information in - the manner specified by section 6 of the GNU GPL for conveying - Corresponding Source.) - -5. Combined Libraries. - - You may place library facilities that are a work based on the Library -side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities, conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of - it is a work based on the Library, and explaining where to find - the accompanying uncombined form of the same work. - -6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -as you received it specifies that a certain numbered version of the -GNU Lesser General Public License “or any later version” applies to -it, you have the option of following the terms and conditions either -of that published version or of any later version published by the -Free Software Foundation. If the Library as you received it does not -specify a version number of the GNU Lesser General Public License, -you may choose any version of the GNU Lesser General Public License -ever published by the Free Software Foundation. - -If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the Library. - diff --git a/vcpkg/ports/qt6/portfile.cmake b/vcpkg/ports/qt6/portfile.cmake deleted file mode 100644 index 6d9df585f..000000000 --- a/vcpkg/ports/qt6/portfile.cmake +++ /dev/null @@ -1,3 +0,0 @@ -SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) - -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) diff --git a/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake deleted file mode 100644 index 7f30acc45..000000000 --- a/vcpkg/ports/qt6/vcpkg-cmake-wrapper.cmake +++ /dev/null @@ -1,196 +0,0 @@ -set(QT_MODULES - Qt6 - Qt6Designer - Qt63DAnimation - Qt63DCore - Qt63DExtras - Qt63DInput - Qt63DLogic - Qt63DQuick - Qt63DQuickAnimation - Qt63DQuickExtras - Qt63DQuickInput - Qt63DQuickRender - Qt63DQuickScene2D - Qt63DRender - Qt6AccessibilitySupport - Qt6AttributionsScannerTools - Qt6Bluetooth - Qt6Bootstrap - Qt6BundledPcre2 - Qt6BundledLibpng - Qt6BundledHarfbuzz - Qt6BundledFreetype - Qt6BuildInternals - Qt6Bundled_Clip2Tri - Qt6BundledFreetype - Qt6BundledGlslang_Glslang - Qt6BundledGlslang_Oglcompiler - Qt6BundledGlslang_Osdependent - Qt6BundledGlslang_Spirv - Qt6BundledHarfbuzz - Qt6BundledLibjpeg - Qt6BundledLibpng - Qt6BundledPcre2 - Qt6BundledResonanceAudio - Qt6BundledSpirv_Cross - Qt6Bundled_Clip2Tri - Qt6Bundled_Clipper - Qt6Bundled_Poly2Tri - Qt6BundledPcre2 - Qt6HostInfo - Qt6Linguist - Qt6QmlDomPrivate - Qt6QmlIntegration - Qt6Tools - Qt6UiPlugin - Qt6Bluetooth - Qt6BundledLibjpeg - Qt6BundledLibpng - Qt6Bundled_Clipper - Qt6Charts - Qt6ChartsQml - Qt6ClipboardSupport - Qt6Concurrent - Qt6Core - Qt6Core5Compat - Qt6DeviceDiscoverySupport - Qt6DocTools - Qt6EntryPointPrivate - Qt6EdidSupport - Qt6EglSupport - Qt6EntryPointPrivate - Qt6EventDispatcherSupport - Qt6FbSupport - Qt6FFmpegMediaPluginImplPrivate - Qt6FontDatabaseSupport - Qt6Gamepad - Qt6Gui - Qt6GraphicsSupport - Qt6Help - Qt6HostInfo - Qt6InputSupport - Qt6LabsAnimation - Qt6LabsFolderListModel - Qt6LabsQmlModels - Qt6LabsSettings - Qt6LabsSharedImage - Qt6LabsWavefrontMesh - Qt6Location - Qt6MacExtras - Qt6Multimedia - Qt6MultimediaQuick - Qt6MultimediaQuickPrivate - Qt6MultimediaWidgets - Qt6Network - Qt6Nfc - Qt6OpenGL - Qt6OpenGLExtensions - Qt6OpenGLWidgets - Qt6PacketProtocol - Qt6PacketProtocolPrivate - Qt6PlatformCompositorSupport - Qt6PngPrivate - Qt6Positioning - Qt6PositioningQuick - Qt6PrintSupport - Qt6Qml - Qt6QmlCompilerPrivate - Qt6QmlCore - Qt6QmlDebugPrivate - Qt6QmlDomPrivate - Qt6QmlIntegration - Qt6QmlLocalStorage - Qt6QmlMeta - Qt6QmlModels - Qt6QmlWorkerScript - Qt6QmlXmlListModel - Qt6Quick - Qt6Quick3DUtils - Qt6QuickControls2 - Qt6QuickControls2Impl - Qt6QuickControls2ImplPrivate - Qt6QuickDialogs2 - Qt6QuickDialogs2QuickImpl - Qt6QuickDialogs2Utils - Qt6QuickEffectsPrivate - Qt6QuickLayouts - Qt6QuickParticlesPrivate - Qt6QuickShapesPrivate - Qt6QuickTemplates2 - Qt6QuickTest - Qt6QuickWidgets - Qt6RemoteObjects - Qt6RepParser - Qt6Scxml - Qt6Sensors - Qt6SensorsQuick - Qt6SerialPort - Qt6ServiceSupport - Qt6Sql - Qt6Svg - Qt6SvgWidgets - Qt6Test - Qt6TextToSpeech - Qt6ThemeSupport - Qt6UiPlugin - Qt6UiTools - Qt6VulkanSupport - Qt6WebChannel - Qt6WebSockets - Qt6WebView - Qt6WebViewQuick - Qt6Widgets - Qt6Xml - Qt6XmlPatterns - Qt6Zlib - Qt6BundledPcre2 -) - -set(Qt6_ROOT_DIR $ENV{Qt6_DIR}/lib/cmake) - -if(EXISTS ${Qt6_ROOT_DIR}) - MESSAGE(STATUS "Using Qt6 CMAKE dir: ${Qt6_ROOT_DIR}") -else() - MESSAGE(FATAL_ERROR "Qt6 installation not found: ${Qt6_ROOT_DIR}; Do you have Qt6_DIR environment variable set?") -endif() - -foreach(MOD ${QT_MODULES}) - if(EXISTS ${Qt6_ROOT_DIR}/${MOD}) - set(${MOD}_DIR ${Qt6_ROOT_DIR}/${MOD}) - MESSAGE(STATUS "Qt6 ${MOD} found: ${Qt6_ROOT_DIR}/${MOD}") - else() - # Not all modules are on all platforms - MESSAGE(STATUS "Skipped -- Qt6 ${MOD}: ${Qt6_ROOT_DIR}/${MOD}") - endif() -endforeach() - -### HOST -# These modules are not in iOS/Android Qt, but they are needed for Qt -set(QT_HOST_MODULES - Qt6CoreTools - Qt6LinguistTools - Qt6WidgetsTools - Qt6GuiTools - Qt6QmlTools - Qt6QmlImportScanner -) - -set(Qt6_ROOT_HOST_DIR $ENV{QT_HOST_PATH}/lib/cmake) -if(EXISTS ${Qt6_ROOT_HOST_DIR}) - MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable QT_HOST_PATH ${Qt6_ROOT_HOST_DIR}") -else() - MESSAGE(STATUS "Using Qt6 host CMAKE dir from env. variable Qt6_DIR; for iOS or Android you need to set QT_HOST_PATH environment variable instead.") - set(Qt6_ROOT_HOST_DIR ${Qt6_ROOT_DIR}) -endif() - -foreach(MOD ${QT_HOST_MODULES}) - if(EXISTS ${Qt6_ROOT_HOST_DIR}/${MOD}) - set(${MOD}_DIR ${Qt6_ROOT_HOST_DIR}/${MOD}) - MESSAGE(STATUS "Qt6 HOST ${MOD} found: ${Qt6_ROOT_HOST_DIR}/${MOD}") - else() - MESSAGE(STATUS "Skipped -- Qt6 HOST ${MOD} not found: ${Qt6_ROOT_HOST_DIR}/${MOD}") - endif() -endforeach() - -_find_package(${ARGS}) \ No newline at end of file diff --git a/vcpkg/ports/qt6/vcpkg.json b/vcpkg/ports/qt6/vcpkg.json deleted file mode 100644 index c26238389..000000000 --- a/vcpkg/ports/qt6/vcpkg.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "qt6", - "version-string": "6.8.3", - "description": "Qt6 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", - "homepage": "https://www.qt.io/" -} \ No newline at end of file diff --git a/vcpkg/ports/qtkeychain-qt6/portfile.cmake b/vcpkg/ports/qtkeychain-qt6/portfile.cmake index f17f6fd9d..25e75075f 100644 --- a/vcpkg/ports/qtkeychain-qt6/portfile.cmake +++ b/vcpkg/ports/qtkeychain-qt6/portfile.cmake @@ -34,7 +34,6 @@ vcpkg_cmake_configure( -DBUILD_WITH_QT6=ON ${QTKEYCHAIN_OPTIONS} ) - vcpkg_cmake_install() vcpkg_copy_pdbs() diff --git a/vcpkg/ports/qtkeychain-qt6/vcpkg.json b/vcpkg/ports/qtkeychain-qt6/vcpkg.json index 4d80ded99..dd42992d0 100644 --- a/vcpkg/ports/qtkeychain-qt6/vcpkg.json +++ b/vcpkg/ports/qtkeychain-qt6/vcpkg.json @@ -26,4 +26,4 @@ "host": true } ] -} +} \ No newline at end of file diff --git a/vcpkg/ports/tiff/FindCMath.patch b/vcpkg/ports/tiff/FindCMath.patch deleted file mode 100644 index 70654cf80..000000000 --- a/vcpkg/ports/tiff/FindCMath.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cmake/FindCMath.cmake b/cmake/FindCMath.cmake -index ad92218..dd42aba 100644 ---- a/cmake/FindCMath.cmake -+++ b/cmake/FindCMath.cmake -@@ -31,7 +31,7 @@ include(CheckSymbolExists) - include(CheckLibraryExists) - - check_symbol_exists(pow "math.h" CMath_HAVE_LIBC_POW) --find_library(CMath_LIBRARY NAMES m) -+find_library(CMath_LIBRARY NAMES m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) - - if(NOT CMath_HAVE_LIBC_POW) - set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) diff --git a/vcpkg/ports/tiff/portfile.cmake b/vcpkg/ports/tiff/portfile.cmake deleted file mode 100644 index 01af6b41b..000000000 --- a/vcpkg/ports/tiff/portfile.cmake +++ /dev/null @@ -1,95 +0,0 @@ -vcpkg_from_gitlab( - GITLAB_URL https://gitlab.com - OUT_SOURCE_PATH SOURCE_PATH - REPO libtiff/libtiff - REF "v${VERSION}" - SHA512 859331284cd28df56c44644a355ecdd8eece19f0d5cd3e693e37c0fe37115091e46943ffbad784e84af1b39a6fd81cd196af2d4fefe86369258f89050dafaa84 - HEAD_REF master - PATCHES - FindCMath.patch -) - -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - cxx cxx - jpeg jpeg - jpeg CMAKE_REQUIRE_FIND_PACKAGE_JPEG - lzma lzma - lzma CMAKE_REQUIRE_FIND_PACKAGE_liblzma - tools tiff-tools - webp webp - webp CMAKE_REQUIRE_FIND_PACKAGE_WebP - zip zlib - zip CMAKE_REQUIRE_FIND_PACKAGE_ZLIB - zstd zstd - zstd CMAKE_REQUIRE_FIND_PACKAGE_ZSTD -) - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${FEATURE_OPTIONS} - -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON - -Dtiff-docs=OFF - -Dtiff-contrib=OFF - -Dtiff-tests=OFF - -Dlibdeflate=OFF - -Djbig=OFF # This is disabled by default due to GPL/Proprietary licensing. - -Djpeg12=OFF - -Dlerc=OFF - -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON - -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON - -DZSTD_HAVE_DECOMPRESS_STREAM=ON - -DHAVE_JPEGTURBO_DUAL_MODE_8_12=OFF - OPTIONS_DEBUG - -DCMAKE_DEBUG_POSTFIX=d # tiff sets "d" for MSVC only. - MAYBE_UNUSED_VARIABLES - ZSTD_HAVE_DECOMPRESS_STREAM -) - -vcpkg_cmake_install() - -# CMake config wasn't packaged in the past and is not yet usable now, -# cf. https://gitlab.com/libtiff/libtiff/-/merge_requests/496 -# vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tiff") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") - -set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libtiff-4.pc") -if(EXISTS "${_file}") - vcpkg_replace_string("${_file}" "-ltiff" "-ltiffd") -endif() -vcpkg_fixup_pkgconfig() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) - -if ("tools" IN_LIST FEATURES) - vcpkg_copy_tools(TOOL_NAMES - fax2ps - fax2tiff - pal2rgb - ppm2tiff - raw2tiff - tiff2bw - tiff2pdf - tiff2ps - tiff2rgba - tiffcmp - tiffcp - tiffcrop - tiffdither - tiffdump - tiffinfo - tiffmedian - tiffset - tiffsplit - AUTO_CLEAN - ) -endif() - -vcpkg_copy_pdbs() -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") diff --git a/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in deleted file mode 100644 index ff0ddc0bc..000000000 --- a/vcpkg/ports/tiff/vcpkg-cmake-wrapper.cmake.in +++ /dev/null @@ -1,81 +0,0 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0057 NEW) -set(z_vcpkg_tiff_find_options "") -if("REQUIRED" IN_LIST ARGS) - list(APPEND z_vcpkg_tiff_find_options "REQUIRED") -endif() -if("QUIET" IN_LIST ARGS) - list(APPEND z_vcpkg_tiff_find_options "QUIET") -endif() - -_find_package(${ARGS}) - -include(SelectLibraryConfigurations) - -if(TIFF_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") - set(z_vcpkg_tiff_link_libraries "") - set(z_vcpkg_tiff_libraries "") - if("@webp@") - find_package(WebP CONFIG ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${WebP_LIBRARIES}) - endif() - if("@lzma@") - find_package(LibLZMA ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${LIBLZMA_LIBRARIES}) - endif() - if("@jpeg@") - find_package(JPEG ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${JPEG_LIBRARIES}) - endif() - if("@zstd@") - find_package(zstd CONFIG ${z_vcpkg_tiff_find_options}) - set(z_vcpkg_tiff_zstd_target_property "IMPORTED_LOCATION_") - if(TARGET zstd::libzstd_shared) - set(z_vcpkg_tiff_zstd "\$") - set(z_vcpkg_tiff_zstd_target zstd::libzstd_shared) - if(WIN32) - set(z_vcpkg_tiff_zstd_target_property "IMPORTED_IMPLIB_") - endif() - else() - set(z_vcpkg_tiff_zstd "\$") - set(z_vcpkg_tiff_zstd_target zstd::libzstd_static) - endif() - get_target_property(z_vcpkg_tiff_zstd_configs "${z_vcpkg_tiff_zstd_target}" IMPORTED_CONFIGURATIONS) - foreach(z_vcpkg_config IN LISTS z_vcpkg_tiff_zstd_configs) - get_target_property(ZSTD_LIBRARY_${z_vcpkg_config} "${z_vcpkg_tiff_zstd_target}" "${z_vcpkg_tiff_zstd_target_property}${z_vcpkg_config}") - endforeach() - select_library_configurations(ZSTD) - if(NOT TARGET ZSTD::ZSTD) - add_library(ZSTD::ZSTD INTERFACE IMPORTED) - set_property(TARGET ZSTD::ZSTD APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_zstd}) - endif() - list(APPEND z_vcpkg_tiff_libraries ${ZSTD_LIBRARIES}) - list(APPEND z_vcpkg_tiff_link_libraries ${z_vcpkg_tiff_zstd}) - unset(z_vcpkg_tiff_zstd) - unset(z_vcpkg_tiff_zstd_configs) - unset(z_vcpkg_config) - unset(z_vcpkg_tiff_zstd_target) - endif() - if("@zlib@") - find_package(ZLIB ${z_vcpkg_tiff_find_options}) - list(APPEND z_vcpkg_tiff_link_libraries "\$") - list(APPEND z_vcpkg_tiff_libraries ${ZLIB_LIBRARIES}) - endif() - if(UNIX) - list(APPEND z_vcpkg_tiff_link_libraries m) - list(APPEND z_vcpkg_tiff_libraries m) - endif() - - if(TARGET TIFF::TIFF) - set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_link_libraries}) - endif() - list(APPEND TIFF_LIBRARIES ${z_vcpkg_tiff_libraries}) - unset(z_vcpkg_tiff_link_libraries) - unset(z_vcpkg_tiff_libraries) -endif() -unset(z_vcpkg_tiff_find_options) -cmake_policy(POP) diff --git a/vcpkg/ports/tiff/vcpkg.json b/vcpkg/ports/tiff/vcpkg.json deleted file mode 100644 index 5efdd8116..000000000 --- a/vcpkg/ports/tiff/vcpkg.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "tiff", - "version": "4.5.1", - "port-version": 2, - "description": "A library that supports the manipulation of TIFF image files", - "homepage": "https://libtiff.gitlab.io/libtiff/", - "license": "libtiff", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ], - "default-features": [ - "jpeg", - "lzma", - "zip" - ], - "features": { - "cxx": { - "description": "Build C++ libtiffxx library" - }, - "jpeg": { - "description": "Support JPEG compression in TIFF image files", - "dependencies": [ - "libjpeg-turbo" - ] - }, - "lzma": { - "description": "Support LZMA compression in TIFF image files", - "dependencies": [ - "liblzma" - ] - }, - "tools": { - "description": "Build tools" - }, - "webp": { - "description": "Support WEBP compression in TIFF image files", - "dependencies": [ - "libwebp" - ] - }, - "zip": { - "description": "Support ZIP/deflate compression in TIFF image files", - "dependencies": [ - "zlib" - ] - }, - "zstd": { - "description": "Support ZSTD compression in TIFF image files", - "dependencies": [ - "zstd" - ] - } - } -} diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index e59d2f150..646050f6f 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -28,13 +28,10 @@ set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) if(DEFINED ENV{ANDROIDAPI}) set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +else() + message(FATAL_ERROR "ANDROIDAPI not defined as env variable") endif() set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") - set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-ios.cmake b/vcpkg/triplets/arm64-ios.cmake index 6d9866ef6..8acb52bc1 100644 --- a/vcpkg/triplets/arm64-ios.cmake +++ b/vcpkg/triplets/arm64-ios.cmake @@ -6,12 +6,10 @@ set(VCPKG_OSX_ARCHITECTURES arm64) if(DEFINED ENV{DEPLOYMENT_TARGET}) set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") endif() set(VCPKG_BUILD_TYPE release) set(VCPKG_CXX_FLAGS "-fvisibility=hidden") set(VCPKG_C_FLAGS "-fvisibility=hidden") - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) \ No newline at end of file diff --git a/vcpkg/triplets/arm64-osx.cmake b/vcpkg/triplets/arm64-osx.cmake index cf3b7ea23..54b7f06ba 100644 --- a/vcpkg/triplets/arm64-osx.cmake +++ b/vcpkg/triplets/arm64-osx.cmake @@ -8,9 +8,10 @@ set(VCPKG_BUILD_TYPE release) if(DEFINED ENV{DEPLOYMENT_TARGET}) set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") endif() # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-linux.cmake b/vcpkg/triplets/x64-linux.cmake index ef7c6c546..f72ce58a9 100644 --- a/vcpkg/triplets/x64-linux.cmake +++ b/vcpkg/triplets/x64-linux.cmake @@ -11,4 +11,4 @@ endif() set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) -set(VCPKG_FIXUP_ELF_RPATH ON) +set(VCPKG_FIXUP_ELF_RPATH ON) \ No newline at end of file diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake index 5d8162c13..4cc004c68 100644 --- a/vcpkg/triplets/x64-osx.cmake +++ b/vcpkg/triplets/x64-osx.cmake @@ -11,5 +11,3 @@ set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake diff --git a/vcpkg/triplets/x64-windows.cmake b/vcpkg/triplets/x64-windows.cmake index 9e31900b1..42894919c 100644 --- a/vcpkg/triplets/x64-windows.cmake +++ b/vcpkg/triplets/x64-windows.cmake @@ -1,6 +1,4 @@ set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) +set(VCPKG_CRT_LINKAGE static) +set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_BUILD_TYPE release) - -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake \ No newline at end of file From 3fc79115457b52ba15e7d859422bd42177d3371a Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 15:51:07 +0200 Subject: [PATCH 074/118] proj share data from vcpkg --- CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8648211a9..5630ef140 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -397,6 +397,17 @@ file( PATTERN "vcpkg*" EXCLUDE ) +# ######################################################################################## +# RESOURCES +# ######################################################################################## +# TODO - this would need to rething the approach so the assets are in binary folder +file (COPY ${QGIS_RESOURCE_DIR}/qgis.db DESTINATION app/android/assets/qgis-data/resources/) +file (COPY ${QGIS_RESOURCE_DIR}/srs.db DESTINATION app/android/assets/qgis-data/resources/) +file (COPY ${PROJ_DIR} DESTINATION app/android/assets/qgis-data/proj + PATTERN "*.cmake" EXCLUDE + PATTERN "vcpkg*" EXCLUDE + ) + # ######################################################################################## # SUBDIRECTORIES # ######################################################################################## From 67bbbf846943aa9b5aeab9ff8b2fbb195c074ae0 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 15:52:51 +0200 Subject: [PATCH 075/118] proj share data from vcpkg --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5630ef140..a871c8ac7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -401,6 +401,7 @@ file( # RESOURCES # ######################################################################################## # TODO - this would need to rething the approach so the assets are in binary folder +file(MAKE_DIRECTORY app/android/assets/qgis-data/resources) file (COPY ${QGIS_RESOURCE_DIR}/qgis.db DESTINATION app/android/assets/qgis-data/resources/) file (COPY ${QGIS_RESOURCE_DIR}/srs.db DESTINATION app/android/assets/qgis-data/resources/) file (COPY ${PROJ_DIR} DESTINATION app/android/assets/qgis-data/proj From ef0e4fe3a76e59d819ed3891201c22877d010312 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 16:26:15 +0200 Subject: [PATCH 076/118] fix macos install step --- .github/workflows/macos.yml | 32 -------------------------------- CMakeLists.txt | 21 ++++++++++++++------- scripts/create_dmg.sh | 2 -- scripts/update_qt_version.bash | 0 4 files changed, 14 insertions(+), 41 deletions(-) create mode 100755 scripts/update_qt_version.bash diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 7dfa0de82..0b3eadb9d 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -168,38 +168,6 @@ jobs: with: format: 'YYYYMMDD' - - name: Create dmg - run: | - if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then - echo "${{ secrets.APPLE_DEVELOPER_ID_P12_BASE64 }}" | base64 --decode > cert.p12 - export P12_PATH=cert.p12 - export P12_PASSWORD=${{ secrets.APPLE_DEVELOPER_ID_P12_PASSWORD }} - export API_KEY_ID=${{ secrets.IOS_APPSTORE_KEY_ID }} - export API_KEY_ISSUER_ID=${{ secrets.IOS_APPSTORE_ISSUER_ID }} - echo "${{ secrets.IOS_APPSTORE_PRIVATE_KEY }}" > authkey.p8 - export API_KEY_PATH=authkey.p8 - fi - - export APP_PATH=${{ github.workspace }}/install-mm/Input.app - export DMG_PATH=merginmaps-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.dmg - ./mm/scripts/create_dmg.sh - - - name: Download app - uses: actions/download-artifact@v4 - with: - pattern: input-app-* - path: | - artifacts - - - name: Create universal app - run: | - mkdir -p x64 - gtar --strip-components=4 -zxf ./artifacts/input-app-x64-osx/input-app-x64-osx.tar.gz -C x64 - mkdir -p arm64 - gtar --strip-components=4 -zxf ./artifacts/input-app-arm64-osx/input-app-arm64-osx.tar.gz -C arm64 - pip install lipomerge - lipomerge ./x64 ./arm64 universal - - name: Create dmg run: | if [[ "${{ github.event_name }}" == "release" && "${{ github.ref }}" == refs/tags/v* ]]; then diff --git a/CMakeLists.txt b/CMakeLists.txt index a871c8ac7..e632c03f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ set(MM_VERSION_PATCH "0") # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake -if (ANDROID_ABI) +if (ANDROID_ABI) # TODO android! # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) @@ -400,14 +400,21 @@ file( # ######################################################################################## # RESOURCES # ######################################################################################## -# TODO - this would need to rething the approach so the assets are in binary folder -file(MAKE_DIRECTORY app/android/assets/qgis-data/resources) -file (COPY ${QGIS_RESOURCE_DIR}/qgis.db DESTINATION app/android/assets/qgis-data/resources/) -file (COPY ${QGIS_RESOURCE_DIR}/srs.db DESTINATION app/android/assets/qgis-data/resources/) -file (COPY ${PROJ_DIR} DESTINATION app/android/assets/qgis-data/proj +# TODO - this would need to rething the approach so the assets are in binary folder +message(STATUS "Copying proj and qgis resources to android/assets/qgis-data") +file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources) +file(COPY ${QGIS_RESOURCE_DIR}/qgis.db + DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ +) +file(COPY ${QGIS_RESOURCE_DIR}/srs.db + DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ +) +file( + COPY ${PROJ_DIR} + DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/ PATTERN "*.cmake" EXCLUDE PATTERN "vcpkg*" EXCLUDE - ) +) # ######################################################################################## # SUBDIRECTORIES diff --git a/scripts/create_dmg.sh b/scripts/create_dmg.sh index 2525b46bd..0c54a2a41 100755 --- a/scripts/create_dmg.sh +++ b/scripts/create_dmg.sh @@ -26,8 +26,6 @@ fi create-dmg --volname "Mergin Maps Mobile App Installer" \ --hide-extension "Input.app" \ - --volicon "./platform/macos/installer.icns" \ - --background "./platform/macos/installer_background.png" \ --window-pos 200 120 \ --window-size 512 320 \ --icon-size 100 \ diff --git a/scripts/update_qt_version.bash b/scripts/update_qt_version.bash new file mode 100755 index 000000000..e69de29bb From aa06c5ad8c8853c0f9ef00b5d47070e0432d4857 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 22 Apr 2025 20:33:53 +0200 Subject: [PATCH 077/118] add bison/flex to path --- .github/workflows/macos.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0b3eadb9d..2759ae01e 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -47,6 +47,9 @@ jobs: echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH + echo $(brew --prefix bison)/bin >> $GITHUB_PATH + echo $(brew --prefix flex)/bin >> $GITHUB_PATH + echo $(brew --prefix gettext)/bin >> $GITHUB_PATH - name: Install CMake and Ninja uses: lukka/get-cmake@latest From efe0021ac69fbf624308f43d2690bf51bc6a388b Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 08:07:19 +0200 Subject: [PATCH 078/118] update cmake version --- .github/workflows/macos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 2759ae01e..9beb6394d 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -60,6 +60,7 @@ jobs: uses: maxim-lobanov/setup-xcode@v1.6.0 with: xcode-version: ${{ env.XC_VERSION }} + - name: Extract Mergin API_KEY env: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} From 2e0362356ea0eabaef806412ac8dff5599cb64de Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 08:12:00 +0200 Subject: [PATCH 079/118] test nuget cache --- .github/workflows/macos.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9beb6394d..22fbb07e7 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -92,8 +92,7 @@ jobs: cd "${{ env.VCPKG_ROOT }}" chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh - - - name: Setup NuGet Credentials +- name: Setup NuGet Credentials shell: bash run: | mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ @@ -107,7 +106,6 @@ jobs: mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ -source "https://nuget.pkg.github.com/merginmaps/index.json" - - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT From 27c9e727e9ed16c729f8398a2405c430ac16073c Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 08:41:49 +0200 Subject: [PATCH 080/118] try binary nuget cache --- .github/workflows/macos.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 22fbb07e7..81abf05eb 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -47,9 +47,6 @@ jobs: echo $(brew --prefix bison)/bin >> $GITHUB_PATH echo $(brew --prefix flex)/bin >> $GITHUB_PATH echo $(brew --prefix gettext)/bin >> $GITHUB_PATH - echo $(brew --prefix bison)/bin >> $GITHUB_PATH - echo $(brew --prefix flex)/bin >> $GITHUB_PATH - echo $(brew --prefix gettext)/bin >> $GITHUB_PATH - name: Install CMake and Ninja uses: lukka/get-cmake@latest @@ -92,7 +89,8 @@ jobs: cd "${{ env.VCPKG_ROOT }}" chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh -- name: Setup NuGet Credentials + + - name: Setup NuGet Credentials shell: bash run: | mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ @@ -106,6 +104,7 @@ jobs: mono `${{ env.VCPKG_ROOT }}/vcpkg fetch nuget | tail -n 1` \ setapikey "${{ secrets.MERGIN_MAPS_BOT_GITHUB_TOKEN }}" \ -source "https://nuget.pkg.github.com/merginmaps/index.json" + - name: Calculate build number run: | BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT From 90d6ffac39208eef8d9fe914b7f05ebc40371443 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 10:38:46 +0200 Subject: [PATCH 081/118] test nuget cache --- .github/workflows/macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 81abf05eb..2708a0288 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -182,8 +182,8 @@ jobs: fi export APP_PATH=${{ github.workspace }}/install-mm/Input.app - export DMG_PATH=merginmaps_app.dmg - ./scripts/create_dmg.sh + export DMG_PATH=merginmaps-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.dmg + ./mm/scripts/create_dmg.sh - name: Upload dmg uses: actions/upload-artifact@v4 From 6493d5515d043fa003b172e12dcfed0d8fb5dd07 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 10:51:04 +0200 Subject: [PATCH 082/118] try linux build --- .github/workflows/linux.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 42891b0ab..6c8e2fb10 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -32,7 +32,7 @@ concurrency: jobs: linux_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 @@ -123,6 +123,7 @@ jobs: -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ + -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/build-mm-db/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ From 5b8753b156c8fb2ed00038e038a3fe734f94e2c3 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 10:57:56 +0200 Subject: [PATCH 083/118] try linux build --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 6c8e2fb10..77e8ac335 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -32,7 +32,7 @@ concurrency: jobs: linux_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 From 7ca5854a262b7b05e164a41b3bf6fd64c458fedc Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 12:06:03 +0200 Subject: [PATCH 084/118] move another ports --- .github/workflows/ios.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 03fa6b9ef..28cea9a3e 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -22,14 +22,13 @@ on: env: CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' - VCPKG_ROOT: "${{ github.workspace }}/vcpkg" + VCPKG_ROOT: '${{ github.workspace }}/vcpkg' XC_VERSION: ${{ '16.4' }} DEPLOYMENT_TARGET: '14.0' TRIPLET: arm64-ios IOS_PROVISIONING_PROFILE_UUID: 59aaa8d7-516a-4592-8c58-d7d1c1f81610 KEYCHAIN: ${{ 'inputapp.keychain' }} - concurrency: group: ci-${{github.ref}}-ios cancel-in-progress: true @@ -207,4 +206,3 @@ jobs: CF_BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" build-mm/app/CMakeFiles/Input.dir/Info.plist` echo "Publishing ios ${CF_BUNDLE_VERSION}" xcrun altool --upload-app -t ios -f build-mm/Input.ipa -u "$INPUTAPP_BOT_APPLEID_USER" -p "$INPUTAPP_BOT_APPLEID_PASS" --verbose - From 16331c98be60a762d8fd572f0eb091ab0bb7c167 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 13:54:30 +0200 Subject: [PATCH 085/118] more fixes --- .github/workflows/android.yml | 29 +++++++---------------------- .github/workflows/win.yml | 3 --- vcpkg/ports/qtbase/README | 1 + 3 files changed, 8 insertions(+), 25 deletions(-) create mode 100644 vcpkg/ports/qtbase/README diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 5d5bb5190..b1974d8a2 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -43,9 +43,6 @@ jobs: ANDROIDAPI: 24 VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' SDK_BUILD_TOOLS: 34.0.0 - CCACHE_DIR: /Users/runner/work/ccache - GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} - CACHE_VERSION: 0 CMAKE_VERSION: '3.31.6' QT_ANDROID_KEYSTORE_ALIAS: input QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} @@ -119,6 +116,11 @@ jobs: key: ccache-${{ env.TRIPLET }} max-size: 200M + - name: Install CMake and Ninja + uses: lukka/get-cmake@latest + with: + cmakeVersion: ${{ env.CMAKE_VERSION }} + - uses: nttld/setup-ndk@v1 id: setup-ndk with: @@ -138,18 +140,6 @@ jobs: run: | sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools - - name: Extract Mergin API_KEY - env: - MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} - run: | - cd core/ - /opt/homebrew/bin/openssl \ - aes-256-cbc -d \ - -in merginsecrets.cpp.enc \ - -out merginsecrets.cpp \ - -k "$MERGINSECRETS_DECRYPT_KEY" \ - -md md5 - - name: Extract GPS keystore env: INPUTKEYSTORE_DECRYPT_KEY: ${{ secrets.INPUTKEYSTORE_DECRYPT_KEY }} @@ -220,13 +210,8 @@ jobs: export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_ABI=${{ matrix.ANDROID_ABI }} - - export Qt6_DIR=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/${{ matrix.QT_ARCH }} - export QT_HOST_PATH=${{ github.workspace }}/Qt/${{ env.QT_VERSION }}/macos - export PATH=${{ env.VCPKG_ROOT }}:$PATH - export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} - export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} - export ANDROID_ABI=${{ matrix.ANDROID_ABI }} + + # -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" \ cmake \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index f89036e9e..eca517338 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -1,8 +1,5 @@ name: win64 Build -# TODO remove -skip: true - on: push: paths: diff --git a/vcpkg/ports/qtbase/README b/vcpkg/ports/qtbase/README new file mode 100644 index 000000000..09073835f --- /dev/null +++ b/vcpkg/ports/qtbase/README @@ -0,0 +1 @@ +https://github.com/microsoft/vcpkg/issues/39832#issuecomment-2221449238 \ No newline at end of file From b7f4df06e0fb701f1a69f0cce550803c52474ee0 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 17:31:47 +0200 Subject: [PATCH 086/118] fix ios/win builds --- vcpkg/ports/qgis/portfile.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/vcpkg/ports/qgis/portfile.cmake b/vcpkg/ports/qgis/portfile.cmake index 917961f9b..fc64726b5 100644 --- a/vcpkg/ports/qgis/portfile.cmake +++ b/vcpkg/ports/qgis/portfile.cmake @@ -179,7 +179,6 @@ function(copy_path basepath targetdir) endif() endfunction() - if(VCPKG_TARGET_IS_WINDOWS) file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(QGIS_TOOL_PATH) From 09fa3e9a875c5939f5e220229ae379a8ab643973 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 18:06:30 +0200 Subject: [PATCH 087/118] try fix win --- .github/workflows/win.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index eca517338..f541cfcaa 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -125,7 +125,10 @@ jobs: cd build-mm set PATH=${{ env.VCPKG_ROOT }};%PATH% - + + where.exe vcpkg + where.exe cmake + cmake ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm ^ From 51e95e9857e6c9f70578e1829211d532e5308691 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 18:11:22 +0200 Subject: [PATCH 088/118] try fix win --- .github/workflows/win.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index f541cfcaa..eca517338 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -125,10 +125,7 @@ jobs: cd build-mm set PATH=${{ env.VCPKG_ROOT }};%PATH% - - where.exe vcpkg - where.exe cmake - + cmake ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX:PATH=${{ steps.vars.outputs.WORKSPACE_DIR }}/install-mm ^ From 0231c91f2f0c983054b59a395bcc0ad60ed27b02 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 23 Apr 2025 20:28:33 +0200 Subject: [PATCH 089/118] bump version --- vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg.json b/vcpkg.json index ff29b14a4..c61ca7747 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -9,7 +9,7 @@ }, "name": "merginmaps-mobile-app", "description": "Collect. Share. Publish.", - "version": "2025.4.0", + "version": "2025.4.1", "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ { From 7c5f615c85f82e20d19a25b7c6d7c681888ff504 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Thu, 24 Apr 2025 08:55:33 +0200 Subject: [PATCH 090/118] another try --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e632c03f6..64233bb33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,6 +155,10 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## +if (WIN) + find_package(WMF REQUIRED) +endif () + find_package( Qt6 COMPONENTS Quick From 1b897f1e53ec7cfbea41c00ad66c386bbedb7116 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Thu, 24 Apr 2025 18:07:10 +0200 Subject: [PATCH 091/118] try to fix --- CMakeLists.txt | 2 +- vcpkg/ports/qtbase/README | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 vcpkg/ports/qtbase/README diff --git a/CMakeLists.txt b/CMakeLists.txt index 64233bb33..2c19b936c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ find_package(ZXing CONFIG REQUIRED) find_package(libzip CONFIG REQUIRED) find_package(OpenSSL CONFIG REQUIRED) find_package(GeoTIFF CONFIG REQUIRED) -# find_package(Lzma CONFIG REQUIRED) find_package(Zstd CONFIG REQUIRED) +# find_package(Lzma CONFIG REQUIRED) # find_package(Zstd CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) # find_package(Utf8 CONFIG REQUIRED) find_package(Absl CONFIG REQUIRED) find_package(poly2tri CONFIG) diff --git a/vcpkg/ports/qtbase/README b/vcpkg/ports/qtbase/README deleted file mode 100644 index 09073835f..000000000 --- a/vcpkg/ports/qtbase/README +++ /dev/null @@ -1 +0,0 @@ -https://github.com/microsoft/vcpkg/issues/39832#issuecomment-2221449238 \ No newline at end of file From d1d7b21f80e66fcba12a462f7bcc56ac61e5dba1 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 08:17:56 +0200 Subject: [PATCH 092/118] try to fix builds --- CMakeLists.txt | 2 +- vcpkg/triplets/x64-windows.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c19b936c..64233bb33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ find_package(ZXing CONFIG REQUIRED) find_package(libzip CONFIG REQUIRED) find_package(OpenSSL CONFIG REQUIRED) find_package(GeoTIFF CONFIG REQUIRED) -# find_package(Lzma CONFIG REQUIRED) # find_package(Zstd CONFIG REQUIRED) +# find_package(Lzma CONFIG REQUIRED) find_package(Zstd CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) # find_package(Utf8 CONFIG REQUIRED) find_package(Absl CONFIG REQUIRED) find_package(poly2tri CONFIG) diff --git a/vcpkg/triplets/x64-windows.cmake b/vcpkg/triplets/x64-windows.cmake index 42894919c..f6c40253a 100644 --- a/vcpkg/triplets/x64-windows.cmake +++ b/vcpkg/triplets/x64-windows.cmake @@ -1,4 +1,4 @@ set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE static) -set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_BUILD_TYPE release) From 18d3d2a7c20d23d4a0212db6ecf0056f9ae9a384 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 08:59:13 +0200 Subject: [PATCH 093/118] try fix linux? --- vcpkg/triplets/x64-linux.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg/triplets/x64-linux.cmake b/vcpkg/triplets/x64-linux.cmake index f72ce58a9..ef7c6c546 100644 --- a/vcpkg/triplets/x64-linux.cmake +++ b/vcpkg/triplets/x64-linux.cmake @@ -11,4 +11,4 @@ endif() set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) -set(VCPKG_FIXUP_ELF_RPATH ON) \ No newline at end of file +set(VCPKG_FIXUP_ELF_RPATH ON) From 6b0b5732180044925f8cbc06c723612e339561bf Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 10:50:31 +0200 Subject: [PATCH 094/118] try android --- .github/workflows/android.yml | 12 ++---------- vcpkg/triplets/arm64-android.cmake | 5 ++--- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b1974d8a2..89aac1a22 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,5 +1,4 @@ name: Android Build - on: push: paths: @@ -116,11 +115,6 @@ jobs: key: ccache-${{ env.TRIPLET }} max-size: 200M - - name: Install CMake and Ninja - uses: lukka/get-cmake@latest - with: - cmakeVersion: ${{ env.CMAKE_VERSION }} - - uses: nttld/setup-ndk@v1 id: setup-ndk with: @@ -210,16 +204,14 @@ jobs: export ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} export ANDROID_ABI=${{ matrix.ANDROID_ABI }} - - # -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a" \ - + cmake \ -DCMAKE_BUILD_TYPE=Release \ -DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ -DANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ -DANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ -DVCPKG_HOST_TRIPLET=arm64-osx \ - -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ + -D VCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index 3dd585ecc..80b9e371c 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -30,8 +30,7 @@ set(VCPKG_C_FLAGS "-fstack-protector-strong") if(DEFINED ENV{ANDROIDAPI}) set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) +else() + message(FATAL_ERROR "$ENV{ANDROIDAPI} not defined as env variable") endif() -set(VCPKG_ENV_PASSTHROUGH Qt6_DIR) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(VCPKG_ENV_PASSTHROUGH QT_HOST_PATH) # needed by port/qt6/vcpkg-cmake-wrapper.cmake -set(QT_HOST_PATH $ENV{QT_HOST_PATH} CACHE PATH "needed by QtPublicDependencyHelpers.cmake" FORCE) From 3cd2a635b80d9d5fe56bb34fb2631407f44c9f9d Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 25 Apr 2025 16:17:23 +0200 Subject: [PATCH 095/118] another try --- CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 64233bb33..e632c03f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,10 +155,6 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## -if (WIN) - find_package(WMF REQUIRED) -endif () - find_package( Qt6 COMPONENTS Quick From 3c96b60df6dac164be8cd8401dc4ba57b232fba8 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Apr 2025 09:05:36 +0200 Subject: [PATCH 096/118] cleanup INSTALL instructions --- .github/workflows/linux.yml | 1 - INSTALL.md | 2 -- 2 files changed, 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 77e8ac335..42891b0ab 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -123,7 +123,6 @@ jobs: -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake \ - -DUSE_SERVER_API_KEY=TRUE \ -DUSE_KEYCHAIN=No \ -DQGIS_QUICK_DATA_PATH=${{ github.workspace }}/build-mm-db/app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=TRUE \ diff --git a/INSTALL.md b/INSTALL.md index f40d6b0cb..eda6b3fa9 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -114,8 +114,6 @@ in the file `VCPKG_BASELINE` in the repository. chmod +x ./bootstrap-vcpkg.sh ./bootstrap-vcpkg.sh ``` -======= ->>>>>>> df49e97f (use Qt from vcpkg) ## 2.4 ccache From 2a218482c61c6348f848f8dafa526382868b78f9 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Apr 2025 09:44:44 +0200 Subject: [PATCH 097/118] small fixes --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e632c03f6..10519b59b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ set(MM_VERSION_PATCH "0") # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake -if (ANDROID_ABI) # TODO android! +if (ANDROID_ABI) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) @@ -400,7 +400,6 @@ file( # ######################################################################################## # RESOURCES # ######################################################################################## -# TODO - this would need to rething the approach so the assets are in binary folder message(STATUS "Copying proj and qgis resources to android/assets/qgis-data") file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources) file(COPY ${QGIS_RESOURCE_DIR}/qgis.db From d9a2d32a0d5b8419f4f5d88c9bca18da3fcf61f6 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 20 Jun 2025 13:24:09 +0200 Subject: [PATCH 098/118] docs update --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 89aac1a22..ea6c928f0 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -207,7 +207,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ + -D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ -DANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ -DANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ -DVCPKG_HOST_TRIPLET=arm64-osx \ From 73a8204914b36acb35adf8d50ba24e23bdf11bdb Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 20 Jun 2025 13:54:21 +0200 Subject: [PATCH 099/118] add x64 triplet --- vcpkg/triplets/x64-osx.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/vcpkg/triplets/x64-osx.cmake b/vcpkg/triplets/x64-osx.cmake index 4cc004c68..bfd3bb43f 100644 --- a/vcpkg/triplets/x64-osx.cmake +++ b/vcpkg/triplets/x64-osx.cmake @@ -11,3 +11,4 @@ set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) + From ab5b157f798f4fcba521f29ec7aa24c56945ddcf Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Wed, 16 Jul 2025 20:04:58 +0200 Subject: [PATCH 100/118] Fix issues with ios build --- CMakeLists.txt | 2 +- vcpkg/triplets/arm64-ios.cmake | 6 +----- vcpkg/triplets/arm64-osx.cmake | 7 ++----- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 10519b59b..9be395878 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ if (IOS) set(PLATFORM "OS") set(ENABLE_ARC FALSE) set(ENABLE_BITCODE FALSE) - # set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") # when changed change triplets arm64-ios.cmake + set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") #when changed change triplets arm64-ios.cmake endif () if (APPLE AND NOT IOS) diff --git a/vcpkg/triplets/arm64-ios.cmake b/vcpkg/triplets/arm64-ios.cmake index 8acb52bc1..8469a37c2 100644 --- a/vcpkg/triplets/arm64-ios.cmake +++ b/vcpkg/triplets/arm64-ios.cmake @@ -4,11 +4,7 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) set(VCPKG_OSX_ARCHITECTURES arm64) -if(DEFINED ENV{DEPLOYMENT_TARGET}) - set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) -else() - message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") -endif() +set(VCPKG_OSX_DEPLOYMENT_TARGET 16.0) set(VCPKG_BUILD_TYPE release) set(VCPKG_CXX_FLAGS "-fvisibility=hidden") diff --git a/vcpkg/triplets/arm64-osx.cmake b/vcpkg/triplets/arm64-osx.cmake index 54b7f06ba..058bcc539 100644 --- a/vcpkg/triplets/arm64-osx.cmake +++ b/vcpkg/triplets/arm64-osx.cmake @@ -6,11 +6,8 @@ set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES arm64) set(VCPKG_BUILD_TYPE release) -if(DEFINED ENV{DEPLOYMENT_TARGET}) - set(VCPKG_OSX_DEPLOYMENT_TARGET $ENV{DEPLOYMENT_TARGET}) -else() - message(FATAL_ERROR "DEPLOYMENT_TARGET not defined as env variable") -endif() +set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) + # See https://github.com/microsoft/vcpkg/issues/10038 set(VCPKG_C_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) set(VCPKG_CXX_FLAGS -mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) From 765565d0b70af9752658e85a8f59f41b976112a1 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 29 Jul 2025 08:54:49 +0200 Subject: [PATCH 101/118] more work on android --- .github/workflows/android.yml | 4 ++-- CMakeLists.txt | 11 ++--------- vcpkg/triplets/arm-android.cmake | 6 ------ vcpkg/triplets/arm64-android.cmake | 9 +-------- 4 files changed, 5 insertions(+), 25 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index ea6c928f0..d578e9688 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -207,11 +207,11 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=Release \ - -D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ + -DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \ -DANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \ -DANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \ -DVCPKG_HOST_TRIPLET=arm64-osx \ - -D VCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ + -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \ -DANDROID_ABI=${{ matrix.ANDROID_ABI }} \ -DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9be395878..a69dbac03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,14 +15,7 @@ if (ANDROID_ABI) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) - if (DEFINED ENV{ANDROIDAPI}) - set(ANDROIDAPI $ENV{ANDROIDAPI}) - else () - message(FATAL_ERROR "ANDROIDAPI not defined as env variable") - endif () - # set(ANDROIDAPI "28") -# when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets - # *-android.cmake + set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change # VCPKG_CMAKE_SYSTEM_VERSION in triplets @@ -51,7 +44,7 @@ if (IOS) set(PLATFORM "OS") set(ENABLE_ARC FALSE) set(ENABLE_BITCODE FALSE) - set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") #when changed change triplets arm64-ios.cmake + set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") # when changed change triplets arm64-ios.cmake endif () if (APPLE AND NOT IOS) diff --git a/vcpkg/triplets/arm-android.cmake b/vcpkg/triplets/arm-android.cmake index 646050f6f..2c2b7085f 100644 --- a/vcpkg/triplets/arm-android.cmake +++ b/vcpkg/triplets/arm-android.cmake @@ -26,12 +26,6 @@ if (NOT DEFINED ENV{ANDROID_SDK_ROOT}) endif () set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) -if(DEFINED ENV{ANDROIDAPI}) - set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) -else() - message(FATAL_ERROR "ANDROIDAPI not defined as env variable") -endif() - set(VCPKG_CXX_FLAGS "-fstack-protector-strong") set(VCPKG_C_FLAGS "-fstack-protector-strong") set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a") diff --git a/vcpkg/triplets/arm64-android.cmake b/vcpkg/triplets/arm64-android.cmake index 80b9e371c..a0123c870 100644 --- a/vcpkg/triplets/arm64-android.cmake +++ b/vcpkg/triplets/arm64-android.cmake @@ -26,11 +26,4 @@ endif () set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) set(VCPKG_CXX_FLAGS "-fstack-protector-strong") -set(VCPKG_C_FLAGS "-fstack-protector-strong") - -if(DEFINED ENV{ANDROIDAPI}) - set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI}) -else() - message(FATAL_ERROR "$ENV{ANDROIDAPI} not defined as env variable") -endif() - +set(VCPKG_C_FLAGS "-fstack-protector-strong") \ No newline at end of file From 53f55668bdb33c5e3970e8dbae9b3f624b70cb65 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 09:15:57 +0200 Subject: [PATCH 102/118] add glesv2 to android --- vcpkg.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vcpkg.json b/vcpkg.json index c61ca7747..314e0d32c 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -60,6 +60,10 @@ "host": true, "default-features": false }, + { + "name": "gles2", + "platform": "android" + }, { "name": "qca", "default-features": false, From b4069f6d7029764d377910fa61d8338841c23517 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 12:51:29 +0200 Subject: [PATCH 103/118] another android fixes --- CMakeLists.txt | 3 ++- INSTALL.md | 2 ++ vcpkg.json | 4 ---- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a69dbac03..1eeec50ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,8 @@ if (ANDROID_ABI) # Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0 # set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE) - set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake + set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets + # *-android.cmake set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change # VCPKG_CMAKE_SYSTEM_VERSION in triplets diff --git a/INSTALL.md b/INSTALL.md index eda6b3fa9..fff12b96c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -193,6 +193,8 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ## 4.1. Android on Linux +!TODO - merge with android on macos! + 1. Install some dependencies, see requirements in `.github/workflows/android.yml` - Java 17 (on Ubuntu 22.04 do `sudo apt install openjdk-17-jdk` and make sure it is the default by checking `java --version`) diff --git a/vcpkg.json b/vcpkg.json index 314e0d32c..c61ca7747 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -60,10 +60,6 @@ "host": true, "default-features": false }, - { - "name": "gles2", - "platform": "android" - }, { "name": "qca", "default-features": false, From 9634ee2c5020d027c33c475aa46bf09695025335 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 13:58:40 +0200 Subject: [PATCH 104/118] android --- CMakeLists.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1eeec50ae..8e9c66a28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,7 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## + find_package( Qt6 COMPONENTS Quick @@ -351,6 +352,24 @@ if (IOS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-shorten-64-to-32") endif () + +if (ANDROID) + if(VCPKG_TARGET_TRIPLET STREQUAL "arm-android") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong") + endif() + + link_libraries("-ljnigraphics") + + # Make sure the generator for android_deployment_settings.json can figure out the architecture + list(APPEND CMAKE_FIND_ROOT_PATH /) + + # set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_BINARY_DIR}/android-template) +endif() + if (ANDROID) if (VCPKG_TARGET_TRIPLET STREQUAL "arm-android") set(CMAKE_C_FLAGS From 42e9b617ba1815815e08beed76257b8d3ffa0f6a Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 30 Jul 2025 13:58:54 +0200 Subject: [PATCH 105/118] android --- CMakeLists.txt | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e9c66a28..09157abb4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,7 +149,6 @@ message(STATUS "Mergin Maps Mobile ${version_desc} - ${platform_desc}") # FIND PACKAGES # ######################################################################################## - find_package( Qt6 COMPONENTS Quick @@ -352,23 +351,27 @@ if (IOS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-shorten-64-to-32") endif () - if (ANDROID) - if(VCPKG_TARGET_TRIPLET STREQUAL "arm-android") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a") - else() + if (VCPKG_TARGET_TRIPLET STREQUAL "arm-android") + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a" + ) + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong -lunwind -Wl,--exclude-libs=libunwind.a" + ) + else () set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-strong") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fstack-protector-strong") - endif() + endif () link_libraries("-ljnigraphics") - # Make sure the generator for android_deployment_settings.json can figure out the architecture + # Make sure the generator for android_deployment_settings.json can figure out the + # architecture list(APPEND CMAKE_FIND_ROOT_PATH /) # set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_BINARY_DIR}/android-template) -endif() +endif () if (ANDROID) if (VCPKG_TARGET_TRIPLET STREQUAL "arm-android") From 9e60842138fa153c8f888cd9be5ad836c4a9b605 Mon Sep 17 00:00:00 2001 From: Withalion Date: Fri, 1 Aug 2025 18:29:30 +0300 Subject: [PATCH 106/118] Fix android build --- INSTALL.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index fff12b96c..eda6b3fa9 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -193,8 +193,6 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back ## 4.1. Android on Linux -!TODO - merge with android on macos! - 1. Install some dependencies, see requirements in `.github/workflows/android.yml` - Java 17 (on Ubuntu 22.04 do `sudo apt install openjdk-17-jdk` and make sure it is the default by checking `java --version`) From b9f2ca81d19f590f0b822ffc4959f19ab6b64cfe Mon Sep 17 00:00:00 2001 From: Withalion Date: Thu, 14 Aug 2025 16:36:28 +0300 Subject: [PATCH 107/118] Copy PROJ and QGIS resources directly to build --- CMakeLists.txt | 8 ++--- app/android/assets/qgis-data/proj/copyright | 34 --------------------- app/android/assets/qgis-data/proj/usage | 9 ------ 3 files changed, 4 insertions(+), 47 deletions(-) delete mode 100644 app/android/assets/qgis-data/proj/copyright delete mode 100644 app/android/assets/qgis-data/proj/usage diff --git a/CMakeLists.txt b/CMakeLists.txt index 09157abb4..f374c887c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -417,16 +417,16 @@ file( # RESOURCES # ######################################################################################## message(STATUS "Copying proj and qgis resources to android/assets/qgis-data") -file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources) +file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/resources) file(COPY ${QGIS_RESOURCE_DIR}/qgis.db - DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ + DESTINATION ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/resources/ ) file(COPY ${QGIS_RESOURCE_DIR}/srs.db - DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/resources/ + DESTINATION ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/resources/ ) file( COPY ${PROJ_DIR} - DESTINATION ${CMAKE_SOURCE_DIR}/app/android/assets/qgis-data/ + DESTINATION ${CMAKE_BINARY_DIR}/app/android/assets/qgis-data/ PATTERN "*.cmake" EXCLUDE PATTERN "vcpkg*" EXCLUDE ) diff --git a/app/android/assets/qgis-data/proj/copyright b/app/android/assets/qgis-data/proj/copyright deleted file mode 100644 index d46f95cd6..000000000 --- a/app/android/assets/qgis-data/proj/copyright +++ /dev/null @@ -1,34 +0,0 @@ - -All source, data files and other contents of the PROJ package are -available under the following terms. Note that the PROJ 4.3 and earlier -was "public domain" as is common with US government work, but apparently -this is not a well defined legal term in many countries. Frank Warmerdam placed -everything under the following MIT style license because he believed it is -effectively the same as public domain, allowing anyone to use the code as -they wish, including making proprietary derivatives. - -Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright -holder, but he didn't mean to imply he did the work. Essentially all work was -done by Gerald Evenden. - -Copyright information can be found in source files. - - -------------- - - 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/app/android/assets/qgis-data/proj/usage b/app/android/assets/qgis-data/proj/usage deleted file mode 100644 index 06eb04dee..000000000 --- a/app/android/assets/qgis-data/proj/usage +++ /dev/null @@ -1,9 +0,0 @@ -proj provides CMake targets: - - find_package(PROJ CONFIG REQUIRED) - target_link_libraries(main PRIVATE PROJ::proj) - -proj provides pkg-config modules: - - # Coordinate transformation software library - proj From cc0b6e3620c550bbc3adf0f3a6b99109a3f3116f Mon Sep 17 00:00:00 2001 From: Withalion Date: Tue, 19 Aug 2025 12:32:19 +0300 Subject: [PATCH 108/118] Fix update scripts --- scripts/update_all_versions.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/update_all_versions.bash b/scripts/update_all_versions.bash index 5f8b38b6c..927640dd2 100755 --- a/scripts/update_all_versions.bash +++ b/scripts/update_all_versions.bash @@ -38,6 +38,6 @@ rm -f $CITATION_FILE.orig VCPKG_FILE=$DIR/../vcpkg.json echo "patching $VCPKG_FILE" sed -i.orig -E "s|\"version\": \"[0-9]+\.[0-9]+\.[0-9]+\"|\"version\": \"$MAJOR\.$MINOR\.$BUILD\"|g" $VCPKG_FILE -rm -f $CITATION_FILE.orig +rm -f $VCPKG_FILE.orig echo "patching done" \ No newline at end of file From cbb06aba962a959843c7d95bf963bccb861050b8 Mon Sep 17 00:00:00 2001 From: Withalion Date: Tue, 19 Aug 2025 13:53:44 +0300 Subject: [PATCH 109/118] Add GDAL/OGR supported formats --- docs/supported_formats.txt | 221 ++++++++++++++++++++++++++ scripts/update_all_versions.bash | 5 +- scripts/update_supported_formats.bash | 43 +++++ vcpkg.json | 12 +- 4 files changed, 278 insertions(+), 3 deletions(-) create mode 100644 docs/supported_formats.txt create mode 100755 scripts/update_supported_formats.bash diff --git a/docs/supported_formats.txt b/docs/supported_formats.txt new file mode 100644 index 000000000..d1ab18638 --- /dev/null +++ b/docs/supported_formats.txt @@ -0,0 +1,221 @@ +===== GDAL Formats ===== +Supported Formats: (ro:read-only, rw:read-write, +:update, v:virtual-I/O s:subdatasets) + VRT -raster,multidimensional raster- (rw+v): Virtual Raster (*.vrt) + DERIVED -raster- (ro): Derived datasets using VRT pixel functions + GTI -raster- (rov): GDAL Raster Tile Index (*.gti.gpkg, *.gti.fgb, *.gti) + SNAP_TIFF -raster- (rov): Sentinel Application Processing GeoTIFF + GTiff -raster- (rw+vs): GeoTIFF (*.tif, *.tiff) + COG -raster- (wv): Cloud optimized GeoTIFF generator (*.tif, *.tiff) + NITF -raster- (rw+vs): National Imagery Transmission Format (*.ntf) + RPFTOC -raster- (rovs): Raster Product Format TOC format (*.toc) + ECRGTOC -raster- (rovs): ECRG TOC format (*.xml) + HFA -raster- (rw+v): Erdas Imagine Images (.img) (*.img) + SAR_CEOS -raster- (rov): CEOS SAR Image + CEOS -raster- (rov): CEOS Image + JAXAPALSAR -raster- (rov): JAXA PALSAR Product Reader (Level 1.1/1.5) + GFF -raster- (rov): Ground-based SAR Applications Testbed File Format (.gff) (*.gff) + ELAS -raster- (rw+v): ELAS + ESRIC -raster- (rov): Esri Compact Cache (*.json, *.tpkx) + AIG -raster- (rov): Arc/Info Binary Grid + AAIGrid -raster- (rwv): Arc/Info ASCII Grid (*.asc) + GRASSASCIIGrid -raster- (rov): GRASS ASCII Grid + ISG -raster- (rov): International Service for the Geoid (*.isg) + SDTS -raster- (rov): SDTS Raster (*.ddf) + DTED -raster- (rwv): DTED Elevation Raster (*.dt0, *.dt1, *.dt2) + PNG -raster- (rwv): Portable Network Graphics (*.png) + JPEG -raster- (rwv): JPEG JFIF (*.jpg, *.jpeg) + MEM -raster,multidimensional raster- (rw+): In Memory Raster + JDEM -raster- (rov): Japanese DEM (.mem) (*.mem) + GIF -raster- (rwv): Graphics Interchange Format (.gif) (*.gif) + BIGGIF -raster- (rov): Graphics Interchange Format (.gif) (*.gif) + ESAT -raster- (rov): Envisat Image Format (*.n1) + BSB -raster- (rov): Maptech BSB Nautical Charts (*.kap) + XPM -raster- (rwv): X11 PixMap Format (*.xpm) + BMP -raster- (rw+v): MS Windows Device Independent Bitmap (*.bmp) + DIMAP -raster- (rovs): SPOT DIMAP + AirSAR -raster- (rov): AirSAR Polarimetric Image + RS2 -raster- (rovs): RadarSat 2 XML Product + SAFE -raster- (rov): Sentinel-1 SAR SAFE Product + PCIDSK -raster,vector- (rw+v): PCIDSK Database File (*.pix) + PCRaster -raster- (rw+): PCRaster Raster File (*.map) + ILWIS -raster- (rw+v): ILWIS Raster Map (*.mpr, *.mpl) + SGI -raster- (rw+v): SGI Image File Format 1.0 (*.rgb) + SRTMHGT -raster- (rwv): SRTMHGT File Format (*.hgt) + Leveller -raster- (rw+v): Leveller heightfield (*.ter) + Terragen -raster- (rw+v): Terragen heightfield (*.ter) + netCDF -raster,multidimensional raster,vector- (rw+vs): Network Common Data Format (*.nc) + ISIS3 -raster- (rw+v): USGS Astrogeology ISIS cube (Version 3) (*.lbl, *.cub) + ISIS2 -raster- (rw+v): USGS Astrogeology ISIS cube (Version 2) + PDS -raster- (rov): NASA Planetary Data System + PDS4 -raster,vector- (rw+vs): NASA Planetary Data System 4 (*.xml) + VICAR -raster,vector- (rw+v): MIPL VICAR file + TIL -raster- (rov): EarthWatch .TIL + ERS -raster- (rw+v): ERMapper .ers Labelled (*.ers) + JP2OpenJPEG -raster,vector- (rwv): JPEG-2000 driver based on JP2OpenJPEG library (*.jp2, *.j2k) + L1B -raster- (rovs): NOAA Polar Orbiter Level 1b Data Set + FIT -raster- (rwv): FIT Image + GRIB -raster,multidimensional raster- (rwv): GRIdded Binary (.grb, .grb2) (*.grb, *.grb2, *.grib2) + RMF -raster- (rw+v): Raster Matrix Format (*.rsw) + WCS -raster- (rovs): OGC Web Coverage Service + WMS -raster- (rwvs): OGC Web Map Service + MSGN -raster- (rov): EUMETSAT Archive native (.nat) (*.nat) + RST -raster- (rw+v): Idrisi Raster A.1 (*.rst) + GSAG -raster- (rwv): Golden Software ASCII Grid (.grd) (*.grd) + GSBG -raster- (rw+v): Golden Software Binary Grid (.grd) (*.grd) + GS7BG -raster- (rw+v): Golden Software 7 Binary Grid (.grd) (*.grd) + COSAR -raster- (rov): COSAR Annotated Binary Matrix (TerraSAR-X) + TSX -raster- (rov): TerraSAR-X Product + COASP -raster- (ro): DRDC COASP SAR Processor Raster (*.hdr) + R -raster- (rwv): R Object Data Store (*.rda) + MAP -raster- (rov): OziExplorer .MAP + KMLSUPEROVERLAY -raster- (rwv): Kml Super Overlay (*.kml, *.kmz) + WEBP -raster- (rwv): WEBP (*.webp) + PDF -raster,vector- (w+): Geospatial PDF (*.pdf) + Rasterlite -raster- (rwvs): Rasterlite (*.sqlite) + MBTiles -raster,vector- (rw+v): MBTiles (*.mbtiles) + PLMOSAIC -raster- (ro): Planet Labs Mosaics API + CALS -raster- (rwv): CALS (Type 1) (*.cal, *.ct1) + WMTS -raster- (rwv): OGC Web Map Tile Service + SENTINEL2 -raster- (rovs): Sentinel 2 + MRF -raster- (rw+v): Meta Raster Format (*.mrf) + PNM -raster- (rw+v): Portable Pixmap Format (netpbm) (*.pgm, *.ppm, *.pnm) + DOQ1 -raster- (rov): USGS DOQ (Old Style) + DOQ2 -raster- (rov): USGS DOQ (New Style) + PAux -raster- (rw+v): PCI .aux Labelled + MFF -raster- (rw+v): Vexcel MFF Raster (*.hdr) + MFF2 -raster- (rw+): Vexcel MFF2 (HKV) Raster + GSC -raster- (rov): GSC Geogrid + FAST -raster- (rov): EOSAT FAST Format + BT -raster- (rw+v): VTP .bt (Binary Terrain) 1.3 Format (*.bt) + LAN -raster- (rw+v): Erdas .LAN/.GIS + CPG -raster- (rov): Convair PolGASP + NDF -raster- (rov): NLAPS Data Format + EIR -raster- (rov): Erdas Imagine Raw + DIPEx -raster- (rov): DIPEx + LCP -raster- (rwv): FARSITE v.4 Landscape File (.lcp) (*.lcp) + GTX -raster- (rw+v): NOAA Vertical Datum .GTX (*.gtx) + LOSLAS -raster- (rov): NADCON .los/.las Datum Grid Shift + NTv2 -raster- (rw+vs): NTv2 Datum Grid Shift (*.gsb, *.gvb) + CTable2 -raster- (rw+v): CTable2 Datum Grid Shift + ACE2 -raster- (rov): ACE2 (*.ACE2) + SNODAS -raster- (rov): Snow Data Assimilation System (*.hdr) + KRO -raster- (rw+v): KOLOR Raw (*.kro) + ROI_PAC -raster- (rw+v): ROI_PAC raster + RRASTER -raster- (rw+v): R Raster (*.grd) + BYN -raster- (rw+v): Natural Resources Canada's Geoid (*.byn, *.err) + NOAA_B -raster- (rov): NOAA GEOCON/NADCON5 .b format (*.b) + NSIDCbin -raster- (rov): NSIDC Sea Ice Concentrations binary (.bin) (*.bin) + RIK -raster- (rov): Swedish Grid RIK (.rik) (*.rik) + USGSDEM -raster- (rwv): USGS Optional ASCII DEM (and CDED) (*.dem) + GXF -raster- (rov): GeoSoft Grid Exchange Format (*.gxf) + BAG -raster,multidimensional raster,vector- (rw+v): Bathymetry Attributed Grid (*.bag) + S102 -raster,multidimensional raster- (rovs): S-102 Bathymetric Surface Product (*.h5) + S104 -raster,multidimensional raster- (rov): S-104 Water Level Information for Surface Navigation Product (*.h5) + S111 -raster,multidimensional raster- (rov): Surface Currents Product (*.h5) + HDF5 -raster,multidimensional raster- (rovs): Hierarchical Data Format Release 5 (*.h5, *.hdf5) + HDF5Image -raster- (rov): HDF5 Dataset + NWT_GRD -raster- (rw+v): Northwood Numeric Grid Format .grd/.tab (*.grd) + NWT_GRC -raster- (rov): Northwood Classified Grid Format .grc/.tab (*.grc) + ADRG -raster- (rw+vs): ARC Digitized Raster Graphics (*.gen) + SRP -raster- (rovs): Standard Raster Product (ASRP/USRP) (*.img) + BLX -raster- (rwv): Magellan topo (.blx) (*.blx) + PostGISRaster -raster- (rws): PostGIS Raster driver + SAGA -raster- (rw+v): SAGA GIS Binary Grid (.sdat, .sg-grd-z) (*.sdat, *.sg-grd-z) + XYZ -raster- (rwv): ASCII Gridded XYZ (*.xyz) + HF2 -raster- (rwv): HF2/HFZ heightfield raster (*.hf2) + OZI -raster- (rov): OziExplorer Image File + CTG -raster- (rov): USGS LULC Composite Theme Grid + ZMap -raster- (rwv): ZMap Plus Grid (*.dat) + NGSGEOID -raster- (rov): NOAA NGS Geoid Height Grids (*.bin) + IRIS -raster- (rov): IRIS data (.PPI, .CAPPi etc) (*.ppi) + PRF -raster- (rov): Racurs PHOTOMOD PRF (*.prf) + EEDAI -raster- (ros): Earth Engine Data API Image + DAAS -raster- (ro): Airbus DS Intelligence Data As A Service driver + SIGDEM -raster- (rwv): Scaled Integer Gridded DEM .sigdem (*.sigdem) + TGA -raster- (rov): TGA/TARGA Image File Format (*.tga) + OGCAPI -raster,vector- (rov): OGCAPI + STACTA -raster- (rovs): Spatio-Temporal Asset Catalog Tiled Assets (*.json) + STACIT -raster- (rovs): Spatio-Temporal Asset Catalog Items + GPKG -raster,vector- (rw+vs): GeoPackage (*.gpkg, *.gpkg.zip) + OpenFileGDB -raster,vector- (rw+v): ESRI FileGDB (*.gdb) + PLSCENES -raster,vector- (ro): Planet Labs Scenes API + NGW -raster,vector- (rw+s): NextGIS Web + GenBin -raster- (rov): Generic Binary (.hdr Labelled) + ENVI -raster- (rw+v): ENVI .hdr Labelled + EHdr -raster- (rw+v): ESRI .hdr Labelled (*.bil) + ISCE -raster- (rw+v): ISCE raster + Zarr -raster,multidimensional raster- (rw+vs): Zarr + HTTP -raster,vector- (ro): HTTP Fetching Wrapper + +===== OGR Formats ===== +Supported Formats: (ro:read-only, rw:read-write, +:update, v:virtual-I/O s:subdatasets) + PCIDSK -raster,vector- (rw+v): PCIDSK Database File (*.pix) + netCDF -raster,multidimensional raster,vector- (rw+vs): Network Common Data Format (*.nc) + PDS4 -raster,vector- (rw+vs): NASA Planetary Data System 4 (*.xml) + VICAR -raster,vector- (rw+v): MIPL VICAR file + JP2OpenJPEG -raster,vector- (rwv): JPEG-2000 driver based on JP2OpenJPEG library (*.jp2, *.j2k) + PDF -raster,vector- (w+): Geospatial PDF (*.pdf) + MBTiles -raster,vector- (rw+v): MBTiles (*.mbtiles) + BAG -raster,multidimensional raster,vector- (rw+v): Bathymetry Attributed Grid (*.bag) + EEDA -vector- (ro): Earth Engine Data API + OGCAPI -raster,vector- (rov): OGCAPI + ESRI Shapefile -vector- (rw+v): ESRI Shapefile (*.shp, *.dbf, *.shz, *.shp.zip) + MapInfo File -vector- (rw+v): MapInfo File (*.tab, *.mif, *.mid) + UK .NTF -vector- (rov): UK .NTF + LVBAG -vector- (rov): Kadaster LV BAG Extract 2.0 (*.xml) + OGR_SDTS -vector- (rov): SDTS + S57 -vector- (rw+v): IHO S-57 (ENC) (*.000) + DGN -vector- (rw+v): Microstation DGN (*.dgn) + OGR_VRT -vector- (rov): VRT - Virtual Datasource (*.vrt) + Memory -vector- (rw+): Memory + CSV -vector- (rw+v): Comma Separated Value (.csv) (*.csv, *.tsv, *.psv) + GML -vector- (rw+v): Geography Markup Language (GML) (*.gml, *.xml) + GPX -vector- (rw+v): GPX (*.gpx) + LIBKML -vector- (rw+v): Keyhole Markup Language (LIBKML) (*.kml, *.kmz) + KML -vector- (rw+v): Keyhole Markup Language (KML) (*.kml) + GeoJSON -vector- (rw+v): GeoJSON (*.json, *.geojson) + GeoJSONSeq -vector- (rw+v): GeoJSON Sequence (*.geojsonl, *.geojsons) + ESRIJSON -vector- (rov): ESRIJSON (*.json) + TopoJSON -vector- (rov): TopoJSON (*.json, *.topojson) + OGR_GMT -vector- (rw+v): GMT ASCII Vectors (.gmt) (*.gmt) + GPKG -raster,vector- (rw+vs): GeoPackage (*.gpkg, *.gpkg.zip) + SQLite -vector- (rw+v): SQLite / Spatialite (*.sqlite, *.db) + WAsP -vector- (rw+v): WAsP .map format (*.map) + PostgreSQL -vector- (rw+): PostgreSQL/PostGIS + OpenFileGDB -raster,vector- (rw+v): ESRI FileGDB (*.gdb) + DXF -vector- (rw+v): AutoCAD DXF (*.dxf) + FlatGeobuf -vector- (rw+v): FlatGeobuf (*.fgb) + Geoconcept -vector- (rw+v): Geoconcept (*.gxt, *.txt) + GeoRSS -vector- (rw+v): GeoRSS + VFK -vector- (ro): Czech Cadastral Exchange Data Format (*.vfk) + PGDUMP -vector- (w+v): PostgreSQL SQL dump (*.sql) + OSM -vector- (rov): OpenStreetMap XML and PBF (*.osm, *.pbf) + GPSBabel -vector- (rw+): GPSBabel (*.mps, *.gdb, *.osm, *.tcx, *.igc) + OGR_PDS -vector- (rov): Planetary Data Systems TABLE + WFS -vector- (rov): OGC WFS (Web Feature Service) + OAPIF -vector- (ro): OGC API - Features + EDIGEO -vector- (rov): French EDIGEO exchange format (*.thf) + SVG -vector- (rov): Scalable Vector Graphics (*.svg) + Idrisi -vector- (rov): Idrisi Vector (.vct) (*.vct) + ODS -vector- (rw+v): Open Document/ LibreOffice / OpenOffice Spreadsheet (*.ods) + XLSX -vector- (rw+v): MS Office Open XML spreadsheet (*.xlsx, *.xlsm) + Elasticsearch -vector- (rw+): Elastic Search + Carto -vector- (rw+): Carto + AmigoCloud -vector- (rw+): AmigoCloud + SXF -vector- (rov): Storage and eXchange Format (*.sxf) + Selafin -vector- (rw+v): Selafin + JML -vector- (rw+v): OpenJUMP JML (*.jml) + PLSCENES -raster,vector- (ro): Planet Labs Scenes API + CSW -vector- (ro): OGC CSW (Catalog Service for the Web) + VDV -vector- (rw+v): VDV-451/VDV-452/INTREST Data Format (*.txt, *.x10) + MVT -vector- (rw+v): Mapbox Vector Tiles (*.mvt, *.mvt.gz, *.pbf) + NGW -raster,vector- (rw+s): NextGIS Web + MapML -vector- (rw+v): MapML + GTFS -vector- (rov): General Transit Feed Specification (*.zip) + PMTiles -vector- (rw+v): ProtoMap Tiles (*.pmtiles) + JSONFG -vector- (rw+v): OGC Features and Geometries JSON (*.json) + MiraMonVector -vector- (rw+v): MiraMon Vectors (.pol, .arc, .pnt) (*.pol, *.arc, *.pnt) + TIGER -vector- (rov): U.S. Census TIGER/Line + AVCBin -vector- (rov): Arc/Info Binary Coverage + AVCE00 -vector- (rov): Arc/Info E00 (ASCII) Coverage (*.e00) + HTTP -raster,vector- (ro): HTTP Fetching Wrapper diff --git a/scripts/update_all_versions.bash b/scripts/update_all_versions.bash index 927640dd2..373a7c617 100755 --- a/scripts/update_all_versions.bash +++ b/scripts/update_all_versions.bash @@ -40,4 +40,7 @@ echo "patching $VCPKG_FILE" sed -i.orig -E "s|\"version\": \"[0-9]+\.[0-9]+\.[0-9]+\"|\"version\": \"$MAJOR\.$MINOR\.$BUILD\"|g" $VCPKG_FILE rm -f $VCPKG_FILE.orig -echo "patching done" \ No newline at end of file +echo "patching done" + +$DIR/update_supported_formats.bash +echo "Updated supported formats" \ No newline at end of file diff --git a/scripts/update_supported_formats.bash b/scripts/update_supported_formats.bash new file mode 100755 index 000000000..2fd943c64 --- /dev/null +++ b/scripts/update_supported_formats.bash @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +set -euo pipefail + +PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +TOOLS_DIR="$PROJECT_DIR/build/vcpkg_installed/x64-linux/tools/gdal" + +# Find the tools directory dynamically in (x64-linux | x64-osx | arm64-osx) +TOOLS_DIR=$(find "$PROJECT_DIR/build/vcpkg_installed" -maxdepth 2 -type d \ + \( -name "x64-linux" -o -name "x64-osx" -o -name "arm64-osx" \) \ + -exec echo {}/tools/gdal \; | head -n 1) + +if [[ -z "$TOOLS_DIR" ]]; then + echo "Error: Could not find tools/gdal directory under build/vcpkg_installed." + exit 1 +fi + +GDALINFO="$TOOLS_DIR/gdalinfo" +OGRINFO="$TOOLS_DIR/ogrinfo" +OUTPUT_FILE="$PROJECT_DIR/docs/supported_formats.txt" + +# Function to check if a command exists +check_command() { + local cmd="$1" + if [[ ! -x "$cmd" ]]; then + echo "Error: $cmd not found or not executable." + echo "Make sure you are building GDAL on linux." + exit 1 + fi +} + +check_command "$GDALINFO" +check_command "$OGRINFO" + +{ + echo "===== GDAL Formats =====" + "$GDALINFO" --formats + echo + echo "===== OGR Formats =====" + "$OGRINFO" --formats +} > "$OUTPUT_FILE" + +echo "Formats info saved to $OUTPUT_FILE" diff --git a/vcpkg.json b/vcpkg.json index c61ca7747..703191d2d 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -9,7 +9,7 @@ }, "name": "merginmaps-mobile-app", "description": "Collect. Share. Publish.", - "version": "2025.4.1", + "version": "2025.6.0", "homepage": "https://github.com/merginmaps/mobile", "dependencies": [ { @@ -54,7 +54,15 @@ }, "geodiff", "nu-book-zxing-cpp", - "gdal", + { + "name": "gdal", + "features": [ + { + "name": "tools", + "platform": "linux | osx" + } + ] + }, { "name": "qca", "host": true, From 23e10dd15878c0d85b958fa10f7c06ca17813812 Mon Sep 17 00:00:00 2001 From: Withalion Date: Wed, 20 Aug 2025 13:44:22 +0300 Subject: [PATCH 110/118] Add QGIS supported formats --- CMakeLists.txt | 2 ++ app/inpututils.cpp | 22 ++++++++++++++++++++++ app/inpututils.h | 6 ++++++ app/main.cpp | 15 +++++++++++++++ cmake_templates/inputconfig.h.in | 1 + docs/supported_formats.txt | 25 +++++++++++++++++++++++++ scripts/update_supported_formats.bash | 2 ++ 7 files changed, 73 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index f374c887c..fbedcd006 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -313,6 +313,8 @@ if (ENABLE_TESTS) set(TEST_DATA_DIR "${CMAKE_CURRENT_BINARY_DIR}/test/test_data") endif () +set(MM_FORMATS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/docs/supported_formats.txt") + configure_file( ${CMAKE_SOURCE_DIR}/cmake_templates/inputconfig.h.in ${CMAKE_BINARY_DIR}/inputconfig.h ) diff --git a/app/inpututils.cpp b/app/inpututils.cpp index a95e43f7b..06036b871 100644 --- a/app/inpututils.cpp +++ b/app/inpututils.cpp @@ -1971,6 +1971,28 @@ void InputUtils::sanitizeFileName( QString &fileName ) fileName = fileName.trimmed(); } +void InputUtils::updateQgisFormats( const QByteArray& output ) +{ +#ifdef MM_FORMATS_PATH + const QString sourcePath( STR( MM_FORMATS_PATH ) ); + QFile file(sourcePath); + + if (!file.open(QIODevice::Append | QIODevice::Text) || !file.exists()) { + qWarning() << "Cannot open file for writing:" << file.errorString(); + return; + } + + QByteArray finalOutput{"\n===== QGIS Formats =====\n"}; + finalOutput.append(output); + file.write(finalOutput); + + file.close(); + qDebug() << "Supported formats succesfully updated with QGIS formats"; +#else + qDebug( "== MM_FORMATS_PATH must be set by CMakeLists.txt in order to update QGIS supported formats ==" ); +#endif +} + bool InputUtils::rescaleImage( const QString &path, QgsProject *activeProject ) { int quality = activeProject->readNumEntry( QStringLiteral( "Mergin" ), QStringLiteral( "PhotoQuality" ), 0 ); diff --git a/app/inpututils.h b/app/inpututils.h index 6bb6ae0a7..0b4c265e9 100644 --- a/app/inpututils.h +++ b/app/inpututils.h @@ -639,6 +639,12 @@ class InputUtils: public QObject */ static void sanitizeFileName( QString &fileName ); + /** + * Appends all supported QGIS formats to supported_formats.txt. + * \note This function should not be called during normal runtime, as it tries to write to source directory. + */ + static void updateQgisFormats( const QByteArray& output ); + public slots: void onQgsLogMessageReceived( const QString &message, const QString &tag, Qgis::MessageLevel level ); diff --git a/app/main.cpp b/app/main.cpp index 619c5c46b..7d40d4466 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -481,6 +481,21 @@ int main( int argc, char *argv[] ) init_qgis( appBundleDir ); +#ifdef DESKTOP_OS + if ( argc > 0 ) + { + for ( int i = 1; i < argc; ++i ) + { + QString arg( argv[i] ); + if ( arg.compare( "--generate_QGIS_formats" ) == 0 ) + { + InputUtils::updateQgisFormats( QgsProviderRegistry::instance()->pluginList().toUtf8() ); + return 0; + } + } + } +#endif + #ifdef ANDROID // See issue #3431 -> disable Android accessibility features to prevent ANRs qputenv( "QT_ANDROID_DISABLE_ACCESSIBILITY", "1" ); diff --git a/cmake_templates/inputconfig.h.in b/cmake_templates/inputconfig.h.in index 20e6c5c62..d165bd871 100644 --- a/cmake_templates/inputconfig.h.in +++ b/cmake_templates/inputconfig.h.in @@ -8,6 +8,7 @@ #cmakedefine INPUT_VERSION_CODE @INPUT_VERSION_CODE@ #cmakedefine QGIS_QUICK_DATA_PATH @QGIS_QUICK_DATA_PATH@ +#cmakedefine MM_FORMATS_PATH @MM_FORMATS_PATH@ #cmakedefine INPUT_TEST #cmakedefine TEST_DATA_DIR "@TEST_DATA_DIR@" diff --git a/docs/supported_formats.txt b/docs/supported_formats.txt index d1ab18638..b968cc26c 100644 --- a/docs/supported_formats.txt +++ b/docs/supported_formats.txt @@ -219,3 +219,28 @@ Supported Formats: (ro:read-only, rw:read-write, +:update, v:virtual-I/O s:subda AVCBin -vector- (rov): Arc/Info Binary Coverage AVCE00 -vector- (rov): Arc/Info E00 (ASCII) Coverage (*.e00) HTTP -raster,vector- (ro): HTTP Fetching Wrapper + +===== QGIS Formats ===== +OGC API - Features data provider +WFS data provider +ArcGIS Feature Service data provider +ArcGIS Map Service data provider +ArcGIS Vector Tile Service data provider +Cesium 3D Tiles data provider +Delimited text data provider +GDAL data provider +MBTile Vector Tiles data provider +Memory provider +Mesh memory provider +OGR data provider +PostgreSQL/PostGIS data provider +Cesium Quantized Mesh tiles +OGC SensorThings API data provider +SpatiaLite data provider +Tiled scene provider +Vector tile provider +Virtual layer data provider +VTPK Vector Tiles data provider +OGC Web Coverage Service version 1.0/1.1 data provider +OGC Web Map Service version 1.3 data provider +XYZ Vector Tiles data provider diff --git a/scripts/update_supported_formats.bash b/scripts/update_supported_formats.bash index 2fd943c64..f87ce89ab 100755 --- a/scripts/update_supported_formats.bash +++ b/scripts/update_supported_formats.bash @@ -40,4 +40,6 @@ check_command "$OGRINFO" "$OGRINFO" --formats } > "$OUTPUT_FILE" +$PROJECT_DIR/build/app/Input --generate_QGIS_formats + echo "Formats info saved to $OUTPUT_FILE" From 000bdbc0f5f4b37ee9cfe076d2211199fa3cdbda Mon Sep 17 00:00:00 2001 From: Withalion Date: Wed, 20 Aug 2025 13:47:59 +0300 Subject: [PATCH 111/118] Fix formatting --- app/inpututils.cpp | 11 ++++++----- app/inpututils.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/inpututils.cpp b/app/inpututils.cpp index 06036b871..1f3057d43 100644 --- a/app/inpututils.cpp +++ b/app/inpututils.cpp @@ -1971,20 +1971,21 @@ void InputUtils::sanitizeFileName( QString &fileName ) fileName = fileName.trimmed(); } -void InputUtils::updateQgisFormats( const QByteArray& output ) +void InputUtils::updateQgisFormats( const QByteArray &output ) { #ifdef MM_FORMATS_PATH const QString sourcePath( STR( MM_FORMATS_PATH ) ); - QFile file(sourcePath); + QFile file( sourcePath ); - if (!file.open(QIODevice::Append | QIODevice::Text) || !file.exists()) { + if ( !file.open( QIODevice::Append | QIODevice::Text ) || !file.exists() ) + { qWarning() << "Cannot open file for writing:" << file.errorString(); return; } QByteArray finalOutput{"\n===== QGIS Formats =====\n"}; - finalOutput.append(output); - file.write(finalOutput); + finalOutput.append( output ); + file.write( finalOutput ); file.close(); qDebug() << "Supported formats succesfully updated with QGIS formats"; diff --git a/app/inpututils.h b/app/inpututils.h index 0b4c265e9..681886cb0 100644 --- a/app/inpututils.h +++ b/app/inpututils.h @@ -643,7 +643,7 @@ class InputUtils: public QObject * Appends all supported QGIS formats to supported_formats.txt. * \note This function should not be called during normal runtime, as it tries to write to source directory. */ - static void updateQgisFormats( const QByteArray& output ); + static void updateQgisFormats( const QByteArray &output ); public slots: void onQgsLogMessageReceived( const QString &message, const QString &tag, Qgis::MessageLevel level ); From 604ed2f873a7eac93260031b5f387a565b3f5b8f Mon Sep 17 00:00:00 2001 From: Withalion Date: Thu, 21 Aug 2025 13:23:56 +0300 Subject: [PATCH 112/118] Fix CI workflows after rebase --- .github/workflows/macos.yml | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 2708a0288..39e54e22d 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -2,17 +2,17 @@ name: macOS Build on: push: paths: - - 'vcpkg/**' - - 'vcpkg.json' - - 'VCPKG_BASELINE' - - 'app/**' - - 'core/**' - - 'scripts/**' - - 'cmake/**' - - 'cmake_templates/**' - - 'test/**' - - 'CMakeLists.txt' - - '.github/workflows/macos.yml' + - 'vcpkg/**' + - 'vcpkg.json' + - 'VCPKG_BASELINE' + - 'app/**' + - 'core/**' + - 'scripts/**' + - 'cmake/**' + - 'cmake_templates/**' + - 'test/**' + - 'CMakeLists.txt' + - '.github/workflows/macos.yml' release: types: @@ -21,8 +21,8 @@ on: env: CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' - VCPKG_ROOT: "${{ github.workspace }}/vcpkg" - XC_VERSION: ${{ '16.2' }} + VCPKG_ROOT: '${{ github.workspace }}/vcpkg' + XC_VERSION: ${{ '16.4' }} DEPLOYMENT_TARGET: '11.0' TRIPLET: arm64-osx @@ -107,15 +107,14 @@ jobs: - name: Calculate build number run: | - BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT - echo "INPUT_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV - echo "Version code: ${BUILD_NUM}" - + BUILD_NUM=$GITHUB_RUN_NUMBER$GITHUB_RUN_ATTEMPT + echo "INPUT_VERSION_CODE=${BUILD_NUM}" >> $GITHUB_ENV + echo "Version code: ${BUILD_NUM}" - name: build app (debug) run: | mkdir -p build-mm-db cd build-mm-db - + cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DVCPKG_TARGET_TRIPLET=${{ env.TRIPLET }} \ From c207d2b1bf0d8822d5a85b0009a2d119a6b03433 Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Thu, 28 Aug 2025 21:28:06 +0100 Subject: [PATCH 113/118] Hide windows console --- app/CMakeLists.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 308b7d70a..605eab828 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -299,13 +299,24 @@ qt_add_resources( # Mergin Maps Target # ######################################################################################## -qt_add_executable( +if (WIN) + qt_add_executable( + Input + WIN32 + ${MM_SRCS} + ${MM_HDRS} + $ + main.cpp +) +else () + qt_add_executable( Input ${MM_SRCS} ${MM_HDRS} $ main.cpp ) +endif () target_include_directories( Input From 1195ec49d579d4ff86a968c032144dbba9f57c9a Mon Sep 17 00:00:00 2001 From: Withalion Date: Fri, 29 Aug 2025 11:42:50 +0300 Subject: [PATCH 114/118] Fix formatting & windows CI --- .github/workflows/win.yml | 2 ++ app/CMakeLists.txt | 26 +++++++++++++------------- cmake/InstallStep.cmake | 16 ++++++++-------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index eca517338..7e668595c 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -29,6 +29,8 @@ jobs: env: VS_VERSION: "2022" + # we can't reference other variables within, so make sure the year in path is same as VS_VERSION + VCINSTALLDIR: "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\" CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' TRIPLET: x64-windows diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 605eab828..5aeda61cd 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -301,21 +301,21 @@ qt_add_resources( if (WIN) qt_add_executable( - Input - WIN32 - ${MM_SRCS} - ${MM_HDRS} - $ - main.cpp -) + Input + WIN32 + ${MM_SRCS} + ${MM_HDRS} + $ + main.cpp + ) else () qt_add_executable( - Input - ${MM_SRCS} - ${MM_HDRS} - $ - main.cpp -) + Input + ${MM_SRCS} + ${MM_HDRS} + $ + main.cpp + ) endif () target_include_directories( diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index c0773c838..b652ebd05 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -11,10 +11,7 @@ set(Qt6_base_dir ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/Qt6) # ######################################################################################## if (WIN) - install( - TARGETS Input - RUNTIME DESTINATION . - ) + install(TARGETS Input RUNTIME DESTINATION .) else () install( TARGETS Input @@ -56,13 +53,16 @@ if (MACOS) elseif (WIN) qt_generate_deploy_qml_app_script( - TARGET Input - OUTPUT_SCRIPT deploy_script + TARGET + Input + OUTPUT_SCRIPT + deploy_script NO_TRANSLATIONS - DEPLOY_TOOL_OPTIONS "--libdir . --plugindir . --force-openssl" + DEPLOY_TOOL_OPTIONS + "--libdir . --plugindir . --force-openssl" ) install(SCRIPT ${deploy_script} COMPONENT Runtime) -endif() +endif () # ######################################################################################## # SDK Shared Libraries From 80f26b6e68fc17917b428a3874bb137f0ed22761 Mon Sep 17 00:00:00 2001 From: Withalion Date: Fri, 29 Aug 2025 11:51:15 +0300 Subject: [PATCH 115/118] Fix win workflow file --- .github/workflows/win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 7e668595c..6cea6b08e 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -30,7 +30,7 @@ jobs: env: VS_VERSION: "2022" # we can't reference other variables within, so make sure the year in path is same as VS_VERSION - VCINSTALLDIR: "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\" + VCINSTALLDIR: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/" CMAKE_VERSION: '3.31.6' VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' TRIPLET: x64-windows From 1638a04824ce84ed686ee0afe23db2026c7999f0 Mon Sep 17 00:00:00 2001 From: Withalion Date: Tue, 2 Sep 2025 16:03:58 +0300 Subject: [PATCH 116/118] Fix AndroidManifest --- cmake_templates/AndroidManifest.xml.in | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake_templates/AndroidManifest.xml.in b/cmake_templates/AndroidManifest.xml.in index 98db061c0..9756a8078 100644 --- a/cmake_templates/AndroidManifest.xml.in +++ b/cmake_templates/AndroidManifest.xml.in @@ -1,6 +1,5 @@ From 189dc52abb04c7db9e5c443e82ab8af8e1cadbd1 Mon Sep 17 00:00:00 2001 From: Withalion Date: Tue, 2 Sep 2025 18:26:32 +0300 Subject: [PATCH 117/118] Cleanup after rebase --- .github/workflows/macos_arm64.yml | 0 scripts/update_qt_version.bash | 0 vcpkg/ports/qgis/portfile.cmake | 19 ------------------- 3 files changed, 19 deletions(-) delete mode 100644 .github/workflows/macos_arm64.yml delete mode 100755 scripts/update_qt_version.bash diff --git a/.github/workflows/macos_arm64.yml b/.github/workflows/macos_arm64.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/scripts/update_qt_version.bash b/scripts/update_qt_version.bash deleted file mode 100755 index e69de29bb..000000000 diff --git a/vcpkg/ports/qgis/portfile.cmake b/vcpkg/ports/qgis/portfile.cmake index fc64726b5..43e6af380 100644 --- a/vcpkg/ports/qgis/portfile.cmake +++ b/vcpkg/ports/qgis/portfile.cmake @@ -247,25 +247,6 @@ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tool_dependencies_ex(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/server ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin debug/bin) endif() endif() - - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=ON) - file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake) -else() - list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF) - if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libqt_poly2tri.a") - set(QT_POLY2TRI_DIR_RELEASE "${CURRENT_INSTALLED_DIR}/lib") - set(QT_POLY2TRI_DIR_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") - elseif(EXISTS "${Qt6_DIR}/../../libqt_poly2tri.a") - set(QT_POLY2TRI_DIR_RELEASE "${Qt6_DIR}/../..") - set(QT_POLY2TRI_DIR_DEBUG "${Qt6_DIR}/../..") - else() - list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri) - endif() - if(DEFINED QT_POLY2TRI_DIR_RELEASE) - list(APPEND QGIS_OPTIONS -DPoly2Tri_INCLUDE_DIR:PATH=${CMAKE_CURRENT_LIST_DIR}/poly2tri) - list(APPEND QGIS_OPTIONS_DEBUG -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_DEBUG}/debug/lib/libqt_poly2tri_debug.a) # static qt only - list(APPEND QGIS_OPTIONS_RELEASE -DPoly2Tri_LIBRARY:PATH=${QT_POLY2TRI_DIR_RELEASE}/lib/libqt_poly2tri.a) # static qt only - endif() endif() if(VCPKG_TARGET_IS_OSX) From 5bbc595aab394a67b69188a733a92630f3bd2e05 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 3 Sep 2025 17:38:00 +0200 Subject: [PATCH 118/118] switch to STATIC for mm_core to fix recent XCode hate for OBJECT libraries --- CMakeLists.txt | 4 ++++ app/CMakeLists.txt | 31 +++++++++++-------------------- core/CMakeLists.txt | 2 +- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fbedcd006..0c0eaeac5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,10 @@ set(MM_VERSION_MAJOR "2025") set(MM_VERSION_MINOR "6") set(MM_VERSION_PATCH "0") +if (VCPKG_TARGET_TRIPLET MATCHES ".*ios.*") + set(IOS TRUE) +endif () + # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake if (ANDROID_ABI) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 5aeda61cd..67df0008d 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -299,24 +299,14 @@ qt_add_resources( # Mergin Maps Target # ######################################################################################## -if (WIN) - qt_add_executable( - Input - WIN32 - ${MM_SRCS} - ${MM_HDRS} - $ - main.cpp - ) -else () - qt_add_executable( - Input - ${MM_SRCS} - ${MM_HDRS} - $ - main.cpp - ) -endif () +qt_add_executable( + Input + ${MM_SRCS} + ${MM_HDRS} + main.cpp +) + +set_target_properties(Input PROPERTIES WIN32_EXECUTABLE TRUE) target_include_directories( Input @@ -449,6 +439,8 @@ endif () # LINKING Mergin Maps Target # ######################################################################################## +target_link_libraries(Input PUBLIC mm_core) + # at least on Linux qgis_core needs to be linked before Qt libs, otherwise one gets "DSO # missing from command line" linker error about missing symbol from qt6::core5compat # library - probably if our code does not use anything from that library, it is not added @@ -487,8 +479,7 @@ endif () target_link_libraries( Input - PUBLIC mm_core - Geodiff::Geodiff + PUBLIC Geodiff::Geodiff PROJ::proj ZXing::Core ZXing::ZXing diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index e11668931..ff66a2021 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -59,7 +59,7 @@ else () message(STATUS "Using QSettings to store credentials.") endif () -add_library(mm_core OBJECT ${MM_CORE_SRCS} ${MM_CORE_HDRS}) +add_library(mm_core STATIC ${MM_CORE_SRCS} ${MM_CORE_HDRS}) target_include_directories(mm_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries( mm_core