-
Notifications
You must be signed in to change notification settings - Fork 0
/
build-r-pkgs.bat
208 lines (171 loc) · 6.05 KB
/
build-r-pkgs.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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
@echo off
@set exit_code=0
@set error_msg=""
if not defined root_src_dir (
set error_msg=ERROR: root_src_dir not defined
set exit_code=1
goto exit
)
if not defined linux_packages_dir (
set error_msg=ERROR: linux_packages_dir not defined
set exit_code=1
goto exit
)
if not defined sf_out_dir (
set error_msg=ERROR: sf_out_dir not defined
set exit_code=1
goto exit
)
set tarball_dir=%linux_packages_dir%\swift_setup\latest\r_pkgs\lib\R_repo\src\contrib
if not exist %tarball_dir% (
set error_msg=ERROR: %tarball_dir% does not exist
set exit_code=1
goto exit
)
set csiro_dir=%root_src_dir%
set cruise_control_dir=%csiro_dir%\cruise-control
set cc_script_dir=%cruise_control_dir%\scripts
set LIBRARY_PATH=%local_dir%\libs
call %cc_script_dir%\check_library_path.cmd
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=check_library_path failed
goto exit
)
if not defined INCLUDE_PATH set INCLUDE_PATH=%local_dir%\include
if not defined SWIFT_SAMPLE_DATA_DIR set SWIFT_SAMPLE_DATA_DIR=%root_data_dir%\documentation
@set ModeUnitTests=Release
@set PlatformUnitTests=x64
@REM as of May 2024: migrate to 4.4 due to organisational requirements.
set R_VERSION=4.4.0
set R_PROG_DIR=c:\Program Files\R
set R_EXE="%R_PROG_DIR%\R-%R_VERSION%\bin\x64\R.exe"
set R_SCRIPT="%R_PROG_DIR%\R-%R_VERSION%\bin\x64\Rscript.exe"
call %cc_script_dir%\setup_dev Default 64
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=call to setup_dev failed
goto exit
)
@REM we expect a few variable to be defined by setup_dev
REM 202304 we'll use this script to copy matlab functions.
if not defined MATLAB_DIR (
set exit_code=1
set error_msg=MATLAB_DIR is not defined
goto exit
)
if not defined R_SRC_PKGS_DIR (
set exit_code=1
set error_msg=R_SRC_PKGS_DIR is not defined
goto exit
)
if not defined R_SRC_PKGS_DIR_UNIX (
set exit_code=1
set error_msg=R_SRC_PKGS_DIR_UNIX is not defined
goto exit
)
REM avoid issue writing to program installed library.
set rlib_dos=%userprofile%\Rlib
if not exist %rlib_dos% mkdir %rlib_dos%
set rlib_nix=%rlib_dos:\=/%
set R_LIBS_SITE=%rlib_nix%
REM if not calling build_r_packages.cmd:
%R_SCRIPT% %csiro_dir%\cruise-control\scripts\setup_dependent_packages.r
@REM set RCMD_BUILD_OPT_NO_VIGNETTE=--no-build-vignettes
@REM @REM call %cc_script_dir%\build_r_packages.cmd %RCMD_BUILD_OPT_NO_VIGNETTE%
@REM call %cc_script_dir%\build_r_packages.cmd
@REM @if %errorlevel% neq 0 (
@REM set exit_code=%errorlevel%
@REM set error_msg=build_r_packages failed
@REM goto exit
@REM )
REM #######################################################
REM Build binary packages
:: %R_VANILLA% CMD INSTALL --build %tarball_dir%\rClr_*.tar.gz
:: %R_VANILLA% CMD INSTALL --build %tarball_dir%\capigen_*.tar.gz
REM percentage - tilda and fI - expands %I to a fully qualified path name
REM check "for /?" in DOS
REM Let's be specific rather than bulk file pattern, just in case
REM un-double the %% to % if you copy/paste to cmd rather than call this as a script. Don't blame me.
REM Also, sorry for ugly redundancies. I dont trust to get Batch loops right yet: https://stackoverflow.com/questions/4334209/nested-batch-for-loops
set R_BUILD_CMD=%R_VANILLA% CMD INSTALL --build
if not exist %R_WINBIN_REPO_DIR% (
set error_msg=ERROR: %R_WINBIN_REPO_DIR% does not exist - should already have been created
set exit_code=1
goto exit
)
cd %R_WINBIN_REPO_DIR%
for %%I in ( %tarball_dir%\mhplot_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package mhplot failed
goto exit
)
for %%I in ( %tarball_dir%\cinterop_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package cinterop failed
goto exit
)
for %%I in ( %tarball_dir%\msvs_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package msvs failed
goto exit
)
for %%I in ( %tarball_dir%\uchronia_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package uchronia failed
goto exit
)
for %%I in ( %tarball_dir%\joki_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package joki failed
goto exit
)
for %%I in ( %tarball_dir%\swift_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package swift failed
goto exit
)
for %%I in ( %tarball_dir%\calibragem_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package calibragem failed
goto exit
)
for %%I in ( %tarball_dir%\qpp_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package qpp failed
goto exit
)
for %%I in ( %tarball_dir%\efts_*.tar.gz ) do ( %R_BUILD_CMD% %%~fI )
@if %errorlevel% neq 0 (
set exit_code=%errorlevel%
set error_msg=Building R package efts failed
goto exit
)
copy %tarball_dir%\*.tar.gz %R_SRC_PKGS_DIR%\
%R_VANILLA% -e "repo_winbin_dir <- '%R_WINBIN_REPO_DIR_UNIX%' ; tools::write_PACKAGES(dir=repo_winbin_dir, type='win.binary')"
%R_VANILLA% -e "library(tools) ; write_PACKAGES(dir='%R_SRC_PKGS_DIR_UNIX%%', type='source')"
REM MATLAB
set swift_src_dir=%csiro_dir%\swift
set swift_mat_src_dir=%swift_src_dir%\bindings\matlab
set fogss_src_dir=%csiro_dir%\qpp
set fogss_mat_src_dir=%fogss_src_dir%\bindings\matlab
set robocopy_opt=/MIR /MT:1 /R:2 /NJS /NJH /NFL /NDL /XX
if not exist %MATLAB_DIR%\swift mkdir %MATLAB_DIR%\swift
robocopy %swift_mat_src_dir% %MATLAB_DIR%\swift %robocopy_opt%
if not exist %MATLAB_DIR%\fogss mkdir %MATLAB_DIR%\fogss
robocopy %fogss_mat_src_dir% %MATLAB_DIR%\fogss %robocopy_opt%
:exit
if %exit_code% neq 0 (
echo ERROR: %error_msg%
) else (
echo INFO: build-r-pkgs completed without error
)
exit /b %exit_code%