diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 930a442fa60d12ba1eb63b2d6d7809d07b508ffe..8041090824b7643a1996c9698db319e5b6d8708e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -52,10 +52,13 @@ cppcheck: paths: - cppcheck.log -VS2015-Qt-5.6.0-x64: - script: "CI\\VS2015-Qt-5.6.0-x64.bat" +VS2015-Qt-5.6.2-x64: + script: "CI\\ci-windows.bat" variables: GIT_SUBMODULE_STRATEGY: recursive + ARCHITECTURE: "x64" + QT_VERSION: "Qt5.6.2" + COMPILER: "VS2015" tags: - VS2015 - Qt56 @@ -63,10 +66,13 @@ VS2015-Qt-5.6.0-x64: paths: - rel/*.exe -VS2015-Qt-5.6.0-x32: - script: "CI\\VS2015-Qt-5.6.0-x32.bat" +VS2015-Qt-5.6.2-x32: + script: "CI\\ci-windows.bat" variables: GIT_SUBMODULE_STRATEGY: recursive + ARCHITECTURE: "x32" + QT_VERSION: "Qt5.6.2" + COMPILER: "VS2015" tags: - VS2015 - Qt56 @@ -74,11 +80,39 @@ VS2015-Qt-5.6.0-x32: paths: - rel/*.exe +VS2015-Qt-5.9.0-x64: + script: "CI\\ci-windows.bat" + variables: + GIT_SUBMODULE_STRATEGY: recursive + ARCHITECTURE: "x64" + QT_VERSION: "Qt5.9.0" + COMPILER: "VS2015" + tags: + - VS2015 + artifacts: + paths: + - rel/*.exe + +VS2015-Qt-5.9.0-x32: + script: "CI\\ci-windows.bat" + variables: + GIT_SUBMODULE_STRATEGY: recursive + ARCHITECTURE: "x32" + QT_VERSION: "Qt5.9.0" + COMPILER: "VS2015" + tags: + - VS2015 + artifacts: + paths: + - rel/*.exe VS2013-Qt-5.5.1-x64: - script: "CI\\VS2013-Qt-5.5.1-x64.bat" + script: "CI\\ci-windows.bat" variables: GIT_SUBMODULE_STRATEGY: recursive + ARCHITECTURE: "x64" + QT_VERSION: "Qt5.5.1" + COMPILER: "VS2013" tags: - VS2013 - Qt551 diff --git a/CI/VS2013-Qt-5.5.1-x64.bat b/CI/VS2013-Qt-5.5.1-x64.bat deleted file mode 100644 index 31eeb56f15f72784567f9728aabd22c57bb450eb..0000000000000000000000000000000000000000 --- a/CI/VS2013-Qt-5.5.1-x64.bat +++ /dev/null @@ -1,81 +0,0 @@ -::######################################## -::# Fetch test data -::######################################## -rmdir /Q /S TestData -:: clone libraries git (set env variable to GIT_SSH_COMMAND maybe use setx once and remove this line as this key won't change) -set GIT_SSH_COMMAND=ssh -i E:\\\gitlab\\\id_rsa -git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData - -mkdir rel -cd rel - -del *.exe - -:: use 4 threads for parallel compilation of the project -set CL=/MP4 - -set ARCHITECTURE=x64 -set ARCH_VS= Win64 -set STRING_ARCH=64-Bit - -set QT_REV=5.5 -set QT_SUFFIX= - -set LIBPATH_BASE=C:\libs\VS2013 -set GTESTVERSION=gtest-1.6.0 -set GENERATOR=Visual Studio 12%ARCH_VS% -set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com" - -set QT_VERSION=Qt5.5.1 -set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=C:\Qt\%QT_VERSION%-vs2013-%STRING_ARCH%\%QT_REV%\msvc2013_64%QT_SUFFIX% - -set GLUT_INCLUDE_DIR=C:\libs\VS2013\%ARCHITECTURE%\freeglut-2.8.1\include -set GLUT_GLUT_LIBRARY=C:\libs\VS2013\%ARCHITECTURE%\freeglut-2.8.1\lib\freeglut.lib -set GLEW_INCLUDE_DIR=C:\libs\VS2013\%ARCHITECTURE%\glew-1.10.0\include -set GLEW_LIBRARY_DIR=C:\libs\VS2013\%ARCHITECTURE%\glew-1.10.0\lib\glew32.lib - -set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%GLUT_INCLUDE_DIR%" -DGLUT_glut_LIBRARY="%GLUT_GLUT_LIBRARY%" -DGLEW_INCLUDE_DIR="%GLEW_INCLUDE_DIR%" -DGLEW_LIBRARY="%GLEW_LIBRARY_DIR%" - -"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -%VS_PATH% /Build "Release" OpenFlipper.sln /Project "ALL_BUILD" - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - - -set BUILD_PLATFORM=VS2013 - -del *.exe - -"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. - -%VS_PATH% /Build "Release" OpenFlipper.sln /Project "PACKAGE" - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -move OpenFlipper-*.exe "OpenFlipper-Free-Git-Master-%CI_BUILD_REF%-%BUILD_PLATFORM%-%STRING_ARCH%-%QT_VERSION%.exe" - -cd tests -copy ..\Build\Qt*.dll testBinaries -copy ..\Build\icu*.dll testBinaries -run_tests.bat - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -cd .. - -cd Build - -dir - - - - - - - - - - diff --git a/CI/VS2015-Qt-5.6.0-x32.bat b/CI/VS2015-Qt-5.6.0-x32.bat deleted file mode 100644 index 13817c33c80d958979545e9fdce9e8fdbaa6aa9a..0000000000000000000000000000000000000000 --- a/CI/VS2015-Qt-5.6.0-x32.bat +++ /dev/null @@ -1,81 +0,0 @@ -::######################################## -::# Fetch test data -::######################################## -rmdir /Q /S TestData -:: clone libraries git (set env variable to GIT_SSH_COMMAND maybe use setx once as this key won't change) -set GIT_SSH_COMMAND=ssh -i E:\\\gitlab\\\id_rsa -git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData - -mkdir rel -cd rel - -del *.exe - -:: use 4 threads for parallel compilation of the project -set CL=/MP4 - -set ARCHITECTURE=x32 -set ARCH_VS= -set STRING_ARCH=32-Bit - -set QT_REV=5.6 -set QT_SUFFIX= - -set LIBPATH_BASE=C:\libs\VS2015 -set GTESTVERSION=gtest-1.7.0 -set GENERATOR=Visual Studio 14%ARCH_VS% -set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com" - -set QT_VERSION=Qt5.6.0 -set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=C:\Qt\%QT_VERSION%-vs2015-%STRING_ARCH%\%QT_REV%\msvc2015%QT_SUFFIX% - -set GLUT_INCLUDE_DIR=C:\libs\VS2015\%ARCHITECTURE%\freeglut-3.0.0\include -set GLUT_GLUT_LIBRARY=C:\libs\VS2015\%ARCHITECTURE%\freeglut-3.0.0\lib\freeglut.lib -set GLEW_INCLUDE_DIR=C:\libs\VS2015\%ARCHITECTURE%\glew-1.13.0\include -set GLEW_LIBRARY_DIR=C:\libs\VS2015\%ARCHITECTURE%\glew-1.13.0\lib\glew32.lib - -set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%GLUT_INCLUDE_DIR%" -DGLUT_glut_LIBRARY="%GLUT_GLUT_LIBRARY%" -DGLEW_INCLUDE_DIR="%GLEW_INCLUDE_DIR%" -DGLEW_LIBRARY="%GLEW_LIBRARY_DIR%" - -"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -%VS_PATH% /Build "Release" OpenFlipper.sln /Project "ALL_BUILD" - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - - -set BUILD_PLATFORM=VS2015 - -del *.exe - -"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. - -%VS_PATH% /Build "Release" OpenFlipper.sln /Project "PACKAGE" - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -move OpenFlipper-*.exe "OpenFlipper-Free-Git-Master-%CI_BUILD_REF%-%BUILD_PLATFORM%-%STRING_ARCH%-%QT_VERSION%.exe" - -cd tests -copy ..\Build\Qt*.dll testBinaries -copy ..\Build\icu*.dll testBinaries -run_tests.bat - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -cd .. - -cd Build - -dir - - - - - - - - - - diff --git a/CI/VS2015-Qt-5.6.0-x64.bat b/CI/VS2015-Qt-5.6.0-x64.bat deleted file mode 100644 index 99bd56aa7a219d2851631c88d08ea7616001df01..0000000000000000000000000000000000000000 --- a/CI/VS2015-Qt-5.6.0-x64.bat +++ /dev/null @@ -1,81 +0,0 @@ -::######################################## -::# Fetch test data -::######################################## -rmdir /Q /S TestData -:: clone libraries git (set env variable to GIT_SSH_COMMAND maybe use setx once as this key won't change) -set GIT_SSH_COMMAND=ssh -i E:\\\gitlab\\\id_rsa -git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData - -mkdir rel -cd rel - -del *.exe - -:: use 4 threads for parallel compilation of the project -set CL=/MP4 - -set ARCHITECTURE=x64 -set ARCH_VS= Win64 -set STRING_ARCH=64-Bit - -set QT_REV=5.6 -set QT_SUFFIX= - -set LIBPATH_BASE=C:\libs\VS2015 -set GTESTVERSION=gtest-1.7.0 -set GENERATOR=Visual Studio 14%ARCH_VS% -set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com" - -set QT_VERSION=Qt5.6.0 -set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=C:\Qt\%QT_VERSION%-vs2015-%STRING_ARCH%\%QT_REV%\msvc2015_64%QT_SUFFIX% - -set GLUT_INCLUDE_DIR=C:\libs\VS2015\%ARCHITECTURE%\freeglut-3.0.0\include -set GLUT_GLUT_LIBRARY=C:\libs\VS2015\%ARCHITECTURE%\freeglut-3.0.0\lib\freeglut.lib -set GLEW_INCLUDE_DIR=C:\libs\VS2015\%ARCHITECTURE%\glew-1.13.0\include -set GLEW_LIBRARY_DIR=C:\libs\VS2015\%ARCHITECTURE%\glew-1.13.0\lib\glew32.lib - -set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%GLUT_INCLUDE_DIR%" -DGLUT_glut_LIBRARY="%GLUT_GLUT_LIBRARY%" -DGLEW_INCLUDE_DIR="%GLEW_INCLUDE_DIR%" -DGLEW_LIBRARY="%GLEW_LIBRARY_DIR%" - -"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -%VS_PATH% /Build "Release" OpenFlipper.sln /Project "ALL_BUILD" - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - - -set BUILD_PLATFORM=VS2015 - -del *.exe - -"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. - -%VS_PATH% /Build "Release" OpenFlipper.sln /Project "PACKAGE" - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -move OpenFlipper-*.exe "OpenFlipper-Free-Git-Master-%CI_BUILD_REF%-%BUILD_PLATFORM%-%STRING_ARCH%-%QT_VERSION%.exe" - -cd tests -copy ..\Build\Qt*.dll testBinaries -copy ..\Build\icu*.dll testBinaries -run_tests.bat - -IF %errorlevel% NEQ 0 exit /b %errorlevel% - -cd .. - -cd Build - -dir - - - - - - - - - - diff --git a/CI/ci-windows.bat b/CI/ci-windows.bat new file mode 100644 index 0000000000000000000000000000000000000000..ce906bda5f7dac2395507c937ba57280888559cb --- /dev/null +++ b/CI/ci-windows.bat @@ -0,0 +1,163 @@ +@echo off +::######################################## +::# Fetch test data +::######################################## +rmdir /Q /S TestData +:: clone libraries git (set env variable to GIT_SSH_COMMAND maybe use setx once as this key won't change) +set GIT_SSH_COMMAND=ssh -i E:\\\gitlab\\\id_rsa +git clone git@roosevelt.informatik.rwth-aachen.de:moebius/OpenFlipper-Test-Data.git TestData + +mkdir rel +cd rel + +del *.exe + +:: use 4 threads for parallel compilation of the project +set CL=/MP4 + +:: determine VS version and set variables +if "%COMPILER%" == "VS2012" ( +set QT_COMPILERPREFIX=msvc2012 +set VS_COMPILERVERSION_LONG=11.0 +set VS_COMPILERVERSION_SHORT=11 +set VS_EDITION_YEAR=2012 +) +if "%COMPILER%" == "VS2013" ( +set QT_COMPILERPREFIX=msvc2013 +set VS_COMPILERVERSION_LONG=12.0 +set VS_COMPILERVERSION_SHORT=12 +set VS_EDITION_YEAR=2013 +) +if "%COMPILER%" == "VS2015" ( +set QT_COMPILERPREFIX=msvc2015 +set VS_COMPILERVERSION_LONG=14.0 +set VS_COMPILERVERSION_SHORT=14 +set VS_EDITION_YEAR=2015 +) + +set BUILD_PLATFORM=%COMPILER% + +:: determine architecture and set variables +if "%ARCHITECTURE%" == "x64" ( +set ARCHBITS=_64 +set ARCH_VS= Win64 +set STRING_ARCH=64-Bit +) else ( +set ARCHBITS= +set ARCH_VS= +set STRING_ARCH=32-Bit +) + +set GENERATOR=Visual Studio %VS_COMPILERVERSION_SHORT% %VS_EDITION_YEAR%%ARCH_VS% +set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio %VS_COMPILERVERSION_LONG%\Common7\IDE\devenv.com" + +:: determine Qt Version and set variables +if "%QT_VERSION%" == "Qt5.5.1" ( +set QT_REV_LONG=5.5.1 +set QT_REV=5.5 +) +if "%QT_VERSION%" == "Qt5.6.2" ( +set QT_REV_LONG=5.6.2 +set QT_REV=5.6 +) +if "%QT_VERSION%" == "Qt5.7.0" ( +set QT_REV_LONG=5.7.0 +set QT_REV=5.7 +) +if "%QT_VERSION%" == "Qt5.8.0" ( +set QT_REV_LONG=5.8.0 +set QT_REV=5.8 +) +if "%QT_VERSION%" == "Qt5.9.0" ( +set QT_REV_LONG=5.9.0 +set QT_REV=5.9 +) + +set QT_SUFFIX= +set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\%QT_VERSION%\%QT_REV%\%QT_COMPILERPREFIX%%ARCHBITS%%QT_SUFFIX% + +:: set up Libraty Paths +set LIBPATH_BASE=E:\libs\%COMPILER% +set CMAKE_WINDOWS_LIBS_DIR=E:\libs + +:: freeglut assume we use freeglut 3.0.0 if not try 2.8.1 if not sanitize the libs folder +if exist %LIBPATH_BASE%\%ARCHITECTURE%\freeglut-3.0.0\include ( + set GLUT_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-3.0.0\include + set GLUT_GLUT_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-3.0.0\lib\freeglut.lib +) else ( + if exist %LIBPATH_BASE%\%ARCHITECTURE%\freeglut-2.8.1\include ( + set GLUT_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-2.8.1\include + set GLUT_GLUT_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-2.8.1\lib\freeglut.lib + ) else ( + echo "Error: No suitable version of freeglut found!" + exit + ) +) + +:: check for gtest version 1.6 or 1.7 use the highest found version +for /l %%x in (6, 1, 7) do ( + if exist %LIBPATH_BASE%\%ARCHITECTURE%\gtest-1.%%x.0 ( + set GTESTVERSION=gtest-1.%%x.0 + ) +) + +:: check for glew version 6.1.1 to 6.1.3 use the highest found version +for /l %%x in (0, 1, 3) do ( + if exist %LIBPATH_BASE%\%ARCHITECTURE%\glew-1.1%%x.0\include ( + set GLEW_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\glew-1.1%%x.0\include + set GLEW_LIBRARY_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\glew-1.1%%x.0\lib\glew32.lib + ) +) + +:: check for qwt version 6.1.1 to 6.1.3 use the highest found version +for /l %%x in (0, 1, 3) do ( + if exist %LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\include ( + set QWT6_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\include + set QWT6_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\lib\qwt.lib + set QWT6_LIBRARY_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\lib + ) +:: unfortunately qwt is not named consistently in our repos so we also have to check for a different folder named + if exist %LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\include ( + set QWT6_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\include + set QWT6_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\lib\qwt.lib + set QWT6_LIBRARY_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\lib + ) +) + + +set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%GLUT_INCLUDE_DIR%" -DGLUT_glut_LIBRARY="%GLUT_GLUT_LIBRARY%" -DGLEW_INCLUDE_DIR="%GLEW_INCLUDE_DIR%" -DGLEW_LIBRARY="%GLEW_LIBRARY_DIR%" -DQWT6_INCLUDE_DIR=%QWT6_INCLUDE_DIR% -DQWT6_LIBRARY=%QWT6_LIBRARY% -DQWT6_LIBRARY_DIR=%QWT6_LIBRARY_DIR% -DCMAKE_WINDOWS_LIBS_DIR=%CMAKE_WINDOWS_LIBS_DIR% + +"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. + +IF %errorlevel% NEQ 0 exit /b %errorlevel% + +:: build Open-Flipper + +%VS_PATH% /Build "Release" OpenFlipper.sln /Project "ALL_BUILD" + +IF %errorlevel% NEQ 0 exit /b %errorlevel% + +del *.exe + +:: collect dlls and copy them to Openflipper dir + +"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% .. + +%VS_PATH% /Build "Release" OpenFlipper.sln /Project "PACKAGE" + +IF %errorlevel% NEQ 0 exit /b %errorlevel% + +move OpenFlipper-*.exe "OpenFlipper-Free-Git-Master-%CI_BUILD_REF%-%BUILD_PLATFORM%-%STRING_ARCH%-%QT_VERSION%.exe" + +cd tests +copy ..\Build\Qt*.dll testBinaries +copy ..\Build\icu*.dll testBinaries +run_tests.bat + +IF %errorlevel% NEQ 0 exit /b %errorlevel% + +cd .. + +cd Build + +dir \ No newline at end of file