Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
d9d4e56
github: continuous integration script
lejcik Jan 31, 2025
625b414
corrected paths
lejcik Jan 31, 2025
53c7350
corrected git describe command
lejcik Jan 31, 2025
d46f4ce
corrected dotnet version
lejcik Jan 31, 2025
70ae893
temporarily disable dotnet install step
lejcik Jan 31, 2025
82141dc
temporarily disable x64 build
lejcik Jan 31, 2025
5756953
dotnet sdk, update to a supported version
lejcik Jan 31, 2025
7b613be
reenabled dotnet sdk install step
lejcik Jan 31, 2025
97546e7
temporary fix for exif.dll
lejcik Jan 31, 2025
70232f4
updated installation directory creation step
lejcik Jan 31, 2025
5a560bb
one more correction for installation directory composition step
lejcik Jan 31, 2025
0780284
corrected variable name
lejcik Jan 31, 2025
57432bb
one more path correction
lejcik Jan 31, 2025
5600e6e
optimized the robocopy command
lejcik Jan 31, 2025
b9e97e0
more script improvements
lejcik Jan 31, 2025
1c7b40b
restructured the install step
lejcik Jan 31, 2025
26c733c
another optimization of the install step
lejcik Jan 31, 2025
08a7995
fixed a typo
lejcik Jan 31, 2025
342e695
updated unrar plugin, vcpkg builds unrar.dll dependency and is now li…
lejcik Feb 1, 2025
137002d
updated msbuild, it should now build all projects in the solution
lejcik Feb 1, 2025
57b3eaa
fixed msbuild command line
lejcik Feb 1, 2025
fb17c3e
msbuild platform argument has to be converted
lejcik Feb 1, 2025
ba77c10
specified build architecture in msbuild setup step
lejcik Feb 1, 2025
f4d96c7
added utils to the msbuild compilation
lejcik Feb 1, 2025
c9e0302
corrected platform name for msbuild
lejcik Feb 1, 2025
e5df0fc
another correction hint for msbuild
lejcik Feb 1, 2025
7fb605f
one more msbuild correction
lejcik Feb 1, 2025
14a6a29
again, one more msbuild correction
lejcik Feb 1, 2025
09678d2
attach redistributable files to the installation
lejcik Feb 2, 2025
a88a418
disabled a few more build steps
lejcik Feb 2, 2025
c597094
used vcwhere tool to find visual studio install dir
lejcik Feb 2, 2025
ea4130f
updated redistributables install step
lejcik Feb 2, 2025
b7504ee
one more correction
lejcik Feb 2, 2025
5d0f93c
pwsh in verbose mode
lejcik Feb 2, 2025
cee4330
pwsh in debug mode
lejcik Feb 2, 2025
62dbb14
one more correction in pwsh script
lejcik Feb 2, 2025
cfb2cde
fixed a variable name
lejcik Feb 2, 2025
b070571
a few more corrections
lejcik Feb 2, 2025
e19b78b
added a few debug helps
lejcik Feb 2, 2025
912bf96
few more corrections
lejcik Feb 2, 2025
172f6c3
fixed a typo
lejcik Feb 2, 2025
e18c97f
added build step for help files
lejcik Feb 2, 2025
3ee0c97
fixed a typo
lejcik Feb 2, 2025
a9912e5
added a condition
lejcik Feb 2, 2025
b6081f5
pwsh in debug mode
lejcik Feb 2, 2025
b88549a
added exit code checks
lejcik Feb 2, 2025
e6caf76
fixed hhc return code issue
lejcik Feb 2, 2025
bbe95f5
cleanup, and reenabled all build steps
lejcik Feb 2, 2025
27bdb33
changed dependency on some 3-rd party libraries to vcpkg
lejcik Feb 17, 2025
cc68f79
fixed forgotten includes
lejcik Feb 17, 2025
882548e
one more forgotten include file fix
lejcik Feb 17, 2025
abf6646
added salpvenv to x64 build
lejcik Feb 17, 2025
abb06a9
reverted nanosvg from vcpkg.json, as it has to be patched
lejcik Mar 15, 2025
0adff5b
moved wil dependency to vcpkg
lejcik Mar 15, 2025
b4204a6
moved fmt dependency to vcpkg
lejcik Mar 15, 2025
52b6f53
added vcpkg_installed dirs to git ignore file
lejcik Mar 15, 2025
234492b
filed include with wil
lejcik Mar 15, 2025
918d43f
allowed tserver to use vcpkg.json
lejcik Mar 15, 2025
af780c3
used nanosvg as an overlay for vcpkg.json
lejcik Mar 24, 2025
312f3ab
added vcpkg-configuration.json file for custom overlays
lejcik Mar 24, 2025
c7e289f
set static libraries for tserver
lejcik Mar 24, 2025
3f568cd
added missing overlay files
lejcik Mar 26, 2025
e480b73
Merge branch 'main' into github-ci
lejcik Jul 25, 2025
0028f6f
fixed wrong usage of keyword 'static'
lejcik Jul 25, 2025
3542035
Merge branch 'main' into github-ci
lejcik Sep 15, 2025
be4db35
Merge branch 'main' into github-ci
lejcik Nov 2, 2025
01e8d54
updated vcpkg release hash to version 2025.10.17
lejcik Nov 2, 2025
64c02ac
Merge branch 'main' into github-ci
lejcik Feb 15, 2026
8be75f9
updated vcpkg release hash to version 2026.01.16
lejcik Feb 15, 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
134 changes: 134 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: "Build the OpenSalamander project"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

