# a macro for tests that have a simple format where the name matches the
# directory and project
MACRO ( ADD_TEST_MACRO NAME COMMAND )
ADD_TEST ( ${ NAME } ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / $ { N A M E } "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / $ { N A M E } "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t $ { N A M E }
- - t e s t - c o m m a n d $ { C O M M A N D } )
ENDMACRO ( ADD_TEST_MACRO )
# Testing
IF ( BUILD_TESTING )
# Should the long tests be run?
OPTION ( CMAKE_RUN_LONG_TESTS
" S h o u l d t h e l o n g t e s t s b e run ( such as Bootstrap ) . " O N )
MARK_AS_ADVANCED ( CMAKE_RUN_LONG_TESTS )
IF ( CMAKE_RUN_LONG_TESTS )
OPTION ( CTEST_TEST_CTEST
" S h o u l d t h e t e s t s t h a t r u n a f u l l s u b c t e s t p r o c e s s b e r u n ? "
O F F )
MARK_AS_ADVANCED ( CTEST_TEST_CTEST )
ENDIF ( CMAKE_RUN_LONG_TESTS )
# Should CPack tests be run? By default, yes, but...
#
# Disable packaging test on Apple 10.3 and below. PackageMaker starts
# DiskManagementTool as root and disowns it
# (http://lists.apple.com/archives/installer-dev/2005/Jul/msg00005.html).
# It is left holding open pipe handles and preventing ProcessUNIX from
# detecting end-of-data even after its immediate child exits. Then
# the test hangs until it times out and is killed. This is a
# well-known bug in kwsys process execution that I would love to get
# time to fix.
#
OPTION ( CTEST_TEST_CPACK
" S h o u l d t h e t e s t s t h a t u s e ' - - b u i l d - t a r g e t p a c k a g e ' b e r u n ? "
O N )
MARK_AS_ADVANCED ( CTEST_TEST_CPACK )
IF ( APPLE AND CTEST_TEST_CPACK )
EXECUTE_PROCESS (
C O M M A N D s w _ v e r s - p r o d u c t V e r s i o n
O U T P U T _ V A R I A B L E O S X _ V E R S I O N
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
)
IF ( OSX_VERSION MATCHES "^10\\.[0123]" OR OSX_VERSION MATCHES "ProductVersion:\t10\\.[0123]" )
MESSAGE ( STATUS "Forcing CTEST_TEST_CPACK=OFF on OSX < 10.4" )
MESSAGE ( STATUS "OSX_VERSION='${OSX_VERSION}'" )
SET ( CTEST_TEST_CPACK OFF )
ENDIF ( OSX_VERSION MATCHES "^10\\.[0123]" OR OSX_VERSION MATCHES "ProductVersion:\t10\\.[0123]" )
ENDIF ( APPLE AND CTEST_TEST_CPACK )
# Use 1500 or CTEST_TEST_TIMEOUT for long test timeout value,
# whichever is greater.
SET ( CMAKE_LONG_TEST_TIMEOUT 1500 )
IF ( CTEST_TEST_TIMEOUT )
SET ( CMAKE_LONG_TEST_TIMEOUT ${ CTEST_TEST_TIMEOUT } )
ENDIF ( CTEST_TEST_TIMEOUT )
IF ( CMAKE_LONG_TEST_TIMEOUT LESS 1500 )
SET ( CMAKE_LONG_TEST_TIMEOUT 1500 )
ENDIF ( CMAKE_LONG_TEST_TIMEOUT LESS 1500 )
# add a bunch of standard build-and-test style tests
ADD_TEST_MACRO ( CommandLineTest CommandLineTest )
ADD_TEST_MACRO ( FindPackageTest FindPackageTest )
ADD_TEST_MACRO ( FindModulesExecuteAll FindModulesExecuteAll )
ADD_TEST_MACRO ( StringFileTest StringFileTest )
ADD_TEST_MACRO ( TryCompile TryCompile )
ADD_TEST_MACRO ( TarTest TarTest )
ADD_TEST_MACRO ( SystemInformation SystemInformation )
ADD_TEST_MACRO ( MathTest MathTest )
ADD_TEST_MACRO ( Simple Simple )
ADD_TEST_MACRO ( PreOrder PreOrder )
ADD_TEST_MACRO ( COnly COnly )
ADD_TEST_MACRO ( CxxOnly CxxOnly )
ADD_TEST_MACRO ( NewlineArgs NewlineArgs )
ADD_TEST_MACRO ( SetLang SetLang )
ADD_TEST_MACRO ( ExternalOBJ ExternalOBJ )
ADD_TEST_MACRO ( LoadCommand LoadedCommand )
ADD_TEST_MACRO ( LinkLine LinkLine )
ADD_TEST_MACRO ( MacroTest miniMacroTest )
ADD_TEST_MACRO ( FunctionTest miniFunctionTest )
ADD_TEST_MACRO ( ReturnTest ReturnTest )
ADD_TEST_MACRO ( Properties Properties )
ADD_TEST_MACRO ( Assembler HelloAsm )
ADD_TEST_MACRO ( SourceGroups SourceGroups )
ADD_TEST_MACRO ( Preprocess Preprocess )
ADD_TEST_MACRO ( ExportImport ExportImport )
ADD_TEST_MACRO ( PolicyScope PolicyScope )
ADD_TEST_MACRO ( Unset Unset )
# test for correct sub-project generation
# not implemented in VS6 or Xcode
IF ( NOT MSVC60 AND NOT XCODE AND NOT MSVC70 )
# run cmake and configure all of SubProject
# but only build the independent executable car
ADD_TEST ( SubProject ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S u b P r o j e c t "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b P r o j e c t "
- - b u i l d - p r o j e c t S u b P r o j e c t
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t a r g e t c a r
- - t e s t - c o m m a n d c a r
)
# For stage 2, do not run cmake again.
# Then build the foo sub project which should build
# the bar library which should be referenced because
# foo links to the static library bar, but bar is not
# directly in the foo sub project
ADD_TEST ( SubProject-Stage2 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S u b P r o j e c t / f o o "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b P r o j e c t / f o o "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - n o c m a k e
- - b u i l d - p r o j e c t f o o
- - b u i l d - t a r g e t f o o
- - t e s t - c o m m a n d f o o
)
ENDIF ( NOT MSVC60 AND NOT XCODE AND NOT MSVC70 )
IF ( CMAKE_STRICT )
ADD_TEST_MACRO ( DocTest DocTest )
ENDIF ( CMAKE_STRICT )
IF ( CMAKE_BUILD_NIGHTLY_WINDOWS_TEST )
FILE ( MAKE_DIRECTORY "${CMake_BINARY_DIR}/Tests/CMake-CVS" )
FILE ( WRITE "${CMake_BINARY_DIR}/Tests/CMake-CVS/nightly-cmake.sh"
" c d $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C M a k e - C V S
$ { C M a k e _ B I N A R Y _ D I R } / b i n / c m a k e - D C M A K E _ V E R S I O N = C V S - P $ { C M a k e _ S O U R C E _ D I R } / U t i l i t i e s / R e l e a s e / v o g o n _ r e l e a s e . c m a k e
$ { C M a k e _ B I N A R Y _ D I R } / b i n / c m a k e - D V E R S I O N = C V S - P $ { C M a k e _ S O U R C E _ D I R } / U t i l i t i e s / R e l e a s e / u p l o a d _ r e l e a s e . c m a k e
" )
ADD_TEST ( NightlyCMakeBuild
/ b i n / s h $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C M a k e - C V S / n i g h t l y - c m a k e . s h )
IF ( COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY )
SET_TESTS_PROPERTIES ( NightlyCMakeBuild PROPERTIES TIMEOUT 3500 )
ENDIF ( COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY )
ENDIF ( CMAKE_BUILD_NIGHTLY_WINDOWS_TEST )
# add tests with more complex invocations
ADD_TEST ( Framework ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / F r a m e w o r k "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / F r a m e w o r k "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t F r a m e w o r k
- - b u i l d - o p t i o n s
" - D C M A K E _ I N S T A L L _ P R E F I X : P A T H = $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / F r a m e w o r k / I n s t a l l "
- - t e s t - c o m m a n d b a r )
ADD_TEST ( TargetName ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / T a r g e t N a m e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T a r g e t N a m e "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t T a r g e t N a m e
- - t e s t - c o m m a n d $ { C M A K E _ C M A K E _ C O M M A N D } - E c o m p a r e _ f i l e s
$ { C M a k e _ S O U R C E _ D I R } / T e s t s / T a r g e t N a m e / s c r i p t s / h e l l o _ w o r l d
$ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T a r g e t N a m e / s c r i p t s / h e l l o _ w o r l d )
ADD_TEST ( LibName ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / L i b N a m e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / L i b N a m e "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t L i b N a m e
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / L i b N a m e / l i b "
- - t e s t - c o m m a n d f o o b a r
)
ADD_TEST ( CustComDepend ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C u s t C o m D e p e n d "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C u s t C o m D e p e n d "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t C u s t C o m D e p e n d
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C u s t C o m D e p e n d / b i n "
- - t e s t - c o m m a n d f o o b a r . c
)
ADD_TEST ( CustomCommand ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C u s t o m C o m m a n d "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C u s t o m C o m m a n d "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t C u s t o m C o m m a n d
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C u s t o m C o m m a n d / b i n "
- - t e s t - c o m m a n d C u s t o m C o m m a n d
)
ADD_TEST ( CustomCommandWorkingDirectory ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C u s t o m C o m m a n d W o r k i n g D i r e c t o r y "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C u s t o m C o m m a n d W o r k i n g D i r e c t o r y "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t T e s t W o r k i n g D i r
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - t e s t - c o m m a n d w o r k i n g
)
#ADD_TEST(SimpleExclude ${CMAKE_CTEST_COMMAND}
# --build-and-test
# "${CMake_SOURCE_DIR}/Tests/SimpleExclude"
# "${CMake_BINARY_DIR}/Tests/SimpleExclude"
# --build-generator ${CMAKE_TEST_GENERATOR}
# --build-project SimpleExclude
# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
# --build-two-config
# --test-command t4
#--test-command "${CMAKE_COMMAND}"
#"-DCONFIGURATION=\${CTEST_CONFIGURATION_TYPE}"
#-P "${CMAKE_BINARY_DIR}/Tests/SimpleExclude/run.cmake"
#)
# ADD_TEST(SameName ${CMAKE_CTEST_COMMAND}
# --build-and-test
# "${CMake_SOURCE_DIR}/Tests/SameName"
# "${CMake_BINARY_DIR}/Tests/SameName"
# --build-generator ${CMAKE_TEST_GENERATOR}
# --build-project SameName
# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
# --build-two-config
# --test-command
# "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2")
ADD_TEST ( OutOfSource ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / O u t O f S o u r c e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / O u t O f S o u r c e "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t O u t O f S o u r c e
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - t e s t - c o m m a n d
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / O u t O f S o u r c e / S u b D i r / O u t O f S o u r c e S u b d i r / s i m p l e " )
ADD_TEST ( BuildDepends ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / B u i l d D e p e n d s "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B u i l d D e p e n d s "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t B u i l d D e p e n d s
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
)
SET ( SimpleInstallInstallDir
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S i m p l e I n s t a l l / I n s t a l l D i r e c t o r y " )
ADD_TEST ( SimpleInstall ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S i m p l e I n s t a l l "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S i m p l e I n s t a l l "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t T e s t S i m p l e I n s t a l l
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - b u i l d - o p t i o n s
" - D C M A K E _ I N S T A L L _ P R E F I X : P A T H = $ { S i m p l e I n s t a l l I n s t a l l D i r } "
- - t e s t - c o m m a n d $ { S i m p l e I n s t a l l I n s t a l l D i r } / M y T e s t / b i n / S i m p l e I n s t E x e )
ADD_TEST ( SimpleInstall-Stage2 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S i m p l e I n s t a l l S 2 "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S i m p l e I n s t a l l S 2 "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t T e s t S i m p l e I n s t a l l
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - b u i l d - o p t i o n s
" - D C M A K E _ I N S T A L L _ P R E F I X : P A T H = $ { S i m p l e I n s t a l l I n s t a l l D i r } "
" - D S T A G E 2 : B O O L = 1 "
- - t e s t - c o m m a n d $ { S i m p l e I n s t a l l I n s t a l l D i r } / M y T e s t / b i n / S i m p l e I n s t E x e S 2 )
# By default, run the CPackComponents test if the CTEST_TEST_CPACK
# option is ON:
#
set ( CTEST_RUN_CPackComponents ${ CTEST_TEST_CPACK } )
# But on Windows, only run the CPackComponents test if the NSIS
# installer builder is available:
#
if ( WIN32 )
find_program ( NSIS_MAKENSIS_EXECUTABLE NAMES makensis
P A T H S [ H K E Y _ L O C A L _ M A C H I N E \ \ S O F T W A R E \ \ N S I S ]
D O C " m a k e n s i s . e x e l o c a t i o n "
)
if ( NSIS_MAKENSIS_EXECUTABLE )
set ( CTEST_RUN_CPackComponents ON )
else ( NSIS_MAKENSIS_EXECUTABLE )
set ( CTEST_RUN_CPackComponents OFF )
endif ( NSIS_MAKENSIS_EXECUTABLE )
endif ( WIN32 )
IF ( CTEST_RUN_CPackComponents )
ADD_TEST ( CPackComponents ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C P a c k C o m p o n e n t s "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C P a c k C o m p o n e n t s "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t C P a c k C o m p o n e n t s
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - b u i l d - t a r g e t p a c k a g e
- - t e s t - c o m m a n d $ { C M A K E _ C M A K E _ C O M M A N D }
" - D C P a c k C o m p o n e n t s _ B I N A R Y _ D I R : P A T H = $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C P a c k C o m p o n e n t s "
- P " $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C P a c k C o m p o n e n t s / V e r i f y R e s u l t . c m a k e " )
ENDIF ( CTEST_RUN_CPackComponents )
ADD_TEST ( X11 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / X 1 1 "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / X 1 1 "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t U s e X 1 1
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - t e s t - c o m m a n d U s e X 1 1 )
ADD_TEST ( LoadedCommandOneConfig ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / L o a d C o m m a n d O n e C o n f i g "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / L o a d C o m m a n d O n e C o n f i g "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t L o a d C o m m a n d
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - t e s t - c o m m a n d L o a d e d C o m m a n d
)
# Como does not seem to support shared libraries.
GET_FILENAME_COMPONENT ( CMAKE_BASE_NAME ${ CMAKE_CXX_COMPILER } NAME_WE )
IF ( CMAKE_BASE_NAME MATCHES "^como$" )
SET ( COMPILER_IS_COMO 1 )
ENDIF ( CMAKE_BASE_NAME MATCHES "^como$" )
IF ( NOT COMPILER_IS_COMO )
ADD_TEST ( complex ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C o m p l e x "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C o m p l e x "
- - b u i l d - t w o - c o n f i g
- - b u i l d - c o n f i g - s a m p l e " $ { C M A K E _ C T E S T _ C O M M A N D } "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t C o m p l e x
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C o m p l e x / b i n "
- - b u i l d - o p t i o n s
- D C M A K E _ T E S T _ D I F F E R E N T _ G E N E R A T O R : B O O L = $ { C M A K E _ T E S T _ D I F F E R E N T _ G E N E R A T O R }
- D C M A K E _ T E S T _ S Y S T E M _ L I B R A R I E S : B O O L = $ { C M A K E _ T E S T _ S Y S T E M _ L I B R A R I E S }
- - t e s t - c o m m a n d c o m p l e x
)
ADD_TEST ( complexOneConfig ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / C o m p l e x O n e C o n f i g "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C o m p l e x O n e C o n f i g "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t C o m p l e x
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C o m p l e x O n e C o n f i g / b i n "
- - b u i l d - o p t i o n s
- D C M A K E _ T E S T _ D I F F E R E N T _ G E N E R A T O R : B O O L = $ { C M A K E _ T E S T _ D I F F E R E N T _ G E N E R A T O R }
- D C M A K E _ T E S T _ S Y S T E M _ L I B R A R I E S : B O O L = $ { C M A K E _ T E S T _ S Y S T E M _ L I B R A R I E S }
- - t e s t - c o m m a n d c o m p l e x )
# This fails on VS 70
# works on Xcode and makefiles
# ADD_TEST(ConvLibrary ${CMAKE_CTEST_COMMAND}
# --build-and-test
# "${CMake_SOURCE_DIR}/Tests/ConvLibrary"
# "${CMake_BINARY_DIR}/Tests/ConvLibrary"
# --build-two-config
# --build-generator ${CMAKE_TEST_GENERATOR}
# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
# --build-project ConvLibrary
# --test-command bartest)
# ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
# --build-and-test
# "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
# "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
# --build-generator ${CMAKE_TEST_GENERATOR}
# --build-project complex
# --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
# --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
# --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
# --test-command complex)
ENDIF ( NOT COMPILER_IS_COMO )
ADD_TEST ( Example ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / E x a m p l e "
" $ { C M a k e _ B I N A R Y _ D I R } / E x a m p l e "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t H E L L O
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / E x a m p l e / D e m o "
- - t e s t - c o m m a n d h e l l o D e m o
)
# do each of the tutorial steps
FOREACH ( STP RANGE 1 7 )
ADD_TEST ( TutorialStep ${ STP } ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / T u t o r i a l / S t e p $ { S T P } "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T u t o r i a l / S t e p $ { S T P } "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t T u t o r i a l
- - t e s t - c o m m a n d T u t o r i a l 2 5 . 0 )
ENDFOREACH ( STP )
ADD_TEST ( testing ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / T e s t i n g "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T e s t i n g "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t T e s t i n g
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T e s t i n g / b i n "
- - t e s t - c o m m a n d t e s t i n g
)
ADD_TEST ( wrapping ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / W r a p p i n g "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t W r a p p i n g
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g / b i n "
- - t e s t - c o m m a n d w r a p p i n g
)
ADD_TEST ( qtwrapping ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / W r a p p i n g "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t W r a p p i n g
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g / b i n "
- - t e s t - c o m m a n d q t w r a p p i n g
)
ADD_TEST ( testdriver1 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / T e s t D r i v e r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T e s t D r i v e r "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g / b i n "
- - b u i l d - p r o j e c t T e s t D r i v e r T e s t
- - t e s t - c o m m a n d T e s t D r i v e r T e s t t e s t 1
)
ADD_TEST ( testdriver2 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / T e s t D r i v e r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T e s t D r i v e r "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g / b i n "
- - b u i l d - p r o j e c t T e s t D r i v e r T e s t
- - t e s t - c o m m a n d T e s t D r i v e r T e s t t e s t 2
)
ADD_TEST ( testdriver3 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / T e s t D r i v e r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T e s t D r i v e r "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / W r a p p i n g / b i n "
- - b u i l d - p r o j e c t T e s t D r i v e r T e s t
- - t e s t - c o m m a n d T e s t D r i v e r T e s t s u b d i r / t e s t 3
)
ADD_TEST ( Dependency ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / D e p e n d e n c y "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / D e p e n d e n c y "
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / D e p e n d e n c y / E x e c "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t D e p e n d e n c y
- - t e s t - c o m m a n d e x e c
)
IF ( "${CMAKE_SYSTEM_NAME}" MATCHES syllable )
# RPATH isn't supported under Syllable, so the tests don't
# find their libraries. In order to fix that LIBRARY_OUTPUT_DIR
# in the tests would have to be adjusted to ${EXECUTABLE_OUTPUT_DIR}/lib .
# For now we just require on Syllable that the user adjusts the DLL_PATH
# environment variable, so except the two tests below all other tests will succeed.
SET ( _DLL_PATH "$ENV{DLL_PATH}" )
IF ( NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.(:.*)?$" )
MESSAGE ( FATAL_ERROR "In order to successfully run the CMake test suite on Syllable you need to add \" \\@bindir\\@/.\" to the DLL_PATH environment variable " )
ENDIF ( NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.(:.*)?$" )
IF ( NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.\\./lib(:.*)?$" )
MESSAGE ( FATAL_ERROR "In order to successfully run the CMake test suite on Syllable you need to add \" \\@bindir\\@/../lib\" to the DLL_PATH environment variable " )
ENDIF ( NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.\\./lib(:.*)?$" )
ELSE ( "${CMAKE_SYSTEM_NAME}" MATCHES syllable )
ADD_TEST ( JumpWithLibOut ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / J u m p "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J u m p / W i t h L i b O u t "
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J u m p / W i t h L i b O u t / E x e c u t a b l e "
- - b u i l d - p r o j e c t J u m p
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - o p t i o n s
- D L I B R A R Y _ O U T P U T _ P A T H : P A T H = $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J u m p / W i t h L i b O u t / L i b
- - t e s t - c o m m a n d j u m p E x e c u t a b l e
)
ADD_TEST ( JumpNoLibOut ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / J u m p "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J u m p / N o L i b O u t "
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J u m p / N o L i b O u t / E x e c u t a b l e "
- - b u i l d - r u n - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J u m p / N o L i b O u t / E x e c u t a b l e "
- - b u i l d - p r o j e c t J u m p
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - t e s t - c o m m a n d j u m p E x e c u t a b l e
)
ADD_TEST ( Plugin ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / P l u g i n "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / P l u g i n "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t P l u g i n
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - t e s t - c o m m a n d b i n / e x a m p l e )
IF ( CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG )
ADD_TEST_MACRO ( RuntimePath RuntimePath )
ENDIF ( CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG )
ENDIF ( "${CMAKE_SYSTEM_NAME}" MATCHES syllable )
ADD_TEST ( linkorder1 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / L i n k L i n e O r d e r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / L i n k L i n e O r d e r "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t L i n k L i n e O r d e r
- - t e s t - c o m m a n d E x e c 1
)
ADD_TEST ( linkorder2 ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / L i n k L i n e O r d e r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / L i n k L i n e O r d e r "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t L i n k L i n e O r d e r
- - t e s t - c o m m a n d E x e c 2
)
IF ( NOT CMAKE_TEST_DIFFERENT_GENERATOR )
ADD_TEST ( kwsys ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / S o u r c e / k w s y s "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / k w s y s "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t k w s y s
- - t e s t - c o m m a n d k w s y s T e s t s C x x t e s t I O S
)
ENDIF ( NOT CMAKE_TEST_DIFFERENT_GENERATOR )
SET ( MAKE_IS_GNU )
IF ( ${ CMAKE_TEST_MAKEPROGRAM } MATCHES make )
EXEC_PROGRAM (
$ { C M A K E _ T E S T _ M A K E P R O G R A M } A R G S n o _ s u c h _ t a r g e t - - v e r s i o n
R E T U R N _ V A L U E r e s O U T P U T _ V A R I A B L E o u t
)
IF ( "${res}" EQUAL 0 )
IF ( "${out}" MATCHES "GNU" )
SET ( MAKE_IS_GNU 1 )
ENDIF ( "${out}" MATCHES "GNU" )
ENDIF ( "${res}" EQUAL 0 )
ENDIF ( ${ CMAKE_TEST_MAKEPROGRAM } MATCHES make )
# only add this test on platforms that support it
# some old versions of make simply cannot handle spaces in paths
IF ( MAKE_IS_GNU OR
" $ { C M A K E _ T E S T _ M A K E P R O G R A M } " M A T C H E S " n m a k e | g m a k e | w m a k e " O R
" $ { C M A K E _ T E S T _ G E N E R A T O R } " M A T C H E S " V i s u a l S t u d i o | X C o d e | B o r l a n d " )
ADD_TEST ( SubDirSpaces ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S u b D i r S p a c e s "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r S p a c e s "
- - b u i l d - e x e - d i r
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r S p a c e s / E x e c u t a b l e S o u r c e s "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t S U B D I R
- - t e s t - c o m m a n d t e s t
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r S p a c e s / S h o u l d B e H e r e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r S p a c e s / t e s t f r o m s u b d i r . o b j "
)
ENDIF ( MAKE_IS_GNU OR
" $ { C M A K E _ T E S T _ M A K E P R O G R A M } " M A T C H E S " n m a k e | g m a k e | w m a k e " O R
" $ { C M A K E _ T E S T _ G E N E R A T O R } " M A T C H E S " V i s u a l S t u d i o | X C o d e | B o r l a n d " )
IF ( WIN32 )
ADD_TEST ( SubDir ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S u b D i r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r "
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r / E x e c u t a b l e "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t S U B D I R
- - t e s t - c o m m a n d t e s t
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r / S h o u l d B e H e r e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r / t e s t f r o m s u b d i r . o b j "
)
ELSE ( WIN32 )
ADD_TEST ( SubDir ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S u b D i r "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r "
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r / E x e c u t a b l e "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t S U B D I R
- - t e s t - c o m m a n d t e s t
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r / S h o u l d B e H e r e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S u b D i r / t e s t f r o m s u b d i r . o "
)
ENDIF ( WIN32 )
IF ( CMAKE_TEST_MSVC )
ADD_TEST_MACRO ( PrecompiledHeader foo )
ENDIF ( CMAKE_TEST_MSVC )
IF ( "${CMAKE_TEST_GENERATOR}" MATCHES "Makefile" )
ADD_TEST ( MakeClean ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / M a k e C l e a n "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / M a k e C l e a n "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t M a k e C l e a n
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r " $ { C M a k e _ B I N A R Y _ D I R } / M a k e C l e a n "
- - t e s t - c o m m a n d c h e c k _ c l e a n
)
ENDIF ( "${CMAKE_TEST_GENERATOR}" MATCHES "Makefile" )
IF ( ${ CMAKE_TEST_GENERATOR } MATCHES "Visual Studio" )
ADD_TEST ( VSExternalInclude ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / V S E x t e r n a l I n c l u d e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / V S E x t e r n a l I n c l u d e "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t V S E x t e r n a l I n c l u d e
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - t e s t - c o m m a n d V S E x t e r n a l I n c l u d e )
ENDIF ( ${ CMAKE_TEST_GENERATOR } MATCHES "Visual Studio" )
IF ( APPLE AND CMAKE_COMPILER_IS_GNUCXX )
SET ( BundleTestInstallDir
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B u n d l e T e s t / I n s t a l l D i r e c t o r y " )
ADD_TEST ( BundleTest ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / B u n d l e T e s t "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B u n d l e T e s t "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t B u n d l e T e s t
- - b u i l d - t a r g e t i n s t a l l
# --build-target package
- - b u i l d - o p t i o n s " - D C M A K E _ I N S T A L L _ P R E F I X : P A T H = $ { B u n d l e T e s t I n s t a l l D i r } "
" - D C M a k e _ S O U R C E _ D I R : P A T H = $ { C M A K E _ S O U R C E _ D I R } "
- - t e s t - c o m m a n d
$ { B u n d l e T e s t I n s t a l l D i r } / A p p l i c a t i o n s / S e c o n d B u n d l e E x e . a p p / C o n t e n t s / M a c O S / S e c o n d B u n d l e E x e )
ADD_TEST_MACRO ( ObjC++ ObjC++ )
ENDIF ( APPLE AND CMAKE_COMPILER_IS_GNUCXX )
IF ( APPLE AND CTEST_TEST_CPACK )
ADD_TEST ( BundleGeneratorTest ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / B u n d l e G e n e r a t o r T e s t "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B u n d l e G e n e r a t o r T e s t "
- - b u i l d - t w o - c o n f i g
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - p r o j e c t B u n d l e G e n e r a t o r T e s t
- - b u i l d - t a r g e t p a c k a g e
- - b u i l d - o p t i o n s " - D C M A K E _ I N S T A L L _ P R E F I X : P A T H = $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B u n d l e G e n e r a t o r T e s t / I n s t a l l D i r e c t o r y "
)
ENDIF ( APPLE AND CTEST_TEST_CPACK )
SET ( CTEST_TEST_UPDATE 1 )
IF ( CTEST_TEST_UPDATE )
# Test CTest Update with Subversion
FIND_PACKAGE ( Subversion QUIET )
IF ( Subversion_FOUND )
GET_FILENAME_COMPONENT ( _Subversion_BIN_DIR
$ { S u b v e r s i o n _ S V N _ E X E C U T A B L E } P A T H )
FIND_PROGRAM ( Subversion_SVNADMIN_EXECUTABLE svnadmin
H I N T S $ { _ S u b v e r s i o n _ B I N _ D I R }
)
MARK_AS_ADVANCED ( Subversion_SVNADMIN_EXECUTABLE )
IF ( NOT Subversion_SVNADMIN_EXECUTABLE )
SET ( Subversion_FOUND FALSE )
ENDIF ( NOT Subversion_SVNADMIN_EXECUTABLE )
ENDIF ( Subversion_FOUND )
IF ( Subversion_FOUND )
SET ( CTestUpdateSVN_DIR "CTest UpdateSVN" )
CONFIGURE_FILE ( "${CMake_SOURCE_DIR}/Tests/CTestUpdateSVN.cmake.in"
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t U p d a t e S V N . c m a k e " @ O N L Y )
ADD_TEST ( CTest.UpdateSVN ${ CMAKE_CMAKE_COMMAND }
- P " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t U p d a t e S V N . c m a k e "
)
ENDIF ( Subversion_FOUND )
# Test CTest Update with CVS
IF ( UNIX )
# The test is expected to work by default on UNIX-like systems.
SET ( CTEST_TEST_UPDATE_CVS 1 )
ELSE ( UNIX )
# Special CVS configuration is needed for test to pass on Windows.
OPTION ( CTEST_TEST_UPDATE_CVS
" E n a b l e C T e s t . U p d a t e C V S t e s t . R e q u i r e s e x t r a C V S s e t u p o n w i n d o w s . "
O F F )
MARK_AS_ADVANCED ( CTEST_TEST_UPDATE_CVS )
ENDIF ( UNIX )
IF ( CTEST_TEST_UPDATE_CVS )
IF ( EXISTS ${ CMAKE_ROOT } /Modules/FindCVS.cmake )
FIND_PACKAGE ( CVS QUIET )
ELSE ( EXISTS ${ CMAKE_ROOT } /Modules/FindCVS.cmake )
FIND_PROGRAM ( CVS_EXECUTABLE NAMES cvs )
SET ( CVS_FOUND ${ CVS_EXECUTABLE } )
ENDIF ( EXISTS ${ CMAKE_ROOT } /Modules/FindCVS.cmake )
ENDIF ( CTEST_TEST_UPDATE_CVS )
IF ( CTEST_TEST_UPDATE_CVS AND CVS_FOUND )
SET ( CTestUpdateCVS_DIR "CTest UpdateCVS" )
CONFIGURE_FILE ( "${CMake_SOURCE_DIR}/Tests/CTestUpdateCVS.cmake.in"
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t U p d a t e C V S . c m a k e " @ O N L Y )
ADD_TEST ( CTest.UpdateCVS ${ CMAKE_CMAKE_COMMAND }
- P " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t U p d a t e C V S . c m a k e "
)
ENDIF ( CTEST_TEST_UPDATE_CVS AND CVS_FOUND )
ENDIF ( CTEST_TEST_UPDATE )
IF ( CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS )
CONFIGURE_FILE ( "${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t / t e s t . c m a k e " @ O N L Y E S C A P E _ Q U O T E S )
ADD_TEST ( CTestTest ${ CMAKE_CTEST_COMMAND }
- S " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t / t e s t . c m a k e " - V
- - o u t p u t - l o g " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t / t e s t O u t p u t . l o g "
)
CONFIGURE_FILE ( "${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t 2 / t e s t . c m a k e " @ O N L Y E S C A P E _ Q U O T E S )
ADD_TEST ( CTestTest2 ${ CMAKE_CTEST_COMMAND }
- S " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t 2 / t e s t . c m a k e " - V
- - o u t p u t - l o g " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t 2 / t e s t O u t p u t . l o g "
)
CONFIGURE_FILE ( "${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in"
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t 3 / t e s t . c m a k e " @ O N L Y E S C A P E _ Q U O T E S )
ADD_TEST ( CTestTest3 ${ CMAKE_CTEST_COMMAND }
- S " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t 3 / t e s t . c m a k e " - V
- - o u t p u t - l o g " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / C T e s t T e s t 3 / t e s t O u t p u t . l o g "
)
# these tests take a long time, make sure they have it
IF ( COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY )
# if timeouts have not already been set
GET_TEST_PROPERTY ( CTestTest TIMEOUT PREVIOUS_TIMEOUT )
IF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
SET_TESTS_PROPERTIES ( CTestTest
P R O P E R T I E S T I M E O U T $ { C M A K E _ L O N G _ T E S T _ T I M E O U T } )
ENDIF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
GET_TEST_PROPERTY ( CTestTest2 TIMEOUT PREVIOUS_TIMEOUT )
IF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
SET_TESTS_PROPERTIES ( CTestTest2
P R O P E R T I E S T I M E O U T $ { C M A K E _ L O N G _ T E S T _ T I M E O U T } )
ENDIF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
GET_TEST_PROPERTY ( CTestTest3 TIMEOUT PREVIOUS_TIMEOUT )
IF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
SET_TESTS_PROPERTIES ( CTestTest3
P R O P E R T I E S T I M E O U T $ { C M A K E _ L O N G _ T E S T _ T I M E O U T } )
ENDIF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
ENDIF ( COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY )
ENDIF ( CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS )
IF ( "${CMAKE_TEST_GENERATOR}" MATCHES Xcode )
SET ( CMAKE_SKIP_BOOTSTRAP_TEST 1 )
ENDIF ( "${CMAKE_TEST_GENERATOR}" MATCHES Xcode )
IF ( EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt" )
# If there is CMakeLists.txt in the binary tree, assume in-source build
SET ( CMAKE_SKIP_BOOTSTRAP_TEST 1 )
ENDIF ( EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt" )
IF ( UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST )
ADD_TEST ( BootstrapTest ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
$ { C M a k e _ S O U R C E _ D I R }
$ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B o o t s t r a p T e s t
- - b u i l d - n o c m a k e
- - b u i l d - n o c l e a n
- - b u i l d - m a k e p r o g r a m $ { C M a k e _ S O U R C E _ D I R } / b o o t s t r a p
- - b u i l d - g e n e r a t o r " $ { C M A K E _ T E S T _ G E N E R A T O R } "
- - t e s t - c o m m a n d
$ { C M a k e _ B I N A R Y _ D I R } / T e s t s / B o o t s t r a p T e s t / B o o t s t r a p . c m k / c m a k e )
# provide more time for the bootstrap test
IF ( COMMAND GET_TEST_PROPERTY )
GET_TEST_PROPERTY ( BootstrapTest TIMEOUT PREVIOUS_TIMEOUT )
IF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
SET_TESTS_PROPERTIES ( BootstrapTest
P R O P E R T I E S T I M E O U T $ { C M A K E _ L O N G _ T E S T _ T I M E O U T } )
ENDIF ( "${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND )
ENDIF ( COMMAND GET_TEST_PROPERTY )
ENDIF ( UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST )
# fortran does not work for IDE builds because
# CMAKE_STANDARD_LIBRARIES needs to be per language
IF ( CMAKE_TEST_GENERATOR MATCHES "Makefiles"
O R C M A K E _ T E S T _ G E N E R A T O R M A T C H E S " K D e v e l o p " )
# see if we can find a fortran compiler on the machine
# if so, add the fortran test and see if it works.
SET ( CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
l f 9 5 x l f 9 5 f o r t g f o r t r a n f 9 0 p g f 9 0 x l f 9 0
e p c f 9 0 f 7 7 f o r t 7 7 f r t p g f 7 7 x l f f l 3 2 a f 7 7 g 7 7 )
FIND_PROGRAM ( CMAKE_Fortran_COMPILER_FULLPATH NAMES
$ { C M A K E _ F o r t r a n _ C O M P I L E R _ L I S T } )
MARK_AS_ADVANCED ( CMAKE_Fortran_COMPILER_FULLPATH )
IF ( CMAKE_Fortran_COMPILER_FULLPATH )
ADD_TEST ( Fortran ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / F o r t r a n "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / F o r t r a n "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t t e s t f
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - t e s t - c o m m a n d t e s t f )
ENDIF ( CMAKE_Fortran_COMPILER_FULLPATH )
ENDIF ( CMAKE_TEST_GENERATOR MATCHES "Makefiles"
O R C M A K E _ T E S T _ G E N E R A T O R M A T C H E S " K D e v e l o p " )
IF ( NOT CMAKE_TEST_GENERATOR MATCHES "Xcode" )
INCLUDE ( FindJava )
IF ( JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW )
GET_FILENAME_COMPONENT ( JNIPATH ${ JAVA_COMPILE } PATH )
FIND_FILE ( JNI_H jni.h
" $ { J N I P A T H } / . . / i n c l u d e "
" $ { J N I P A T H } / . . / j a v a / i n c l u d e " )
IF ( JNI_H )
FILE ( READ "${JNI_H}" JNI_FILE )
IF ( "${JNI_FILE}" MATCHES "JDK1_2" )
ADD_TEST ( Java ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / J a v a "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J a v a "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t h e l l o
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - t w o - c o n f i g
- - b u i l d - r u n - d i r " $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / J a v a / "
- - t e s t - c o m m a n d $ { J A V A _ R U N T I M E } - c l a s s p a t h h e l l o . j a r H e l l o W o r l d )
ENDIF ( "${JNI_FILE}" MATCHES "JDK1_2" )
ENDIF ( JNI_H )
ENDIF ( JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW )
ENDIF ( NOT CMAKE_TEST_GENERATOR MATCHES "Xcode" )
# add some cross compiler tests, for now only with makefile based generators
IF ( CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop" )
# if sdcc is found, build the SimpleCOnly project with sdcc
FIND_PROGRAM ( SDCC_EXECUTABLE sdcc )
MARK_AS_ADVANCED ( SDCC_EXECUTABLE )
IF ( SDCC_EXECUTABLE )
ADD_TEST ( SimpleCOnly_sdcc ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S i m p l e C O n l y "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S i m p l e C O n l y _ s d c c "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t S i m p l e C
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - o p t i o n s
" - D C M A K E _ S Y S T E M _ N A M E = G e n e r i c "
" - D C M A K E _ C _ C O M P I L E R = $ { S D C C _ E X E C U T A B L E } " )
ENDIF ( SDCC_EXECUTABLE )
FIND_PROGRAM ( MINGW_CC_LINUX2WIN_EXECUTABLE i586-mingw32msvc-gcc )
FIND_PROGRAM ( MINGW_CXX_LINUX2WIN_EXECUTABLE i586-mingw32msvc-g++ )
MARK_AS_ADVANCED ( MINGW_CC_LINUX2WIN_EXECUTABLE MINGW_CXX_LINUX2WIN_EXECUTABLE )
IF ( MINGW_CC_LINUX2WIN_EXECUTABLE AND MINGW_CXX_LINUX2WIN_EXECUTABLE )
ADD_TEST ( Simple_Mingw_Linux2Win ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / S i m p l e "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / S i m p l e _ M i n g w _ L i n u x 2 W i n "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - p r o j e c t S i m p l e
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - o p t i o n s
" - D C M A K E _ S Y S T E M _ N A M E = W i n d o w s "
" - D C M A K E _ C _ C O M P I L E R = $ { M I N G W _ C C _ L I N U X 2 W I N _ E X E C U T A B L E } "
" - D C M A K E _ C X X _ C O M P I L E R = $ { M I N G W _ C X X _ L I N U X 2 W I N _ E X E C U T A B L E } " )
ENDIF ( MINGW_CC_LINUX2WIN_EXECUTABLE AND MINGW_CXX_LINUX2WIN_EXECUTABLE )
ENDIF ( CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop" )
IF ( BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE )
# Will be set if the WX gui is on
ADD_TEST ( UseWX ${ CMAKE_CTEST_COMMAND }
- - b u i l d - a n d - t e s t
" $ { C M a k e _ S O U R C E _ D I R } / T e s t s / U s e W X "
" $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / U s e W X "
- - b u i l d - g e n e r a t o r $ { C M A K E _ T E S T _ G E N E R A T O R }
- - b u i l d - m a k e p r o g r a m $ { C M A K E _ T E S T _ M A K E P R O G R A M }
- - b u i l d - e x e - d i r $ { C M a k e _ B I N A R Y _ D I R } / T e s t s / U s e W X
- - b u i l d - p r o j e c t U s e w x W i d g e t s
- - b u i l d - o p t i o n s - D w x W i d g e t s _ C O N F I G _ E X E C U T A B L E = $ { w x W i d g e t s _ C O N F I G _ E X E C U T A B L E }
- - t e s t - c o m m a n d U s e W X
)
ENDIF ( BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE )
IF ( UNIX )
STRING ( COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
P R E F I X _ I S _ F O R _ T E S T )
IF ( PREFIX_IS_FOR_TEST )
CONFIGURE_FILE (
$ { C M a k e _ S O U R C E _ D I R } / T e s t s / T e s t I n s t a l l . s h . i n
$ { C M a k e _ B I N A R Y _ D I R } / T e s t s / T e s t S h e l l I n s t a l l / T e s t I n s t a l l . s h
@ O N L Y I M M E D I A T E
)
ADD_TEST ( ShellInstall /bin/sh ${ CMake_BINARY_DIR } /Tests/TestShellInstall/TestShellInstall.sh )
ENDIF ( PREFIX_IS_FOR_TEST )
ENDIF ( UNIX )
IF ( CMAKE_TEST_PLPLOT_DIR )
ADD_TEST ( plplot ${ CMAKE_CTEST_COMMAND } -V -S ${ CMAKE_TEST_PLPLOT_DIR } /../../EasyDashboardScripts/plplot.cmake )
SET_TESTS_PROPERTIES ( plplot PROPERTIES TIMEOUT 5400 )
ENDIF ( CMAKE_TEST_PLPLOT_DIR )
IF ( CMAKE_TEST_CHICKEN_DIR )
ADD_TEST ( Chicken ${ CMAKE_CTEST_COMMAND } -V -S ${ CMAKE_TEST_CHICKEN_DIR } /../../EasyDashboardScripts/Chicken.cmake )
SET_TESTS_PROPERTIES ( Chicken PROPERTIES TIMEOUT 5400 )
ENDIF ( CMAKE_TEST_CHICKEN_DIR )
IF ( CMAKE_TEST_KDELIBS_ALPHA_1_DIR )
ADD_TEST ( KDELibsAlpha1 ${ CMAKE_CTEST_COMMAND } -V -S ${ CMAKE_TEST_KDELIBS_ALPHA_1_DIR } /../../EasyDashboardScripts/kdelibs.cmake )
SET_TESTS_PROPERTIES ( KDELibsAlpha1 PROPERTIES TIMEOUT 5400 )
ENDIF ( CMAKE_TEST_KDELIBS_ALPHA_1_DIR )
ENDIF ( BUILD_TESTING )
SUBDIRS ( CMakeTests )