-
Notifications
You must be signed in to change notification settings - Fork 297
/
Compile.bat
executable file
·127 lines (112 loc) · 3.76 KB
/
Compile.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
@echo off
REM Arguments
REM 1 fileprefix
REM 2 target (gcc|msvc)
REM 3 platform (mingw64|mingw32)
REM 4 serial/parallel
REM 5 number of processors
REM 6 LOGGING 0/1
if not "%5"=="" (set NUM_PROCS=%5) else (set NUM_PROCS=%NUMBER_OF_PROCESSORS%)
if not "%6"=="" (set LOGGING=%6) else (set LOGGING=1)
set OM_PLATFORM=%3
REM Clear all environment variables that may interfere during compile and link phases.
set GCC_EXEC_PREFIX=
set CPLUS_INCLUDE_PATH=
set C_INCLUDE_PATH=
set LIBRARY_PATH=
set OLD_PATH=%PATH%
call :CONVERT_OPENMODELICAHOME_TO_SHORT_PATH_NAME "%OPENMODELICAHOME%"
set MINGW="%OPENMODELICAHOME%\tools\msys\%OM_PLATFORM%"
set ADDITIONAL_ARGS=
REM If OMDEV is set, use MinGW from there instead of OPENMODELICAHOME
REM It is not certain that release OMC is installed
if not %OMDEV%a==a set MINGW=%OMDEV%\tools\msys\%OM_PLATFORM%
REM echo OPENMODELICAHOME = %OPENMODELICAHOME% >> %1.log 2>&1
REM echo MINGW = %MINGW% >>%1.log 2>&1
call :CONVERT_CD_TO_SHORT_PATH_NAME "%CD%"
if %LOGGING%==1 (goto :SET_PATH_LOG) else (goto :SET_PATH)
:SET_PATH_LOG
cd /D "%MINGW%\bin" >>%CURRENT_DIR%\%1.log 2>&1
set PATH=%CD%;%CD%\..\..\usr\bin; >>%CURRENT_DIR%\%1.log 2>&1
cd /D "%CURRENT_DIR%" >>%CURRENT_DIR%\%1.log 2>&1
goto :CHECK_TARGET
:SET_PATH
cd /D "%MINGW%\bin"
set PATH=%CD%;%CD%\..\..\usr\bin;
echo PATH = "%PATH%"
cd /D "%CURRENT_DIR%"
goto :CHECK_TARGET
REM echo PATH = %PATH% >>%1.log 2>&1
REM echo CD = %CD% >>%1.log 2>&1
:CHECK_TARGET
if /I "%2"=="msvc" (goto :MSVC)
if /I "%2"=="msvc10" (goto :MSVC100)
if /I "%2"=="msvc12" (goto :MSVC110)
if /I "%2"=="msvc13" (goto :MSVC120)
if /I "%2"=="msvc15" (goto :MSVC140) else (goto :MINGW)
:MSVC
REM echo "MSVC"
REM check if msvc is there
if defined VS140COMNTOOLS (goto :MSVC140)
if defined VS120COMNTOOLS (goto :MSVC120)
if defined VS110COMNTOOLS (goto :MSVC110)
if not defined VS100COMNTOOLS (goto :MINGW)
goto :MSVC100
:MSVC100
REM "Use Visual Studio 2010"
set MSVCHOME=%VS100COMNTOOLS%..\..\VC
if not exist "%MSVCHOME%\vcvarsall.bat" (goto :MINGW)
set PATHTMP=%PATH%
set PATH=%OLD_PATH%
if %LOGGING%==1 (call "%MSVCHOME%\vcvarsall.bat" >> %1.log 2>&1) else (call "%MSVCHOME%\vcvarsall.bat")
goto :MSVCCOMPILE
:MSVC110
REM "Use Visual Studio 2012"
set MSVCHOME=%VS110COMNTOOLS%..\..\VC
if not exist "%MSVCHOME%\vcvarsall.bat" (goto :MINGW)
set PATHTMP=%PATH%
set PATH=%OLD_PATH%
if %LOGGING%==1 (call "%MSVCHOME%\vcvarsall.bat" >> %1.log 2>&1) else (call "%MSVCHOME%\vcvarsall.bat")
goto :MSVCCOMPILE
:MSVC120
REM "Use Visual Studio 2013"
echo "msvc120"
set MSVCHOME=%VS120COMNTOOLS%..\..\VC
if not exist "%MSVCHOME%\vcvarsall.bat" (goto :MINGW)
set PATHTMP=%PATH%
set PATH=%OLD_PATH%
if %LOGGING%==1 (call "%MSVCHOME%\vcvarsall.bat" >> %1.log 2>&1) else (call "%MSVCHOME%\vcvarsall.bat")
goto :MSVCCOMPILE
:MSVC140
REM "Use Visual Studio 2015"
set MSVCHOME=%VS140COMNTOOLS%..\..\VC
if not exist "%MSVCHOME%\vcvarsall.bat" (goto :MINGW)
set PATHTMP=%PATH%
set PATH=%OLD_PATH%
if %LOGGING%==1 (call "%MSVCHOME%\vcvarsall.bat" >> %1.log 2>&1) else (call "%MSVCHOME%\vcvarsall.bat")
goto :MSVCCOMPILE
:MSVCCOMPILE
set MAKE=
set MAKEFLAGS=
if %LOGGING%==1 (nmake /a /f %1.makefile >> %1.log 2>&1) else (nmake /a /f %1.makefile)
set RESULT=%ERRORLEVEL%
if %LOGGING%==1 echo RESULT: %RESULT% >> %1.log 2>&1
goto :Final
:MINGW
REM echo "MINGW"
if "%4"=="parallel" set ADDITIONAL_ARGS=-j%NUM_PROCS%
if %LOGGING%==1 ("%MinGW%\bin\mingw32-make" -w -f %1.makefile %ADDITIONAL_ARGS% >> %1.log 2>&1) else ("%MinGW%\bin\mingw32-make" -w -f %1.makefile %ADDITIONAL_ARGS%)
set RESULT=%ERRORLEVEL%
if %LOGGING%==1 echo RESULT: %RESULT% >> %1.log 2>&1
goto :Final
:Final
set PATH=%OLD_PATH%
set OLD_PATH=
@%COMSPEC% /C exit %RESULT%
EXIT /B %ERRORLEVEL%
:CONVERT_CD_TO_SHORT_PATH_NAME
set CURRENT_DIR=%~s1
EXIT /B 0
:CONVERT_OPENMODELICAHOME_TO_SHORT_PATH_NAME
set OPENMODELICAHOME=%~s1
EXIT /B 0