diff --git a/setup.ps1 b/setup.ps1
index 9c782c3cb199678101e74b8d24991b5a41d802e4..3a60f7436328acbf410933cd341aa3cfbedfe962 100644
--- a/setup.ps1
+++ b/setup.ps1
@@ -37,11 +37,16 @@ if ($install_reqs)
 
 # 2. Compile & install aidge_core
 ################################################################################
-md -Force build_cpp
-md -Force $env:AIDGE_INSTALL_PATH
-cd build_cpp
+mkdir -Force build_cpp
+mkdir -Force $env:AIDGE_INSTALL_PATH
+Set-Location build_cpp
 cmake -DCMAKE_INSTALL_PREFIX:PATH=$env:AIDGE_INSTALL_PATH -DCMAKE_BUILD_TYPE=Debug ..
+if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
 cmake --build . -j2
+if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
 cmake --install . --config Debug
+if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
 # Optional: run the unit tests
 ctest --output-on-failure
+if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
+Set-Location $PSScriptRoot