ENH: Add additional subdirectory to improve testing and to allow cleanup when testing cpack
This commit is contained in:
parent
c14a06c8e0
commit
3d44b9a354
|
@ -514,7 +514,7 @@ IF(BUILD_TESTING)
|
||||||
--build-two-config
|
--build-two-config
|
||||||
--build-options
|
--build-options
|
||||||
"-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
|
"-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
|
||||||
--test-command ${SimpleInstallInstallDir}/bin/SimpleInstallExe)
|
--test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallExe)
|
||||||
ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
|
ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
|
||||||
--build-and-test
|
--build-and-test
|
||||||
"${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
|
"${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
|
||||||
|
@ -526,7 +526,7 @@ IF(BUILD_TESTING)
|
||||||
--build-options
|
--build-options
|
||||||
"-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
|
"-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
|
||||||
"-DSTAGE2:BOOL=1"
|
"-DSTAGE2:BOOL=1"
|
||||||
--test-command ${SimpleInstallInstallDir}/bin/SimpleInstallS2)
|
--test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallS2)
|
||||||
|
|
||||||
ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
|
ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
|
||||||
--build-and-test
|
--build-and-test
|
||||||
|
|
|
@ -10,7 +10,7 @@ SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}")
|
||||||
SET(CMAKE_SKIP_BUILD_RPATH 1)
|
SET(CMAKE_SKIP_BUILD_RPATH 1)
|
||||||
|
|
||||||
# Make sure the executable can run from the install tree.
|
# Make sure the executable can run from the install tree.
|
||||||
SET(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
SET(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/MyTest/lib)
|
||||||
|
|
||||||
# Skip the dependency that causes a build when installing. This
|
# Skip the dependency that causes a build when installing. This
|
||||||
# avoids infinite loops when the post-build rule below installs.
|
# avoids infinite loops when the post-build rule below installs.
|
||||||
|
@ -22,14 +22,14 @@ SET(EXTRA_INSTALL_FLAGS)
|
||||||
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
||||||
|
|
||||||
IF(STAGE2)
|
IF(STAGE2)
|
||||||
SET(LIBPATHS "${CMAKE_INSTALL_PREFIX}/lib")
|
SET(LIBPATHS "${CMAKE_INSTALL_PREFIX}/MyTest/lib")
|
||||||
SET(t1NAMES test1 test1${CMAKE_DEBUG_POSTFIX})
|
SET(t1NAMES test1 test1${CMAKE_DEBUG_POSTFIX})
|
||||||
SET(t2NAMES test2 test2${CMAKE_DEBUG_POSTFIX})
|
SET(t2NAMES test2 test2${CMAKE_DEBUG_POSTFIX})
|
||||||
SET(t4NAMES test4 test4${CMAKE_DEBUG_POSTFIX})
|
SET(t4NAMES test4 test4${CMAKE_DEBUG_POSTFIX})
|
||||||
|
|
||||||
# Make sure the install script ran.
|
# Make sure the install script ran.
|
||||||
SET(CMAKE_INSTALL_SCRIPT_DID_RUN 0)
|
SET(CMAKE_INSTALL_SCRIPT_DID_RUN 0)
|
||||||
INCLUDE(${CMAKE_INSTALL_PREFIX}/InstallScriptOut.cmake OPTIONAL)
|
INCLUDE(${CMAKE_INSTALL_PREFIX}/MyTest/InstallScriptOut.cmake OPTIONAL)
|
||||||
IF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
IF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
||||||
MESSAGE(STATUS "Stage 1 did run install script 2.")
|
MESSAGE(STATUS "Stage 1 did run install script 2.")
|
||||||
ELSE(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
ELSE(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
||||||
|
@ -37,7 +37,7 @@ IF(STAGE2)
|
||||||
ENDIF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
ENDIF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
||||||
|
|
||||||
IF(CYGWIN OR MINGW)
|
IF(CYGWIN OR MINGW)
|
||||||
SET(LIBPATHS ${LIBPATHS} "${CMAKE_INSTALL_PREFIX}/bin")
|
SET(LIBPATHS ${LIBPATHS} "${CMAKE_INSTALL_PREFIX}/MyTest/bin")
|
||||||
ENDIF(CYGWIN OR MINGW)
|
ENDIF(CYGWIN OR MINGW)
|
||||||
MESSAGE("Search for library in: ${LIBPATHS}")
|
MESSAGE("Search for library in: ${LIBPATHS}")
|
||||||
|
|
||||||
|
@ -58,16 +58,16 @@ IF(STAGE2)
|
||||||
PATHS ${LIBPATHS}
|
PATHS ${LIBPATHS}
|
||||||
DOC "Fourth library")
|
DOC "Fourth library")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/include)
|
INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/MyTest/include)
|
||||||
ADD_EXECUTABLE (SimpleInstallS2 inst2.cxx foo.c foo.h)
|
ADD_EXECUTABLE (SimpleInstallS2 inst2.cxx foo.c foo.h)
|
||||||
TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY} ${TEST4_LIBRARY})
|
TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY} ${TEST4_LIBRARY})
|
||||||
SET(install_target SimpleInstallS2)
|
SET(install_target SimpleInstallS2)
|
||||||
|
|
||||||
# Make sure the test executable can run from the install tree.
|
# Make sure the test executable can run from the install tree.
|
||||||
SET_TARGET_PROPERTIES(SimpleInstallS2 PROPERTIES
|
SET_TARGET_PROPERTIES(SimpleInstallS2 PROPERTIES
|
||||||
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
|
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/MyTest/lib)
|
||||||
|
|
||||||
INSTALL_TARGETS(/bin SimpleInstallS2)
|
INSTALL_TARGETS(/MyTest/bin SimpleInstallS2)
|
||||||
ELSE(STAGE2)
|
ELSE(STAGE2)
|
||||||
# this is stage 1, so create libraries and modules and install everything
|
# this is stage 1, so create libraries and modules and install everything
|
||||||
ADD_LIBRARY(test1 STATIC lib1.cxx)
|
ADD_LIBRARY(test1 STATIC lib1.cxx)
|
||||||
|
@ -81,7 +81,7 @@ ELSE(STAGE2)
|
||||||
|
|
||||||
# Make sure the test executable can run from the install tree.
|
# Make sure the test executable can run from the install tree.
|
||||||
SET_TARGET_PROPERTIES(SimpleInstall PROPERTIES
|
SET_TARGET_PROPERTIES(SimpleInstall PROPERTIES
|
||||||
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
|
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/MyTest/lib)
|
||||||
|
|
||||||
IF(CMAKE_GENERATOR MATCHES "Makefiles")
|
IF(CMAKE_GENERATOR MATCHES "Makefiles")
|
||||||
ADD_SUBDIRECTORY(TestSubDir)
|
ADD_SUBDIRECTORY(TestSubDir)
|
||||||
|
@ -93,16 +93,16 @@ ELSE(STAGE2)
|
||||||
ADD_DEPENDENCIES(test4 test2)
|
ADD_DEPENDENCIES(test4 test2)
|
||||||
|
|
||||||
INSTALL(TARGETS SimpleInstall test1 test2 test3
|
INSTALL(TARGETS SimpleInstall test1 test2 test3
|
||||||
RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
|
RUNTIME DESTINATION MyTest/bin LIBRARY DESTINATION MyTest/lib)
|
||||||
INSTALL(TARGETS test4 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
INSTALL(TARGETS test4 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||||
RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
|
RUNTIME DESTINATION MyTest/bin LIBRARY DESTINATION MyTest/lib)
|
||||||
INSTALL(FILES lib1.h DESTINATION include/foo)
|
INSTALL(FILES lib1.h DESTINATION MyTest/include/foo)
|
||||||
INSTALL(FILES lib2.h
|
INSTALL(FILES lib2.h
|
||||||
DESTINATION include/foo
|
DESTINATION MyTest/include/foo
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE
|
PERMISSIONS OWNER_READ OWNER_WRITE
|
||||||
RENAME lib2renamed.h
|
RENAME lib2renamed.h
|
||||||
)
|
)
|
||||||
INSTALL_FILES(/include FILES lib3.h)
|
INSTALL_FILES(/MyTest/include FILES lib3.h)
|
||||||
|
|
||||||
# Test user-specified install scripts.
|
# Test user-specified install scripts.
|
||||||
INSTALL(
|
INSTALL(
|
||||||
|
|
|
@ -4,6 +4,6 @@ IF(INSTALL_SCRIPT_1_DID_RUN)
|
||||||
ELSE(INSTALL_SCRIPT_1_DID_RUN)
|
ELSE(INSTALL_SCRIPT_1_DID_RUN)
|
||||||
MESSAGE(FATAL_ERROR "Install script 1 did not run before install script 2.")
|
MESSAGE(FATAL_ERROR "Install script 1 did not run before install script 2.")
|
||||||
ENDIF(INSTALL_SCRIPT_1_DID_RUN)
|
ENDIF(INSTALL_SCRIPT_1_DID_RUN)
|
||||||
FILE(WRITE "${CMAKE_INSTALL_PREFIX}/InstallScriptOut.cmake"
|
FILE(WRITE "${CMAKE_INSTALL_PREFIX}/MyTest/InstallScriptOut.cmake"
|
||||||
"SET(CMAKE_INSTALL_SCRIPT_DID_RUN 1)\n"
|
"SET(CMAKE_INSTALL_SCRIPT_DID_RUN 1)\n"
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
ADD_EXECUTABLE(TSD TSD.cxx TSD_utils.cxx)
|
ADD_EXECUTABLE(TSD TSD.cxx TSD_utils.cxx)
|
||||||
INSTALL_FILES(/include FILES TSD.h)
|
INSTALL_FILES(/MyTest/include FILES TSD.h)
|
||||||
INSTALL_TARGETS(/bin TSD)
|
INSTALL_TARGETS(/MyTest/bin TSD)
|
||||||
|
|
|
@ -10,7 +10,7 @@ SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}")
|
||||||
SET(CMAKE_SKIP_BUILD_RPATH 1)
|
SET(CMAKE_SKIP_BUILD_RPATH 1)
|
||||||
|
|
||||||
# Make sure the executable can run from the install tree.
|
# Make sure the executable can run from the install tree.
|
||||||
SET(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
SET(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/MyTest/lib)
|
||||||
|
|
||||||
# Skip the dependency that causes a build when installing. This
|
# Skip the dependency that causes a build when installing. This
|
||||||
# avoids infinite loops when the post-build rule below installs.
|
# avoids infinite loops when the post-build rule below installs.
|
||||||
|
@ -22,14 +22,14 @@ SET(EXTRA_INSTALL_FLAGS)
|
||||||
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
||||||
|
|
||||||
IF(STAGE2)
|
IF(STAGE2)
|
||||||
SET(LIBPATHS "${CMAKE_INSTALL_PREFIX}/lib")
|
SET(LIBPATHS "${CMAKE_INSTALL_PREFIX}/MyTest/lib")
|
||||||
SET(t1NAMES test1 test1${CMAKE_DEBUG_POSTFIX})
|
SET(t1NAMES test1 test1${CMAKE_DEBUG_POSTFIX})
|
||||||
SET(t2NAMES test2 test2${CMAKE_DEBUG_POSTFIX})
|
SET(t2NAMES test2 test2${CMAKE_DEBUG_POSTFIX})
|
||||||
SET(t4NAMES test4 test4${CMAKE_DEBUG_POSTFIX})
|
SET(t4NAMES test4 test4${CMAKE_DEBUG_POSTFIX})
|
||||||
|
|
||||||
# Make sure the install script ran.
|
# Make sure the install script ran.
|
||||||
SET(CMAKE_INSTALL_SCRIPT_DID_RUN 0)
|
SET(CMAKE_INSTALL_SCRIPT_DID_RUN 0)
|
||||||
INCLUDE(${CMAKE_INSTALL_PREFIX}/InstallScriptOut.cmake OPTIONAL)
|
INCLUDE(${CMAKE_INSTALL_PREFIX}/MyTest/InstallScriptOut.cmake OPTIONAL)
|
||||||
IF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
IF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
||||||
MESSAGE(STATUS "Stage 1 did run install script 2.")
|
MESSAGE(STATUS "Stage 1 did run install script 2.")
|
||||||
ELSE(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
ELSE(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
||||||
|
@ -37,7 +37,7 @@ IF(STAGE2)
|
||||||
ENDIF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
ENDIF(CMAKE_INSTALL_SCRIPT_DID_RUN)
|
||||||
|
|
||||||
IF(CYGWIN OR MINGW)
|
IF(CYGWIN OR MINGW)
|
||||||
SET(LIBPATHS ${LIBPATHS} "${CMAKE_INSTALL_PREFIX}/bin")
|
SET(LIBPATHS ${LIBPATHS} "${CMAKE_INSTALL_PREFIX}/MyTest/bin")
|
||||||
ENDIF(CYGWIN OR MINGW)
|
ENDIF(CYGWIN OR MINGW)
|
||||||
MESSAGE("Search for library in: ${LIBPATHS}")
|
MESSAGE("Search for library in: ${LIBPATHS}")
|
||||||
|
|
||||||
|
@ -58,16 +58,16 @@ IF(STAGE2)
|
||||||
PATHS ${LIBPATHS}
|
PATHS ${LIBPATHS}
|
||||||
DOC "Fourth library")
|
DOC "Fourth library")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/include)
|
INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/MyTest/include)
|
||||||
ADD_EXECUTABLE (SimpleInstallS2 inst2.cxx foo.c foo.h)
|
ADD_EXECUTABLE (SimpleInstallS2 inst2.cxx foo.c foo.h)
|
||||||
TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY} ${TEST4_LIBRARY})
|
TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY} ${TEST4_LIBRARY})
|
||||||
SET(install_target SimpleInstallS2)
|
SET(install_target SimpleInstallS2)
|
||||||
|
|
||||||
# Make sure the test executable can run from the install tree.
|
# Make sure the test executable can run from the install tree.
|
||||||
SET_TARGET_PROPERTIES(SimpleInstallS2 PROPERTIES
|
SET_TARGET_PROPERTIES(SimpleInstallS2 PROPERTIES
|
||||||
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
|
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/MyTest/lib)
|
||||||
|
|
||||||
INSTALL_TARGETS(/bin SimpleInstallS2)
|
INSTALL_TARGETS(/MyTest/bin SimpleInstallS2)
|
||||||
ELSE(STAGE2)
|
ELSE(STAGE2)
|
||||||
# this is stage 1, so create libraries and modules and install everything
|
# this is stage 1, so create libraries and modules and install everything
|
||||||
ADD_LIBRARY(test1 STATIC lib1.cxx)
|
ADD_LIBRARY(test1 STATIC lib1.cxx)
|
||||||
|
@ -81,7 +81,7 @@ ELSE(STAGE2)
|
||||||
|
|
||||||
# Make sure the test executable can run from the install tree.
|
# Make sure the test executable can run from the install tree.
|
||||||
SET_TARGET_PROPERTIES(SimpleInstall PROPERTIES
|
SET_TARGET_PROPERTIES(SimpleInstall PROPERTIES
|
||||||
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
|
INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/MyTest/lib)
|
||||||
|
|
||||||
IF(CMAKE_GENERATOR MATCHES "Makefiles")
|
IF(CMAKE_GENERATOR MATCHES "Makefiles")
|
||||||
ADD_SUBDIRECTORY(TestSubDir)
|
ADD_SUBDIRECTORY(TestSubDir)
|
||||||
|
@ -93,16 +93,16 @@ ELSE(STAGE2)
|
||||||
ADD_DEPENDENCIES(test4 test2)
|
ADD_DEPENDENCIES(test4 test2)
|
||||||
|
|
||||||
INSTALL(TARGETS SimpleInstall test1 test2 test3
|
INSTALL(TARGETS SimpleInstall test1 test2 test3
|
||||||
RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
|
RUNTIME DESTINATION MyTest/bin LIBRARY DESTINATION MyTest/lib)
|
||||||
INSTALL(TARGETS test4 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
INSTALL(TARGETS test4 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||||
RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
|
RUNTIME DESTINATION MyTest/bin LIBRARY DESTINATION MyTest/lib)
|
||||||
INSTALL(FILES lib1.h DESTINATION include/foo)
|
INSTALL(FILES lib1.h DESTINATION MyTest/include/foo)
|
||||||
INSTALL(FILES lib2.h
|
INSTALL(FILES lib2.h
|
||||||
DESTINATION include/foo
|
DESTINATION MyTest/include/foo
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE
|
PERMISSIONS OWNER_READ OWNER_WRITE
|
||||||
RENAME lib2renamed.h
|
RENAME lib2renamed.h
|
||||||
)
|
)
|
||||||
INSTALL_FILES(/include FILES lib3.h)
|
INSTALL_FILES(/MyTest/include FILES lib3.h)
|
||||||
|
|
||||||
# Test user-specified install scripts.
|
# Test user-specified install scripts.
|
||||||
INSTALL(
|
INSTALL(
|
||||||
|
|
|
@ -4,6 +4,6 @@ IF(INSTALL_SCRIPT_1_DID_RUN)
|
||||||
ELSE(INSTALL_SCRIPT_1_DID_RUN)
|
ELSE(INSTALL_SCRIPT_1_DID_RUN)
|
||||||
MESSAGE(FATAL_ERROR "Install script 1 did not run before install script 2.")
|
MESSAGE(FATAL_ERROR "Install script 1 did not run before install script 2.")
|
||||||
ENDIF(INSTALL_SCRIPT_1_DID_RUN)
|
ENDIF(INSTALL_SCRIPT_1_DID_RUN)
|
||||||
FILE(WRITE "${CMAKE_INSTALL_PREFIX}/InstallScriptOut.cmake"
|
FILE(WRITE "${CMAKE_INSTALL_PREFIX}/MyTest/InstallScriptOut.cmake"
|
||||||
"SET(CMAKE_INSTALL_SCRIPT_DID_RUN 1)\n"
|
"SET(CMAKE_INSTALL_SCRIPT_DID_RUN 1)\n"
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
ADD_EXECUTABLE(TSD TSD.cxx TSD_utils.cxx)
|
ADD_EXECUTABLE(TSD TSD.cxx TSD_utils.cxx)
|
||||||
INSTALL_FILES(/include FILES TSD.h)
|
INSTALL_FILES(/MyTest/include FILES TSD.h)
|
||||||
INSTALL_TARGETS(/bin TSD)
|
INSTALL_TARGETS(/MyTest/bin TSD)
|
||||||
|
|
Loading…
Reference in New Issue