diff --git a/.appveyor.yml b/.appveyor.yml index f49fc1520..5ed3f54b2 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,5 +1,5 @@ version: '2.4.0-git-{build}' -image: 'Visual Studio 2019' +image: 'Visual Studio 2022' clone_depth: 1 # Build configuration @@ -9,15 +9,18 @@ configuration: # Environment environment: NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip - VSVARSALLPATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat' + VSVARSALLPATH: 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat' ARCH: x64 - PYTHON: 'C:\Python36-x64' + PYTHON: 'C:\Python312-x64' PACKAGE_NAME: cutter-git-x64.Windows install: - ps: $env:path = ($env:path -split ";").Where({!($_ -like "*Microsoft SQL Server*")}) -join ";" - cmd: C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER && scripts/fetch_deps.sh" - cmd: set "CUTTER_DEPS=%APPVEYOR_BUILD_FOLDER%\cutter-deps" + - cmd: mklink /D "%CUTTER_DEPS%\pyside\typesystems" "%CUTTER_DEPS%\pyside\share\PySide6\typesystems" + - cmd: mklink /D "%CUTTER_DEPS%\pyside\glue" "%CUTTER_DEPS%\pyside\share\PySide6\glue" + - cmd: mklink /D "%CUTTER_DEPS%\pyside\doc" "%CUTTER_DEPS%\pyside\share\PySide6\doc" - cmd: set "PATH=%CD%;%PYTHON%;%PATH%" - cmd: call "%VSVARSALLPATH%" %ARCH% - cmd: set "PATH=%CUTTER_DEPS%\qt\bin;%PYTHON%\Scripts\;%PATH%" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e49c87ae7..57bad0750 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,14 +45,12 @@ jobs: cc-override: '/usr/bin/gcc-12' cxx-override: '/usr/bin/g++-12' - name: linux-x86_64 # main Appimage build - image: ubuntu:20.04 - python-version: 3.6.x + image: ubuntu:22.04 system-deps: false package: true tarball: false - name: tarball - python-version: 3.6.x - image: ubuntu:20.04 + image: ubuntu:22.04 system-deps: false package: false tarball: true @@ -126,20 +124,23 @@ jobs: llvm-8 ln -s /usr/bin/llvm-config-8 /usr/bin/llvm-config fi - if [ "${{ matrix.image }}" = "ubuntu:18.04" ] || [ "${{ matrix.image }}" = "ubuntu:20.04" ]; then + if [ "${{ matrix.image }}" = "ubuntu:18.04" ] || ([ "${{ matrix.image }}" = "ubuntu:22.04" ] && [ "${{ matrix.system-deps }}" = "false" ]); then # install additional packages needed for appimage apt-get -y install libxcb1-dev \ libxkbcommon-dev \ libxcb-*-dev \ libegl1 fi - if [ "${{ matrix.image }}" = "ubuntu:20.04" ] && [ "${{ matrix.system-deps }}" = "false" ]; then + if [ "${{ matrix.image }}" = "ubuntu:22.04" ] && [ "${{ matrix.system-deps }}" = "false" ]; then # install additional packages needed for appimage - apt-get -y install libclang-12-dev \ - llvm-12 \ - libsm6 \ + apt-get -y install libsm6 \ libwayland-dev \ - libgl1-mesa-dev + libgl1-mesa-dev \ + wget \ + software-properties-common \ + lsb-release \ + file + wget https://apt.llvm.org/llvm.sh -O /tmp/llvm-install.sh; chmod +x /tmp/llvm-install.sh; /tmp/llvm-install.sh 20 fi if [ "${{ matrix.image }}" = "ubuntu:18.04" ] && [ "${{ matrix.system-deps }}" = "true" ]; then apt-get -y install qt5-default \ @@ -147,7 +148,7 @@ jobs: qttools5-dev \ qttools5-dev-tools fi - if [ "${{ matrix.image }}" = "ubuntu:22.04" ]; then + if [ "${{ matrix.image }}" = "ubuntu:22.04" ] && [ "${{ matrix.system-deps }}" = "true" ]; then apt-get -y install libclang-12-dev \ llvm-12 \ qt6-base-dev \ @@ -169,7 +170,7 @@ jobs: python3 --version which python3 # https://github.com/rizinorg/cutter/runs/7170222817?check_suite_focus=true - python3 -m pip install meson==0.61.5 + python3 -m pip install meson # ==0.61.5 - name: Prepare package id shell: bash run: | @@ -188,7 +189,7 @@ jobs: then CUTTER_QT="${{ matrix.qt-major }}" scripts/fetch_deps.sh . cutter-deps/env.sh - export LD_LIBRARY_PATH="`llvm-config --libdir`:$LD_LIBRARY_PATH" + ln -sf "$PWD/cutter-deps/pyside/share/PySide6/"* "$PWD/cutter-deps/pyside/" fi set -e #TODO: move to top once cutter-deps doesn't fail if [ "${{ matrix.cc-override }}" != "default" ] @@ -437,6 +438,7 @@ jobs: brew bundle brew install pkg-config || brew link --overwrite pkgconf brew install kadwanev/brew/retry + brew install llvm@20 && brew link llvm@20 - name: py dependencies run: | #python3 -m pip install -U pip==21.3.1 @@ -459,8 +461,8 @@ jobs: run: | export MACOSX_DEPLOYMENT_TARGET=10.15 scripts/fetch_deps.sh - install_name_tool -delete_rpath /Users/runner/work/cutter-deps/cutter-deps/qt/lib ./cutter-deps/pyside/lib/libpyside6.cpython-312-darwin.6.7.2.dylib #TODO: do this in cutter-deps source cutter-deps/env.sh + ln -sf "$PWD/cutter-deps/pyside/share/PySide6/"* "$PWD/cutter-deps/pyside/" set -euo pipefail export PATH=/usr/local/opt/llvm/bin:$PATH mkdir build @@ -503,6 +505,7 @@ jobs: run: | pip install ninja scripts/fetch_deps.sh + ln -sf "$PWD/cutter-deps/pyside/share/PySide6/"* "$PWD/cutter-deps/pyside/" choco install winflexbison3 - name: windows cmake if: contains(matrix.os, 'windows') diff --git a/scripts/fetch_deps.sh b/scripts/fetch_deps.sh index cac15f1eb..a6281d345 100755 --- a/scripts/fetch_deps.sh +++ b/scripts/fetch_deps.sh @@ -5,7 +5,7 @@ set -e cd $(dirname "${BASH_SOURCE[0]}")/.. mkdir -p cutter-deps && cd cutter-deps -DEPS_BASE_URL=https://github.com/rizinorg/cutter-deps/releases/download/v16 +DEPS_BASE_URL=https://github.com/rizinorg/cutter-deps/releases/download/v18 if [ "$CUTTER_QT" == "5" ]; then DEPS_FILE_linux_x86_64=cutter-deps-q5-linux-x86_64.tar.gz @@ -13,18 +13,18 @@ if [ "$CUTTER_QT" == "5" ]; then DEPS_BASE_URL=https://github.com/rizinorg/cutter-deps/releases/download/qt5-v17 else DEPS_FILE_linux_x86_64=cutter-deps-linux-x86_64.tar.gz - DEPS_SHA256_linux_x86_64=f63c5af2d9872bc6538a94c839d6ef6645c7630c42cff30f1d9da8eefd9eb040 + DEPS_SHA256_linux_x86_64=204683c44e4824df7cb9925f1939544f081e64b7a701fe95fd03f67125a165b4 fi echo $DEPS_SHA256_linux_x86_64 DEPS_FILE_macos_x86_64=cutter-deps-macos-x86_64.tar.gz -DEPS_SHA256_macos_x86_64=bcdc214e34dc3fd720327ad42e03fe3ec996ca28a9987e99898f149a65299a8c +DEPS_SHA256_macos_x86_64=a46c2dee12d4160410237da848075fc87c41c3850021f583d3b469a59c386650 DEPS_FILE_macos_arm64=cutter-deps-macos-arm64.tar.gz -DEPS_SHA256_macos_arm64=aa3f5ae91b93c5176d6bd4313af0888a2b6dcdaa2ef1750dd7e2f98156882e0f +DEPS_SHA256_macos_arm64=1ca381b562d632a370e05a85b0fe60a591a261bba0f48d97a0e40b4307c2577a DEPS_FILE_win_x86_64=cutter-deps-win-x86_64.tar.gz -DEPS_SHA256_win_x86_64=710e40cf8329205d09535cc56a9fb155a56ff1a1ca112145864382fb3d4e8160 +DEPS_SHA256_win_x86_64=95a3cf676178b8c58442d22ee8b21ce2530bfdae86f514901310490a8f28867a ARCH=x86_64 diff --git a/src/plugins/PluginManager.cpp b/src/plugins/PluginManager.cpp index d1c5465da..a4a4791fe 100644 --- a/src/plugins/PluginManager.cpp +++ b/src/plugins/PluginManager.cpp @@ -215,10 +215,12 @@ CutterPlugin *PluginManager::loadPythonPlugin(const char *moduleName) } PythonToCppFunc pythonToCpp = Shiboken::Conversions::isPythonToCppPointerConvertible( -# if QT_VERSION < QT_VERSION_CHECK(6, 2, 0) +# if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) reinterpret_cast(SbkCutterBindingsTypes[SBK_CUTTERPLUGIN_IDX]), +# elif QT_VERSION < QT_VERSION_CHECK(6, 2, 0) + reinterpret_cast(SbkCutterBindingsTypes[SBK_CutterPlugin_IDX]), # else - reinterpret_cast(SbkCutterBindingsTypeStructs)[SBK_CUTTERPLUGIN_IDX], + reinterpret_cast(SbkCutterBindingsTypeStructs)[SBK_CutterPlugin_IDX], # endif pluginObject); if (!pythonToCpp) {