blob: d6b011e24827254541de28da365264eed4d0e60f [file] [log] [blame]
@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