Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
49955cf
Initial plan
Copilot Jan 1, 2026
97241ca
Fix CPP build: update copy targets to use PublishDir instead of OutDi…
Copilot Jan 1, 2026
76d62f5
Fix path separator in Linux copy command
Copilot Jan 1, 2026
5f0323b
Fix macOS library renaming: add conditional checks for file existence
Copilot Jan 1, 2026
57aeb2c
Remove conditional checks - files must exist for build to succeed
Copilot Jan 1, 2026
a3a3ee9
Change target framework from netstandard2.0 to net10.0 for NativeAOT
Copilot Jan 1, 2026
0343912
Merge branch 'ci-fix' into copilot/sub-pr-640-again
Happypig375 Jan 1, 2026
6344eda
Merge branch 'ci-fix' into copilot/sub-pr-640-again
Happypig375 Jan 1, 2026
7e6164c
Merge branch 'ci-fix' into copilot/sub-pr-640-again
Happypig375 Jan 1, 2026
e9eea1e
Merge remote-tracking branch 'origin/ci-fix' into copilot/sub-pr-640-…
Happypig375 Jan 1, 2026
55ba78c
Add headerpad_max_install_names linker flag for macOS
Copilot Jan 1, 2026
8285de6
Fix typo in target name: Unux -> Unix
Copilot Jan 1, 2026
1c6081e
Merge remote-tracking branch 'origin/ci-fix' into copilot/sub-pr-640-…
Happypig375 Jan 1, 2026
f2a1236
Remove duplicate PropertyGroup for macOS linker flags
Copilot Jan 1, 2026
4a793df
Remove redundant install_name_tool call in CPPTest workflow
Copilot Jan 1, 2026
9abc969
Fix architecture mismatch: use osx-arm64 for macOS builds
Copilot Jan 2, 2026
13570c0
Copy .lib file for Windows builds in CPPTest workflow
Copilot Jan 2, 2026
0945b2e
Add debugging to list Windows output files
Copilot Jan 2, 2026
4a9ca3c
Merge branch 'ci-fix' into copilot/sub-pr-640-again
Happypig375 Jan 2, 2026
9cb6407
Copy .lib file from bin directory for Windows
Copilot Jan 2, 2026
9626fd5
Generate import library from DLL using lib.exe
Copilot Jan 2, 2026
b25fc67
Fix import library generation to use dumpbin and .def file
Copilot Jan 2, 2026
43ef099
Add debugging and error checking for vcvars64.bat
Copilot Jan 2, 2026
7ce6675
Use ilammy/msvc-dev-cmd action to setup MSVC environment
Copilot Jan 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion .github/workflows/CPPBuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,44 @@ jobs:
sudo apt-get install zlib1g-dev
sudo apt-get install libkrb5-dev

- name: 'Setup MSVC environment'
if: ${{ matrix.os == 'windows-latest' }}
uses: ilammy/msvc-dev-cmd@v1

- name: 'Building the library into native for Windows'
if: ${{ matrix.os == 'windows-latest' }}
shell: cmd
run: |
cd Sources/Wrappers/AngouriMath.CPP.Exporting
mkdir ../AngouriMath.CPP.Importing/out-x64
call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
dotnet publish -p:NativeLib=Shared -p:SelfContained=true -p:PublishAot=true -r ${{ matrix.flag }} -c release

- name: 'Debug: List files in out-x64 for Windows'
if: ${{ matrix.os == 'windows-latest' }}
shell: cmd
run: |
cd Sources/Wrappers/AngouriMath.CPP.Importing/out-x64
dir
cd ..\..\AngouriMath.CPP.Exporting\bin\Release\net10.0\win-x64
echo.
echo Listing bin directory:
dir *.lib
dir *.dll

- name: 'Generate .lib file for Windows'
if: ${{ matrix.os == 'windows-latest' }}
shell: cmd
run: |
cd Sources/Wrappers/AngouriMath.CPP.Importing/out-x64
echo Checking for dumpbin and lib...
where dumpbin
where lib
dumpbin /exports AngouriMath.CPP.Exporting.dll > exports.txt
echo LIBRARY AngouriMath.CPP.Exporting > AngouriMath.CPP.Exporting.def
echo EXPORTS >> AngouriMath.CPP.Exporting.def
for /f "skip=19 tokens=4" %%A in (exports.txt) do if not "%%A"=="" echo %%A >> AngouriMath.CPP.Exporting.def
lib /def:AngouriMath.CPP.Exporting.def /out:AngouriMath.CPP.Exporting.lib /machine:x64

- name: 'Building the library into native for Linux & MacOS'
if: ${{ matrix.os != 'windows-latest' }}
run: |
Expand All @@ -62,12 +91,14 @@ jobs:
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
cd Sources/Wrappers/AngouriMath.CPP.Importing/out-x64
ls -la
mv AngouriMath.CPP.Exporting.so libAngouriMath.CPP.Exporting.so

- name: 'Renaming the library for OS X'
if: ${{ matrix.os == 'macos-latest' }}
run: |
cd Sources/Wrappers/AngouriMath.CPP.Importing/out-x64
ls -la
mv AngouriMath.CPP.Exporting.dylib libAngouriMath.CPP.Exporting.dylib
install_name_tool -id "@rpath/libAngouriMath.CPP.Exporting.dylib" libAngouriMath.CPP.Exporting.dylib

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<WarningsAsErrors />
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PublishAot>true</PublishAot>
<EnableUnsafeBinaryFormatterSerialization>false</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>

<Target Name="Copy for Windows" Condition="$([MSBuild]::IsOSPlatform('Windows'))" AfterTargets="Publish">
Expand Down
Loading