Merge branch 'build_cmake' of https://github.com/TcT2k/wxWidgets
Add CMake-based build system. Merge the original branch without any changes except for resolving the conflict due to moving the contents of .travis.yml to a separate file by propagating the changes done in this file since then to the new script and rerunning ./build/update-setup-h and ./build/cmake/update_files.py to update the file lists changed in the meanwhile. Closes https://github.com/wxWidgets/wxWidgets/pull/330
This commit is contained in:
@@ -50,3 +50,101 @@ perl -i".bak" -pe "s/^test -n \".DJDIR\"/#$&/" configure
|
||||
bash -lc "g++ --version"
|
||||
bash -lc "LDFLAGS=-L/usr/lib/w32api ./configure --disable-optimise --disable-shared && make -j3 && make -j3 -C tests"
|
||||
goto :eof
|
||||
|
||||
:cmake_msys
|
||||
if "%MSYSTEM%"=="" set MSYSTEM=MINGW32
|
||||
path C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin;%path%
|
||||
set GENERATOR=MSYS Makefiles
|
||||
set SKIPTESTS=1
|
||||
set SKIPINSTALL=1
|
||||
set CMAKE_BUILD_FLAGS=-- -j3
|
||||
goto cmake
|
||||
|
||||
:cmake_cygwin
|
||||
C:\cygwin\setup-x86.exe -qnNdO -R C:/cygwin -s http://cygwin.mirror.constant.com -l C:/cygwin/var/cache/setup -P libjpeg-devel -P libpng-devel -P libtiff-devel -P libexpat-devel
|
||||
path c:\cygwin\bin;%path%
|
||||
set GENERATOR=Unix Makefiles
|
||||
set SKIPTESTS=1
|
||||
set SKIPINSTALL=1
|
||||
set CMAKE_BUILD_FLAGS=-- -j3
|
||||
goto cmake
|
||||
|
||||
:cmake_mingw
|
||||
:: CMake requires a path without sh (added by git on AppVeyor)
|
||||
path C:\Program Files (x86)\CMake\bin;C:\MinGW\bin
|
||||
set GENERATOR=MinGW Makefiles
|
||||
set SKIPTESTS=1
|
||||
set CMAKE_BUILD_FLAGS=-- -j3
|
||||
goto cmake
|
||||
|
||||
:cmake
|
||||
echo --- Tools versions:
|
||||
cmake --version
|
||||
|
||||
if "%SHARED%"=="" set SHARED=ON
|
||||
if "%CONFIGURATION%"=="" set CONFIGURATION=Release
|
||||
|
||||
if "%SKIPTESTS%"=="1" (
|
||||
set BUILD_TESTS=OFF
|
||||
) else (
|
||||
set BUILD_TESTS=CONSOLE_ONLY
|
||||
)
|
||||
echo.
|
||||
echo --- Generating project files
|
||||
echo.
|
||||
set WX_INSTALL_PATH=%HOMEDRIVE%%HOMEPATH%\wx_install_target
|
||||
mkdir %WX_INSTALL_PATH%
|
||||
mkdir build_cmake
|
||||
pushd build_cmake
|
||||
cmake -G "%GENERATOR%" -DwxBUILD_TESTS=%BUILD_TESTS% -DCMAKE_INSTALL_PREFIX=%WX_INSTALL_PATH% -DwxBUILD_SHARED=%SHARED% %CMAKE_CONFIGURE_FLAGS% ..
|
||||
if ERRORLEVEL 1 goto error
|
||||
echo.
|
||||
echo --- Starting the build
|
||||
echo.
|
||||
cmake --build . --config %CONFIGURATION% %CMAKE_BUILD_FLAGS%
|
||||
if ERRORLEVEL 1 goto error
|
||||
|
||||
:: Package binaries as artifact
|
||||
where 7z
|
||||
if ERRORLEVEL 1 goto cmake_test
|
||||
7z a -r wxWidgets_Binaries.zip lib/*.*
|
||||
appveyor PushArtifact wxWidgets_Binaries.zip
|
||||
|
||||
:cmake_test
|
||||
if NOT "%SKIPTESTS%"=="1" (
|
||||
echo.
|
||||
echo --- Running tests
|
||||
echo.
|
||||
ctest -V -C %CONFIGURATION% --interactive-debug-mode 0 .
|
||||
if ERRORLEVEL 1 goto error
|
||||
)
|
||||
if NOT "%SKIPINSTALL%"=="1" (
|
||||
echo.
|
||||
echo --- Installing
|
||||
echo.
|
||||
cmake --build . --config %CONFIGURATION% --target install
|
||||
if ERRORLEVEL 1 goto error
|
||||
popd
|
||||
|
||||
echo.
|
||||
echo --- Test installed library
|
||||
echo.
|
||||
set WXWIN=%WX_INSTALL_PATH%
|
||||
mkdir build_cmake_install_test
|
||||
pushd build_cmake_install_test
|
||||
echo --- Configure minimal sample
|
||||
cmake -G "%GENERATOR%" ..\samples\minimal
|
||||
if ERRORLEVEL 1 goto error
|
||||
echo --- Building minimal sample with installed library
|
||||
cmake --build . --config %CONFIGURATION%
|
||||
if ERRORLEVEL 1 goto error
|
||||
popd
|
||||
)
|
||||
popd
|
||||
|
||||
goto :eof
|
||||
|
||||
:error
|
||||
echo.
|
||||
echo --- Build failed !
|
||||
echo.
|
||||
|
58
build/tools/travis-ci.sh
Executable file
58
build/tools/travis-ci.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# This script is used by Travis CI to configure, build and test wxWidgets
|
||||
|
||||
set -e
|
||||
|
||||
case $wxTOOLSET in
|
||||
cmake)
|
||||
if [ `uname -s` = "Linux" ] && [ `lsb_release -cs` = "precise" ]; then
|
||||
echo Updating CMake...
|
||||
wget -O - https://cmake.org/files/v3.6/cmake-3.6.2-Linux-x86_64.tar.gz | tar xzf -
|
||||
export PATH=`pwd`/cmake-3.6.2-Linux-x86_64/bin:$PATH
|
||||
fi
|
||||
|
||||
if [ -z $wxCMAKE_TESTS ]; then wxCMAKE_TESTS=CONSOLE_ONLY; fi
|
||||
cmake --version
|
||||
echo 'travis_fold:start:configure'
|
||||
echo 'Configuring...'
|
||||
mkdir build_cmake
|
||||
pushd build_cmake
|
||||
cmake -G "$wxCMAKE_GENERATOR" $wxCMAKE_DEFINES -D wxBUILD_SAMPLES=SOME -D wxBUILD_TESTS=$wxCMAKE_TESTS ..
|
||||
echo 'travis_fold:end:configure'
|
||||
echo 'travis_fold:start:building'
|
||||
echo 'Building...'
|
||||
cmake --build .
|
||||
echo 'travis_fold:end:building'
|
||||
if [ "$wxCMAKE_TESTS" != "OFF" ]; then
|
||||
echo 'travis_fold:start:testing'
|
||||
echo 'Testing...'
|
||||
ctest . -C Debug -V --output-on-failure
|
||||
echo 'travis_fold:end:testing'
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo 'Configuring...' && echo -en 'travis_fold:start:script.configure\\r'
|
||||
./configure --disable-optimise $wxCONFIGURE_FLAGS
|
||||
echo -en 'travis_fold:end:script.configure\\r'
|
||||
echo 'Building...' && echo -en 'travis_fold:start:script.build\\r'
|
||||
make
|
||||
echo -en 'travis_fold:end:script.build\\r'
|
||||
echo 'Building tests...' && echo -en 'travis_fold:start:script.tests\\r'
|
||||
make -C tests
|
||||
echo -en 'travis_fold:end:script.tests\\r'
|
||||
echo 'Testing...' && echo -en 'travis_fold:start:script.testing\\r'
|
||||
pushd tests && ./test && popd
|
||||
echo -en 'travis_fold:end:script.testing\\r'
|
||||
echo 'Building samples...' && echo -en 'travis_fold:start:script.samples\\r'
|
||||
(test "$wxSKIP_SAMPLES" && echo 'SKIPPED') || make samples
|
||||
echo -en 'travis_fold:end:script.samples\\r'
|
||||
echo 'Installing...' && echo -en 'travis_fold:start:script.install\\r'
|
||||
sudo make install
|
||||
echo -en 'travis_fold:end:script.install\\r'
|
||||
echo 'Testing installation...' && echo -en 'travis_fold:start:script.testinstall\\r'
|
||||
make -C samples/minimal -f makefile.unx clean
|
||||
make -C samples/minimal -f makefile.unx $wxMAKEFILE_FLAGS
|
||||
echo -en 'travis_fold:end:script.testinstall\\r'
|
||||
;;
|
||||
esac
|
Reference in New Issue
Block a user