From e72bac587054b16fdc44ed597b7f03b06656d95a Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Sun, 8 Feb 2004 12:04:10 -0500 Subject: ENH: Add second part of SimpleInstall --- Source/CMakeLists.txt | 13 +++++ Tests/SimpleInstall/CMakeLists.txt | 97 +++++++++++++++++++++--------------- Tests/SimpleInstallS2/CMakeLists.txt | 97 +++++++++++++++++++++--------------- 3 files changed, 129 insertions(+), 78 deletions(-) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 5a8aad2..c1bb7c6 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -251,6 +251,19 @@ IF(BUILD_TESTING) --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}" --test-command ${SimpleInstallInstallDir}/bin/SimpleInstall) + ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/SimpleInstall" + "${CMake_BINARY_DIR}/Tests/SimpleInstallS2" + --build-generator ${CMAKE_GENERATOR} + --build-project TestSimpleInstall + --build-makeprogram ${MAKEPROGRAM} + --build-two-config + --build-options + "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}" + "-DSTAGE2:BOOL=1" + --test-command + ${CMake_BINARY_DIR}/Tests/SimpleInstallS2/ExecPath/SimpleInstallS2) ADD_TEST(X11 ${CMAKE_CTEST_COMMAND} --build-and-test diff --git a/Tests/SimpleInstall/CMakeLists.txt b/Tests/SimpleInstall/CMakeLists.txt index 59790f0..c70a0f8 100644 --- a/Tests/SimpleInstall/CMakeLists.txt +++ b/Tests/SimpleInstall/CMakeLists.txt @@ -5,43 +5,62 @@ SET(EXECUTABLE_OUTPUT_PATH "${TestSimpleInstall_BINARY_DIR}/ExecPath") SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}") SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix") -ADD_LIBRARY(test1 STATIC lib1.cxx) -ADD_LIBRARY(test2 SHARED lib2.cxx) -ADD_LIBRARY(test3 MODULE lib3.cxx) -ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h) -TARGET_LINK_LIBRARIES(SimpleInstall test1 test2) - -ADD_DEPENDENCIES(SimpleInstall test3) - -INSTALL_TARGETS(/bin SimpleInstall) -INSTALL_TARGETS(/lib test1 test2 test3) -INSTALL_TARGETS(/include lib1.h lib2.h lib3.h) - -SET(EXTRA_INSTALL_FLAGS) -IF(CMAKE_GENERATOR MATCHES "^Visual Studio") - MESSAGE("CMake generator: ${CMAKE_GENERATOR}") - FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel) - IF(MAKEPROGRAM MATCHES "/build ${build_type}") - SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) - ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}") - IF(MAKEPROGRAM MATCHES "- ${build_type}") - SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) - ENDIF(MAKEPROGRAM MATCHES "- ${build_type}") - ENDFOREACH(build_type) - IF(NOT EXTRA_INSTALL_FLAGS) - IF(BUILD_TYPE) - SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE}) - ENDIF(BUILD_TYPE) - ENDIF(NOT EXTRA_INSTALL_FLAGS) -ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio") - -MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}") - -ADD_CUSTOM_COMMAND( - TARGET SimpleInstall - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS ${EXTRA_INSTALL_FLAGS} + +IF(STAGE2) + FIND_LIBRARY(TEST1_LIBRARY + NAMES test1 test1${CMAKE_DEBUG_POSTFIX} + PATHS "${CMAKE_INSTALL_PREFIX}/lib" + DOC "First library") + FIND_LIBRARY(TEST2_LIBRARY + NAMES test2 test2${CMAKE_DEBUG_POSTFIX} + PATHS "${CMAKE_INSTALL_PREFIX}/lib" + DOC "First library") + ADD_EXECUTABLE (SimpleInstallS2 inst.cxx foo.c foo.h) + TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY}) + +ELSE(STAGE2) + # this is stage 1, so create libraries and modules and install everything + ADD_LIBRARY(test1 STATIC lib1.cxx) + ADD_LIBRARY(test2 SHARED lib2.cxx) + ADD_LIBRARY(test3 MODULE lib3.cxx) + + + + SET(EXTRA_INSTALL_FLAGS) + IF(CMAKE_GENERATOR MATCHES "^Visual Studio") + MESSAGE("CMake generator: ${CMAKE_GENERATOR}") + FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel) + IF(MAKEPROGRAM MATCHES "/build ${build_type}") + SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) + ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}") + IF(MAKEPROGRAM MATCHES "- ${build_type}") + SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) + ENDIF(MAKEPROGRAM MATCHES "- ${build_type}") + ENDFOREACH(build_type) + IF(NOT EXTRA_INSTALL_FLAGS) + IF(BUILD_TYPE) + SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE}) + ENDIF(BUILD_TYPE) + ENDIF(NOT EXTRA_INSTALL_FLAGS) + ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio") + + MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}") + + ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h) + TARGET_LINK_LIBRARIES(SimpleInstall test1 test2) + + ADD_DEPENDENCIES(SimpleInstall test3) + ADD_CUSTOM_COMMAND( + TARGET SimpleInstall + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS ${EXTRA_INSTALL_FLAGS} "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" - COMMENT "Install Project" - ) + COMMENT "Install Project" + ) + + INSTALL_TARGETS(/bin SimpleInstall) + INSTALL_TARGETS(/lib test1 test2 test3) + INSTALL_TARGETS(/include lib1.h lib2.h lib3.h) + +ENDIF(STAGE2) diff --git a/Tests/SimpleInstallS2/CMakeLists.txt b/Tests/SimpleInstallS2/CMakeLists.txt index 59790f0..c70a0f8 100644 --- a/Tests/SimpleInstallS2/CMakeLists.txt +++ b/Tests/SimpleInstallS2/CMakeLists.txt @@ -5,43 +5,62 @@ SET(EXECUTABLE_OUTPUT_PATH "${TestSimpleInstall_BINARY_DIR}/ExecPath") SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}") SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix") -ADD_LIBRARY(test1 STATIC lib1.cxx) -ADD_LIBRARY(test2 SHARED lib2.cxx) -ADD_LIBRARY(test3 MODULE lib3.cxx) -ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h) -TARGET_LINK_LIBRARIES(SimpleInstall test1 test2) - -ADD_DEPENDENCIES(SimpleInstall test3) - -INSTALL_TARGETS(/bin SimpleInstall) -INSTALL_TARGETS(/lib test1 test2 test3) -INSTALL_TARGETS(/include lib1.h lib2.h lib3.h) - -SET(EXTRA_INSTALL_FLAGS) -IF(CMAKE_GENERATOR MATCHES "^Visual Studio") - MESSAGE("CMake generator: ${CMAKE_GENERATOR}") - FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel) - IF(MAKEPROGRAM MATCHES "/build ${build_type}") - SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) - ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}") - IF(MAKEPROGRAM MATCHES "- ${build_type}") - SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) - ENDIF(MAKEPROGRAM MATCHES "- ${build_type}") - ENDFOREACH(build_type) - IF(NOT EXTRA_INSTALL_FLAGS) - IF(BUILD_TYPE) - SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE}) - ENDIF(BUILD_TYPE) - ENDIF(NOT EXTRA_INSTALL_FLAGS) -ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio") - -MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}") - -ADD_CUSTOM_COMMAND( - TARGET SimpleInstall - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS ${EXTRA_INSTALL_FLAGS} + +IF(STAGE2) + FIND_LIBRARY(TEST1_LIBRARY + NAMES test1 test1${CMAKE_DEBUG_POSTFIX} + PATHS "${CMAKE_INSTALL_PREFIX}/lib" + DOC "First library") + FIND_LIBRARY(TEST2_LIBRARY + NAMES test2 test2${CMAKE_DEBUG_POSTFIX} + PATHS "${CMAKE_INSTALL_PREFIX}/lib" + DOC "First library") + ADD_EXECUTABLE (SimpleInstallS2 inst.cxx foo.c foo.h) + TARGET_LINK_LIBRARIES(SimpleInstallS2 ${TEST1_LIBRARY} ${TEST2_LIBRARY}) + +ELSE(STAGE2) + # this is stage 1, so create libraries and modules and install everything + ADD_LIBRARY(test1 STATIC lib1.cxx) + ADD_LIBRARY(test2 SHARED lib2.cxx) + ADD_LIBRARY(test3 MODULE lib3.cxx) + + + + SET(EXTRA_INSTALL_FLAGS) + IF(CMAKE_GENERATOR MATCHES "^Visual Studio") + MESSAGE("CMake generator: ${CMAKE_GENERATOR}") + FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel) + IF(MAKEPROGRAM MATCHES "/build ${build_type}") + SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) + ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}") + IF(MAKEPROGRAM MATCHES "- ${build_type}") + SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type}) + ENDIF(MAKEPROGRAM MATCHES "- ${build_type}") + ENDFOREACH(build_type) + IF(NOT EXTRA_INSTALL_FLAGS) + IF(BUILD_TYPE) + SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE}) + ENDIF(BUILD_TYPE) + ENDIF(NOT EXTRA_INSTALL_FLAGS) + ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio") + + MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}") + + ADD_EXECUTABLE (SimpleInstall inst.cxx foo.c foo.h) + TARGET_LINK_LIBRARIES(SimpleInstall test1 test2) + + ADD_DEPENDENCIES(SimpleInstall test3) + ADD_CUSTOM_COMMAND( + TARGET SimpleInstall + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS ${EXTRA_INSTALL_FLAGS} "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" - COMMENT "Install Project" - ) + COMMENT "Install Project" + ) + + INSTALL_TARGETS(/bin SimpleInstall) + INSTALL_TARGETS(/lib test1 test2 test3) + INSTALL_TARGETS(/include lib1.h lib2.h lib3.h) + +ENDIF(STAGE2) -- cgit v0.12