Skip to content
Snippets Groups Projects

Resolve "Windows: Linker errors with protobuf-generated code"

Merged Joscha Schmiedt requested to merge 90-windows-linker-errors-with-protobuf-generated-code into dev
1 file
+ 65
0
Compare changes
  • Side-by-side
  • Inline
make.ps1 0 → 100644
+ 65
0
param (
[string]$target
)
# check if vswhere is available
if (-not (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe")) {
Write-Output "vswhere is not available. Please install Visual Studio"
exit 1
}
# locate the latest Visual Studio installation
$currentPath = Get-Location
$installPath = &"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath
Import-Module (Join-Path $installPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
Enter-VsDevShell -VsInstallPath $installPath
Set-Location $currentPath
# Windows is with Release only for now
switch ($target) {
"build" {
Write-Output "Building the project..."
# check if msbuild is available
if (-not (Get-Command msbuild -ErrorAction SilentlyContinue)) {
Write-Output "msbuild is not available. Please install Visual Studio or open the Developer PowerShell:."
exit 1
}
# check if conan install was run
if (-not (Test-Path .\build\liblinkahead.sln)) {
Write-Output "Please run conan-install first."
exit 1
}
msbuild .\build\liblinkahead.sln /property:Configuration=Release
}
"test" {
Write-Output "Running tests..."
# check if build was run before
if (-not (Test-Path .\build\Release\linkahead.dll)) {
Write-Output "Please build the project first."
exit 1
}
Set-Location .\build\
ctest
}
"conan-install" {
Write-Output "Installing Release dependencies with Conan..."
# check if conan is available
if (-not (Get-Command conan -ErrorAction SilentlyContinue)) {
Write-Output "Conan is not available. Please install Conan or activate the Conan environment venv"
exit 1
}
conan install . --build=missing -s build_type=Release -s compiler.cppstd=17
cmake --preset conan-default
}
"clean"{
Write-Output "Cleaning the project..."
Remove-Item -Recurse -Force .\build\*
}
default {
Write-Output "Usage: .\script.ps1 [conan-install|build|test|clean]"
}
}
Loading