name: Set common variables description: Set common run variables inputs: toolset: description: Toolset used required: true runs: using: composite steps: - env: ARG_TOOLSET: ${{ inputs.toolset }} run: | $toolset = (Get-ChildItem env:ARG_TOOLSET).Value $host_linux = '${{ runner.os }}' -eq 'Linux' $host_windows = '${{ runner.os }}' -eq 'Windows' $mingw = $toolset -eq 'mingw' -or ($host_windows -and $toolset -eq 'gcc') $target_linux = $host_linux -and !$mingw $target_windows = $mingw -or $host_windows $target_pe = $target_windows $target_elf = $target_linux function Set-BoolVar { param( [Parameter(Mandatory=$true)] [string] $name, [Parameter(Mandatory=$true)] [bool] $value ) $str_value = if ($value) { '1' } else { '' } $msg = "$name=$str_value" echo $msg echo $msg >> $env:GITHUB_ENV } function Set-StrVar { param( [Parameter(Mandatory=$true)] [string] $name, [string] $value ) $msg = "$name=$value" echo $msg echo $msg >> $env:GITHUB_ENV } Set-BoolVar 'CI_HOST_LINUX' $host_linux Set-BoolVar 'CI_HOST_WINDOWS' $host_windows Set-BoolVar 'CI_MINGW' $mingw Set-BoolVar 'CI_TARGET_LINUX' $target_linux Set-BoolVar 'CI_TARGET_WINDOWS' $target_windows Set-BoolVar 'CI_TARGET_PE' $target_pe Set-BoolVar 'CI_TARGET_ELF' $target_elf $lib_prefix = 'lib' $lib_ext = if ($target_windows -and -not $mingw) { '.lib' } else { '.a' } $dll_prefix = if ($target_windows -and -not $mingw) { '' } else { 'lib' } $dll_ext = if ($target_windows) { '.dll' } else { '.so' } $exe_ext = if ($target_pe) { '.exe' } else { '' } Set-StrVar 'CI_LIB_PREFIX' $lib_prefix Set-StrVar 'CI_LIB_EXT' $lib_ext Set-StrVar 'CI_DLL_PREFIX' $dll_prefix Set-StrVar 'CI_DLL_EXT' $dll_ext Set-StrVar 'CI_EXE_EXT' $exe_ext Set-BoolVar 'CI_DLL_IN_BIN' $target_pe shell: pwsh