|  | 
|  | 1 | +name: Windows-arm | 
|  | 2 | +on: | 
|  | 3 | +  pull_request: | 
|  | 4 | +    branches: [main] | 
|  | 5 | +  push: | 
|  | 6 | +    branches: [main] | 
|  | 7 | +  release: | 
|  | 8 | +    types: [published] | 
|  | 9 | +  schedule: | 
|  | 10 | +    - cron: '30 20 * * *' # Warning: Timezone dep - 20:00 is 1:00 | 
|  | 11 | + | 
|  | 12 | +concurrency: | 
|  | 13 | +  group: ${{ github.workflow }}-${{ github.event.pull_request.number }} | 
|  | 14 | +  cancel-in-progress: true | 
|  | 15 | + | 
|  | 16 | +jobs: | 
|  | 17 | +  build_cache: | 
|  | 18 | +    name: ${{ matrix.name }} | 
|  | 19 | +    runs-on: ${{ matrix.os }} | 
|  | 20 | +    strategy: | 
|  | 21 | +      fail-fast: false | 
|  | 22 | +      matrix: | 
|  | 23 | +        include: | 
|  | 24 | +          - name: win11-msvc-clang-repl-19 | 
|  | 25 | +            os: windows-11-arm | 
|  | 26 | +            compiler: msvc | 
|  | 27 | +            clang-runtime: '19' | 
|  | 28 | +            cling: Off | 
|  | 29 | +            llvm_enable_projects: "clang" | 
|  | 30 | +            llvm_targets_to_build: "host;NVPTX" | 
|  | 31 | + | 
|  | 32 | +    steps: | 
|  | 33 | +    - uses: actions/checkout@v4 | 
|  | 34 | +      with: | 
|  | 35 | +        fetch-depth: 0 | 
|  | 36 | + | 
|  | 37 | +    - name: Set up Python | 
|  | 38 | +      uses: actions/setup-python@v5 | 
|  | 39 | +      with: | 
|  | 40 | +        python-version: '3.11' | 
|  | 41 | + | 
|  | 42 | +    - name: Save PR Info on Windows systems | 
|  | 43 | +      run: | | 
|  | 44 | +        #can be found | 
|  | 45 | +        mkdir  ./pr | 
|  | 46 | +        echo "${{ github.event.number }}" > ./pr/NR | 
|  | 47 | +        echo ${{ github.repository }} > ./pr/REPO | 
|  | 48 | +
 | 
