diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 0a8f19030..54924c733 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -21,16 +21,16 @@ concurrency: jobs: android_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: macos-13 + runs-on: macos-15 env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change - NDK_VERSION: r25 - NDK_VERSION_FULL: r25b - JDK_VERSION: 11 + 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 SDK_BUILD_TOOLS: 34.0.0 - INPUT_SDK_VERSION_ARM: arm-android-20240517-224 - INPUT_SDK_VERSION_ARM64: arm64-android-20240517-224 + 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 @@ -38,13 +38,10 @@ jobs: QT_ANDROID_KEYSTORE_ALIAS: input QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.INPUTKEYSTORE_STOREPASS }} - XC_VERSION: ${{ '15.2' }} + XC_VERSION: ${{ '16.2' }} steps: - - uses: actions/checkout@v3 - - - name: Select latest Xcode - run: "sudo xcode-select -s /Applications/Xcode_$XC_VERSION.app" + - uses: actions/checkout@v4 # CCache - name: Prepare build cache for pull request @@ -81,12 +78,12 @@ jobs: - name: Install Build Dependencies run: | - pip3 install -U pip - pip3 install aqtinstall + brew update brew install gnupg - brew install openssl@1.1 + brew install openssl brew install ninja + brew install aqtinstall if [[ ${{ github.ref }} == refs/tags/* ]] then @@ -107,6 +104,11 @@ jobs: with: cmakeVersion: ${{ env.CMAKE_VERSION }} + - name: Setup compiler + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: ${{ env.XC_VERSION }} + - name: Cache Qt id: cache-qt uses: pat-s/always-upload-cache@v3.0.11 @@ -146,11 +148,11 @@ jobs: distribution: zulu - name: Setup Android SDK - uses: malinskiy/action-android/install-sdk@release/0.1.4 + uses: malinskiy/action-android/install-sdk@release/0.1.7 - name: Install Android Tools run: | - sdkmanager --licenses && sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools + sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" tools platform-tools # Input SDK - name: Cache Input-SDK @@ -189,7 +191,7 @@ jobs: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | cd core/ - /usr/local/opt/openssl@1.1/bin/openssl \ + /opt/homebrew/bin/openssl \ aes-256-cbc -d \ -in merginsecrets.cpp.enc \ -out merginsecrets.cpp \ @@ -201,7 +203,7 @@ jobs: INPUTKEYSTORE_DECRYPT_KEY: ${{ secrets.INPUTKEYSTORE_DECRYPT_KEY }} run: | - /usr/local/opt/openssl@1.1/bin/openssl \ + /opt/homebrew/bin/openssl \ aes-256-cbc -d \ -in Input_keystore.keystore.enc \ -out Input_keystore.keystore \ diff --git a/.github/workflows/code_style.yml b/.github/workflows/code_style.yml index 79dde6d91..ae17c390c 100644 --- a/.github/workflows/code_style.yml +++ b/.github/workflows/code_style.yml @@ -18,7 +18,7 @@ on: - published env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change + QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change CACHE_VERSION: 0 jobs: @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout input - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: input @@ -51,7 +51,7 @@ jobs: sudo pip3 install cmakelang - name: Checkout input - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: input @@ -65,7 +65,7 @@ jobs: runs-on: macos-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Requirements run: | diff --git a/.github/workflows/gallery.yml b/.github/workflows/gallery.yml index 4b163c2f5..4c9952b83 100644 --- a/.github/workflows/gallery.yml +++ b/.github/workflows/gallery.yml @@ -21,38 +21,37 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-13, windows-2019] + os: [ubuntu-latest, macos-15, windows-2022] runs-on: ${{ matrix.os }} env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change + QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change GITHUB_TOKEN: ${{ secrets.INPUTAPP_BOT_GITHUB_TOKEN }} CACHE_VERSION: 1 - XC_VERSION: ${{ '15.2' }} # macos-only - VS_VERSION: "2019" # win-only - QT_ARCH: "win64_msvc2019_64" # win-only + XC_VERSION: ${{ '16.2' }} # macos-only + VS_VERSION: "2022" # win-only + QT_ARCH: "win64_msvc2022_64" # win-only steps: - - uses: actions/checkout@v3 - + - uses: actions/checkout@v4 + - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} - setup-python: 'false' modules: 'qtsensors qtconnectivity qt5compat qtmultimedia qtpositioning qtshadertools' dir: ${{ github.workspace }} cache: true cache-key-prefix: ${{ runner.os }}-QtCache-v${{ env.CACHE_VERSION}}-${{ env.QT_VERSION }}-gallery - name: Select latest Xcode (macos) - if: matrix.os == 'macos-latest' + if: matrix.os == 'macos-15' run: "sudo xcode-select -s /Applications/Xcode_$XC_VERSION.app" - uses: seanmiddleditch/gha-setup-ninja@master - if: matrix.os != 'windows-2019' + if: matrix.os != 'windows-2022' - name: Configure and Build Gallery App (macos & ubuntu) - if: matrix.os != 'windows-2019' + if: matrix.os != 'windows-2022' run: | mkdir -p ${{ github.workspace }}/install-gallery mkdir -p ${{ github.workspace }}/build-gallery @@ -72,7 +71,7 @@ jobs: ls -la ${{ github.workspace }}/install-gallery - name: Prepare vars (windows) - if: matrix.os == 'windows-2019' + if: matrix.os == 'windows-2022' id: vars shell: bash run: | @@ -81,13 +80,13 @@ jobs: echo "WORKSPACE_DIR: $WORKSPACE_DIR" - name: Developer Command Prompt for Microsoft Visual C++ (windows) - if: matrix.os == 'windows-2019' + if: matrix.os == 'windows-2022' uses: ilammy/msvc-dev-cmd@v1 with: vsversion: ${{ env.VS_VERSION }} - name: Configure and Build Gallery App (windows) - if: matrix.os == 'windows-2019' + if: matrix.os == 'windows-2022' shell: cmd run: | mkdir install-gallery -ea 0 @@ -106,14 +105,14 @@ jobs: nmake install - name: Prepare artefacts (macos & ubuntu) - if: matrix.os != 'windows-2019' + if: matrix.os != 'windows-2022' run: | cd ${{ github.workspace }}/install-gallery ls -la . tar -czf ${{ github.workspace }}/merginmaps-gallery-${{ matrix.os }}.tar.gz . - name: Prepare artefacts (windows) - if: matrix.os == 'windows-2019' + if: matrix.os == 'windows-2022' shell: cmd run: | cd install-gallery diff --git a/.github/workflows/i18n.yml b/.github/workflows/i18n.yml index 072537da8..64a5bc201 100644 --- a/.github/workflows/i18n.yml +++ b/.github/workflows/i18n.yml @@ -11,13 +11,13 @@ jobs: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) runs-on: ubuntu-latest env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change + QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} setup-python: 'false' diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 581aa9e7f..fef947c8e 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -16,10 +16,10 @@ on: - published env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change - XC_VERSION: ${{ '15.2' }} + QT_VERSION: '6.8.3' # use scripts/update_qt_version.bash to change + XC_VERSION: ${{ '16.2' }} IOS_CMAKE_TOOLCHAIN_VERSION: "4.4.0" - INPUT_SDK_VERSION: arm64-ios-20240517-182 + INPUT_SDK_VERSION: arm64-ios-20250326-198 IOS_PROVISIONING_PROFILE_UUID: 59aaa8d7-516a-4592-8c58-d7d1c1f81610 KEYCHAIN: ${{ 'inputapp.keychain' }} CCACHE_DIR: /Users/runner/work/ccache @@ -33,15 +33,15 @@ concurrency: jobs: ios_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: macos-13 + runs-on: macos-15 steps: - name: Select latest Xcode run: "sudo xcode-select -s /Applications/Xcode_$XC_VERSION.app" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Download ios-cmake toolchain - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: leetal/ios-cmake ref: ${{ env.IOS_CMAKE_TOOLCHAIN_VERSION }} @@ -75,11 +75,11 @@ jobs: - name: Install brew deps run: | - pip3 install -U pip - pip3 install aqtinstall + brew update + brew install aqtinstall brew install gnupg - brew install openssl@1.1 + brew install openssl brew install ccache brew install ninja @@ -99,7 +99,7 @@ jobs: MERGINSECRETS_DECRYPT_KEY: ${{ secrets.MERGINSECRETS_DECRYPT_KEY }} run: | cd core/ - /usr/local/opt/openssl@1.1/bin/openssl \ + /opt/homebrew/bin/openssl \ aes-256-cbc -d \ -in merginsecrets.cpp.enc \ -out merginsecrets.cpp \ diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index f4378d501..6b3e55048 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -17,10 +17,10 @@ on: env: CCACHE_DIR: ~/.ccache - INPUT_SDK_VERSION: x64-linux-20240517-184 - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change + 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: 1 + CACHE_VERSION: 0 concurrency: group: ci-${{github.ref}}-linux diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 31d4feceb..caf0f516a 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -16,10 +16,10 @@ on: - published env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change - INPUT_SDK_VERSION: x64-osx-20240517-205 + 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: 1 + CACHE_VERSION: 0 CMAKE_VERSION: '3.29.0' XC_VERSION: ${{ '15.2' }} diff --git a/.github/workflows/macos_arm64.yml b/.github/workflows/macos_arm64.yml index fdba772b7..d5316486e 100644 --- a/.github/workflows/macos_arm64.yml +++ b/.github/workflows/macos_arm64.yml @@ -16,12 +16,12 @@ on: - published env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change - INPUT_SDK_VERSION: arm64-osx-20240517-4 + 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' - XC_VERSION: ${{ '15.2' }} + XC_VERSION: ${{ '16.2' }} concurrency: group: ci-${{github.ref}}-macos-arm64 @@ -30,10 +30,10 @@ concurrency: jobs: macos_arm64_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: macos-14 + runs-on: macos-15 steps: - name: Checkout Input - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: input diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index fcc87708a..9b6d94571 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -22,16 +22,16 @@ concurrency: jobs: win64_build: if: ( github.repository == 'MerginMaps/mobile' ) && (!contains(github.event.head_commit.message, 'Translate ')) - runs-on: windows-2019 + runs-on: windows-2022 env: - QT_VERSION: '6.6.3' # use scripts/update_qt_version.bash to change - INPUT_SDK_VERSION: x64-windows-20240517-231 + 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: "2019" + VS_VERSION: "2022" CMAKE_VERSION: '3.29.0' - QT_ARCH: "win64_msvc2019_64" + QT_ARCH: "win64_msvc2022_64" steps: - name: Checkout Input @@ -95,7 +95,7 @@ jobs: build-win64-ccache-refs/heads/master- - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} target: desktop @@ -111,7 +111,7 @@ jobs: 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 }} + key: ${{ runner.os }}-input-sdk-v1-${{ env.INPUT_SDK_VERSION }}-${{ env.CACHE_VERSION }} - name: Install Input-SDK shell: bash @@ -197,11 +197,11 @@ jobs: shell: cmd run: | makensis.exe input\scripts\input_win.nsi - xcopy C:\input-package\inputapp-win-x86_64.exe mergin-maps-input-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe* /Y + xcopy C:\input-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 with: - path: mergin-maps-input-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe + path: mergin-maps-mobile-win64-${{ steps.time.outputs.formattedTime }}-${{ github.run_number }}.exe if-no-files-found: error diff --git a/CMakeLists.txt b/CMakeLists.txt index c04bd7b49..3ed184bb2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.22) set(MM_VERSION_MAJOR "2025") set(MM_VERSION_MINOR "2") set(MM_VERSION_PATCH "0") -set(QT_VERSION_DEFAULT "6.6.3") +set(QT_VERSION_DEFAULT "6.8.3") # Note: we cannot set this for non-android build, since CMake will start looking for # Qt6AndroidMacros.cmake @@ -228,6 +228,7 @@ 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) @@ -254,6 +255,8 @@ 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) if (IOS OR MACOS) find_package(AppleFrameworks REQUIRED) diff --git a/INSTALL.md b/INSTALL.md index 86ecf7167..64c05f090 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -141,7 +141,7 @@ Steps to build and run Input: mkdir build cd build cmake -G Ninja \ - -DCMAKE_PREFIX_PATH=~/Qt/6.6.3/gcc_64 \ + -DCMAKE_PREFIX_PATH=~/Qt/6.8.3/gcc_64 \ -DINPUT_SDK_PATH=~/input-sdk/x64-linux \ -DQGIS_QUICK_DATA_PATH=../app/android/assets/qgis-data \ -DUSE_MM_SERVER_API_KEY=FALSE \ @@ -239,7 +239,7 @@ If you have "error: undefined reference to 'stdout'" or so, make sure that in BU - 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 - - Now perform `./cmdline-tools/bin/sdkmanager --sdk_root=./ "build-tools;33.0.1" "ndk;25.2.9519653" "platforms;android-33" platform-tools tools` to install all needed Android tools, make sure to double-check if the version numbers are correct + - Now perform `./cmdline-tools/bin/sdkmanager --sdk_root=./ "build-tools;34.0.0" "ndk;26.1.10909125" "platforms;android-34" platform-tools tools` to install all needed Android tools, make sure to double-check if the version numbers are correct 5. Get MM mobile SDK - it contains pre-built dependencies of used libraries (QGIS, etc..) @@ -265,8 +265,8 @@ If you have "error: undefined reference to 'stdout'" or so, make sure that in BU cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DQT_ANDROID_ABIS=arm64-v8a \ - -DQT_HOST_PATH=/opt/Qt/6.6.3/macos \ - -DCMAKE_TOOLCHAIN_FILE=/opt/Qt/6.6.3/android_arm64_v8a/lib/cmake/Qt6/qt.toolchain.cmake \ + -DQT_HOST_PATH=/opt/Qt/6.8.3/macos \ + -DCMAKE_TOOLCHAIN_FILE=/opt/Qt/6.8.3/android_arm64_v8a/lib/cmake/Qt6/qt.toolchain.cmake \ -DUSE_MM_SERVER_API_KEY=FALSE \ -GNinja \ ../input/ @@ -321,8 +321,8 @@ Now you can create a build (either on commmand line or by setting these variable cmake \ -DIOS=TRUE \ - -DCMAKE_PREFIX_PATH=/opt/Qt/6.6.3/ios \ - -DQT_HOST_PATH=/opt/Qt/6.6.3/macos \ + -DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3/ios \ + -DQT_HOST_PATH=/opt/Qt/6.8.3/macos \ -DCMAKE_TOOLCHAIN_FILE:PATH="~/input-sdk/ios.toolchain.cmake" \ -DCMAKE_INSTALL_PREFIX:PATH="../install" \ -DUSE_SERVER_API_KEY=FALSE \ @@ -338,15 +338,8 @@ Now you can create a build (either on commmand line or by setting these variable 2. Get MM 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` - - - 2.1. For Intel chips - - - 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` - - - 2.2. For Apple M chips - - You need to build SDK yourself, follow steps how to do it here https://github.com/merginmaps/mobile-sdk - - Your SDK will be installed in the `build folder/vcpkg_installed/arm64-osx/` + - 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 @@ -362,7 +355,7 @@ cd build-desktop cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_PREFIX_PATH=/opt/Qt/6.6.3/macos \ + -DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3/macos \ -DINPUT_SDK_PATH= \ -DQGIS_QUICK_DATA_PATH=/app/android/assets/qgis-data \ -GNinja \ @@ -389,7 +382,7 @@ For version of the tools used, see `.github/workflows/win.yml` - setup build environment ``` set ROOT_DIR=C:\Users\zilol\Projects -set Qt6_DIR=C:\Qt\6.6.3\msvc2019_64 +set Qt6_DIR=C:\Qt\6.8.3\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 ``` diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index cf9201375..df4811d8e 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -496,10 +496,13 @@ target_link_libraries( Geos::Geos-c Geos::Geos Protobuf::Protobuf-lite + Utf8::utf8_range + Utf8::utf8_validity Expat::Expat Freexl::Freexl Exiv2::Exiv2 - Exiv2::Exiv2-xmp + Inih::Inireader + Inih::Inih Tiff::Tiff Sqlite3::Sqlite3 MiniZip::MiniZip @@ -513,6 +516,7 @@ target_link_libraries( Lzma::Lzma Zstd::Zstd Bz2::Bz2 + Absl::Absl ) if (IOS OR MACOS) @@ -536,6 +540,7 @@ endif () if (IOS) target_link_libraries(Input PUBLIC AppleFrameworks::CoreLocation) + qt_add_ios_ffmpeg_libraries(Input) # Qt Multimedia endif () if (ENABLE_TESTS) diff --git a/app/android/assets/qgis-data/proj/ITRF2020 b/app/android/assets/qgis-data/proj/ITRF2020 new file mode 100644 index 000000000..45aaa5687 --- /dev/null +++ b/app/android/assets/qgis-data/proj/ITRF2020 @@ -0,0 +1,91 @@ +# 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/proj.db b/app/android/assets/qgis-data/proj/proj.db index 611900ddf..a6eeae97f 100644 Binary files a/app/android/assets/qgis-data/proj/proj.db and b/app/android/assets/qgis-data/proj/proj.db differ diff --git a/app/android/assets/qgis-data/proj/projjson.schema.json b/app/android/assets/qgis-data/proj/projjson.schema.json index b2884953d..a8578c81e 100644 --- a/app/android/assets/qgis-data/proj/projjson.schema.json +++ b/app/android/assets/qgis-data/proj/projjson.schema.json @@ -2,7 +2,7 @@ "$id": "https://proj.org/schemas/v0.7/projjson.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Schema for PROJJSON (v0.7)", - "$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_DEFAULT_VERSION accordingly in io.cpp", + "$comment": "This document is copyright Even Rouault and PROJ contributors, 2019-2023, and subject to the MIT license. This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_DEFAULT_VERSION accordingly in io.cpp", "oneOf": [ { "$ref": "#/definitions/crs" }, diff --git a/app/android/assets/qgis-data/resources/srs.db b/app/android/assets/qgis-data/resources/srs.db index 2b0eb995b..6b8193b77 100644 Binary files a/app/android/assets/qgis-data/resources/srs.db and b/app/android/assets/qgis-data/resources/srs.db differ diff --git a/app/attributes/attributecontroller.cpp b/app/attributes/attributecontroller.cpp index 02b07cc88..03b2ceafc 100644 --- a/app/attributes/attributecontroller.cpp +++ b/app/attributes/attributecontroller.cpp @@ -21,6 +21,7 @@ #include #include +#include "qgis.h" #include "qgsproject.h" #include "qgsvectorlayer.h" #include "qgsattributeeditorfield.h" @@ -561,7 +562,7 @@ void AttributeController::updateOnLayerChange() mExpressionFieldsOutsideForm << i; } - if ( mFeatureLayerPair.layer()->fields().fieldOrigin( i ) == QgsFields::OriginExpression ) + if ( mFeatureLayerPair.layer()->fields().fieldOrigin( i ) == Qgis::FieldOrigin::Expression ) { mVirtualFieldsOutsideForm << i; } @@ -830,7 +831,7 @@ void AttributeController::recalculateVirtualFields( QSet &changedFormItem const QgsField field = item->field(); - if ( mFeatureLayerPair.layer()->fields().fieldOrigin( item->fieldIndex() ) == QgsFields::OriginExpression ) + if ( mFeatureLayerPair.layer()->fields().fieldOrigin( item->fieldIndex() ) == Qgis::FieldOrigin::Expression ) { QString expressionString = mFeatureLayerPair.layer()->expressionField( item->fieldIndex() ); evaluateExpressionAndUpdateValue( changedFormItems, diff --git a/app/attributes/fieldvalidator.cpp b/app/attributes/fieldvalidator.cpp index 4f819b047..e8ad659b6 100644 --- a/app/attributes/fieldvalidator.cpp +++ b/app/attributes/fieldvalidator.cpp @@ -136,7 +136,7 @@ FieldValidator::ValidationStatus FieldValidator::validateNumericField( const For return Error; } - else if ( containsDecimals && field.type() != QVariant::Type::Double ) + else if ( containsDecimals && field.type() != QMetaType::Type::Double ) { /* ConverCompatible check passes for doubles written into int fields, * however, the value would not be saved and would get replaced by zero, diff --git a/app/featuresmodel.cpp b/app/featuresmodel.cpp index 7cc386424..e653c8c12 100644 --- a/app/featuresmodel.cpp +++ b/app/featuresmodel.cpp @@ -232,7 +232,7 @@ QString FeaturesModel::buildSearchExpression() if ( field.configurationFlags().testFlag( Qgis::FieldConfigurationFlag::NotSearchable ) || ( field.isNumeric() && !searchExpressionIsNumeric ) ) continue; - else if ( field.type() == QVariant::String || field.isNumeric() ) + else if ( field.type() == QMetaType::QString || field.isNumeric() ) expressionParts << QStringLiteral( "%1 ILIKE '%%2%'" ).arg( QgsExpression::quotedColumnRef( field.name() ), word ); } wordExpressions << QStringLiteral( "(%1)" ).arg( expressionParts.join( QLatin1String( " ) OR ( " ) ) ); diff --git a/app/identifykit.cpp b/app/identifykit.cpp index 2864129e0..9a615199c 100644 --- a/app/identifykit.cpp +++ b/app/identifykit.cpp @@ -196,7 +196,7 @@ QgsFeatureList IdentifyKit::identifyVectorLayer( QgsVectorLayer *layer, const Qg QgsFeatureRequest req; req.setFilterRect( r ); req.setLimit( mFeaturesLimit ); - req.setFlags( QgsFeatureRequest::ExactIntersect ); + req.setFlags( Qgis::FeatureRequestFlag::ExactIntersect ); QgsFeatureIterator fit = layer->getFeatures( req ); QgsFeature f; diff --git a/app/inpututils.cpp b/app/inpututils.cpp index 3b408a15b..97b0b714c 100644 --- a/app/inpututils.cpp +++ b/app/inpututils.cpp @@ -1160,7 +1160,7 @@ const QgsEditorWidgetSetup InputUtils::getEditorWidgetSetup( const QgsField &fie return getEditorWidgetSetup( field, QStringLiteral( "Range" ) ); else if ( field.isDateOrTime() ) return getEditorWidgetSetup( field, QStringLiteral( "DateTime" ) ); - else if ( field.type() == QVariant::Bool ) + else if ( field.type() == QMetaType::Type::Bool ) return getEditorWidgetSetup( field, QStringLiteral( "CheckBox" ) ); else return getEditorWidgetSetup( field, QStringLiteral( "TextEdit" ) ); @@ -1510,7 +1510,7 @@ QString InputUtils::evaluateExpression( const FeatureLayerPair &pair, QgsProject QString InputUtils::fieldType( const QgsField &field ) { - return QVariant( field.type() ).typeName(); + return QMetaType::typeName( field.type() ); } QString InputUtils::dateTimeFieldFormat( const QString &fieldFormat ) @@ -2084,17 +2084,17 @@ static double qgsRuntimeProfilerExtractModelAsText( QStringList &lines, const QS for ( int r = 0; r < rc; r++ ) { QModelIndex rowIndex = QgsApplication::profiler()->index( r, 0, parent ); - if ( QgsApplication::profiler()->data( rowIndex, QgsRuntimeProfilerNode::Group ).toString() != group ) + if ( QgsApplication::profiler()->data( rowIndex, static_cast( QgsRuntimeProfilerNode::CustomRole::Group ) ).toString() != group ) continue; bool ok; - double elapsed = QgsApplication::profiler()->data( rowIndex, QgsRuntimeProfilerNode::Elapsed ).toDouble( &ok ); + double elapsed = QgsApplication::profiler()->data( rowIndex, static_cast( QgsRuntimeProfilerNode::CustomRole::Elapsed ) ).toDouble( &ok ); if ( !ok ) elapsed = 0.0; total_elapsed += elapsed; if ( elapsed > PROFILER_THRESHOLD ) { - QString name = QgsApplication::profiler()->data( rowIndex, QgsRuntimeProfilerNode::Name ).toString(); + QString name = QgsApplication::profiler()->data( rowIndex, static_cast( QgsRuntimeProfilerNode::CustomRole::Name ) ).toString(); lines << QStringLiteral( " %1 %2: %3 sec" ).arg( QStringLiteral( ">" ).repeated( level + 1 ), name, QString::number( elapsed, 'f', 3 ) ); } total_elapsed += qgsRuntimeProfilerExtractModelAsText( lines, group, rowIndex, level + 1 ); diff --git a/app/mapthemesmodel.cpp b/app/mapthemesmodel.cpp index b4a0a6b45..a2982a3fd 100644 --- a/app/mapthemesmodel.cpp +++ b/app/mapthemesmodel.cpp @@ -27,10 +27,10 @@ MapThemesModel::~MapThemesModel() = default; void MapThemesModel::setupModel() { - beginResetModel(); - clear(); + beginResetModel(); + if ( mQgsProject ) { QgsMapThemeCollection *collection = mQgsProject->mapThemeCollection(); diff --git a/app/position/providers/androidpositionprovider.cpp b/app/position/providers/androidpositionprovider.cpp index 277776d14..41d3ef4bf 100644 --- a/app/position/providers/androidpositionprovider.cpp +++ b/app/position/providers/androidpositionprovider.cpp @@ -164,10 +164,15 @@ AndroidPositionProvider::AndroidPositionProvider( bool fused, QObject *parent ) __android_log_print( ANDROID_LOG_INFO, "CPP", "[c++] create Java object" ); - jobject context = QNativeInterface::QAndroidApplication::context(); + QJniObject context = QNativeInterface::QAndroidApplication::context(); - mAndroidPos = QJniObject::callStaticObjectMethod( "uk/co/lutraconsulting/MMAndroidPosition", "createWithJniCallback", - "(Landroid/content/Context;ZI)Luk/co/lutraconsulting/MMAndroidPosition;", context, mFused, mInstanceId ); + mAndroidPos = QJniObject::callStaticObjectMethod( + "uk/co/lutraconsulting/MMAndroidPosition", + "createWithJniCallback", + "(Landroid/content/Context;ZI)Luk/co/lutraconsulting/MMAndroidPosition;", + context.object(), + mFused, + mInstanceId ); AndroidPositionProvider::startUpdates(); } @@ -183,18 +188,19 @@ AndroidPositionProvider::~AndroidPositionProvider() bool AndroidPositionProvider::isFusedAvailable() { - jobject context = QNativeInterface::QAndroidApplication::context(); - return QJniObject::callStaticMethod( "uk/co/lutraconsulting/MMAndroidPosition", "isFusedLocationProviderAvailable", - "(Landroid/content/Context;)Z", context ); + "(Landroid/content/Context;)Z", QNativeInterface::QAndroidApplication::context() ); } QString AndroidPositionProvider::fusedErrorString() { - jobject context = QNativeInterface::QAndroidApplication::context(); + QJniObject context = QNativeInterface::QAndroidApplication::context(); - QJniObject str = QJniObject::callStaticObjectMethod( "uk/co/lutraconsulting/MMAndroidPosition", "fusedLocationProviderErrorString", - "(Landroid/content/Context;)Ljava/lang/String;", context ); + QJniObject str = QJniObject::callStaticObjectMethod( + "uk/co/lutraconsulting/MMAndroidPosition", + "fusedLocationProviderErrorString", + "(Landroid/content/Context;)Ljava/lang/String;", + context.object() ); return str.toString(); } diff --git a/app/test/testmaptools.cpp b/app/test/testmaptools.cpp index c90fb4de2..1e8dbeeb2 100644 --- a/app/test/testmaptools.cpp +++ b/app/test/testmaptools.cpp @@ -1851,7 +1851,7 @@ void TestMapTools::testVerticesStructure() QCOMPARE( mapTool.collectedVertices().length(), 1 ); QVERIFY( mapTool.collectedVertices().at( 0 ).type() == Vertex::Existing ); - QCOMPARE( mapTool.collectedVertices().at( 0 ).coordinates(), pointdata ); + QCOMPARE( mapTool.collectedVertices().at( 0 ).coordinates(), QgsPoint( pointdata ) ); // // multipoint @@ -1883,9 +1883,9 @@ void TestMapTools::testVerticesStructure() QVERIFY( verticesmp.at( 1 ).type() == Vertex::Existing ); QVERIFY( verticesmp.at( 2 ).type() == Vertex::Existing ); - QCOMPARE( verticesmp.at( 0 ).coordinates(), multipointdata.at( 0 ) ); - QCOMPARE( verticesmp.at( 1 ).coordinates(), multipointdata.at( 1 ) ); - QCOMPARE( verticesmp.at( 2 ).coordinates(), multipointdata.at( 2 ) ); + QCOMPARE( verticesmp.at( 0 ).coordinates(), QgsPoint( multipointdata.at( 0 ) ) ); + QCOMPARE( verticesmp.at( 1 ).coordinates(), QgsPoint( multipointdata.at( 1 ) ) ); + QCOMPARE( verticesmp.at( 2 ).coordinates(), QgsPoint( multipointdata.at( 2 ) ) ); // // linestring @@ -1922,9 +1922,9 @@ void TestMapTools::testVerticesStructure() QVERIFY( verticesl.at( 5 ).type() == Vertex::Existing ); QVERIFY( verticesl.at( 6 ).type() == Vertex::HandleEnd ); - QCOMPARE( verticesl.at( 1 ).coordinates(), linestringdata.at( 0 ) ); - QCOMPARE( verticesl.at( 3 ).coordinates(), linestringdata.at( 1 ) ); - QCOMPARE( verticesl.at( 5 ).coordinates(), linestringdata.at( 2 ) ); + QCOMPARE( verticesl.at( 1 ).coordinates(), QgsPoint( linestringdata.at( 0 ) ) ); + QCOMPARE( verticesl.at( 3 ).coordinates(), QgsPoint( linestringdata.at( 1 ) ) ); + QCOMPARE( verticesl.at( 5 ).coordinates(), QgsPoint( linestringdata.at( 2 ) ) ); // single point line QgsLineString *r = qgsgeometry_cast( linestrindataGEO.get() ); @@ -1942,7 +1942,7 @@ void TestMapTools::testVerticesStructure() QCOMPARE( mapTool.collectedVertices().length(), 1 ); QVERIFY( mapTool.collectedVertices().at( 0 ).type() == Vertex::Existing ); - QCOMPARE( mapTool.collectedVertices().at( 0 ).coordinates(), linestringdata.at( 0 ) ); + QCOMPARE( mapTool.collectedVertices().at( 0 ).coordinates(), QgsPoint( linestringdata.at( 0 ) ) ); // // multilinestring @@ -1998,12 +1998,12 @@ void TestMapTools::testVerticesStructure() QVERIFY( verticesml.at( 11 ).type() == Vertex::HandleEnd ); QVERIFY( verticesml.at( 12 ).type() == Vertex::Existing ); - QCOMPARE( verticesml.at( 1 ).coordinates(), multilinestringdata.at( 0 ).at( 0 ) ); - QCOMPARE( verticesml.at( 3 ).coordinates(), multilinestringdata.at( 0 ).at( 1 ) ); - QCOMPARE( verticesml.at( 5 ).coordinates(), multilinestringdata.at( 0 ).at( 2 ) ); - QCOMPARE( verticesml.at( 8 ).coordinates(), multilinestringdata.at( 1 ).at( 0 ) ); - QCOMPARE( verticesml.at( 10 ).coordinates(), multilinestringdata.at( 1 ).at( 1 ) ); - QCOMPARE( verticesml.at( 12 ).coordinates(), multilinestringdata.at( 2 ).at( 0 ) ); + QCOMPARE( verticesml.at( 1 ).coordinates(), QgsPoint( multilinestringdata.at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesml.at( 3 ).coordinates(), QgsPoint( multilinestringdata.at( 0 ).at( 1 ) ) ); + QCOMPARE( verticesml.at( 5 ).coordinates(), QgsPoint( multilinestringdata.at( 0 ).at( 2 ) ) ); + QCOMPARE( verticesml.at( 8 ).coordinates(), QgsPoint( multilinestringdata.at( 1 ).at( 0 ) ) ); + QCOMPARE( verticesml.at( 10 ).coordinates(), QgsPoint( multilinestringdata.at( 1 ).at( 1 ) ) ); + QCOMPARE( verticesml.at( 12 ).coordinates(), QgsPoint( multilinestringdata.at( 2 ).at( 0 ) ) ); QCOMPARE( verticesml.at( 0 ).vertexId().part, 0 ); QCOMPARE( verticesml.at( 7 ).vertexId().part, 1 ); @@ -2049,10 +2049,10 @@ void TestMapTools::testVerticesStructure() QVERIFY( verticesspn.at( 6 ).type() == Vertex::Existing ); QVERIFY( verticesspn.at( 7 ).type() == Vertex::MidPoint ); - QCOMPARE( verticesspn.at( 0 ).coordinates(), simplepolygondata.at( 0 ).at( 0 ) ); - QCOMPARE( verticesspn.at( 2 ).coordinates(), simplepolygondata.at( 0 ).at( 1 ) ); - QCOMPARE( verticesspn.at( 4 ).coordinates(), simplepolygondata.at( 0 ).at( 2 ) ); - QCOMPARE( verticesspn.at( 6 ).coordinates(), simplepolygondata.at( 0 ).at( 3 ) ); + QCOMPARE( verticesspn.at( 0 ).coordinates(), QgsPoint( simplepolygondata.at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesspn.at( 2 ).coordinates(), QgsPoint( simplepolygondata.at( 0 ).at( 1 ) ) ); + QCOMPARE( verticesspn.at( 4 ).coordinates(), QgsPoint( simplepolygondata.at( 0 ).at( 2 ) ) ); + QCOMPARE( verticesspn.at( 6 ).coordinates(), QgsPoint( simplepolygondata.at( 0 ).at( 3 ) ) ); // // polygon (with hole) @@ -2104,13 +2104,13 @@ void TestMapTools::testVerticesStructure() QVERIFY( verticespn.at( 12 ).type() == Vertex::Existing ); QVERIFY( verticespn.at( 13 ).type() == Vertex::MidPoint ); - QCOMPARE( verticespn.at( 0 ).coordinates(), polygondata.at( 0 ).at( 0 ) ); - QCOMPARE( verticespn.at( 2 ).coordinates(), polygondata.at( 0 ).at( 1 ) ); - QCOMPARE( verticespn.at( 4 ).coordinates(), polygondata.at( 0 ).at( 2 ) ); - QCOMPARE( verticespn.at( 6 ).coordinates(), polygondata.at( 0 ).at( 3 ) ); - QCOMPARE( verticespn.at( 8 ).coordinates(), polygondata.at( 1 ).at( 0 ) ); - QCOMPARE( verticespn.at( 10 ).coordinates(), polygondata.at( 1 ).at( 1 ) ); - QCOMPARE( verticespn.at( 12 ).coordinates(), polygondata.at( 1 ).at( 2 ) ); + QCOMPARE( verticespn.at( 0 ).coordinates(), QgsPoint( polygondata.at( 0 ).at( 0 ) ) ); + QCOMPARE( verticespn.at( 2 ).coordinates(), QgsPoint( polygondata.at( 0 ).at( 1 ) ) ); + QCOMPARE( verticespn.at( 4 ).coordinates(), QgsPoint( polygondata.at( 0 ).at( 2 ) ) ); + QCOMPARE( verticespn.at( 6 ).coordinates(), QgsPoint( polygondata.at( 0 ).at( 3 ) ) ); + QCOMPARE( verticespn.at( 8 ).coordinates(), QgsPoint( polygondata.at( 1 ).at( 0 ) ) ); + QCOMPARE( verticespn.at( 10 ).coordinates(), QgsPoint( polygondata.at( 1 ).at( 1 ) ) ); + QCOMPARE( verticespn.at( 12 ).coordinates(), QgsPoint( polygondata.at( 1 ).at( 2 ) ) ); QCOMPARE( verticespn.at( 0 ).vertexId().part, 0 ); QCOMPARE( verticespn.at( 7 ).vertexId().part, 0 ); @@ -2225,22 +2225,22 @@ void TestMapTools::testVerticesStructure() QVERIFY( verticesmpr.at( 24 ).type() == Vertex::Existing ); // part 1 - QCOMPARE( verticesmpr.at( 0 ).coordinates(), multipolygonringsdata.at( 0 ).at( 0 ).at( 0 ) ); - QCOMPARE( verticesmpr.at( 2 ).coordinates(), multipolygonringsdata.at( 0 ).at( 0 ).at( 1 ) ); - QCOMPARE( verticesmpr.at( 4 ).coordinates(), multipolygonringsdata.at( 0 ).at( 0 ).at( 2 ) ); - QCOMPARE( verticesmpr.at( 6 ).coordinates(), multipolygonringsdata.at( 0 ).at( 0 ).at( 3 ) ); + QCOMPARE( verticesmpr.at( 0 ).coordinates(), QgsPoint( multipolygonringsdata.at( 0 ).at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesmpr.at( 2 ).coordinates(), QgsPoint( multipolygonringsdata.at( 0 ).at( 0 ).at( 1 ) ) ); + QCOMPARE( verticesmpr.at( 4 ).coordinates(), QgsPoint( multipolygonringsdata.at( 0 ).at( 0 ).at( 2 ) ) ); + QCOMPARE( verticesmpr.at( 6 ).coordinates(), QgsPoint( multipolygonringsdata.at( 0 ).at( 0 ).at( 3 ) ) ); // part 2 - ext - QCOMPARE( verticesmpr.at( 8 ).coordinates(), multipolygonringsdata.at( 1 ).at( 0 ).at( 0 ) ); - QCOMPARE( verticesmpr.at( 10 ).coordinates(), multipolygonringsdata.at( 1 ).at( 0 ).at( 1 ) ); - QCOMPARE( verticesmpr.at( 12 ).coordinates(), multipolygonringsdata.at( 1 ).at( 0 ).at( 2 ) ); - QCOMPARE( verticesmpr.at( 14 ).coordinates(), multipolygonringsdata.at( 1 ).at( 0 ).at( 3 ) ); + QCOMPARE( verticesmpr.at( 8 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesmpr.at( 10 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 0 ).at( 1 ) ) ); + QCOMPARE( verticesmpr.at( 12 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 0 ).at( 2 ) ) ); + QCOMPARE( verticesmpr.at( 14 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 0 ).at( 3 ) ) ); // part 2 - hole - QCOMPARE( verticesmpr.at( 16 ).coordinates(), multipolygonringsdata.at( 1 ).at( 1 ).at( 0 ) ); - QCOMPARE( verticesmpr.at( 18 ).coordinates(), multipolygonringsdata.at( 1 ).at( 1 ).at( 1 ) ); - QCOMPARE( verticesmpr.at( 20 ).coordinates(), multipolygonringsdata.at( 1 ).at( 1 ).at( 2 ) ); + QCOMPARE( verticesmpr.at( 16 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 1 ).at( 0 ) ) ); + QCOMPARE( verticesmpr.at( 18 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 1 ).at( 1 ) ) ); + QCOMPARE( verticesmpr.at( 20 ).coordinates(), QgsPoint( multipolygonringsdata.at( 1 ).at( 1 ).at( 2 ) ) ); // part 3 - QCOMPARE( verticesmpr.at( 22 ).coordinates(), multipolygonringsdata.at( 2 ).at( 0 ).at( 0 ) ); - QCOMPARE( verticesmpr.at( 24 ).coordinates(), multipolygonringsdata.at( 2 ).at( 0 ).at( 1 ) ); + QCOMPARE( verticesmpr.at( 22 ).coordinates(), QgsPoint( multipolygonringsdata.at( 2 ).at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesmpr.at( 24 ).coordinates(), QgsPoint( multipolygonringsdata.at( 2 ).at( 0 ).at( 1 ) ) ); QCOMPARE( verticesmpr.at( 1 ).vertexId().part, 0 ); QCOMPARE( verticesmpr.at( 3 ).vertexId().part, 0 ); @@ -2358,18 +2358,18 @@ void TestMapTools::testVerticesStructure() // part 4 - empty, no element // part 1 - QCOMPARE( verticesmpi.at( 0 ).coordinates(), multipolygoninvaliddata.at( 0 ).at( 0 ).at( 0 ) ); - QCOMPARE( verticesmpi.at( 2 ).coordinates(), multipolygoninvaliddata.at( 0 ).at( 0 ).at( 1 ) ); - QCOMPARE( verticesmpi.at( 4 ).coordinates(), multipolygoninvaliddata.at( 0 ).at( 0 ).at( 2 ) ); + QCOMPARE( verticesmpi.at( 0 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 0 ).at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesmpi.at( 2 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 0 ).at( 0 ).at( 1 ) ) ); + QCOMPARE( verticesmpi.at( 4 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 0 ).at( 0 ).at( 2 ) ) ); // part 2 - ext - QCOMPARE( verticesmpi.at( 6 ).coordinates(), multipolygoninvaliddata.at( 1 ).at( 0 ).at( 0 ) ); - QCOMPARE( verticesmpi.at( 8 ).coordinates(), multipolygoninvaliddata.at( 1 ).at( 0 ).at( 1 ) ); + QCOMPARE( verticesmpi.at( 6 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 1 ).at( 0 ).at( 0 ) ) ); + QCOMPARE( verticesmpi.at( 8 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 1 ).at( 0 ).at( 1 ) ) ); // part 2 - hole - QCOMPARE( verticesmpi.at( 9 ).coordinates(), multipolygoninvaliddata.at( 1 ).at( 1 ).at( 0 ) ); - QCOMPARE( verticesmpi.at( 11 ).coordinates(), multipolygoninvaliddata.at( 1 ).at( 1 ).at( 1 ) ); - QCOMPARE( verticesmpi.at( 13 ).coordinates(), multipolygoninvaliddata.at( 1 ).at( 1 ).at( 2 ) ); + QCOMPARE( verticesmpi.at( 9 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 1 ).at( 1 ).at( 0 ) ) ); + QCOMPARE( verticesmpi.at( 11 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 1 ).at( 1 ).at( 1 ) ) ); + QCOMPARE( verticesmpi.at( 13 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 1 ).at( 1 ).at( 2 ) ) ); // part 3 - QCOMPARE( verticesmpi.at( 15 ).coordinates(), multipolygoninvaliddata.at( 2 ).at( 0 ).at( 0 ) ); + QCOMPARE( verticesmpi.at( 15 ).coordinates(), QgsPoint( multipolygoninvaliddata.at( 2 ).at( 0 ).at( 0 ) ) ); QCOMPARE( verticesmpi.at( 1 ).vertexId().part, 0 ); QCOMPARE( verticesmpi.at( 3 ).vertexId().part, 0 ); diff --git a/app/test/testposition.cpp b/app/test/testposition.cpp index 379edf25c..f6cfe7849 100644 --- a/app/test/testposition.cpp +++ b/app/test/testposition.cpp @@ -395,7 +395,7 @@ void TestPosition::testPositionTracking() trackingSpy.wait( 4000 ); // new position should be emited in 2k ms - QVERIFY( manager.trackedGeometry().asWkt( 3 ).startsWith( QStringLiteral( "LineStringZM (-92.36 38.93 20" ) ) ); + QVERIFY( manager.trackedGeometry().asWkt( 3 ).startsWith( QStringLiteral( "LineString ZM (-92.36 38.93 20" ) ) ); // store the geometry QgsVectorLayer *trackingLayer = QgsProject::instance()->mapLayer( "tracking_layer_aad89df7_21db_466e_b5c1_a80160f74c01" ); @@ -409,7 +409,7 @@ void TestPosition::testPositionTracking() int addedFid = addedSpy.at( 1 ).at( 0 ).toInt(); QgsFeature f = trackingLayer->getFeature( addedFid ); - QVERIFY( f.geometry().asWkt( 3 ).startsWith( QStringLiteral( "LineStringZM (-92.36 38.93 20" ) ) ); + QVERIFY( f.geometry().asWkt( 3 ).startsWith( QStringLiteral( "LineString ZM (-92.36 38.93 20" ) ) ); QString datetimeFormat = QStringLiteral( "dd.MM.yyyy hh:mm:ss" ); QString dateTrackingStartedFromManager = manager.startTime().toString( datetimeFormat ); @@ -448,7 +448,7 @@ void TestPosition::testPositionTrackingHighlight() trackingHighlight.setTrackedGeometry( g ); trackingHighlight.setMapPosition( p ); - QString result = QStringLiteral( "LineStringZM (5 5 5 5, 10 10 10 nan)" ); + QString result = QStringLiteral( "LineString ZM (5 5 5 5, 10 10 10 nan)" ); QCOMPARE( trackingHighlight.highlightGeometry().asWkt( 1 ), result ); @@ -459,7 +459,7 @@ void TestPosition::testPositionTrackingHighlight() trackingHighlight.setTrackedGeometry( g ); trackingHighlight.setMapPosition( p ); - result = QStringLiteral( "LineStringZM (5 5 5 5, 6 6 5 5, 10 10 10 nan)" ); + result = QStringLiteral( "LineString ZM (5 5 5 5, 6 6 5 5, 10 10 10 nan)" ); QCOMPARE( trackingHighlight.highlightGeometry().asWkt( 1 ), result ); @@ -470,7 +470,7 @@ void TestPosition::testPositionTrackingHighlight() trackingHighlight.setTrackedGeometry( g ); trackingHighlight.setMapPosition( p ); - result = QStringLiteral( "LineStringZM (5 5 5 5, 6 6 5 5, 7 7 5 5, 10 10 10 nan)" ); + result = QStringLiteral( "LineString ZM (5 5 5 5, 6 6 5 5, 7 7 5 5, 10 10 10 nan)" ); QCOMPARE( trackingHighlight.highlightGeometry().asWkt( 1 ), result ); @@ -478,7 +478,7 @@ void TestPosition::testPositionTrackingHighlight() p = QgsPoint( 20, 20, 20 ); trackingHighlight.setMapPosition( p ); - result = QStringLiteral( "LineStringZM (5 5 5 5, 6 6 5 5, 7 7 5 5, 20 20 20 nan)" ); + result = QStringLiteral( "LineString ZM (5 5 5 5, 6 6 5 5, 7 7 5 5, 20 20 20 nan)" ); QCOMPARE( trackingHighlight.highlightGeometry().asWkt( 1 ), result ); // lost map position diff --git a/cmake/FindAbsl.cmake b/cmake/FindAbsl.cmake new file mode 100644 index 000000000..55b4921c5 --- /dev/null +++ b/cmake/FindAbsl.cmake @@ -0,0 +1,1914 @@ +# 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/FindExiv2.cmake b/cmake/FindExiv2.cmake index 828633f82..351502da6 100644 --- a/cmake/FindExiv2.cmake +++ b/cmake/FindExiv2.cmake @@ -13,16 +13,7 @@ find_library( NO_DEFAULT_PATH ) -find_library( - Exiv2_xmp_LIBRARY - NAMES exiv2-xmp - PATHS "${INPUT_SDK_PATH_MULTI}/lib" - NO_DEFAULT_PATH -) - -find_package_handle_standard_args( - Exiv2 REQUIRED_VARS Exiv2_LIBRARY Exiv2_xmp_LIBRARY Exiv2_INCLUDE_DIR -) +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) @@ -30,12 +21,6 @@ if (Exiv2_FOUND AND NOT TARGET Exiv2::Exiv2) Exiv2::Exiv2 PROPERTIES IMPORTED_LOCATION "${Exiv2_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${Exiv2_INCLUDE_DIR}" ) - - add_library(Exiv2::Exiv2-xmp UNKNOWN IMPORTED) - set_target_properties( - Exiv2::Exiv2-xmp PROPERTIES IMPORTED_LOCATION "${Exiv2_xmp_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Exiv2_INCLUDE_DIR}" - ) endif () -mark_as_advanced(Exiv2_LIBRARY Exiv2_INCLUDE_DIR Exiv2_xmp_LIBRARY) +mark_as_advanced(Exiv2_LIBRARY Exiv2_INCLUDE_DIR) diff --git a/cmake/FindInih.cmake b/cmake/FindInih.cmake new file mode 100644 index 000000000..4cfb87ea4 --- /dev/null +++ b/cmake/FindInih.cmake @@ -0,0 +1,28 @@ +# 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/FindProtobuf.cmake b/cmake/FindProtobuf.cmake index 2bc9039d1..5bfa67146 100644 --- a/cmake/FindProtobuf.cmake +++ b/cmake/FindProtobuf.cmake @@ -25,6 +25,7 @@ if (Protobuf_FOUND AND NOT TARGET 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/FindUtf8.cmake b/cmake/FindUtf8.cmake new file mode 100644 index 000000000..499621371 --- /dev/null +++ b/cmake/FindUtf8.cmake @@ -0,0 +1,35 @@ +# 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/FindZXing.cmake b/cmake/FindZXing.cmake index 9ca53906d..f01b4ef8f 100644 --- a/cmake/FindZXing.cmake +++ b/cmake/FindZXing.cmake @@ -2,7 +2,7 @@ find_path( ZXing_INCLUDE_DIR - ZXing/ZXConfig.h + ZXing/ZXVersion.h "${INPUT_SDK_PATH_MULTI}/include" NO_DEFAULT_PATH ) diff --git a/cmake/InstallStep.cmake b/cmake/InstallStep.cmake index d45c54443..76934f705 100644 --- a/cmake/InstallStep.cmake +++ b/cmake/InstallStep.cmake @@ -197,6 +197,7 @@ set(qt_libs QmlCompiler QmlCore QmlLocalStorage + QmlMeta QmlModels QmlWorkerScript QmlXmlListModel diff --git a/scripts/update_qt_version.bash b/scripts/update_qt_version.bash index 1af275fdb..6d230aa65 100755 --- a/scripts/update_qt_version.bash +++ b/scripts/update_qt_version.bash @@ -41,6 +41,7 @@ for FNAME in \ $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"