Skip to content

Package Dev Win

Package Dev Win #2

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_mt\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