env:
# Project files expect this variable to be defined.
OPENSAL_BUILD_DIR: c:\\OpenSalamander\\
# Directory with installation that will be packed and uploaded as an artifact.
OPENSAL_INSTALL_DIR: c:\\install\\OpenSalamander\\
# Configuration type to build.
BUILD_CONFIGURATION: Release

jobs:
build:
name: Build
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
targetplatform: [x86, x64] # arm64

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Create version file
run: |
mkdir ${{ env.OPENSAL_INSTALL_DIR }}
git describe --tags --always > ${{ env.OPENSAL_INSTALL_DIR }}version.txt
type ${{ env.OPENSAL_INSTALL_DIR }}version.txt

- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
with:
msbuild-architecture: ${{ matrix.targetplatform }}

- name: Setup .NET Framework SDK
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.0.x' # required for pe-viewer

- name: Setup vcpkg
run: |
bootstrap-vcpkg
vcpkg integrate install

- name: Build the project
run: |
$platform = "${{ matrix.targetplatform }}"
if ("${{ matrix.targetplatform }}" -eq "x86") {
$platform = "Win32"
}
msbuild src\vcxproj\salamand.sln /t:Build /p:Configuration=Release /p:platform=$platform
msbuild src\vcxproj\salamand.sln /t:Build /p:Configuration="Utils (Release)" /p:platform=$platform

- name: Compose installation directory
run: |
pushd ${{ env.OPENSAL_BUILD_DIR }}salamander\\${{ env.BUILD_CONFIGURATION }}_${{ matrix.targetplatform }}
robocopy . ${{ env.OPENSAL_INSTALL_DIR }} *.exe *.dll *.spl *.slg /S
popd
xcopy /E /I /Y ${{ github.workspace }}\\convert ${{ env.OPENSAL_INSTALL_DIR }}convert
xcopy /E /I /Y ${{ github.workspace }}\\doc ${{ env.OPENSAL_INSTALL_DIR }}doc
xcopy /E /I /Y ${{ github.workspace }}\\src\\res\\toolbars ${{ env.OPENSAL_INSTALL_DIR }}toolbars
xcopy /E /I /Y ${{ github.workspace }}\\src\\plugins\\automation\\sample-scripts ${{ env.OPENSAL_INSTALL_DIR }}plugins\\automation\\scripts
xcopy /E /I /Y ${{ github.workspace }}\\src\\plugins\\ieviewer\\cmark-gfm\\css ${{ env.OPENSAL_INSTALL_DIR }}plugins\\ieviewer\\css
xcopy /I /Y ${{ github.workspace }}\\src\\plugins\\zip\\zip2sfx\\*.txt ${{ env.OPENSAL_INSTALL_DIR }}plugins\\zip\\zip2sfx
xcopy /I /Y ${{ github.workspace }}\\src\\plugins\\zip\\zip2sfx\\*.set ${{ env.OPENSAL_INSTALL_DIR }}plugins\\zip\\zip2sfx

