https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cad583967ba462080a3f2ea16fbed8a9ecfd3b82

commit cad583967ba462080a3f2ea16fbed8a9ecfd3b82
Author:     Jérôme Gardou <jerome.gar...@reactos.org>
AuthorDate: Tue Nov 24 18:30:40 2020 +0100
Commit:     Jérôme Gardou <zefk...@users.noreply.github.com>
CommitDate: Mon Dec 28 12:13:30 2020 +0100

    [GITHUB] Get LLVM latest version from chocolatey repository
    
    Also, explicitly set target in toolchain file to help CMake getting things 
right.
---
 .github/workflows/build.yml |  6 ++++--
 toolchain-msvc.cmake        | 28 ++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3b61db65ac0..fc5600f9200 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -102,7 +102,9 @@ jobs:
     runs-on: windows-latest
     steps:
     - name: Install packages
-      run: choco install ninja -y
+      run: |
+        choco install ninja -y
+        choco install --x86 -y llvm
     - name: Install Flex and Bison
       run: |
         curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
@@ -121,7 +123,7 @@ jobs:
       run: |
         mkdir build
         cd build
-        $env:PATH = "$env:VCToolsInstallDir\..\..\Llvm\bin;$env:PATH"
+        $env:PATH = "${env:PROGRAMFILES(X86)}\llvm\bin;$env:PATH"
         cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake 
-DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 -DUSE_CLANG_CL:BOOL=1 
${{github.workspace}}\src
     - name: Build
       working-directory: ${{github.workspace}}\build
diff --git a/toolchain-msvc.cmake b/toolchain-msvc.cmake
index f1ff2d77570..e30e075cba0 100644
--- a/toolchain-msvc.cmake
+++ b/toolchain-msvc.cmake
@@ -13,11 +13,38 @@ endif()
 set(CMAKE_SYSTEM_NAME Windows)
 set(CMAKE_SYSTEM_PROCESSOR i686)
 
+# set the generator platform
+if (NOT DEFINED CMAKE_GENERATOR_PLATFORM)
+    if(ARCH STREQUAL "amd64")
+        set(CMAKE_GENERATOR_PLATFORM "x64")
+    elseif(ARCH STREQUAL "arm")
+        set(CMAKE_GENERATOR_PLATFORM "ARM")
+    elseif(ARCH STREQUAL "arm64")
+        set(CMAKE_GENERATOR_PLATFORM "ARM64")
+    else()
+        set(CMAKE_GENERATOR_PLATFORM "Win32")
+    endif()
+endif()
+
 if(USE_CLANG_CL)
     set(CMAKE_C_COMPILER clang-cl)
     set(CMAKE_CXX_COMPILER clang-cl)
     # Clang now defaults to lld-link which we're not compatible with yet
     set(CMAKE_LINKER link)
+    # Explicitly set target so CMake doesn't get confused
+    if (ARCH STREQUAL "amd64")
+        set(CMAKE_C_COMPILER_TARGET "x86_64-pc-windows-msvc")
+        set(CMAKE_CXX_COMPILER_TARGET "x86_64-pc-windows-msvc")
+    elseif(ARCH STREQUAL "arm")
+        set(CMAKE_C_COMPILER_TARGET "arm-pc-windows-msvc")
+        set(CMAKE_CXX_COMPILER_TARGET "arm-pc-windows-msvc")
+    elseif(ARCH STREQUAL "arm64")
+        set(CMAKE_C_COMPILER_TARGET "arm64-pc-windows-msvc")
+        set(CMAKE_CXX_COMPILER_TARGET "arm64-pc-windows-msvc")
+    else()
+        set(CMAKE_C_COMPILER_TARGET "i686-pc-windows-msvc")
+        set(CMAKE_CXX_COMPILER_TARGET "i686-pc-windows-msvc")
+    endif()
 else()
     set(CMAKE_C_COMPILER cl)
     set(CMAKE_CXX_COMPILER cl)
@@ -35,6 +62,7 @@ else()
     set(CMAKE_ASM_COMPILER ml)
 endif()
 
+
 set(CMAKE_C_STANDARD_LIBRARIES "" CACHE INTERNAL "")
 
 set(CMAKE_USER_MAKE_RULES_OVERRIDE 
"${CMAKE_CURRENT_LIST_DIR}/overrides-msvc.cmake")

Reply via email to