44 lines
1.3 KiB
PowerShell
44 lines
1.3 KiB
PowerShell
$projectFolder = "proj"
|
|
$slnName = "dbd-unlocker"
|
|
|
|
function Initialize-Project {
|
|
# generation
|
|
Write-Host "Generating project"
|
|
Set-Location $projectFolder
|
|
$cmakeProcess = Start-Process -FilePath cmake -ArgumentList @("..") -NoNewWindow -Wait -PassThru
|
|
Set-Location ..
|
|
|
|
if ($cmakeProcess.ExitCode -ne 0) {
|
|
Write-Host "CMake generation failed"
|
|
exit 1
|
|
}
|
|
|
|
# sln open
|
|
try {
|
|
$slnPath = "$projectFolder\$slnName.sln"
|
|
|
|
$solutionFile = Get-Item -Path $slnPath -ErrorAction Stop
|
|
$solutionFullName = $solutionFile.FullName
|
|
|
|
$vsProcesses = Get-CimInstance -Query "SELECT CommandLine FROM Win32_Process WHERE Name = 'devenv.exe'"
|
|
$pattern = [Regex]::Escape($solutionFullName)
|
|
$isOpen = $vsProcesses | Where-Object { $_.CommandLine -match $pattern }
|
|
|
|
if (-not $isOpen) {
|
|
Write-Host "Starting Visual Studio..." -ForegroundColor Cyan
|
|
Start-Process -FilePath $solutionFullName
|
|
}
|
|
else {
|
|
Write-Host "Solution '$($solutionFile.Name)' is already open." -ForegroundColor Yellow
|
|
}
|
|
}
|
|
catch {
|
|
Write-Error "Failed to open solution: $($_.Exception.Message)"
|
|
}
|
|
}
|
|
|
|
if (-not (Test-Path $projectFolder)) {
|
|
New-Item -ItemType Directory -Path $projectFolder | Out-Null
|
|
}
|
|
|
|
Initialize-Project |