-
Notifications
You must be signed in to change notification settings - Fork 2
109 lines (88 loc) · 4.84 KB
/
package-dev-win.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
name: Package Dev Win
on:
workflow_dispatch:
jobs:
package_dev_win:
runs-on: windows-latest
steps:
# Prepare Visual Studio
- name: Set up Visual Studio
uses: microsoft/setup-msbuild@v2
with:
msbuild-architecture: x64
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Xerces-C - setup
- name: Xerces-C - prepare
run: |
mkdir xerces-c
cd xerces-c
curl -o xerces-c.zip https://dlcdn.apache.org//xerces/c/3/sources/xerces-c-3.2.5.zip
tar -xf xerces-c.zip --strip-components=1
del xerces-c.zip
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Boost - setup and build
- name: Boost - prepare
run: |
mkdir boost
cd boost
curl -o boost.zip https://archives.boost.io/release/1.86.0/source/boost_1_86_0.zip
tar -xf boost.zip --strip-components=1
del boost.zip
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# libMVRGdtf - setup
- name: libMVRGdtf - checkout repository
uses: actions/checkout@v4
with:
path: libMvrGdtf
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Produce a batch file to be locally executed to build the library
- name: Generate build batch file
run: |
# Define the multi-line text
$text = @'
REM ------------------------------------------------
REM ------------------------------------------------
REM
REM Execute this batch in PowerShell
REM
REM Current folder should be the root of libMvrGdtf
REM
REM ------------------------------------------------
call "c:\program files\microsoft visual studio\2022\professional\Common7\Tools\VsDevCmd.bat"
REM ------------------------------------------------
REM Build xerces-c
cd xerces-c
rmdir /s /q build
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=libs -DCMAKE_CXX_FLAGS="/DWIN32 /D_WINDOWS -O2 -Ob2 -DNDEBUG" -DCMAKE_C_FLAGS="/DWIN32 /D_WINDOWS /W3" -DBUILD_SHARED_LIBS:BOOL=FALSE -Dxmlch-type=wchar_t
msbuild /m ALL_BUILD.vcxproj /p:Configuration=Debug
msbuild /m INSTALL.vcxproj /p:Configuration=Debug
cd ../..
REM ------------------------------------------------
REM libMvrGdtf
cd libMvrGdtf
rmdir /s /q build_MD
mkdir build_MD
cd build_MD
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=libs -DWIN_RUNTIME_LIB=-MD -DXERCES_INCLUDE_PATH="..\xerces-c\build\libs\include;..\xerces\src" -DXERCES_LIB_PATH="..\xerces\build\libs\lib" -DXERCES_ROOT_PATH="..\xerces-c\build"
ren MvrGdtf.vcxproj MvrGdtf_ORG.vcxproj
powershell -Command "$xml = [xml](Get-Content 'MvrGdtf_ORG.vcxproj');$xml.Project.ItemDefinitionGroup | ForEach-Object {$node = $xml.CreateElement('AdditionalDependencies', 'http://schemas.microsoft.com/developer/msbuild/2003'); $node.InnerText = 'iphlpapi.lib;..\..\xerces-c\build\libs\lib\xerces-c_3.lib;mdns_cpp\lib\MinSizeRel\mdns_cpp.lib;%(AdditionalDependencies)';$_.Lib.AppendChild($node) | Out-Null; }; Set-Content -Path 'MvrGdtf.vcxproj' -Value $xml.OuterXml"
rm MvrGdtf_ORG.vcxproj
msbuild /m ALL_BUILD.vcxproj /p:Configuration=Debug
msbuild /m INSTALL.vcxproj /p:Configuration=Debug
'@
# Write the text to a file
Set-Content -Path "build_libMVRgdtf.bat" -Value $text
shell: pwsh
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- name: Collect Artifact
run: |
dir
Compress-Archive -Path xerces-c,libMvrGdtf,boost,build_libMVRgdtf.bat -DestinationPath libMVRgdtf-dev.zip
shell: pwsh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: libMVRgdtf-dev
path: libMVRgdtf-dev.zip