diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3ecfb8cf..31c0468b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -206,14 +206,18 @@ jobs: matrix: go-version: [1.21.x] platform: [macos-14] + qtversion: [5.15.12] runs-on: ${{ matrix.platform }} env: GOPATH: ${{ github.workspace }} - QT_HOMEBREW: true + QT_HOMEBREW: false QT_API: 5.13.0 + QT_VERSION: 5.15.12 + QT_DIR: ${{ github.workspace }}/Qt + QT_STATIC: true QT_DEBUG: false GO111MODULE: on - QT_QMAKE_DIR: /opt/homebrew/opt/qt@5/bin + QT_QMAKE_DIR: ${{ github.workspace }}/Qt/bin steps: - name: Install Go @@ -225,9 +229,50 @@ jobs: run: | go version - - name: Install Qt for macOS - run: | - brew install qt@5 + # - name: Install Qt for macOS + # run: | + # brew install qt@5 + + + # - uses: actions/cache@v2 + # id: cache-qt-src + # with: + # path: ${{ github.workspace }}/qt5 + # key: ${{ matrix.qtversion }}-qt-src-macos-${{ env.cache-version }} + + # - name: Download Qt src + # if: ${{ steps.cache-qt-src.outputs.cache-hit != 'true' }} + # run: | + # curl -L -o qt-everywhere-opensource-src-${{ matrix.qtversion }}.tar.xz https://download.qt.io/official_releases/qt/5.15/${{ matrix.qtversion }}/single/qt-everywhere-opensource-src-${{ matrix.qtversion }}.tar.xz + # tar Jxf qt-everywhere-opensource-src-${{ matrix.qtversion }}.tar.xz + # rm qt-everywhere-opensource-src-${{ matrix.qtversion }}.tar.xz + # mv qt-everywhere-src-${{ matrix.qtversion }} qt5 + + # - uses: actions/cache@v2 + # id: cache-qt-macos + # with: + # path: ${{ github.workspace }}/Qt + # key: ${{ matrix.qtversion }}-qt-macos-${{ env.cache-version }} + + # - name: Build Qt + # if: ${{ steps.cache-qt-macos.outputs.cache-hit != 'true' }} + # run: | + # cd ${{ github.workspace }}/qt5/qtbase + # curl -L "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=cdf64b0e47115cc473e1afd1472b4b09e130b2a5" -o cdf64b0.diff + # patch -p1 < ./cdf64b0.diff + # cd .. + # ./configure -static -release -prefix ${{ github.workspace }}/Qt -platform macx-clang -skip qt3d -skip qtandroidextras -skip qtwayland -skip webengine -skip qtwinextras -skip qtx11extras -nomake tests -nomake examples -opensource -confirm-license -c++std c++17 + # sudo make -j 3 + # echo "!make done" + # sudo make install -j 3 + # echo "!make install done" + # rm -fr ${{ github.workspace }}/qt5 + + + - name: Download pre built Qt + run: | + curl -L -o qt-macos-static-5.15.12.tar.bz2 https://github.com/akiyosi/qt-static-builds/releases/download/macOS-arm64/qt-macos-static-5.15.12.tar.bz2 + tar xf qt-macos-static-5.15.12.tar.bz2 - name: Checkout code uses: actions/checkout@v2 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9ae14ad3..30d2cb6d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -247,11 +247,14 @@ jobs: runs-on: ${{ matrix.platform }} env: GOPATH: ${{ github.workspace }} - QT_HOMEBREW: true + QT_HOMEBREW: false QT_API: 5.13.0 + QT_VERSION: 5.15.12 + QT_DIR: ${{ github.workspace }}/Qt + QT_STATIC: true QT_DEBUG: false GO111MODULE: on - QT_QMAKE_DIR: /opt/homebrew/opt/qt@5/bin + QT_QMAKE_DIR: ${{ github.workspace }}/Qt/bin steps: - name: Install Go @@ -259,9 +262,10 @@ jobs: with: go-version: ${{ matrix.go-version }} - - name: Install Qt for macOS + - name: Download pre built Qt run: | - brew install qt@5 + curl -L -o qt-macos-static-5.15.12.tar.bz2 https://github.com/akiyosi/qt-static-builds/releases/download/macOS-arm64/qt-macos-static-5.15.12.tar.bz2 + tar xf qt-macos-static-5.15.12.tar.bz2 - name: Checkout code uses: actions/checkout@v2 @@ -359,7 +363,7 @@ jobs: # - name: Patch qt5 # shell: msys2 {0} - # run: | + # run: | # curl -sL --retry 10 --retry-delay 60 -O https://github.com/akiyosi/github-actions-playground/releases/download/qt5-patched-qtbug-71737/qt-5.15.5_patched-qtbug71737.zip # unzip qt-5.15.5_patched-qtbug71737.zip # cp -fpR qt5/* /mingw64/qt5-static/ diff --git a/Makefile b/Makefile index f1843e4b..ba33bfc2 100644 --- a/Makefile +++ b/Makefile @@ -40,27 +40,33 @@ endif app: ## Build goneovim - @go mod vendor ; \ - test -f ./editor/moc.go & $(GOQTMOC) desktop ./cmd/goneovim && \ + @test -f ./editor/moc.go & $(GOQTMOC) desktop ./cmd/goneovim && \ go generate && \ $(GOQTDEPLOY) build desktop ./cmd/goneovim && \ cp -pR runtime $(RUNTIME_DIR) ifeq ($(OSNAME),Darwin) @/usr/libexec/PlistBuddy -c "Add :CFBundleVersion string $(VERSION_HASH)" "./cmd/goneovim/deploy/darwin/goneovim.app/Contents/Info.plist" && \ - /usr/libexec/PlistBuddy -c "Add :CFBundleShortVersionString string $(VERSION)" "./cmd/goneovim/deploy/darwin/goneovim.app/Contents/Info.plist" && \ + /usr/libexec/PlistBuddy -c "Add :CFBundleShortVersionString string $(VERSION)" "./cmd/goneovim/deploy/darwin/goneovim.app/Contents/Info.plist" + @if [ -d "./cmd/goneovim/deploy/darwin/goneovim.app/Contents/Frameworks/" ]; then \ cd cmd/goneovim/deploy/darwin/goneovim.app/Contents/Frameworks/ && \ - rm -fr QtQuick.framework && \ - rm -fr QtVirtualKeyboard.framework + rm -fr QtQuick.framework ; \ + rm -fr QtVirtualKeyboard.framework; \ + else \ + exit 0; \ + fi endif - qt_bindings: ## Setup Qt bindings for Go. - @go get -v github.com/akiyosi/qt@v0.0.0-20240222123055-9c99603bbb9a && \ - go get github.com/akiyosi/qt/internal/cmd@v0.0.0-20240222123055-9c99603bbb9a && \ - go get github.com/akiyosi/qt/internal/binding/files/docs/5.12.0@v0.0.0-20240222123055-9c99603bbb9a && \ - go get github.com/akiyosi/qt/internal/binding/files/docs/5.13.0@v0.0.0-20240222123055-9c99603bbb9a && \ - go get github.com/akiyosi/qt/internal/cmd/moc@v0.0.0-20240222123055-9c99603bbb9a && \ - go install -v -tags=no_env github.com/akiyosi/qt/cmd/... && \ + @go get -v github.com/akiyosi/qt@v0.0.0-20240304155940-b43fff373ad5 && \ + go get github.com/akiyosi/qt/internal/cmd@v0.0.0-20240304155940-b43fff373ad5 && \ + go get github.com/akiyosi/qt/internal/binding/files/docs/5.12.0@v0.0.0-20240304155940-b43fff373ad5 && \ + go get github.com/akiyosi/qt/internal/binding/files/docs/5.13.0@v0.0.0-20240304155940-b43fff373ad5 && \ + go get github.com/akiyosi/qt/internal/cmd/moc@v0.0.0-20240304155940-b43fff373ad5 && \ + go install -v -tags=no_env github.com/akiyosi/qt/cmd/qtdeploy@v0.0.0-20240304155940-b43fff373ad5 && \ + go install -v -tags=no_env github.com/akiyosi/qt/cmd/qtminimal@v0.0.0-20240304155940-b43fff373ad5 && \ + go install -v -tags=no_env github.com/akiyosi/qt/cmd/qtmoc@v0.0.0-20240304155940-b43fff373ad5 && \ + go install -v -tags=no_env github.com/akiyosi/qt/cmd/qtrcc@v0.0.0-20240304155940-b43fff373ad5 && \ + go install -v -tags=no_env github.com/akiyosi/qt/cmd/qtsetup@v0.0.0-20240304155940-b43fff373ad5 && \ go mod vendor && \ $(GOQTSETUP) -test=false diff --git a/go.mod b/go.mod index dac601ed..8fa404d2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21.4 require ( github.com/BurntSushi/toml v1.3.2 github.com/akiyosi/goqtframelesswindow v0.0.0-20240222071727-593e283fef92 - github.com/akiyosi/qt v0.0.0-20240222123055-9c99603bbb9a + github.com/akiyosi/qt v0.0.0-20240304155940-b43fff373ad5 github.com/akiyosi/short_path v0.2.1 github.com/atotto/clipboard v0.1.4 github.com/bluele/gcache v0.0.2 @@ -16,9 +16,9 @@ require ( ) require ( - github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240222123055-9c99603bbb9a // indirect - github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240222123055-9c99603bbb9a // indirect github.com/akiyosi/w32 v0.0.0-20240207145154-5d3ee780f6cb // indirect + github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240304155940-b43fff373ad5 // indirect + github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240304155940-b43fff373ad5 // indirect github.com/gopherjs/gopherjs v1.17.2 // indirect github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect github.com/sirupsen/logrus v1.8.1 // indirect diff --git a/go.sum b/go.sum index c85b1ac2..f86ddbc8 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,17 @@ github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/akiyosi/qt v0.0.0-20240222123055-9c99603bbb9a h1:69JsQo6bkAT+b5asiHZQcnCSzAQRr3o2gFyUMl4o+V0= -github.com/akiyosi/qt v0.0.0-20240222123055-9c99603bbb9a/go.mod h1:/M/wktam+Uyed7ahwhO+8zsEAe3FWZGA8eq5Sh+QePA= -github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240222123055-9c99603bbb9a h1:6ihuNQFveofbkQxbr/nq8X/+umLXVwzd1xRqgXXfc00= -github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240222123055-9c99603bbb9a/go.mod h1:o1Ta8fcOD7ED+UFh1S2sJGmMYyZgY/0Nhqkayiw9EOI= -github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240222123055-9c99603bbb9a h1:JrmvRaWdpG8Otgbjsr9yo0zBZsmBp1A0FfFD1JbPuY0= -github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240222123055-9c99603bbb9a/go.mod h1:zr7ZzZXZ4UI9WpxGsiaq0S9OHCjo+H/7vU2Oyi6RRWw= github.com/akiyosi/goqtframelesswindow v0.0.0-20240222071727-593e283fef92 h1:xz2X8F9iT01j/9hGihRFBSO+OdXK241izLWxVS6RQEk= github.com/akiyosi/goqtframelesswindow v0.0.0-20240222071727-593e283fef92/go.mod h1:739mXLJTAy19GBfA3Z2gitVRHX5NVqrVqygAMPVB21E= +github.com/akiyosi/qt v0.0.0-20240304155940-b43fff373ad5 h1:N4bJmW4zbdcvd4goftNEn6qv1HbhkhdbGOE2c1i/VzQ= +github.com/akiyosi/qt v0.0.0-20240304155940-b43fff373ad5/go.mod h1:nJwWSisbWIKcSPeWeiMzvNHnz6o+GIrh/pNyDIfDHQg= +github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240302153623-48e55e6efc51 h1:c7ls8vqPwYwLc7LZsmao40I086mYGgiuqREVyhGE+y0= +github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240302153623-48e55e6efc51/go.mod h1:o1Ta8fcOD7ED+UFh1S2sJGmMYyZgY/0Nhqkayiw9EOI= +github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240304155940-b43fff373ad5 h1:Xsaemn/PJrY741TJNlz2AkmakEW+WPzxUbyLit1ECc8= +github.com/akiyosi/qt/internal/binding/files/docs/5.12.0 v0.0.0-20240304155940-b43fff373ad5/go.mod h1:o1Ta8fcOD7ED+UFh1S2sJGmMYyZgY/0Nhqkayiw9EOI= +github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240302153623-48e55e6efc51 h1:jYgj8JOa6dNTcS2cWIkJmW85r1l5BBEkLiT1HYaM2CY= +github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240302153623-48e55e6efc51/go.mod h1:zr7ZzZXZ4UI9WpxGsiaq0S9OHCjo+H/7vU2Oyi6RRWw= +github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240304155940-b43fff373ad5 h1:2kQxKmTSVhuxBlCa32qdRH0y8VszPll7ZTM7ySnuzb0= +github.com/akiyosi/qt/internal/binding/files/docs/5.13.0 v0.0.0-20240304155940-b43fff373ad5/go.mod h1:zr7ZzZXZ4UI9WpxGsiaq0S9OHCjo+H/7vU2Oyi6RRWw= github.com/akiyosi/short_path v0.2.1 h1:1IiEQDNISfLOzs8A4+95vSgAN1Ch2IQY4wUpjZzWU/U= github.com/akiyosi/short_path v0.2.1/go.mod h1:9ZdnJCTktFi81KorFR9Zihrn8pmRD1UIx0HjASMCu1U= github.com/akiyosi/w32 v0.0.0-20240206235442-ad043c730afb h1:O3/WamAsR0N/8fgn93Sj3btBhXrEbtVj1W4x+CHeChs=