| # Possible test configurations for comprehensive feature coverage: |
| # |
| # Cygwin |
| # ------ |
| # 1) -Dnetwork:BOOL=ON -Dnetwork-accessor=curl -Dmessage-loader=icu -Dtranscoder=iconv |
| # 2) -Dnetwork:BOOL=ON -Dnetwork-accessor=socket -Dmessage-loader=inmemory -Dtranscoder=icu |
| # 3) -Dnetwork:BOOL=OFF" |
| # 4) (none) |
| # |
| # MinGW |
| # ----- |
| # 1) -Dnetwork:BOOL=ON -Dtranscoder=iconv |
| # 2) -Dnetwork:BOOL=ON -Dtranscoder=windows |
| # 3) -Dnetwork:BOOL=OFF |
| # 4) (none) |
| # |
| # MSVC |
| # ---- |
| # 1) -Dnetwork:BOOL=ON -Dmessage-loader=icu -Dtranscoder=iconv |
| # 2) -Dnetwork:BOOL=ON -Dnetwork-accessor=winsock -Dmessage-loader=inmemory -Dtranscoder=icu |
| # 3) -Dnetwork:BOOL=ON -Dtranscoder=windows |
| # 4) -Dnetwork:BOOL=OFF |
| # 5) (none) |
| # |
| # To keep the test matrix size manageable, only a subset of these are |
| # used, to test each settable option, but not in every possible |
| # combination. |
| |
| environment: |
| AV_PROJECTS: 'c:\projects' |
| AV_XERCES_DOWNLOAD: 'c:\projects\download' |
| AV_XERCES_TOOLS: 'c:\projects\tools' |
| AV_XERCES_SOURCE: 'c:\projects\xerces-c' |
| AV_XERCES_BUILD: 'c:\projects\build' |
| AV_XERCES_INSTALL: 'c:/projects/libs' |
| |
| matrix: |
| - compiler: cygwin |
| configuration: Release |
| generator: Unix Makefiles |
| shared: ON |
| network: ON |
| netaccessor: curl |
| msgloader: inmemory |
| transcoder: iconv |
| mutexmanager: posix |
| xmlch: uint16_t |
| - compiler: cygwin |
| configuration: Debug |
| generator: Unix Makefiles |
| shared: OFF |
| network: OFF |
| netaccessor: |
| msgloader: |
| transcoder: |
| mutexmanager: standard |
| xmlch: char16_t |
| - compiler: mingw |
| configuration: Release |
| generator: Ninja |
| shared: ON |
| network: ON |
| netaccessor: |
| msgloader: |
| transcoder: windows |
| mutexmanager: windows |
| xmlch: wchar_t |
| - compiler: mingw |
| configuration: Debug |
| generator: Ninja |
| shared: OFF |
| network: |
| netaccessor: |
| msgloader: |
| transcoder: iconv |
| mutexmanager: |
| xmlch: uint16_t |
| - compiler: vc14 |
| configuration: Release |
| generator: Visual Studio 14 2015 Win64 |
| shared: ON |
| network: ON |
| netaccessor: |
| msgloader: icu |
| transcoder: windows |
| mutexmanager: windows |
| xmlch: wchar_t |
| mfc: ON |
| - compiler: vc14 |
| configuration: Debug |
| generator: Visual Studio 14 2015 Win64 |
| shared: OFF |
| network: OFF |
| netaccessor: winsock |
| msgloader: inmemory |
| transcoder: icu |
| mutexmanager: standard |
| xmlch: char16_t |
| mfc: OFF |
| |
| # Operating system (build VM template) |
| os: 'Visual Studio 2015' |
| |
| # clone directory |
| clone_folder: 'c:\projects\xerces-c' |
| clone_depth: 5 |
| |
| platform: x64 |
| |
| init: |
| - git config --global core.autocrlf input |
| |
| before_build: |
| - 'FOR /F "tokens=* USEBACKQ" %%F IN (`C:\cygwin64\bin\cygpath -u %AV_XERCES_DOWNLOAD%`) DO SET AV_XERCES_CYG_DOWNLOAD=%%F' |
| - 'FOR /F "tokens=* USEBACKQ" %%F IN (`C:\cygwin64\bin\cygpath -u %AV_XERCES_TOOLS%`) DO SET AV_XERCES_CYG_TOOLS=%%F' |
| - 'FOR /F "tokens=* USEBACKQ" %%F IN (`C:\cygwin64\bin\cygpath -u %AV_XERCES_SOURCE%`) DO SET AV_XERCES_CYG_SOURCE=%%F' |
| - 'FOR /F "tokens=* USEBACKQ" %%F IN (`C:\cygwin64\bin\cygpath -u %AV_XERCES_INSTALL%`) DO SET AV_XERCES_CYG_INSTALL=%%F' |
| - 'if NOT EXIST "%AV_XERCES_DOWNLOAD%\" mkdir %AV_XERCES_DOWNLOAD%' |
| - 'if NOT EXIST "%AV_XERCES_TOOLS%\" mkdir %AV_XERCES_TOOLS%' |
| - 'if %compiler%==cygwin C:\Cygwin64\setup-x86_64 -q -R C:\Cygwin64 -s http://cygwin.mirror.constant.com -l %AV_XERCES_DOWNLOAD%\cygwin -P libcurl-devel,cmake' |
| - if [%msgloader%] == [icu] set AV_ICU_BUILD=true |
| - if [%transcoder%] == [icu] set AV_ICU_BUILD=true |
| - 'if EXIST "%AV_PROJECTS%\icu" set AV_ICU_BUILD=false' |
| - 'set "PATH=C:\Program Files (x86)\cmake\bin;%AV_XERCES_TOOLS%;%PATH%"' |
| - 'if %compiler%==cygwin set "PATH=C:\Cygwin64\bin;%PATH%"' |
| - 'if %compiler%==mingw set "PATH=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%"' |
| - set "AV_CMAKE_ARGS=-DBUILD_SHARED_LIBS:BOOL=%shared%" |
| - set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dnetwork:BOOL=%network%" |
| - if NOT [%netaccessor%] == [] set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dnetwork-accessor=%netaccessor%" |
| - if NOT [%msgloader%] == [] set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dmessage-loader=%msgloader%" |
| - if NOT [%transcoder%] == [] set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dtranscoder=%transcoder%" |
| - if NOT [%mutexmanager%] == [] set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dmutex-manager=%mutexmanager%" |
| - if NOT [%xmlch%] == [] set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dxmlch-type=%xmlch%" |
| - if NOT [%mfc%] == [] set "AV_CMAKE_ARGS=%AV_CMAKE_ARGS% -Dmfc-debug=%mfc%" |
| - set "AV_XERCES_CMAKE_SOURCE=%AV_XERCES_SOURCE%" |
| - set "AV_XERCES_CMAKE_INSTALL=%AV_XERCES_INSTALL%" |
| - 'if %compiler%==cygwin set "AV_XERCES_CMAKE_SOURCE=%AV_XERCES_CYG_SOURCE%' |
| - 'if %compiler%==cygwin set "AV_XERCES_CMAKE_INSTALL=%AV_XERCES_CYG_INSTALL%' |
| - 'C:\cygwin64\bin\bash %AV_XERCES_CYG_SOURCE%/scripts/ci-appveyor-setup' |
| - set ICU_PLATFORM=x64 |
| - if [%platform%] == [x86] set ICU_PLATFORM=Win32 |
| - 'if [%AV_ICU_BUILD%] == [true] cd "%AV_PROJECTS%\icu"' |
| - 'if [%AV_ICU_BUILD%] == [true] echo "Running msbuild to build ICU"' |
| - 'if [%AV_ICU_BUILD%] == [true] call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %platform%' |
| - 'if [%AV_ICU_BUILD%] == [true] msbuild source\allinone\allinone.sln /p:Configuration=%configuration% /p:Platform=%ICU_PLATFORM% /m' |
| - 'if [%AV_ICU_BUILD%] == [true] set "PATH=%AV_PROJECTS%\icu\bin;%AV_PROJECTS%\icu\bin64;%PATH%"' |
| - 'if [%AV_ICU_BUILD%] == [true] set "CMAKE_PREFIX_PATH=%AV_PROJECTS%\icu"' |
| - mkdir %AV_XERCES_BUILD% |
| - cd %AV_XERCES_BUILD% |
| - echo Running cmake -G "%generator%" -DCMAKE_INSTALL_PREFIX=%AV_XERCES_CMAKE_INSTALL% -DCMAKE_BUILD_TYPE=%configuration% %AV_XERCES_CMAKE_SOURCE% |
| |
| - cmake -G "%generator%" -DCMAKE_INSTALL_PREFIX=%AV_XERCES_CMAKE_INSTALL% -DCMAKE_BUILD_TYPE=%configuration% %AV_CMAKE_ARGS% %AV_XERCES_CMAKE_SOURCE% |
| |
| build_script: |
| - cd %AV_XERCES_BUILD% |
| - cmake --build . --config %configuration% |
| - cmake --build . --config %configuration% --target install |
| |
| after_build: |
| - cd %AV_XERCES_INSTALL% |
| - '7z a %AV_XERCES_SOURCE%\xerces-c.zip * -tzip' |
| |
| before_test: |
| - cd %AV_XERCES_BUILD% |
| - ctest -V -C %configuration% |