[GITHUB] Add MSVC ARM64 builder
authorStanislav Motylkov <x86corez@gmail.com>
Wed, 25 May 2022 15:38:41 +0000 (18:38 +0300)
committerStanislav Motylkov <x86corez@gmail.com>
Wed, 25 May 2022 18:10:17 +0000 (21:10 +0300)
This builds only some applications for now.

CORE-17518

.github/workflows/build.yml
sdk/include/c++/stlport/stl/config/features.h
win32ss/user/user32/user32.spec

index b45b9b1..50f2c5a 100644 (file)
@@ -141,7 +141,7 @@ jobs:
     strategy:
       matrix:
         toolset: ['14.2', '14.1'] # VS 2019, 2017
-        arch: [arm]
+        arch: [arm, arm64]
         config: [Debug, Release]
       fail-fast: false
     runs-on: windows-latest
@@ -156,9 +156,16 @@ jobs:
         echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
         echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
     - name: Activate VS cmd (arm)
+      if: ${{ matrix.arch == 'arm' }}
       uses: ilammy/msvc-dev-cmd@v1
       with:
-        arch: x86_arm
+        arch: amd64_arm
+        toolset: ${{matrix.toolset}}
+    - name: Activate VS cmd (arm64)
+      if: ${{ matrix.arch == 'arm64' }}
+      uses: ilammy/msvc-dev-cmd@v1
+      with:
+        arch: amd64_arm64
         toolset: ${{matrix.toolset}}
     - name: Source checkout
       uses: actions/checkout@v2
@@ -167,11 +174,17 @@ jobs:
     - name: Configure
       run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
     - name: Build base module
+      if: ${{ matrix.arch == 'arm' }}
       run: cmake --build build --target base/all
     - name: Build control panel applets
+      if: ${{ matrix.arch == 'arm' }}
       run: cmake --build build --target dll/cpl/all
     - name: Build rosapps
+      if: ${{ matrix.arch == 'arm' }}
       run: cmake --build build --target modules/rosapps/all
+    - name: Build some applications (arm64)
+      if: ${{ matrix.arch == 'arm64' }}
+      run: cmake --build build --target calc magnify mstsc notepad osk regedit taskmgr winmine wordpad base/applications/screensavers/all -- -k0
     - name: Upload compiled binaries
       uses: actions/upload-artifact@v2
       with:
index aacbf29..3379bff 100644 (file)
 #  if defined (_MIPSEB) || defined (__sparc) || defined (_AIX) || \
       defined (__hpux) || defined (macintosh) || defined (_MAC)
 #    define _STLP_BIG_ENDIAN 1
-#  elif defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \
+#  elif defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || defined (_M_ARM64) || \
         defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \
         defined (__alpha__)
 #    define _STLP_LITTLE_ENDIAN 1
index c7097cc..6af9bbc 100644 (file)
 251 stdcall GetClassInfoExW(long wstr ptr)
 252 stdcall GetClassInfoW(long wstr ptr)
 253 stdcall GetClassLongA(long long)
-@ stdcall -arch=x86_64 GetClassLongPtrA(ptr long)
-@ stdcall -arch=x86_64 GetClassLongPtrW(ptr long)
+@ stdcall -arch=x86_64,arm64 GetClassLongPtrA(ptr long)
+@ stdcall -arch=x86_64,arm64 GetClassLongPtrW(ptr long)
 254 stdcall GetClassLongW(long long)
 255 stdcall GetClassNameA(long ptr long)
 256 stdcall GetClassNameW(long ptr long)