summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.ci/upload-nightly.ps14
-rw-r--r--.ci/windows/build.bat50
-rw-r--r--.gitlab-ci.yml32
-rw-r--r--cmake/QtCommon.cmake10
4 files changed, 84 insertions, 12 deletions
diff --git a/.ci/upload-nightly.ps1 b/.ci/upload-nightly.ps1
index 9c1c33c3..9c7da62e 100644
--- a/.ci/upload-nightly.ps1
+++ b/.ci/upload-nightly.ps1
@@ -1,3 +1,6 @@
+# disable progress bar since that requires a pty

+$ProgressPreference = "SilentlyContinue"

+

 $file = "nheko_win_64.zip"

 $fileName = "nheko-${env:APPVEYOR_REPO_BRANCH}-${env:APPVEYOR_REPO_COMMIT}-win64.zip"

 

@@ -19,3 +22,4 @@ $room = "!TshDrgpBNBDmfDeEGN:neko.dev"
 

 Invoke-RestMethod -uri "https://matrix.neko.dev/_matrix/client/r0/rooms/${room}/send/m.room.message/${txid}" -Method Put -Body "$body" -ContentType 'application/json' -Headers @{"Authorization"="Bearer ${env:MATRIX_ACCESS_TOKEN}"}

 

+exit 0

diff --git a/.ci/windows/build.bat b/.ci/windows/build.bat
new file mode 100644
index 00000000..a79e2360
--- /dev/null
+++ b/.ci/windows/build.bat
@@ -0,0 +1,50 @@
+:: VERSION format:     v1.2.3/v1.3.4

+:: INSTVERSION format: 1.2.3/1.3.4

+:: WINVERSION format:  1.2.3.123/1.3.4.234

+if defined CI_COMMIT_TAG (

+	set VERSION=%CI_COMMIT_TAG%

+) else (

+	set VERSION=v0.11.3

+)

+set INSTVERSION=%VERSION:~1%

+set WINVERSION=%VERSION:~1%.%CI_JOB_ID%

+set DATE=%date:~10,4%-%date:~4,2%-%date:~7,2%

+echo %VERSION%

+echo %INSTVERSION%

+echo %DATE%

+

+

+call "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Auxiliary/Build/vcvarsall.bat" x64

+cmake -G "Visual Studio 17 2022" -A x64 -S. -Bbuild -DHUNTER_ROOT="C:\hunter" -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release

+cmake --build build --config Release

+

+

+git clone https://github.com/Nheko-Reborn/qt-jdenticon.git

+cd qt-jdenticon

+qmake

+nmake

+cd ..

+

+:: create zip bundle

+mkdir NhekoRelease

+copy build\Release\nheko.exe NhekoRelease\nheko.exe

+copy qt-jdenticon\release\qtjdenticon0.dll NhekoRelease\qtjdenticon.dll

+copy build\_deps\cmark-build\src\Release\cmark.dll NhekoRelease\cmark.dll

+windeployqt --qmldir resources\qml\ NhekoRelease\nheko.exe

+

+7z a nheko_win_64.zip .\NhekoRelease\*

+

+

+:: create msix

+mkdir msix

+xcopy .\NhekoRelease\*.* msix\*.* /s /e /c /y

+copy .\resources\nheko.png msix

+copy .\resources\AppxManifest.xml msix

+del msix\vc_redist*

+::sed -i "s/ Version=[^ ]*/ Version=\"%WINVERSION%\"/" msix\AppxManifest.xml

+@PowerShell "(Get-Content .\msix\AppxManifest.xml)|%%{$_ -creplace ' Version=[^ ]*',' Version=\"%WINVERSION%\"'}|Set-Content .\msix\AppxManifest.xml -Encoding utf8"

+

+::@PowerShell "Get-Content .\msix\AppxManifest.xml"

+

+"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe" pack -d msix -p nheko.msix

+

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b8b1c247..c28efe23 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,6 +9,33 @@ variables:
   # prevent configure tzdata hanging apt install commands
   DEBIAN_FRONTEND: noninteractive
 
