@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