|  | 49 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 50 | +        { | 
|  | 51 | +          $env:CLING_HASH_TEMP = ( git ls-remote https://github.com/root-project/cling.git refs/tags/v${{ matrix.cling-version }} ) | 
|  | 52 | +          $env:CLING_HASH = $env:CLING_HASH_TEMP -replace "\t","-" | 
|  | 53 | +        } | 
|  | 54 | +        else | 
|  | 55 | +        { | 
|  | 56 | +          $env:CLING_HASH="Repl" | 
|  | 57 | +          # May need to revert back to both having same llvm_hash, as below cause llvm to be rebuilt everytime commit is made to llvm/llvm-project for release a.x | 
|  | 58 | +          # which could be quite often for new releases | 
|  | 59 | +          $env:LLVM_HASH_TEMP = (git ls-remote https://github.com/llvm/llvm-project.git refs/heads/release/${{ matrix.clang-runtime}}.x ) | 
|  | 60 | +          $env:LLVM_HASH = $env:LLVM_HASH_TEMP -replace "\t","-" | 
|  | 61 | +        } | 
|  | 62 | +
 | 
|  | 63 | +        echo "CLING_HASH=$env:CLING_HASH" | 
|  | 64 | +        echo "LLVM_HASH=$env:LLVM_HASH" | 
|  | 65 | +
 | 
|  | 66 | +        echo "CLING_HASH=$env:CLING_HASH" >> $GITHUB_ENV | 
|  | 67 | +        echo "LLVM_HASH=$env:LLVM_HASH" >> $GITHUB_ENV | 
|  | 68 | +
 | 
|  | 69 | +    - name: Restore Cache LLVM/Clang runtime build directory | 
|  | 70 | +      uses: actions/cache/restore@v4 | 
|  | 71 | +      id: cache | 
|  | 72 | +      with: | 
|  | 73 | +        path: | | 
|  | 74 | +          llvm-project | 
|  | 75 | +          ${{ matrix.cling=='On' && 'cling' || '' }} | 
|  | 76 | +        key: ${{ env.CLING_HASH }}-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}-clang-${{ matrix.clang-runtime }}.x-patch-${{ hashFiles(format('patches/llvm/clang{0}-*.patch', matrix.clang-runtime)) || 'none' }} | 
|  | 77 | +        lookup-only: true | 
|  | 78 | + | 
|  | 79 | +    - name: Setup default Build Type on Windows | 
|  | 80 | +      if: ${{ steps.cache.outputs.cache-hit != 'true' }} | 
|  | 81 | +      run: | | 
|  | 82 | +        echo "BUILD_TYPE=Release" >> $env:GITHUB_ENV | 
|  | 83 | +        echo "CODE_COVERAGE=0" >>  $env:GITHUB_ENV | 
|  | 84 | +        $env:ncpus=$([Environment]::ProcessorCount) | 
|  | 85 | +        echo "ncpus=$env:ncpus" >> $env:GITHUB_ENV | 
|  | 86 | +
 | 
|  | 87 | +    - name: Setup compiler on Windows | 
|  | 88 | +      if: ${{ steps.cache.outputs.cache-hit != 'true' }} | 
|  | 89 | +      run: | | 
|  | 90 | +        if ( "${{ matrix.compiler }}" -imatch "clang" ) | 
|  | 91 | +        { | 
|  | 92 | +          $ver="${{ matrix.compiler }}".split("-")[1] | 
|  | 93 | +          choco install llvm --version=$ver --no-progress -my | 
|  | 94 | +          clang --version | 
|  | 95 | +          # | 
|  | 96 | +          $env:CC="clang" | 
|  | 97 | +          $env:CXX="clang++" | 
|  | 98 | +          echo "CC=clang" >> $env:GITHUB_ENV | 
|  | 99 | +          echo "CXX=clang++" >> $env:GITHUB_ENV | 
|  | 100 | +        } | 
|  | 101 | +        elseif ( "${{ matrix.compiler }}" -imatch "msvc" ) | 
|  | 102 | +        { | 
|  | 103 | +          # MSVC is builtin in container image | 
|  | 104 | +        } | 
|  | 105 | +        else | 
|  | 106 | +        { | 
|  | 107 | +          echo "Unsupported compiler - fix YAML file" | 
|  | 108 | +        } | 
|  | 109 | +
 | 
|  | 110 | +    - name: Install deps on Windows | 
|  | 111 | +      if: ${{ steps.cache.outputs.cache-hit != 'true' }} | 
|  | 112 | +      run: | | 
|  | 113 | +        choco install findutils | 
|  | 114 | +        $env:PATH="C:\Program Files (x86)\GnuWin32\bin;$env:PATH" | 
|  | 115 | +
 | 
|  | 116 | +    - name: Build LLVM/Cling on Windows systems if the cache is invalid | 
|  | 117 | +      if: ${{ steps.cache.outputs.cache-hit != 'true' }} | 
|  | 118 | +      run: | | 
|  | 119 | +
 | 
|  | 120 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 121 | +        { | 
|  | 122 | +          git clone https://github.com/root-project/cling.git | 
|  | 123 | +          cd ./cling | 
|  | 124 | +          git checkout tags/v${{ matrix.cling-version }} | 
|  | 125 | +          cd .. | 
|  | 126 | +          git clone --depth=1 -b cling-llvm${{ matrix.clang-runtime }} https://github.com/root-project/llvm-project.git | 
|  | 127 | +          $env:PWD_DIR= $PWD.Path | 
|  | 128 | +          $env:CLING_DIR="$env:PWD_DIR\cling" | 
|  | 129 | +          echo "CLING_DIR=$env:CLING_DIR" | 
|  | 130 | +        } | 
|  | 131 | +        else | 
|  | 132 | +        { | 
|  | 133 | +          git clone --depth=1 -b release/${{ matrix.clang-runtime }}.x https://github.com/llvm/llvm-project.git | 
|  | 134 | +        } | 
|  | 135 | +
 | 
|  | 136 | +        cd llvm-project | 
|  | 137 | +        # Build | 
|  | 138 | +        mkdir build | 
|  | 139 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 140 | +        { | 
|  | 141 | +          cd build | 
|  | 142 | +          cmake -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects}}" ` | 
|  | 143 | +                -DLLVM_EXTERNAL_PROJECTS=cling                ` | 
|  | 144 | +                -DLLVM_EXTERNAL_CLING_SOURCE_DIR="$env:CLING_DIR"   ` | 
|  | 145 | +                -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` | 
|  | 146 | +                -DCMAKE_BUILD_TYPE=Release                         ` | 
|  | 147 | +                -DLLVM_ENABLE_ASSERTIONS=ON                        ` | 
|  | 148 | +                -DCLANG_ENABLE_STATIC_ANALYZER=OFF                 ` | 
|  | 149 | +                -DCLANG_ENABLE_ARCMT=OFF                           ` | 
|  | 150 | +                -DCLANG_ENABLE_FORMAT=OFF                          ` | 
|  | 151 | +                -DCLANG_ENABLE_BOOTSTRAP=OFF                       ` | 
|  | 152 | +                -DLLVM_ENABLE_ZSTD=OFF                             ` | 
|  | 153 | +                -DLLVM_ENABLE_TERMINFO=OFF                         ` | 
|  | 154 | +                -DLLVM_ENABLE_LIBXML2=OFF                          ` | 
|  | 155 | +                ..\llvm | 
|  | 156 | +          cmake --build . --config Release --target clang --parallel ${{ env.ncpus }} | 
|  | 157 | +          cmake --build . --config Release --target cling --parallel ${{ env.ncpus }} | 
|  | 158 | +          # Now build gtest.a and gtest_main for CppInterOp to run its tests. | 
|  | 159 | +          cmake --build . --config Release --target gtest_main --parallel ${{ env.ncpus }} | 
|  | 160 | +        } | 
|  | 161 | +        else | 
|  | 162 | +        { | 
|  | 163 | +          cp -r ..\patches\llvm\clang${{ matrix.clang-runtime }}* | 
|  | 164 | +          #FIXME: Apply patches without hardcoding | 
|  | 165 | +          if ( "${{ matrix.clang-runtime }}" -imatch "16" ) | 
|  | 166 | +          { | 
|  | 167 | +            git apply -v clang16-1-Value.patch | 
|  | 168 | +            git apply -v clang16-2-CUDA.patch | 
|  | 169 | +            git apply -v clang16-3-WeakRef.patch | 
|  | 170 | +          } | 
|  | 171 | +          elseif ( "${{ matrix.clang-runtime }}" -imatch "17" ) | 
|  | 172 | +          { | 
|  | 173 | +            git apply -v clang17-1-NewOperator.patch | 
|  | 174 | +          } | 
|  | 175 | +          cd build | 
|  | 176 | +          echo "Apply clang${{ matrix.clang-runtime }}-*.patch patches:" | 
|  | 177 | +          cmake -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects}}"                   ` | 
|  | 178 | +                -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}"          ` | 
|  | 179 | +                -DCMAKE_BUILD_TYPE=Release                          ` | 
|  | 180 | +                -DLLVM_ENABLE_ASSERTIONS=ON                         ` | 
|  | 181 | +                -DCLANG_ENABLE_STATIC_ANALYZER=OFF                  ` | 
|  | 182 | +                -DCLANG_ENABLE_ARCMT=OFF                            ` | 
|  | 183 | +                -DCLANG_ENABLE_FORMAT=OFF                           ` | 
|  | 184 | +                -DCLANG_ENABLE_BOOTSTRAP=OFF                        ` | 
|  | 185 | +                -DLLVM_ENABLE_ZSTD=OFF                              ` | 
|  | 186 | +                -DLLVM_ENABLE_TERMINFO=OFF                          ` | 
|  | 187 | +                -DLLVM_ENABLE_LIBXML2=OFF                           ` | 
|  | 188 | +                ..\llvm | 
|  | 189 | +          cmake --build . --config Release --target clang clangInterpreter clangStaticAnalyzerCore --parallel ${{ env.ncpus }} | 
|  | 190 | +        } | 
|  | 191 | +        cd ..\ | 
|  | 192 | +        rm -r -force $(find.exe . -maxdepth 1 ! -name "build" ! -name "llvm" ! -name "clang" ! -name ".") | 
|  | 193 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 194 | +        { | 
|  | 195 | +          cd .\llvm\ | 
|  | 196 | +          rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name "utils" ! -name ".") | 
|  | 197 | +          cd ..\clang\ | 
|  | 198 | +          rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name "utils" ! -name ".") | 
|  | 199 | +          cd ..\..\cling\ | 
|  | 200 | +          rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name ".") | 
|  | 201 | +        } | 
|  | 202 | +        else | 
|  | 203 | +        { | 
|  | 204 | +          cd .\llvm\ | 
|  | 205 | +          rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name ".") | 
|  | 206 | +          cd ..\clang\ | 
|  | 207 | +          rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake"  ! -name ".") | 
|  | 208 | +          cd ..\.. | 
|  | 209 | +        } | 
|  | 210 | +
 | 
|  | 211 | +    - name: Save Cache LLVM/Clang runtime build directory | 
|  | 212 | +      uses: actions/cache/save@v4 | 
|  | 213 | +      if: ${{ steps.cache.outputs.cache-hit != 'true' }} | 
|  | 214 | +      with: | 
|  | 215 | +        path: | | 
|  | 216 | +          llvm-project | 
|  | 217 | +          ${{ matrix.cling=='On' && 'cling' || '' }} | 
|  | 218 | +        key: ${{ steps.cache.outputs.cache-primary-key }} | 
|  | 219 | + | 
|  | 220 | +  cppinterop_and_cppyy_build: | 
|  | 221 | +    needs: [build_cache] | 
|  | 222 | +    name: ${{ matrix.name }} | 
|  | 223 | +    runs-on: ${{ matrix.os }} | 
|  | 224 | +    strategy: | 
|  | 225 | +      fail-fast: false | 
|  | 226 | +      matrix: | 
|  | 227 | +        include: | 
|  | 228 | +          - name: win11-msvc-clang-repl-19 | 
|  | 229 | +            os: windows-11-arm | 
|  | 230 | +            compiler: msvc | 
|  | 231 | +            clang-runtime: '19' | 
|  | 232 | +            cling: Off | 
|  | 233 | +            cppyy: Off | 
|  | 234 | + | 
|  | 235 | +    steps: | 
|  | 236 | +    - uses: actions/checkout@v4 | 
|  | 237 | +      with: | 
|  | 238 | +        fetch-depth: 0 | 
|  | 239 | + | 
|  | 240 | +    - name: Set up Python | 
|  | 241 | +      uses: actions/setup-python@v5 | 
|  | 242 | +      with: | 
|  | 243 | +        python-version: '3.11' | 
|  | 244 | + | 
|  | 245 | +    - name: Save PR Info on Windows systems | 
|  | 246 | +      run: | | 
|  | 247 | +        #can be found | 
|  | 248 | +        mkdir  ./pr | 
|  | 249 | +        echo "${{ github.event.number }}" > ./pr/NR | 
|  | 250 | +        echo ${{ github.repository }} > ./pr/REPO | 
|  | 251 | +
 | 
|  | 252 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 253 | +        { | 
|  | 254 | +          $env:CLING_HASH_TEMP = ( git ls-remote https://github.com/root-project/cling.git refs/tags/v${{ matrix.cling-version }} ) | 
|  | 255 | +          $env:CLING_HASH = $env:CLING_HASH_TEMP -replace "\t","-" | 
|  | 256 | +        } | 
|  | 257 | +        else | 
|  | 258 | +        { | 
|  | 259 | +          $env:CLING_HASH="Repl" | 
|  | 260 | +          # May need to revert back to both having same llvm_hash, as below cause llvm to be rebuilt everytime commit is made to llvm/llvm-project for release a.x | 
|  | 261 | +          # which could be quite often for new releases | 
|  | 262 | +          $env:LLVM_HASH_TEMP = (git ls-remote https://github.com/llvm/llvm-project.git refs/heads/release/${{ matrix.clang-runtime}}.x ) | 
|  | 263 | +          $env:LLVM_HASH = $env:LLVM_HASH_TEMP -replace "\t","-" | 
|  | 264 | +        } | 
|  | 265 | +
 | 
|  | 266 | +        echo "CLING_HASH=$env:CLING_HASH" | 
|  | 267 | +        echo "LLVM_HASH=$env:LLVM_HASH" | 
|  | 268 | +
 | 
|  | 269 | +        echo "CLING_HASH=$env:CLING_HASH" >> $GITHUB_ENV | 
|  | 270 | +        echo "LLVM_HASH=$env:LLVM_HASH" >> $GITHUB_ENV | 
|  | 271 | +
 | 
|  | 272 | +    - name: Setup default Build Type on Windows | 
|  | 273 | +      run: | | 
|  | 274 | +        echo "BUILD_TYPE=Release" >> $env:GITHUB_ENV | 
|  | 275 | +        echo "CODE_COVERAGE=0" >>  $env:GITHUB_ENV | 
|  | 276 | +        $env:ncpus=$([Environment]::ProcessorCount) | 
|  | 277 | +        echo "ncpus=$env:ncpus" >> $env:GITHUB_ENV | 
|  | 278 | +
 | 
|  | 279 | +    - name: Setup compiler on Windows | 
|  | 280 | +      run: | | 
|  | 281 | +        if ( "${{ matrix.compiler }}" -imatch "clang" ) | 
|  | 282 | +        { | 
|  | 283 | +          $ver="${{ matrix.compiler }}".split("-")[1] | 
|  | 284 | +          choco install llvm --version=$ver --no-progress -my | 
|  | 285 | +          clang --version | 
|  | 286 | +          # | 
|  | 287 | +          $env:CC="clang" | 
|  | 288 | +          $env:CXX="clang++" | 
|  | 289 | +          echo "CC=clang" >> $env:GITHUB_ENV | 
|  | 290 | +          echo "CXX=clang++" >> $env:GITHUB_ENV | 
|  | 291 | +        } | 
|  | 292 | +        elseif ( "${{ matrix.compiler }}" -imatch "msvc" ) | 
|  | 293 | +        { | 
|  | 294 | +          # MSVC is builtin in container image | 
|  | 295 | +        } | 
|  | 296 | +        else | 
|  | 297 | +        { | 
|  | 298 | +          echo "Unsupported compiler - fix YAML file" | 
|  | 299 | +        } | 
|  | 300 | +
 | 
|  | 301 | +    - name: Restore Cache LLVM/Clang runtime build directory | 
|  | 302 | +      uses: actions/cache/restore@v4 | 
|  | 303 | +      id: cache | 
|  | 304 | +      with: | 
|  | 305 | +        path: | | 
|  | 306 | +          llvm-project | 
|  | 307 | +          ${{ matrix.cling=='On' && 'cling' || '' }} | 
|  | 308 | +        key: ${{ env.CLING_HASH }}-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}-clang-${{ matrix.clang-runtime }}.x-patch-${{ hashFiles(format('patches/llvm/clang{0}-*.patch', matrix.clang-runtime)) || 'none' }} | 
|  | 309 | + | 
|  | 310 | +    - name: Build and Test/Install CppInterOp on Windows systems | 
|  | 311 | +      run: | | 
|  | 312 | +        #until https://github.com/compiler-research/CppInterOp/issues/188 is solved | 
|  | 313 | +        $env:PWD_DIR= $PWD.Path | 
|  | 314 | +
 | 
|  | 315 | +        $env:LLVM_DIR="$env:PWD_DIR\llvm-project" | 
|  | 316 | +        echo "LLVM_DIR=$env:LLVM_DIR" | 
|  | 317 | +        echo "LLVM_DIR=$env:LLVM_DIR" >> $env:GITHUB_ENV | 
|  | 318 | +
 | 
|  | 319 | +        $env:LLVM_BUILD_DIR="$env:PWD_DIR\llvm-project\build" | 
|  | 320 | +        echo "LLVM_BUILD_DIR=$env:LLVM_BUILD_DIR" | 
|  | 321 | +        echo "LLVM_BUILD_DIR=$env:LLVM_BUILD_DIR" >> $env:GITHUB_ENV | 
|  | 322 | +
 | 
|  | 323 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 324 | +        { | 
|  | 325 | +          $env:CLING_DIR="$env:PWD_DIR\cling" | 
|  | 326 | +          echo "CLING_DIR=$env:CLING_DIR" | 
|  | 327 | +          echo "CLING_DIR=$env:CLING_DIR" >> $env:GITHUB_ENV | 
|  | 328 | +
 | 
|  | 329 | +          $env:CLING_BUILD_DIR="$env:PWD_DIR\cling\build" | 
|  | 330 | +          echo "CLING_BUILD_DIR=$env:CLING_BUILD_DIR" | 
|  | 331 | +          echo "CLING_BUILD_DIR=$env:CLING_BUILD_DIR" >> $env:GITHUB_ENV | 
|  | 332 | +
 | 
|  | 333 | +          $env:CPLUS_INCLUDE_PATH="$env:CLING_DIR\tools\cling\include;$env:CLING_BUILD_DIR\include;$env:LLVM_DIR\llvm\include;$env:LLVM_DIR\clang\include;$env:LLVM_BUILD_DIR\include;$env:LLVM_BUILD_DIR\tools\clang\include;$env:PWD_DIR\include;" | 
|  | 334 | +          echo "CPLUS_INCLUDE_PATH=$env:CPLUS_INCLUDE_PATH" | 
|  | 335 | +          echo "CPLUS_INCLUDE_PATH=$env:CPLUS_INCLUDE_PATH" >> $env:GITHUB_ENV | 
|  | 336 | +        } | 
|  | 337 | +        else | 
|  | 338 | +        { | 
|  | 339 | +          $env:CPLUS_INCLUDE_PATH="$env:LLVM_DIR\llvm\include;$env:LLVM_DIR\clang\include;$env:LLVM_BUILD_DIR\include;$env:LLVM_BUILD_DIR\tools\clang\include;$env:PWD_DIR\include;" | 
|  | 340 | +          echo "CPLUS_INCLUDE_PATH=$env:CPLUS_INCLUDE_PATH" | 
|  | 341 | +          echo "CPLUS_INCLUDE_PATH=$env:CPLUS_INCLUDE_PATH" >> $env:GITHUB_ENV | 
|  | 342 | +        } | 
|  | 343 | +
 | 
|  | 344 | +        $env:CB_PYTHON_DIR="$env:PWD_DIR\cppyy-backend\python" | 
|  | 345 | +        echo "CB_PYTHON_DIR=$env:CB_PYTHON_DIR" | 
|  | 346 | +        echo "CB_PYTHON_DIR=$env:CB_PYTHON_DIR" >> $env:GITHUB_ENV | 
|  | 347 | +
 | 
|  | 348 | +        $env:CPPINTEROP_DIR="$env:CB_PYTHON_DIR\cppyy-backend" | 
|  | 349 | +        echo "CPPINTEROP_DIR=$env:CPPINTEROP_DIR" | 
|  | 350 | +        echo "CPPINTEROP_DIR=$env:CPPINTEROP_DIR" >> $env:GITHUB_ENV | 
|  | 351 | +
 | 
|  | 352 | +        # Build CppInterOp next to cling and llvm-project. | 
|  | 353 | +        mkdir build | 
|  | 354 | +        cd build | 
|  | 355 | +        $env:CPPINTEROP_BUILD_DIR="$env:PWD_DIR" | 
|  | 356 | +        echo "CPPINTEROP_BUILD_DIR=$env:CPPINTEROP_BUILD_DIR" | 
|  | 357 | +        echo "CPPINTEROP_BUILD_DIR=$env:CPPINTEROP_BUILD_DIR" >> $env:GITHUB_ENV | 
|  | 358 | +        if ( "${{ matrix.cling }}" -imatch "On" ) | 
|  | 359 | +        { | 
|  | 360 | +          cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}    ` | 
|  | 361 | +                -DCPPINTEROP_USE_CLING=ON                                  ` | 
|  | 362 | +                -DCPPINTEROP_USE_REPL=OFF                                  ` | 
|  | 363 | +                -DCling_DIR="$env:LLVM_BUILD_DIR\tools\cling"   ` | 
|  | 364 | +                -DLLVM_DIR="$env:LLVM_BUILD_DIR" ` | 
|  | 365 | +                -DLLVM_ENABLE_WERROR=On                          ` | 
|  | 366 | +                -DClang_DIR="$env:LLVM_BUILD_DIR"  -DCODE_COVERAGE=${{ env.CODE_COVERAGE }} -DCMAKE_INSTALL_PREFIX="$env:CPPINTEROP_DIR"  ..\ | 
|  | 367 | +        } | 
|  | 368 | +        else | 
|  | 369 | +        { | 
|  | 370 | +          cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}    ` | 
|  | 371 | +                -DLLVM_DIR="$env:LLVM_BUILD_DIR\lib\cmake\llvm"  ` | 
|  | 372 | +                -DLLVM_ENABLE_WERROR=On                          ` | 
|  | 373 | +                -DClang_DIR="$env:LLVM_BUILD_DIR\lib\cmake\clang"  -DCODE_COVERAGE=${{ env.CODE_COVERAGE }}  -DCMAKE_INSTALL_PREFIX="$env:CPPINTEROP_DIR"  ..\ | 
|  | 374 | +                cmake --build . --config ${{ env.BUILD_TYPE }} --target googletest --parallel ${{ env.ncpus }} | 
|  | 375 | +        } | 
|  | 376 | +        cmake --build . --config ${{ env.BUILD_TYPE }} --target check-cppinterop --parallel ${{ env.ncpus }} | 
|  | 377 | +
 | 
|  | 378 | +    - name: Setup tmate session | 
|  | 379 | +      if: ${{ failure() && runner.debug }} | 
|  | 380 | +      uses: mxschmitt/action-tmate@v3 | 
|  | 381 | +      # When debugging increase to a suitable value! | 
|  | 382 | +      timeout-minutes: 30 | 
0 commit comments