- name: Install redistributable files
shell: pwsh
run: |
# find Visual Studio install path with vswhere tool
$vswhere_path = "${env:ProgramFiles(x86)}\\Microsoft Visual Studio\\Installer\\vswhere.exe"
$vs_install_path = & $vswhere_path -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
# find out VC toolset version
$vs_vctoolset_path = "$vs_install_path\\VC\\Auxiliary\\Build"
$vctoolset_file = Get-ChildItem -Path $vs_vctoolset_path -Filter "Microsoft.VCRedistVersion.v???.default.props" | Select-Object -ExpandProperty Name
if ($vctoolset_file -match "Microsoft.VCRedistVersion\.v(\d+)\.default\.props") {
$vctoolset = $matches[1]
$vctoolsver = (Get-Content -Path "$vs_vctoolset_path\\Microsoft.VCRedistVersion.default.txt" -Raw).Trim()
# copy redistributable files to the installation directory
$vc_redist_path = "$vs_install_path\\VC\\Redist\\MSVC\\$vctoolsver\\${{ matrix.targetplatform }}\\Microsoft.VC${vctoolset}.CRT"
Copy-Item -Path "$vc_redist_path\\concrt???.dll" -Destination "${env:OPENSAL_INSTALL_DIR}" -Force
Copy-Item -Path "$vc_redist_path\\msvcp???.dll" -Destination "${env:OPENSAL_INSTALL_DIR}" -Force
Copy-Item -Path "$vc_redist_path\\vcruntime???.dll" -Destination "${env:OPENSAL_INSTALL_DIR}" -Force
}

- name: Build help files
shell: pwsh
run: |
# help compiler should be available
$hhc_exe = "${env:ProgramFiles(x86)}\\HTML Help Workshop\\hhc.exe"
# create path where help files will be installed
$help_dir = "${env:OPENSAL_INSTALL_DIR}\\help\\english"
New-Item -ItemType Directory -Path $help_dir -Force | Out-Null
# compile main help file
pushd help\\src
& $hhc_exe salamand.hhp
Move-Item -Path "salamand.chm" -Destination $help_dir -Force
popd
# compile help for plugins
$plugin_dirs = Get-ChildItem -Path "src\\plugins" -Directory | Select-Object -ExpandProperty FullName
foreach ($subdir in $plugin_dirs) {
$plugin_name = Split-Path $subdir -Leaf
$help_src = "$subdir\\help"
# pak plugin has different directory structure
if ($plugin_name -eq "pak") {
$help_src = "$subdir\\spl\\help"
}
if (Test-Path $help_src) {
pushd $help_src
if (Test-Path "$plugin_name.hhp") {
& $hhc_exe "$plugin_name.hhp"
Move-Item -Path "$plugin_name.chm" -Destination $help_dir -Force
}
popd
}
}
# help compiler exists with code 1 even if it was successful
$global:LASTEXITCODE = 0

#- name: Build language files
#- name: Build setup.exe package

- name: Finalize installation package
uses: actions/upload-artifact@v4
with:
name: OpenSalamander-${{ matrix.targetplatform }}
path: ${{ env.OPENSAL_INSTALL_DIR }}
retention-days: 10
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ Thumbs.db
/src/plugins/automation/generated/salamander_h.h
/src/plugins/automation/generated/salamander_i.c
/src/plugins/automation/generated/salamander_p.c

# vcpkg locally installed packages
vcpkg_installed/
42 changes: 0 additions & 42 deletions src/common/dep/bzip2/LICENSE

This file was deleted.

Loading
Loading