diff options
46 files changed, 453 insertions, 60 deletions
diff --git a/.gitlab/ci/configure_debian10_ninja.cmake b/.gitlab/ci/configure_debian10_ninja.cmake index 1be5381..8cf3835 100644 --- a/.gitlab/ci/configure_debian10_ninja.cmake +++ b/.gitlab/ci/configure_debian10_ninja.cmake @@ -77,4 +77,8 @@ set(CMake_TEST_JQ "/usr/bin/jq" CACHE PATH "") set(CMake_TEST_Qt5 "ON" CACHE BOOL "") set(CMake_TEST_UseSWIG "ON" CACHE BOOL "") +if (NOT "$ENV{SWIFTC}" STREQUAL "") + set(CMAKE_Swift_COMPILER "$ENV{SWIFTC}" CACHE FILEPATH "") +endif() + include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/docker/debian10/install_deps.sh b/.gitlab/ci/docker/debian10/install_deps.sh index 12a91e6..1c112dd 100755 --- a/.gitlab/ci/docker/debian10/install_deps.sh +++ b/.gitlab/ci/docker/debian10/install_deps.sh @@ -30,6 +30,10 @@ apt-get install -y \ subversion \ mercurial +# Install swift runtime deps. +apt-get install -y \ + libncurses5 + # Packages needed to test find modules. apt-get install -y \ alsa-utils \ @@ -87,14 +91,16 @@ apt-get install -y \ apt-get install -y \ libmono-system-windows-forms4.0-cil curl -L -O https://github.com/IronLanguages/ironpython2/releases/download/ipy-2.7.10/ironpython_2.7.10.deb +echo 'e1aceec1d49ffa66e9059a52168a734999dcccc50164a60e2936649cae698f3e ironpython_2.7.10.deb' > ironpython.sha256sum +sha256sum --check ironpython.sha256sum dpkg -i ironpython_2.7.10.deb -rm ironpython_2.7.10.deb +rm ironpython_2.7.10.deb ironpython.sha256sum # Perforce curl -L -O https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz echo '72620c55e9389705582506d6f3388005fb4f674888a00a12a51edc2ae37823b3 helix-core-server.tgz' > helix.sha256sum sha256sum --check helix.sha256sum tar -C /usr/local/bin -xvzf helix-core-server.tgz -- p4 p4d -rm helix-core-server.tgz +rm helix-core-server.tgz helix.sha256sum apt-get clean diff --git a/.gitlab/ci/env_debian10_ninja.cmake b/.gitlab/ci/env_debian10_ninja.cmake deleted file mode 100644 index ec252b4..0000000 --- a/.gitlab/ci/env_debian10_ninja.cmake +++ /dev/null @@ -1 +0,0 @@ -set(ENV{MY_RUBY_HOME} "/usr/local/rvm/rubies/ruby-2.7.0") diff --git a/.gitlab/ci/env_debian10_ninja.sh b/.gitlab/ci/env_debian10_ninja.sh new file mode 100644 index 0000000..67d900c --- /dev/null +++ b/.gitlab/ci/env_debian10_ninja.sh @@ -0,0 +1,11 @@ +export MY_RUBY_HOME="/usr/local/rvm/rubies/ruby-2.7.0" + +if test -z "$CI_MERGE_REQUEST_ID"; then + curl -L -O "https://download.swift.org/swift-5.5.3-release/ubuntu1804/swift-5.5.3-RELEASE/swift-5.5.3-RELEASE-ubuntu18.04.tar.gz" + echo '910634e2d97e14c43ed1f29caeb57fd01d10c2ff88cebb79baee1016b52c7492 swift-5.5.3-RELEASE-ubuntu18.04.tar.gz' > swift.sha256sum + sha256sum --check swift.sha256sum + mkdir /opt/swift + tar xzf swift-5.5.3-RELEASE-ubuntu18.04.tar.gz -C /opt/swift --strip-components=2 + rm swift-5.5.3-RELEASE-ubuntu18.04.tar.gz swift.sha256sum + export SWIFTC="/opt/swift/bin/swiftc" +fi diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 5e620f5..f53f6f9 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -45,7 +45,7 @@ ### Debian .debian10: - image: "kitware/cmake:ci-debian10-x86_64-2022-02-21" + image: "kitware/cmake:ci-debian10-x86_64-2022-02-25" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" diff --git a/Help/prop_test/ENVIRONMENT_MODIFICATION.rst b/Help/prop_test/ENVIRONMENT_MODIFICATION.rst index 1e17329..99ff512 100644 --- a/Help/prop_test/ENVIRONMENT_MODIFICATION.rst +++ b/Help/prop_test/ENVIRONMENT_MODIFICATION.rst @@ -18,17 +18,19 @@ order specified in the property's value. The ``OP`` may be one of: to its state from the rest of the CTest execution. - ``set``: Replaces the current value of ``MYVAR`` with ``VALUE``. - ``unset``: Unsets the current value of ``MYVAR``. - - ``string_append``: Appends ``VALUE`` to the current value of ``MYVAR``. - - ``string_prepend``: Prepends ``VALUE`` to the current value of ``MYVAR``. - - ``path_list_append``: Appends ``VALUE`` to the current value of ``MYVAR`` - using the host platform's path list separator (``;`` on Windows and ``:`` - elsewhere). - - ``path_list_prepend``: Prepends ``VALUE`` to the current value of + - ``string_append``: Appends singular ``VALUE`` to the current value of + ``MYVAR``. + - ``string_prepend``: Prepends singular ``VALUE`` to the current value of + ``MYVAR``. + - ``path_list_append``: Appends singular ``VALUE`` to the current value of ``MYVAR`` using the host platform's path list separator (``;`` on Windows and ``:`` elsewhere). - - ``cmake_list_append``: Appends ``VALUE`` to the current value of ``MYVAR`` - using ``;`` as the separator. - - ``cmake_list_prepend``: Prepends ``VALUE`` to the current value of + - ``path_list_prepend``: Prepends singular ``VALUE`` to the current value of + ``MYVAR`` using the host platform's path list separator (``;`` on Windows + and ``:`` elsewhere). + - ``cmake_list_append``: Appends singular ``VALUE`` to the current value of + ``MYVAR`` using ``;`` as the separator. + - ``cmake_list_prepend``: Prepends singular ``VALUE`` to the current value of ``MYVAR`` using ``;`` as the separator. Unrecognized ``OP`` values will result in the test failing before it is diff --git a/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst b/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst index d7fb9b1..8b777e4 100644 --- a/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst +++ b/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst @@ -8,9 +8,10 @@ This command will be added as a prefix to :command:`add_test`, :command:`add_custom_command`, and :command:`add_custom_target` commands for built target system executables. -If this property contains a :ref:`semicolon-separated list <CMake Language -Lists>`, then the first value is the command and remaining values are its -arguments. +.. versionadded:: 3.15 + If this property contains a :ref:`semicolon-separated list <CMake Language + Lists>`, then the first value is the command and remaining values are its + arguments. This property is initialized by the value of the :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable if it is set when a target diff --git a/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst b/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst index 815da00..e21b35d 100644 --- a/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst +++ b/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst @@ -7,9 +7,10 @@ This variable is only used when :variable:`CMAKE_CROSSCOMPILING` is on. It should point to a command on the host system that can run executable built for the target system. -If this variable contains a :ref:`semicolon-separated list <CMake Language -Lists>`, then the first value is the command and remaining values are its -arguments. +.. versionadded:: 3.15 + If this variable contains a :ref:`semicolon-separated list <CMake Language + Lists>`, then the first value is the command and remaining values are its + arguments. The command will be used to run :command:`try_run` generated executables, which avoids manual population of the ``TryRunResults.cmake`` file. diff --git a/Modules/FindThreads.cmake b/Modules/FindThreads.cmake index 4198374..e4d6cf3 100644 --- a/Modules/FindThreads.cmake +++ b/Modules/FindThreads.cmake @@ -164,21 +164,18 @@ if(CMAKE_HAVE_PTHREAD_H) elseif(CMAKE_CXX_COMPILER_LOADED) CHECK_CXX_SOURCE_COMPILES("${PTHREAD_C_CXX_TEST_SOURCE}" CMAKE_HAVE_LIBC_PTHREAD) endif() - - # Check for -pthread first if enabled. This is the recommended - # way, but not backwards compatible as one must also pass -pthread - # as compiler flag then. - if(THREADS_PREFER_PTHREAD_FLAG) - _check_pthreads_flag() - endif() - - if(Threads_FOUND) - # do nothing, we are done - elseif(CMAKE_HAVE_LIBC_PTHREAD) + if(CMAKE_HAVE_LIBC_PTHREAD) set(CMAKE_THREAD_LIBS_INIT "") set(CMAKE_HAVE_THREADS_LIBRARY 1) set(Threads_FOUND TRUE) else() + # Check for -pthread first if enabled. This is the recommended + # way, but not backwards compatible as one must also pass -pthread + # as compiler flag then. + if (THREADS_PREFER_PTHREAD_FLAG) + _check_pthreads_flag() + endif () + if(CMAKE_SYSTEM MATCHES "GHS-MULTI") _check_threads_lib(posix pthread_create CMAKE_HAVE_PTHREADS_CREATE) endif() diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 2757679..699c8cf 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 23) -set(CMake_VERSION_PATCH 20220225) +set(CMake_VERSION_PATCH 20220301) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index 8d5ce7e..129ef4b 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx @@ -101,7 +101,8 @@ void cmCommonTargetGenerator::AppendFortranFormatFlags( } void cmCommonTargetGenerator::AppendFortranPreprocessFlags( - std::string& flags, cmSourceFile const& source) + std::string& flags, cmSourceFile const& source, + PreprocessFlagsRequired requires_pp) { const std::string srcpp = source.GetSafeProperty("Fortran_PREPROCESS"); cmOutputConverter::FortranPreprocess preprocess = @@ -114,7 +115,9 @@ void cmCommonTargetGenerator::AppendFortranPreprocessFlags( const char* var = nullptr; switch (preprocess) { case cmOutputConverter::FortranPreprocess::Needed: - var = "CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON"; + if (requires_pp == PreprocessFlagsRequired::YES) { + var = "CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON"; + } break; case cmOutputConverter::FortranPreprocess::NotNeeded: var = "CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF"; diff --git a/Source/cmCommonTargetGenerator.h b/Source/cmCommonTargetGenerator.h index baa36c9..5aba1c6 100644 --- a/Source/cmCommonTargetGenerator.h +++ b/Source/cmCommonTargetGenerator.h @@ -46,8 +46,14 @@ protected: void AppendFortranFormatFlags(std::string& flags, cmSourceFile const& source); - void AppendFortranPreprocessFlags(std::string& flags, - cmSourceFile const& source); + enum class PreprocessFlagsRequired + { + YES, + NO + }; + void AppendFortranPreprocessFlags( + std::string& flags, cmSourceFile const& source, + PreprocessFlagsRequired requires_pp = PreprocessFlagsRequired::YES); virtual void AddIncludeFlags(std::string& flags, std::string const& lang, const std::string& config) = 0; diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 191b428..dd7d244 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -216,7 +216,8 @@ std::string cmNinjaTargetGenerator::ComputeFlagsForObject( // Add Fortran format flags. if (language == "Fortran") { this->AppendFortranFormatFlags(flags, *source); - this->AppendFortranPreprocessFlags(flags, *source); + this->AppendFortranPreprocessFlags(flags, *source, + PreprocessFlagsRequired::NO); } // Add source file specific flags. diff --git a/Tests/FortranOnly/CMakeLists.txt b/Tests/FortranOnly/CMakeLists.txt index ee47da4..b07c214 100644 --- a/Tests/FortranOnly/CMakeLists.txt +++ b/Tests/FortranOnly/CMakeLists.txt @@ -129,6 +129,12 @@ if(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON AND add_executable(preprocess_target preprocess2.f) set_property(TARGET preprocess_target PROPERTY Fortran_PREPROCESS ON) + if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") + # gfortran might report spurious warnings if we include the + # preprocessing flags at the compilation stage + target_compile_options(preprocess_target PRIVATE -Wall -Werror) + endif() + # Test that we can preprocess a single source file add_executable(preprocess_source preprocess3.f) set_property(SOURCE preprocess3.f PROPERTY Fortran_PREPROCESS ON) diff --git a/Tests/FortranOnly/preprocess2.f b/Tests/FortranOnly/preprocess2.f index 6595d62..3b332c4 100644 --- a/Tests/FortranOnly/preprocess2.f +++ b/Tests/FortranOnly/preprocess2.f @@ -1,4 +1,6 @@ #define int INTEGER + ! This single unmatched quote ' should not cause an error during compilation PROGRAM PREPRO - int f + int f = 1 + PRINT*, f END diff --git a/Tests/QtAutogen/MocInclude/CMakeLists.txt b/Tests/QtAutogen/MocInclude/CMakeLists.txt index 4224d2f..c62128b 100644 --- a/Tests/QtAutogen/MocInclude/CMakeLists.txt +++ b/Tests/QtAutogen/MocInclude/CMakeLists.txt @@ -1,7 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(MocInclude) -get_filename_component(CS_REAL ${CMAKE_CURRENT_SOURCE_DIR} REALPATH) -include("${CS_REAL}/../AutogenCoreTest.cmake") +if (NOT DEFINED AUTOGEN_CORE_TEST_CMAKE) + get_filename_component(AUTOGEN_CORE_TEST_CMAKE "../AutogenCoreTest.cmake" ABSOLUTE) +endif() +include("${AUTOGEN_CORE_TEST_CMAKE}") # Test moc include patterns diff --git a/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt b/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt index c28616b..cf60555 100644 --- a/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt +++ b/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.16) project(MocIncludeSymlink) -include("../AutogenCoreTest.cmake") +get_filename_component(AUTOGEN_CORE_TEST_CMAKE "../AutogenCoreTest.cmake" ABSOLUTE) +include("${AUTOGEN_CORE_TEST_CMAKE}") # # Tests if MocInclude can be build when @@ -65,6 +66,7 @@ macro(buildMocInclude sourceDir binaryDir) "-DCMAKE_AUTOGEN_VERBOSE=${CMAKE_AUTOGEN_VERBOSE}" "-DCMAKE_PREFIX_PATH:STRING=${CMAKE_PREFIX_PATH}" "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" + "-DAUTOGEN_CORE_TEST_CMAKE:STRING=${AUTOGEN_CORE_TEST_CMAKE}" OUTPUT_VARIABLE output ) if (result) diff --git a/Tests/RunCMake/SymlinkTrees/CMakeLists.txt b/Tests/RunCMake/SymlinkTrees/CMakeLists.txt index d6fea2c..e16faea 100644 --- a/Tests/RunCMake/SymlinkTrees/CMakeLists.txt +++ b/Tests/RunCMake/SymlinkTrees/CMakeLists.txt @@ -1,3 +1,52 @@ cmake_minimum_required(VERSION 2.8.12) project(${RunCMake_TEST} NONE) -include("${include_dir}/${RunCMake_TEST}.cmake") + +message(STATUS "source: '${CMAKE_SOURCE_DIR}'") +message(STATUS "binary: '${CMAKE_BINARY_DIR}'") +get_filename_component(real_source "${CMAKE_SOURCE_DIR}" REALPATH) +get_filename_component(real_binary "${CMAKE_BINARY_DIR}" REALPATH) +message(STATUS "real source: '${real_source}'") +message(STATUS "real binary: '${real_binary}'") + +if(RunCMake_TEST MATCHES "-exe") + enable_language(C) + file(WRITE "${CMAKE_SOURCE_DIR}/source.c" [[ + #include <stdio.h> + #include "source.h" + #include "binary.h" + extern void print_binary_c(void); + extern void print_binary_c(void); + void print_source_c(void) { + printf("source.c: '%s'\n", __FILE__); + } + int main(void) { + print_source_c(); + print_source_h(); + print_binary_c(); + print_binary_h(); + return 0; + } + ]]) + file(WRITE "${CMAKE_BINARY_DIR}/binary.c" [[ + #include <stdio.h> + void print_binary_c(void) { + printf("binary.c: '%s'\n", __FILE__); + } + ]]) + file(WRITE "${CMAKE_SOURCE_DIR}/include/source.h" [[ + void print_source_h(void) { + printf("source.h: '%s'\n", __FILE__); + } + ]]) + file(WRITE "${CMAKE_BINARY_DIR}/include/binary.h" [[ + void print_binary_h(void) { + printf("binary.h: '%s'\n", __FILE__); + } + ]]) + add_executable(exe source.c ${CMAKE_BINARY_DIR}/binary.c) + target_include_directories(exe PRIVATE + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_BINARY_DIR}/include + ) + add_custom_target(print ALL COMMAND exe) +endif() diff --git a/Tests/RunCMake/SymlinkTrees/PrintTrees.cmake b/Tests/RunCMake/SymlinkTrees/PrintTrees.cmake deleted file mode 100644 index aa99127..0000000 --- a/Tests/RunCMake/SymlinkTrees/PrintTrees.cmake +++ /dev/null @@ -1,6 +0,0 @@ -message(STATUS "source: '${CMAKE_SOURCE_DIR}'") -message(STATUS "binary: '${CMAKE_BINARY_DIR}'") -get_filename_component(real_source "${CMAKE_SOURCE_DIR}" REALPATH) -get_filename_component(real_binary "${CMAKE_BINARY_DIR}" REALPATH) -message(STATUS "real source: '${real_source}'") -message(STATUS "real binary: '${real_binary}'") diff --git a/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake b/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake index e5f1f7f..304e9de 100644 --- a/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake +++ b/Tests/RunCMake/SymlinkTrees/RunCMakeTest.cmake @@ -1,34 +1,246 @@ include(RunCMake) +function(run_symlink_test_case) + file(REMOVE_RECURSE + "${RunCMake_TEST_BINARY_DIR}/CMakeCache.txt" + "${RunCMake_TEST_BINARY_DIR}/CMakeFiles" + ) + run_cmake_with_options(${ARGN}) +endfunction() + # This function assumes that ``${RunCMake_BINARY_DIR}/${name}/source`` and # ``${RunCMake_BINARY_DIR}/${name}/binary`` are set up properly prior to # calling it. -function (run_symlink_test name) +function (run_symlink_test case src bin src_from_bin bin_from_src) + string(REGEX REPLACE "-.*" "" name "${case}") set(RunCMake_TEST_NO_CLEAN TRUE) + set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/${name}/${src}") + set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}/${bin}") configure_file( "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" - "${RunCMake_BINARY_DIR}/${name}/source/CMakeLists.txt" + "${RunCMake_TEST_SOURCE_DIR}/CMakeLists.txt" COPYONLY) - set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/${name}/source") - set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}/binary") + + # We explicitly pass the source directory argument for each case. + set(RunCMake_TEST_NO_SOURCE_DIR 1) + + # Test running in binary directory. + set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") # Emulate a shell using this directory. - set(ENV{PWD} "${RunCMake_TEST_BINARY_DIR}") - set(RunCMake_TEST_OPTIONS - "-Dinclude_dir:PATH=${CMAKE_CURRENT_LIST_DIR}") - run_cmake("${name}_symlinks") + set(ENV{PWD} "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}") + + # Pass absolute path to the source tree, plain. + set(RunCMake_TEST_VARIANT_DESCRIPTION " $abs/${name}/${src}") + run_symlink_test_case("${case}" "${RunCMake_TEST_SOURCE_DIR}") + + # Pass absolute path to the source tree, with -S. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -S $abs/${name}/${src}") + run_symlink_test_case("${case}" -S "${RunCMake_TEST_SOURCE_DIR}") + + # Pass relative path to the source tree, plain. + set(RunCMake_TEST_VARIANT_DESCRIPTION " ${src_from_bin}") + run_symlink_test_case("${case}" "${src_from_bin}") + + # Pass relative path to the source tree, with -S. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -S ${src_from_bin}") + run_symlink_test_case("${case}" -S "${src_from_bin}") + + # Test running in source directory. + set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_TEST_SOURCE_DIR}") + # Emulate a shell using this directory. + set(ENV{PWD} "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}") + + # Pass absolute path to the binary tree with -B. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -B $abs/${name}/${bin}") + run_symlink_test_case("${case}" -B "${RunCMake_TEST_BINARY_DIR}") + + # Pass relative path to the binary tree with -B. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -B ${bin_from_src}") + run_symlink_test_case("${case}" -B "${bin_from_src}") + + # Test running in another directory. + set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_BINARY_DIR}/${name}") + # Emulate a shell using this directory. + set(ENV{PWD} "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}") + + # Pass absolute paths to the source and binary trees. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -S $abs/${name}/${src} -B $abs/${name}/${bin}") + run_symlink_test_case("${case}" -S "${RunCMake_TEST_SOURCE_DIR}" -B "${RunCMake_TEST_BINARY_DIR}") + + # Pass relative paths to the source and binary trees. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -S ${src} -B ${bin}") + run_symlink_test_case("${case}" -S "${src}" -B "${bin}") + + # Pass relative paths to the source and binary trees. + set(RunCMake_TEST_VARIANT_DESCRIPTION " -S ../${name}/${src} -B ../${name}/${bin}") + run_symlink_test_case("${case}" -S "../${name}/${src}" -B "../${name}/${bin}") + + # Verify paths passed to compiler. + if(case MATCHES "^(different|asymmetric)-bin_in_src$") + # FIXME: Some generators compute incorrect relative paths. + message(STATUS "${case}-exe - SKIPPED") + message(STATUS "${case}-exe-build - SKIPPED") + return() + endif() + if(case MATCHES "^(different|asymmetric)-src_in_bin$" AND RunCMake_GENERATOR STREQUAL "Xcode") + # FIXME: The Xcode generator computes an incorrect relative path. + message(STATUS "${case}-exe - SKIPPED") + message(STATUS "${case}-exe-build - SKIPPED") + return() + endif() + unset(RunCMake_TEST_VARIANT_DESCRIPTION) + run_symlink_test_case("${case}-exe" -S "${src}" -B "${bin}") + if (RunCMake_GENERATOR MATCHES "Xcode") + # The native build system may pass the real paths. + set(RunCMake-stdout-file "generic-exe-build-stdout.txt") + endif() + set(RunCMake_TEST_OUTPUT_MERGE 1) + run_cmake_command("${case}-exe-build" ${CMAKE_COMMAND} --build "${bin}") endfunction () # Create the following structure: # +# .../none/source +# .../none/binary +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/none") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/source") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/binary") +run_symlink_test(none-separate "source" "binary" "../source" "../binary") + +# Create the following structure: +# +# .../none/source +# .../none/source/binary +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/none") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/source") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/source/binary") +run_symlink_test(none-bin_in_src "source" "source/binary" ".." "binary") + +# Create the following structure: +# +# .../none/binary +# .../none/binary/source +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/none") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/binary") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/none/binary/source") +run_symlink_test(none-src_in_bin "binary/source" "binary" "source" "..") + +# Create the following structure: +# # .../common_real/source # .../common_real/binary # .../common -> common_real +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/common_real") +file(REMOVE "${RunCMake_BINARY_DIR}/common") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/source") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/binary") +file(CREATE_LINK "common_real" "${RunCMake_BINARY_DIR}/common" SYMBOLIC) +run_symlink_test(common-separate "source" "binary" "../source" "../binary") + +# Create the following structure: # -# In this case, CMake should act as if .../common *is* .../common_real for all -# computations except ``REALPATH``. This supports the case where a system has -# a stable *symlink*, but not a stable target for that symlink. +# .../common_real/source +# .../common_real/source/binary +# .../common -> common_real file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/common_real") file(REMOVE "${RunCMake_BINARY_DIR}/common") file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/source") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/source/binary") file(CREATE_LINK "common_real" "${RunCMake_BINARY_DIR}/common" SYMBOLIC) -run_symlink_test(common) +run_symlink_test(common-bin_in_src "source" "source/binary" ".." "binary") + +# Create the following structure: +# +# .../common_real/binary +# .../common_real/binary/source +# .../common -> common_real +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/common_real") +file(REMOVE "${RunCMake_BINARY_DIR}/common") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/binary") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/common_real/binary/source") +file(CREATE_LINK "common_real" "${RunCMake_BINARY_DIR}/common" SYMBOLIC) +run_symlink_test(common-src_in_bin "binary/source" "binary" "source" "..") + +# Create the following structure: +# +# .../different_src/source_real +# .../different_bin/binary_real +# .../different/source -> ../different_src/source_real +# .../different/binary -> ../different_bin/binary_real +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_src") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_bin") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_src/source_real") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_bin/binary_real") +file(CREATE_LINK "../different_src/source_real" "${RunCMake_BINARY_DIR}/different/source" SYMBOLIC) +file(CREATE_LINK "../different_bin/binary_real" "${RunCMake_BINARY_DIR}/different/binary" SYMBOLIC) +run_symlink_test(different-separate "source" "binary" "../../different/source" "../../different/binary") + +# Create the following structure: +# +# .../different_src/source_real +# .../different_bin/binary_real +# .../different/source -> ../different_src/source_real +# .../different_src/source_real/binary -> ../../different_bin/binary_real +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_src") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_bin") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_src/source_real") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_bin/binary_real") +file(CREATE_LINK "../different_src/source_real" "${RunCMake_BINARY_DIR}/different/source" SYMBOLIC) +file(CREATE_LINK "../../different_bin/binary_real" "${RunCMake_BINARY_DIR}/different_src/source_real/binary" SYMBOLIC) +run_symlink_test(different-bin_in_src "source" "source/binary" "../../different/source" "binary") + +# Create the following structure: +# +# .../different_src/source_real +# .../different_bin/binary_real +# .../different/binary -> ../different_bin/binary_real +# .../different_bin/binary_real/source -> ../../different_src/source_real +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_src") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/different_bin") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_src/source_real") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/different_bin/binary_real") +file(CREATE_LINK "../different_bin/binary_real" "${RunCMake_BINARY_DIR}/different/binary" SYMBOLIC) +file(CREATE_LINK "../../different_src/source_real" "${RunCMake_BINARY_DIR}/different_bin/binary_real/source" SYMBOLIC) +run_symlink_test(different-src_in_bin "binary/source" "binary" "source" "../../different/binary") + +# Create the following structure: +# +# .../asymmetric_real/path/binary +# .../asymmetric/source +# .../asymmetric/binary -> ../asymmetric_real/path/binary +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric_real") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric/source") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric_real/path/binary") +file(CREATE_LINK "../asymmetric_real/path/binary" "${RunCMake_BINARY_DIR}/asymmetric/binary" SYMBOLIC) +run_symlink_test(asymmetric-separate "source" "binary" "../../../asymmetric/source" "../binary") + +# Create the following structure: +# +# .../asymmetric_real/path/binary +# .../asymmetric/source +# .../asymmetric/source/binary -> ../../asymmetric_real/path/binary +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric_real") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric/source") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric_real/path/binary") +file(CREATE_LINK "../../asymmetric_real/path/binary" "${RunCMake_BINARY_DIR}/asymmetric/source/binary" SYMBOLIC) +run_symlink_test(asymmetric-bin_in_src "source" "source/binary" "../../../asymmetric/source" "binary") + +# Create the following structure: +# +# .../asymmetric_real/path/source +# .../asymmetric/binary +# .../asymmetric/binary/source -> ../../asymmetric_real/path/source +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric") +file(REMOVE_RECURSE "${RunCMake_BINARY_DIR}/asymmetric_real") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric/binary") +file(MAKE_DIRECTORY "${RunCMake_BINARY_DIR}/asymmetric_real/path/source") +file(CREATE_LINK "../../asymmetric_real/path/source" "${RunCMake_BINARY_DIR}/asymmetric/binary/source" SYMBOLIC) +run_symlink_test(asymmetric-src_in_bin "binary/source" "binary" "source" "../../../asymmetric/binary") diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt new file mode 100644 index 0000000..450d9f1 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt new file mode 100644 index 0000000..bc19ac9 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/asymmetric-bin_in_src-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric_real/path/binary' diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt new file mode 100644 index 0000000..c1ad9d7 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt new file mode 100644 index 0000000..f103630 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/asymmetric-separate-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric_real/path/binary' diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt new file mode 100644 index 0000000..4a33651 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt new file mode 100644 index 0000000..6b6bf11 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/asymmetric-src_in_bin-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric_real/path/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/asymmetric/binary' diff --git a/Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt new file mode 100644 index 0000000..d72e250 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt new file mode 100644 index 0000000..90dcf02 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/common-bin_in_src-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/common/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/source/binary' diff --git a/Tests/RunCMake/SymlinkTrees/common-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-separate-exe-build-stdout.txt new file mode 100644 index 0000000..7f73af2 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/common-separate-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/common_symlinks-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-separate-stdout.txt index bb04450..bb04450 100644 --- a/Tests/RunCMake/SymlinkTrees/common_symlinks-stdout.txt +++ b/Tests/RunCMake/SymlinkTrees/common-separate-stdout.txt diff --git a/Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt new file mode 100644 index 0000000..aa0d60a --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt new file mode 100644 index 0000000..fc9db21 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/common-src_in_bin-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/common/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/binary/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/common_real/binary' diff --git a/Tests/RunCMake/SymlinkTrees/common_symlinks.cmake b/Tests/RunCMake/SymlinkTrees/common_symlinks.cmake deleted file mode 100644 index 5eafe26..0000000 --- a/Tests/RunCMake/SymlinkTrees/common_symlinks.cmake +++ /dev/null @@ -1 +0,0 @@ -include("${CMAKE_CURRENT_LIST_DIR}/PrintTrees.cmake") diff --git a/Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt new file mode 100644 index 0000000..1bd1559 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt new file mode 100644 index 0000000..0533872 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/different-bin_in_src-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/different/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/different_src/source_real' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/different_bin/binary_real' diff --git a/Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt new file mode 100644 index 0000000..e598725 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/different-separate-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt new file mode 100644 index 0000000..fe9c472 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/different-separate-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/different/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/different_src/source_real' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/different_bin/binary_real' diff --git a/Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt new file mode 100644 index 0000000..a5a2111 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt new file mode 100644 index 0000000..248e820 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/different-src_in_bin-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/different/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/different_src/source_real' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/different_bin/binary_real' diff --git a/Tests/RunCMake/SymlinkTrees/generic-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/generic-exe-build-stdout.txt new file mode 100644 index 0000000..db2173c --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/generic-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/[^']*/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/[^']*/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/[^']*/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/[^']*/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt new file mode 100644 index 0000000..520d8a8 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt new file mode 100644 index 0000000..6d6af52 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/none-bin_in_src-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/binary' diff --git a/Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt new file mode 100644 index 0000000..90791d4 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/none-separate-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt new file mode 100644 index 0000000..2251ac5 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/none-separate-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/none/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary' diff --git a/Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt new file mode 100644 index 0000000..07aed79 --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-exe-build-stdout.txt @@ -0,0 +1,4 @@ +source.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source/source.c' +source.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source/include/source.h' +binary.c: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/binary.c' +binary.h: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/include/binary.h' diff --git a/Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt new file mode 100644 index 0000000..731d62a --- /dev/null +++ b/Tests/RunCMake/SymlinkTrees/none-src_in_bin-stdout.txt @@ -0,0 +1,4 @@ +-- source: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source' +-- binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary' +-- real source: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary/source' +-- real binary: '[^']*/Tests/RunCMake/SymlinkTrees/none/binary' |
