forked from RoboSherlock/uima-uimacpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
buildsdk.cmd
294 lines (253 loc) · 11.4 KB
/
buildsdk.cmd
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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
@ECHO OFF
SETLOCAL
REM Licensed to the Apache Software Foundation (ASF) under one
REM or more contributor license agreements. See the NOTICE file
REM distributed with this work for additional information
REM regarding copyright ownership. The ASF licenses this file
REM to you under the Apache License, Version 2.0 (the
REM "License"); you may not use this file except in compliance
REM with the License. You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing,
REM software distributed under the License is distributed on an
REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
REM KIND, either express or implied. See the License for the
REM specific language governing permissions and limitations
REM under the License.
REM check args
if "%~1" == "" (
echo ERROR: SDK target directory not specified
echo ------
echo Usage: buildsdk targetDirectory [clean]
echo Builds SDK for distribution.
echo buildsdk must be run from the root of the uimacpp source tree.
echo The uimacpp solution must be built and installed by running
echo winmake in the src directory of the uimacpp source tree.
echo The doxygen documentation must be built by running the buildocs.cmd
echo in the docs directory of the uimacpp source tree.
echo Requires the following environment variables:
echo APR_HOME - root of the APR install. Required.
echo ICU_HOME - root of the ICU install. Required.
echo XERCES_HOME - root of the XERCES install. Required.
echo MSVCRT_HOME - directory with required msvc*.dll files
echo ACTIVEMQ_HOME - root of the XERCES install. Optional.
echo Optional environment variable:
echo UIMA_INSTALL - 'install' location of uimacpp build.
echo Defaults to ./install
goto error
)
set TARGET_DIR=%~1%
if not exist %TARGET_DIR% mkdir %TARGET_DIR%
if not exist %TARGET_DIR% (
echo ERROR: Could not create %TARGET_DIR%
goto error
)
set UIMA_DIR=%TARGET_DIR%\uimacpp
if "%APR_HOME%" == "" goto Missing
if "%ICU_HOME%" == "" goto Missing
if "%XERCES_HOME%" == "" goto Missing
echo.
echo SDK directory tree will be built in %UIMA_DIR%
echo.
REM check environment values and set default values
set UIMA_SOURCE=%cd%
if "%UIMA_INSTALLDIR%"=="" set UIMA_INSTALLDIR=%UIMA_SOURCE%\install
if "%UIMA_DOCDIR%" == "" set UIMA_DOCDIR=%UIMA_SOURCE%\docs
if "%UIMA_EXAMPLESDIR%" == "" set UIMA_EXAMPLESDIR=%UIMA_SOURCE%\examples
if "%UIMA_SCRIPTATORSDIR%" == "" set UIMA_SCRIPTATORSDIR=%UIMA_SOURCE%\scriptators
REM if "%UIMA_LICENSEDIR%" == "" set UIMA_LICENSEDIR=%UIMA_SOURCE%\licenses
if "%UIMA_TESTSRCDIR%" == "" set UIMA_TESTSRCDIR=%UIMA_SOURCE%\src\test\src
REM if not exist "%UIMA_INSTALLDIR%"\bin\runAECpp.exe goto uimaInstallPathInvalid
if not exist "%UIMA_INSTALLDIR%"\include\uima\api.hpp (
echo ERROR: UIMA_INSTALLDIR "%UIMA_INSTALLDIR%" is invalid.
echo Build and install UIMA C++ first.
echo devenv src\uimacpp.sln
goto error
)
if not exist "%UIMA_DOCDIR%"\html\index.html (
echo ERROR: UIMACPP doxygen docs not found in %UIMA_DOCDIR%
echo run the builddocs script in the %UIMA_DOCDIR% directory.
goto error
)
if not exist "%APR_HOME%"\include (
echo ERROR: APR_HOME "%APR_HOME%" is invalid.
goto error
)
if not exist "%ICU_HOME%"\include (
echo ERROR: ICU_HOME "%ICU_HOME%" is invalid.
goto error
)
if not exist "%XERCES_HOME%"\include (
echo ERROR: XERCES_HOME "%XERCES_HOME%" is invalid.
goto error
)
if not "%MSVCRT_HOME%" == "" goto check
set MSVCRT_HOME=C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT
echo MSVCRT_HOME undefined: trying: "%MSVCRT_HOME%"
:check
if not exist "%MSVCRT_HOME%"\msvc*.dll (
echo ERROR: MSVCRT_HOME "%MSVCRT_HOME%" is invalid.
goto error
)
if not exist "%UIMA_SCRIPTATORSDIR%"\uima.i (
echo ERROR: UIMA_SCRIPTATORSDIR "%UIMA_SCRIPTATORSDIR%" is invalid.
goto error
)
if "%2" == "clean" (
echo removing %UIMA_DIR%
rmdir %UIMA_DIR% /s /q
)
if exist %UIMA_DIR% (
echo ERROR: directory %UIMA_DIR% already exists. Please use "clean" option
goto error
)
REM Create the top-level directories
mkdir %UIMA_DIR%
mkdir %UIMA_DIR%\bin
mkdir %UIMA_DIR%\lib
mkdir %UIMA_DIR%\data
mkdir %UIMA_DIR%\docs
mkdir %UIMA_DIR%\include
mkdir %UIMA_DIR%\examples
mkdir %UIMA_DIR%\scriptators
REM mkdir %UIMA_DIR%\licenses
echo.
echo copying from %UIMA_INSTALLDIR%...
xcopy /Q /Y %UIMA_INSTALLDIR%\bin\uima.dll %UIMA_DIR%\bin
xcopy /Q /Y %UIMA_INSTALLDIR%\bin\uimaD.dll %UIMA_DIR%\bin
xcopy /Q /Y %UIMA_INSTALLDIR%\bin\runAECpp.exe %UIMA_DIR%\bin
xcopy /Q /Y %UIMA_INSTALLDIR%\bin\runAECppD.exe %UIMA_DIR%\bin
xcopy /Q /Y %UIMA_INSTALLDIR%\bin\deployCppService.exe %UIMA_DIR%\bin
xcopy /Q /Y %UIMA_INSTALLDIR%\bin\deployCppServiceD.exe %UIMA_DIR%\bin
xcopy /Q /Y %UIMA_INSTALLDIR%\data\resourceSpecifierSchema.xsd %UIMA_DIR%\data
xcopy /Q /Y %UIMA_INSTALLDIR%\lib\uima.lib %UIMA_DIR%\lib
xcopy /Q /Y %UIMA_INSTALLDIR%\lib\uimaD.lib %UIMA_DIR%\lib
mkdir %UIMA_DIR%\include\uima
xcopy /Q /Y %UIMA_INSTALLDIR%\include\uima\* %UIMA_DIR%\include\uima
echo.
echo copying from %UIMA_DOCDIR%...
xcopy /Q /Y %UIMA_DOCDIR%\overview_and_setup.html %UIMA_DIR%\docs
xcopy /Q /Y %UIMA_DOCDIR%\uimadoxytags.tag %UIMA_DIR%\docs
mkdir %UIMA_DIR%\docs\html
xcopy /Q /Y %UIMA_DOCDIR%\html\* %UIMA_DIR%\docs\html
echo.
echo copying from %UIMA_EXAMPLESDIR%...
xcopy /Q /Y %UIMA_EXAMPLESDIR%\*.html %UIMA_DIR%\examples
xcopy /Q /Y %UIMA_EXAMPLESDIR%\*.cmd %UIMA_DIR%\examples
mkdir %UIMA_DIR%\examples\data
xcopy /Q /Y %UIMA_EXAMPLESDIR%\data\* %UIMA_DIR%\examples\data
mkdir %UIMA_DIR%\examples\descriptors
xcopy /Q /Y %UIMA_EXAMPLESDIR%\descriptors\*.xml %UIMA_DIR%\examples\descriptors\*.xml
mkdir %UIMA_DIR%\examples\src
xcopy /Q /Y %UIMA_EXAMPLESDIR%\src\*.cpp %UIMA_DIR%\examples\src
xcopy /Q /Y %UIMA_EXAMPLESDIR%\src\*.vcproj %UIMA_DIR%\examples\src
xcopy /Q /Y %UIMA_EXAMPLESDIR%\src\*.sln %UIMA_DIR%\examples\src
REM copy the following file separately, as it is part of the fvt suite
xcopy /Q /Y %UIMA_TESTSRCDIR%\SofaStreamHandlerFile.cpp %UIMA_DIR%\examples\src
xcopy /Q /Y %UIMA_TESTSRCDIR%\SimpleTextSegmenter.cpp %UIMA_DIR%\examples\src
mkdir %UIMA_DIR%\examples\tutorial
mkdir %UIMA_DIR%\examples\tutorial\descriptors
mkdir %UIMA_DIR%\examples\tutorial\src
xcopy /Q /Y %UIMA_EXAMPLESDIR%\tutorial\*.* %UIMA_DIR%\examples\tutorial
xcopy /Q /Y %UIMA_EXAMPLESDIR%\tutorial\descriptors\*.xml %UIMA_DIR%\examples\tutorial\descriptors
xcopy /Q /Y %UIMA_EXAMPLESDIR%\tutorial\src\*.vcproj %UIMA_DIR%\examples\tutorial\src
REM copy the following files from the fvt suite
xcopy /Q /Y %UIMA_TESTSRCDIR%\MeetingAnnotator.cpp %UIMA_DIR%\examples\tutorial\src
echo.
echo copying from %APR_HOME%...
mkdir %UIMA_DIR%\include\apr
xcopy /Q /Y %APR_HOME%\include\apr*.h %UIMA_DIR%\include\apr
xcopy /Q /Y %APR_HOME%\Release\libapr-*.dll %UIMA_DIR%\bin
xcopy /Q /Y %APR_HOME%\Release\libapr-*.lib %UIMA_DIR%\lib
echo.
echo copying from %ICU_HOME%...
mkdir %UIMA_DIR%\include\unicode
xcopy /S /Q /Y %ICU_HOME%\include\unicode %UIMA_DIR%\include\unicode
xcopy /Q /Y %ICU_HOME%\bin\icu*.dll %UIMA_DIR%\bin
xcopy /Q /Y %ICU_HOME%\lib\icu*.lib %UIMA_DIR%\lib
echo.
echo copying from %XERCES_HOME%...
mkdir %UIMA_DIR%\include\xercesc
xcopy /S /Q /Y %XERCES_HOME%\include\xercesc %UIMA_DIR%\include\xercesc
xcopy /Q /Y %XERCES_HOME%\bin\xerces-c_*.dll %UIMA_DIR%\bin
xcopy /Q /Y %XERCES_HOME%\lib\xerces-c_*.lib %UIMA_DIR%\lib
del %UIMA_DIR%\bin\xerces-c*d.dll 2> NUL
del %UIMA_DIR%\lib\xerces-c*d.lib 2> NUL
del %UIMA_DIR%\lib\xerces-c_static* 2> NUL
echo.
echo copying MSVC redistribution libs
xcopy /q /y "%MSVCRT_HOME%"\msvc*.dll %UIMA_DIR%\bin
echo.
echo copying the scriptators...
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\uima.i %UIMA_DIR%\scriptators
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\ThreadAnnotator.h %UIMA_DIR%\scriptators
echo.
echo copying the Perl scriptator...
mkdir %UIMA_DIR%\scriptators\perl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\Perl.html %UIMA_DIR%\scriptators\perl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\Perl.html %UIMA_DIR%\docs
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\*.cpp %UIMA_DIR%\scriptators\perl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\*.pl %UIMA_DIR%\scriptators\perl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\*.xml %UIMA_DIR%\scriptators\perl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\*.vcproj %UIMA_DIR%\scriptators\perl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\perl\*.cmd %UIMA_DIR%\scriptators\perl
echo.
echo copying Python scriptator...
mkdir %UIMA_DIR%\scriptators\python
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\Python.html %UIMA_DIR%\scriptators\python
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\Python.html %UIMA_DIR%\docs
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\*.cpp %UIMA_DIR%\scriptators\python
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\*.py %UIMA_DIR%\scriptators\python
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\*.xml %UIMA_DIR%\scriptators\python
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\*.vcproj %UIMA_DIR%\scriptators\python
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\python\*.cmd %UIMA_DIR%\scriptators\python
echo.
echo copying Tcl scriptator...
mkdir %UIMA_DIR%\scriptators\tcl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\Tcl.html %UIMA_DIR%\scriptators\tcl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\Tcl.html %UIMA_DIR%\docs
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\*.cpp %UIMA_DIR%\scriptators\tcl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\*.tcl %UIMA_DIR%\scriptators\tcl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\*.xml %UIMA_DIR%\scriptators\tcl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\*.vcproj %UIMA_DIR%\scriptators\tcl
xcopy /Q /Y %UIMA_SCRIPTATORSDIR%\tcl\*.cmd %UIMA_DIR%\scriptators\tcl
echo.
echo copying licenses...
REM copy Apache licences
xcopy /Q /Y %UIMA_SOURCE%\NOTICE.4bin %UIMA_DIR%
ren %UIMA_DIR%\NOTICE.4bin NOTICE
xcopy /Q /Y %UIMA_SOURCE%\LICENSE %UIMA_DIR%
xcopy /Q /Y %UIMA_SOURCE%\RELEASE_NOTES.* %UIMA_DIR%
xcopy /Q /Y %UIMA_SOURCE%\README.4bin %UIMA_DIR%
ren %UIMA_DIR%\README.4bin README
REM mkdir %UIMA_DIR%\licenses\apr
REM xcopy /Q /Y %APR_HOME%\LICENSE* %UIMA_DIR%\licenses\apr
REM if not exist %UIMA_DIR%\licenses\icu mkdir %UIMA_DIR%\licenses\icu
REM xcopy /Q /Y %ICU_HOME%\LICENSE* %UIMA_DIR%\licenses\icu
REM if not exist %UIMA_DIR%\licenses\xerces mkdir %UIMA_DIR%\licenses\xerces
REM xcopy /Q /Y %XERCES_HOME%\LICENSE* %UIMA_DIR%\licenses\xerces
if not "%ACTIVEMQ_HOME%" == "" (
echo.
echo copying libaprutil and libapriconv ...
xcopy /Q /Y %APR_HOME%\..\apr-util\Release\libaprutil*.dll %UIMA_DIR%\bin
xcopy /Q /Y %APR_HOME%\..\apr-util\Release\libaprutil*.lib %UIMA_DIR%\lib
xcopy /Q /Y %APR_HOME%\..\apr-iconv\Release\libapriconv*.dll %UIMA_DIR%\bin
xcopy /Q /Y %APR_HOME%\..\apr-iconv\Release\libapriconv*.lib %UIMA_DIR%\lib
echo.
echo copying from %ACTIVEMQ_HOME%...
xcopy /Q /Y %ACTIVEMQ_HOME%\vs2008-build\win32\ReleaseDLL\activemq-cpp.dll %UIMA_DIR%\bin
)
echo cleaning the target tree
for /R %UIMA_DIR% %%d in (.) do del %%d\*~ 2> NUL
echo DONE SDK image in %UIMA_DIR%
echo Please check that all copies were successful
goto end
:Missing
echo APR_HOME and ICU_HOME and XERCES_HOME must all be specified
echo and must contain the directories produced by their "install" builds
goto end
:error
echo FAILED: UIMA C++ SDK was not built.
:end