| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- cmake_minimum_required(VERSION 2.8)
- project(ExternalProjectUpdateTest NONE)
- include(ExternalProject)
- find_package(Git)
- option(ExternalProjectUpdateTest_USE_FOLDERS "Enable folder grouping in IDEs." ON)
- if(ExternalProjectUpdateTest_USE_FOLDERS)
- set_property(GLOBAL PROPERTY USE_FOLDERS ON)
- else()
- set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
- endif()
- set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER
- "CMakePredefinedTargets-in-ExternalProjectUpdateTest")
- set(base "${CMAKE_BINARY_DIR}/CMakeExternals")
- set(binary_base "${base}/Build")
- set_property(DIRECTORY PROPERTY EP_BASE ${base})
- set_property(DIRECTORY PROPERTY EP_STEP_TARGETS configure build test)
- set(do_git_tests 0)
- if(GIT_EXECUTABLE)
- set(do_git_tests 1)
- execute_process(
- COMMAND "${GIT_EXECUTABLE}" --version
- OUTPUT_VARIABLE ov
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- string(REGEX REPLACE "^git version (.+)$" "\\1" git_version "${ov}")
- message(STATUS "git_version='${git_version}'")
- if(git_version VERSION_LESS 1.6.5)
- message(STATUS "No ExternalProject git tests with git client less than version 1.6.5")
- set(do_git_tests 0)
- endif()
- endif()
- # This should be specified from the command line.
- if(NOT TEST_GIT_TAG)
- set(TEST_GIT_TAG origin/master)
- endif()
- if(do_git_tests)
- set(local_git_repo "../../LocalRepositories/GIT")
- # Unzip/untar the git repository in our source folder so that other
- # projects below may use it to test git args of ExternalProject_Add
- #
- set(proj SetupLocalGITRepository)
- ExternalProject_Add(${proj}
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/GIT
- URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo.tgz
- BUILD_COMMAND ""
- CONFIGURE_COMMAND "${GIT_EXECUTABLE}" --version
- INSTALL_COMMAND ""
- )
- set_property(TARGET ${proj}
- PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
- set(proj TutorialStep1-GIT)
- ExternalProject_Add(${proj}
- GIT_REPOSITORY "${local_git_repo}"
- GIT_TAG ${TEST_GIT_TAG}
- CMAKE_GENERATOR "${CMAKE_GENERATOR}"
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
- INSTALL_COMMAND ""
- DEPENDS "SetupLocalGITRepository"
- )
- set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
- endif()
- # Test the testable built/installed products:
- #
- enable_testing()
- # Do at least a smoke test of a built executable from each
- # project's build directory...
- #
- # BuildTree tests:
- #
- if(do_git_tests)
- add_test(TutorialStep1-GIT
- "${binary_base}/TutorialStep1-GIT/Tutorial" 81)
- endif()
- message(STATUS "do_git_tests='${do_git_tests}'")
- message(STATUS "GIT_EXECUTABLE='${GIT_EXECUTABLE}'")
|