Skip to content

Commit 351c552

Browse files
committed
Buid CppInterOp as a shared library on Windows
1 parent ddd67a2 commit 351c552

File tree

1 file changed

+31
-13
lines changed

1 file changed

+31
-13
lines changed

.github/workflows/Windows.yml

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ jobs:
2828
cling: Off
2929
llvm_enable_projects: "clang"
3030
llvm_targets_to_build: "host;NVPTX"
31+
- name: win2025-shared-lib
32+
os: windows-2025
33+
compiler: clang
34+
clang-runtime: '20'
35+
cling: Off
36+
llvm_enable_projects: "clang"
37+
llvm_targets_to_build: "host"
3138

3239
steps:
3340
- uses: actions/checkout@v4
@@ -73,7 +80,7 @@ jobs:
7380
path: |
7481
llvm-project
7582
${{ 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' }}
83+
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' }}-shared-lib
7784
lookup-only: true
7885

7986
- name: Setup default Build Type on Windows
@@ -93,10 +100,10 @@ jobs:
93100
choco install llvm --version=$ver --no-progress -my
94101
clang --version
95102
#
96-
$env:CC="clang"
97-
$env:CXX="clang++"
98-
echo "CC=clang" >> $env:GITHUB_ENV
99-
echo "CXX=clang++" >> $env:GITHUB_ENV
103+
$env:CC="clang-cl"
104+
$env:CXX="clang-cl"
105+
echo "CC=clang-cl" >> $env:GITHUB_ENV
106+
echo "CXX=clang-cl" >> $env:GITHUB_ENV
100107
}
101108
elseif ( "${{ matrix.compiler }}" -imatch "msvc" )
102109
{
@@ -130,7 +137,7 @@ jobs:
130137
}
131138
else
132139
{
133-
git clone --depth=1 -b release/${{ matrix.clang-runtime }}.x https://github.com/llvm/llvm-project.git
140+
git clone --depth=1 -b llvm-export-api-20.0 https://github.com/fsfod/llvm-project.git
134141
}
135142
136143
cd llvm-project
@@ -174,7 +181,7 @@ jobs:
174181
}
175182
cd build
176183
echo "Apply clang${{ matrix.clang-runtime }}-*.patch patches:"
177-
cmake -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects}}" `
184+
cmake - G Ninja -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects}}" `
178185
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" `
179186
-DCMAKE_BUILD_TYPE=Release `
180187
-DLLVM_ENABLE_ASSERTIONS=ON `
@@ -185,6 +192,10 @@ jobs:
185192
-DLLVM_ENABLE_ZSTD=OFF `
186193
-DLLVM_ENABLE_TERMINFO=OFF `
187194
-DLLVM_ENABLE_LIBXML2=OFF `
195+
-DLLVM_ENABLE_PLUGINS=On `
196+
-DLLVM_BUILD_LLVM_DYLIB=On `
197+
-DCMAKE_ASM_MASM_COMPILER=llvm-ml `
198+
-DCMAKE_ASM_MASM_FLAGS="-m64" `
188199
..\llvm
189200
cmake --build . --config Release --target clang clangInterpreter clangStaticAnalyzerCore --parallel ${{ env.ncpus }}
190201
}
@@ -231,6 +242,12 @@ jobs:
231242
clang-runtime: '19'
232243
cling: Off
233244
cppyy: Off
245+
- name: win2025-shared-lib
246+
os: windows-2025
247+
compiler: clang
248+
clang-runtime: '20'
249+
cling: Off
250+
cppyy: Off
234251

235252
steps:
236253
- uses: actions/checkout@v4
@@ -284,10 +301,10 @@ jobs:
284301
choco install llvm --version=$ver --no-progress -my
285302
clang --version
286303
#
287-
$env:CC="clang"
288-
$env:CXX="clang++"
289-
echo "CC=clang" >> $env:GITHUB_ENV
290-
echo "CXX=clang++" >> $env:GITHUB_ENV
304+
$env:CC="clang-cl"
305+
$env:CXX="clang-cl"
306+
echo "CC=clang-cl" >> $env:GITHUB_ENV
307+
echo "CXX=clang-cl" >> $env:GITHUB_ENV
291308
}
292309
elseif ( "${{ matrix.compiler }}" -imatch "msvc" )
293310
{
@@ -305,7 +322,7 @@ jobs:
305322
path: |
306323
llvm-project
307324
${{ 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' }}
325+
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' }}-shared-lib
309326

310327
- name: Build and Test/Install CppInterOp on Windows systems
311328
run: |
@@ -367,9 +384,10 @@ jobs:
367384
}
368385
else
369386
{
370-
cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} `
387+
cmake -G Ninja -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} `
371388
-DLLVM_DIR="$env:LLVM_BUILD_DIR\lib\cmake\llvm" `
372389
-DLLVM_ENABLE_WERROR=On `
390+
-DBUILD_SHARED_LIBS=ON `
373391
-DClang_DIR="$env:LLVM_BUILD_DIR\lib\cmake\clang" -DCODE_COVERAGE=${{ env.CODE_COVERAGE }} -DCMAKE_INSTALL_PREFIX="$env:CPPINTEROP_DIR" ..\
374392
cmake --build . --config ${{ env.BUILD_TYPE }} --target googletest --parallel ${{ env.ncpus }}
375393
}

0 commit comments

Comments
 (0)