add a test which checks that cmake can build the latest stable KDE4 (kdelibs) release
To enable this test, the option TEST_KDE4_STABLE_BRANCH must be switched on. It can only be switched on if CMAKE_RUN_LONG_TESTS is ON. Then the test will only be added if Qt >= 4.5 can be found, Perl can be found and ZLIB can be found. Alex
This commit is contained in:
parent
680fae9c97
commit
7e53bcc115
|
@ -35,6 +35,11 @@ IF(BUILD_TESTING)
|
||||||
"Should the tests that run a full sub ctest process be run?"
|
"Should the tests that run a full sub ctest process be run?"
|
||||||
OFF)
|
OFF)
|
||||||
MARK_AS_ADVANCED(CTEST_TEST_CTEST)
|
MARK_AS_ADVANCED(CTEST_TEST_CTEST)
|
||||||
|
|
||||||
|
OPTION(TEST_KDE4_STABLE_BRANCH
|
||||||
|
"Should the KDE4 stable branch test be run?"
|
||||||
|
OFF)
|
||||||
|
MARK_AS_ADVANCED(TEST_KDE4_STABLE_BRANCH)
|
||||||
ENDIF (CMAKE_RUN_LONG_TESTS)
|
ENDIF (CMAKE_RUN_LONG_TESTS)
|
||||||
|
|
||||||
# Should tests that use CVS be run?
|
# Should tests that use CVS be run?
|
||||||
|
@ -1198,6 +1203,43 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
|
||||||
PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
|
PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
|
||||||
ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
|
ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
|
||||||
ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
|
ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
|
||||||
|
|
||||||
|
IF (CMAKE_RUN_LONG_TESTS AND TEST_KDE4_STABLE_BRANCH)
|
||||||
|
IF(UNIX)
|
||||||
|
IF(NOT QT4_FOUND)
|
||||||
|
FIND_PACKAGE(Qt4)
|
||||||
|
ENDIF(NOT QT4_FOUND)
|
||||||
|
|
||||||
|
SET(TRY_BUILD_KDE4 TRUE)
|
||||||
|
IF(QT4_FOUND)
|
||||||
|
# check whether it's Qt 4.5 in a cmake 2.4. compatible way:
|
||||||
|
IF(NOT EXISTS "${QT_QTNETWORK_INCLUDE_DIR}/QAbstractNetworkCache")
|
||||||
|
SET(TRY_BUILD_KDE4 FALSE)
|
||||||
|
ENDIF(NOT EXISTS "${QT_QTNETWORK_INCLUDE_DIR}/QAbstractNetworkCache")
|
||||||
|
ELSE(QT4_FOUND)
|
||||||
|
SET(TRY_BUILD_KDE4 FALSE)
|
||||||
|
ENDIF(QT4_FOUND)
|
||||||
|
|
||||||
|
FIND_PACKAGE(Perl)
|
||||||
|
IF(NOT PERL_FOUND)
|
||||||
|
SET(TRY_BUILD_KDE4 FALSE)
|
||||||
|
ENDIF(NOT PERL_FOUND)
|
||||||
|
|
||||||
|
FIND_PACKAGE(ZLIB)
|
||||||
|
IF(NOT ZLIB_FOUND)
|
||||||
|
SET(TRY_BUILD_KDE4 FALSE)
|
||||||
|
ENDIF(NOT ZLIB_FOUND)
|
||||||
|
|
||||||
|
IF(TRY_BUILD_KDE4)
|
||||||
|
FILE(MAKE_DIRECTORY ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest)
|
||||||
|
SET(TEST_KDE4_BASE_DIR ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest)
|
||||||
|
CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh.in ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh @ONLY)
|
||||||
|
EXECUTE_PROCESS(COMMAND chmod 755 ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh )
|
||||||
|
ADD_TEST(KDE4StableBranchTest ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh)
|
||||||
|
ENDIF(TRY_BUILD_KDE4)
|
||||||
|
|
||||||
|
ENDIF(UNIX)
|
||||||
|
ENDIF (CMAKE_RUN_LONG_TESTS AND TEST_KDE4_STABLE_BRANCH)
|
||||||
|
|
||||||
IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
|
IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
|
||||||
SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
|
SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This shell script tests whether cmake is able to build the latest
|
||||||
|
# stable KDE4 release, or at least some part of it.
|
||||||
|
# It downloads automoc from KDE svn, builds and installs it, then it
|
||||||
|
# downloads phonon from KDE svn, builds and installs it, and finally
|
||||||
|
# it downloads kdelibs (currently from the 4.3 branch), and builds
|
||||||
|
# a (small) part of it, i.e. libkdecore and one unit test depending on it.
|
||||||
|
#
|
||||||
|
# <neundorf AT kde.org>
|
||||||
|
|
||||||
|
CMAKE="@CMAKE_CMAKE_COMMAND@"
|
||||||
|
BASEDIR="@TEST_KDE4_BASE_DIR@"
|
||||||
|
INSTALLDIR="$BASEDIR/install"
|
||||||
|
QMAKE="@QT_QMAKE_EXECUTABLE@"
|
||||||
|
|
||||||
|
cd "$BASEDIR" || exit -1
|
||||||
|
echo "Removing old install dir " $INSTALLDIR
|
||||||
|
|
||||||
|
rm -rf install || exit -1
|
||||||
|
rm -rf build-automoc || exit -1
|
||||||
|
rm -rf build-phonon || exit -1
|
||||||
|
rm -rf build-kdelibs || exit -1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# build and install automoc
|
||||||
|
cd "$BASEDIR" || exit -1
|
||||||
|
svn co svn://anonsvn.kde.org/home/kde/tags/kdesupport-for-4.3/kdesupport/automoc || exit -1
|
||||||
|
|
||||||
|
mkdir -p build-automoc || exit -1
|
||||||
|
|
||||||
|
cd build-automoc || exit -1
|
||||||
|
"$CMAKE" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DQT_QMAKE_EXECUTABLE:STRING="$QMAKE" ../automoc || exit -1
|
||||||
|
"$CMAKE" --build . || exit -1
|
||||||
|
"$CMAKE" -P cmake_install.cmake || exit -1
|
||||||
|
|
||||||
|
export CMAKE_PREFIX_PATH="$INSTALLDIR:$CMAKE_PREFIX_PATH"
|
||||||
|
|
||||||
|
|
||||||
|
# build and install phonon
|
||||||
|
cd "$BASEDIR" || exit -1
|
||||||
|
svn co svn://anonsvn.kde.org/home/kde/tags/kdesupport-for-4.3/kdesupport/phonon || exit -1
|
||||||
|
|
||||||
|
mkdir -p build-phonon || exit -1
|
||||||
|
|
||||||
|
cd build-phonon || exit -1
|
||||||
|
"$CMAKE" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DQT_QMAKE_EXECUTABLE:STRING="$QMAKE" -DWITH_GLIB2=FALSE -DWITH_GObject=FALSE -DWITH_GStreamer=FALSE -DWITH_GStreamerPlugins=FALSE -DWITH_OpenGL=FALSE -DWITH_XCB=FALSE -DWITH_Xine=FALSE ../phonon || exit -1
|
||||||
|
"$CMAKE" --build . || exit -1
|
||||||
|
"$CMAKE" -P cmake_install.cmake || exit -1
|
||||||
|
|
||||||
|
|
||||||
|
# finally build kdelibs/kdecore
|
||||||
|
cd "$BASEDIR" || exit -1
|
||||||
|
|
||||||
|
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/4.3/kdelibs/ || exit -1
|
||||||
|
mkdir -p build-kdelibs || exit -1
|
||||||
|
cd build-kdelibs || exit -1
|
||||||
|
# trick cmake into not searching strigi and not searching sharedmimeinfo
|
||||||
|
"$CMAKE" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DQT_QMAKE_EXECUTABLE:STRING="$QMAKE" -DSTRIGI_FOUND=TRUE -DSTRIGI_INCLUDE_DIR=/usr/include -DSTRIGI_STREAMANALYZER_LIBRARY=-lc -DSTRIGI_STREAMS_LIBRARY=-lc -DSTRIGI_STRIGIQTDBUSCLIENT_LIBRARY=-lc -DSTRIGI_NEEDS_SIGNED_CHAR=TRUE -DSTRIGI_NEEDS_CHAR=FALSE -DUPDATE_MIME_DATABASE_EXECUTABLE=/bin/sh ../kdelibs || exit -1
|
||||||
|
make -C kdecore/tests kurltest || exit -1
|
||||||
|
|
Loading…
Reference in New Issue