+build-windows:
+  stage: build
+  image: win10-base
+  tags: [libvirt,powershell]
+  variables:
+    APPVEYOR_REPO_BRANCH: "${CI_COMMIT_REF_NAME}"
+    APPVEYOR_REPO_COMMIT: "${CI_COMMIT_SHORT_SHA}"
+  before_script:
+    - mkdir -p hunter
+    - Move-Item -Path hunter -Destination C:/hunter
+  script:
+    - ./.ci/windows/build.bat
+  after_script:
+    - ./.ci/upload-nightly.ps1
+    - Move-Item -Path C:/hunter -Destination hunter -Force
+  cache:
+    key: "$CI_JOB_NAME"
+    paths:
+      - hunter/
+      - build/_deps
+  artifacts:
+    paths:
+      - nheko.msix
+      - nheko_win_64.zip
+    name: nheko-${CI_COMMIT_SHORT_SHA}-windows
+    expose_as: 'windows-app'
+
 build-clazy:
   stage: build
   image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
@@ -18,11 +45,12 @@ build-clazy:
     TRAVIS_OS_NAME: linux
   before_script:
     - echo -e "\e[0Ksection_start:`date +%s`:install_deps[collapsed=true]\r\e[0K\e[1m\e[95mInstalling apk dependencies"
-    - apk add	asciidoctor cmake cmark-dev gst-plugins-bad-dev gst-plugins-base-dev gstreamer-dev lmdb-dev lmdbxx nlohmann-json olm-dev openssl-dev qt6-qtbase-dev qt6-qtdeclarative-dev qt6-qtmultimedia-dev qt6-qtsvg-dev qt6-qttools-dev samurai spdlog-dev xcb-util-wm-dev zlib-dev ccache curl-dev libevent-dev meson clazy clang16 gcc musl-dev git re2-dev libsecret-dev
+    - apk add	asciidoctor cmake cmark-dev gst-plugins-bad-dev gst-plugins-base-dev gstreamer-dev lmdb-dev lmdbxx nlohmann-json olm-dev openssl-dev qt6-qtbase-dev qt6-qtdeclarative-dev qt6-qtmultimedia-dev qt6-qtsvg-dev qt6-qttools-dev samurai spdlog-dev xcb-util-wm-dev zlib-dev ccache curl-dev libevent-dev meson clazy clang16 gcc musl-dev git re2-dev libsecret-dev clang16
     - echo -e "\e[0Ksection_end:`date +%s`:install_deps\r\e[0K"
   script:
     - export PATH="/usr/lib/ccache:${PATH}"
     - export CMAKE_BUILD_PARALLEL_LEVEL=$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l)
+    - export CLANGXX=clang++-16
     - cmake -GNinja -H. -Bbuild
         -DCMAKE_INSTALL_PREFIX=.deps/usr
         -DHUNTER_ENABLED=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_MTXCLIENT=ON -DUSE_BUNDLED_COEURL=ON -DUSE_BUNDLED_OLM=ON -DUSE_BUNDLED_QTKEYCHAIN=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
@@ -317,7 +345,7 @@ linting:
     - apk update && apk add make git python3 py3-pip qt6-qtdeclarative-dev
     - apk add clang-extra-tools --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main
     - export PATH="$PATH:/root/.local/bin"
-    - pip3 install --user reuse
+    - pip3 install --break-system-packages --user reuse
   script:
     - make lint
     - make license
diff --git a/cmake/QtCommon.cmake b/cmake/QtCommon.cmake
index 2c7f34f6..f42b1c2e 100644
--- a/cmake/QtCommon.cmake
+++ b/cmake/QtCommon.cmake
@@ -64,14 +64,4 @@ elseif (WIN32)
 endif()
 endmacro()
 
-macro(fix_win_compiler)
-if (MSVC)
-    set_target_properties(${PROJECT_NAME} PROPERTIES
-        WIN32_EXECUTABLE YES
-        LINK_FLAGS "/ENTRY:mainCRTStartup"
-    )
-endif()
-endmacro()
-
 init_os_bundle()
-fix_win_compiler()