diff --git a/build-windows/generate_code.cmd b/build-windows/generate_code.cmd
index bd1461f1..d029c017 100644
--- a/build-windows/generate_code.cmd
+++ b/build-windows/generate_code.cmd
@@ -1,58 +1,46 @@
@ECHO OFF
-PUSHD .
-SET pwd=%cd%
-CD %pwd%\sync
+
+:: The script is located in ...\pEpEngine\build-windows\
+SET current_directory=%~dp0
+SET engine_directory=%current_directory:~0,-14%
+ECHO %engine_directory%
+PUSHD %engine_directory%\sync
IF NOT EXIST generated MKDIR generated
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_actions.ysl2 sync.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_actions.ysl2 sync.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
+
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_codec.ysl2 distribution.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_codec.ysl2 distribution.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
+
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_codec.ysl2 sync.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_codec.ysl2 sync.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
+
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_messages.ysl2 sync.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_messages.ysl2 sync.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
+
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_messages.ysl2 distribution.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_messages.ysl2 distribution.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
+
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_message_func.ysl2 sync.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_message_func.ysl2 sync.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
+
ECHO py "%YML_PATH%\yml2proc" -E utf-8 -y gen_statemachine.ysl2 sync.fsm
py "%YML_PATH%\yml2proc" -E utf-8 -y gen_statemachine.ysl2 sync.fsm
-IF %ERRORLEVEL% NEQ 0 (
- POPD
- EXIT /B 1
- )
+IF %ERRORLEVEL% NEQ 0 GOTO end
-xcopy /y generated\*.asn1 ..\asn.1\
-xcopy /y generated\*.c ..\src\
-xcopy /y generated\*.h ..\src\
+XCOPY /y generated\*.asn1 ..\asn.1\
+XCOPY /y generated\*.c ..\src\
+XCOPY /y generated\*.h ..\src\
-CD %pwd%\asn.1
+CD %engine_directory%\asn.1
DEL *.h
DEL *.c
@@ -70,9 +58,13 @@ IF %ERRORLEVEL% NEQ 0 (
DEL *-sample.c
-CD %pwd%\..
+CD %engine_directory%\..
RD /S/Q pEp
MKDIR pEp
XCOPY pEpEngine\src\*.h pEp\ /Y/F/I
+
+:end
+
POPD
+IF %ERRORLEVEL% NEQ 0 EXIT /B 1
\ No newline at end of file
diff --git a/build-windows/libpEpasn1/libpEpasn1.vcxproj b/build-windows/libpEpasn1/libpEpasn1.vcxproj
index 3fd725c3..847c79e0 100644
--- a/build-windows/libpEpasn1/libpEpasn1.vcxproj
+++ b/build-windows/libpEpasn1/libpEpasn1.vcxproj
@@ -61,7 +61,7 @@
Windows
- IF EXIST ".\Debug\libpEpasn1.tlog\unsuccessfulbuild" CD..\.. && CALL .\build-windows\generate_code.cmd
+ IF EXIST ".\Debug\libpEpasn1.tlog\unsuccessfulbuild" CALL ..\generate_code.cmd
@@ -81,7 +81,7 @@
true
- IF EXIST ".\Release\libpEpasn1.tlog\unsuccessfulbuild" CD..\.. && CALL .\build-windows\generate_code.cmd
+ IF EXIST ".\Release\libpEpasn1.tlog\unsuccessfulbuild" CALL ..\generate_code.cmd