summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorRobert Maynard <rmaynard@nvidia.com>2022-02-17 13:46:09 (GMT)
committerBrad King <brad.king@kitware.com>2022-02-17 21:54:30 (GMT)
commit7083b1949801dcab8b76cd3978261aca7be30c0e (patch)
treebc30fcc51660f49bca38b1cef47a1fa4d3c938f2 /Tests
parent9c81f2cb8bcb5f4ad96f2ad527035649bd70d5fc (diff)
downloadCMake-7083b1949801dcab8b76cd3978261aca7be30c0e.zip
CMake-7083b1949801dcab8b76cd3978261aca7be30c0e.tar.gz
CMake-7083b1949801dcab8b76cd3978261aca7be30c0e.tar.bz2
cmake: When given multiple source paths use last instead of first
When given two source paths via `-S` or just directory paths prefer the last one. When the paths are mixed always prefer the last `-S` entry. Fixes: #23238
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CommandLine/RunCMakeTest.cmake12
-rw-r--r--Tests/RunCMake/CommandLine/S-S-Sdiffers-stderr.txt9
-rw-r--r--Tests/RunCMake/CommandLine/S-S-Simplicit-stderr.txt9
-rw-r--r--Tests/RunCMake/CommandLine/S-S-differs-stderr.txt4
-rw-r--r--Tests/RunCMake/CommandLine/S-implicit-differs-stderr.txt4
-rw-r--r--Tests/RunCMake/CommandLine/S-implicit-differs2-stderr.txt4
-rw-r--r--Tests/RunCMake/CommandLine/S-implicit-differs3-stderr.txt4
7 files changed, 46 insertions, 0 deletions
diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
index 5944d2d..17adefd 100644
--- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
@@ -168,6 +168,18 @@ endif()
run_cmake_with_raw_args(S-B-non-path "-S \"${source_dir}\" -B \"${binary_dir}\" \"\"")
run_cmake_with_raw_args(S-B-non-path2 "-S \"${source_dir}\" \"\" -B \"${binary_dir}\"")
+ file(REMOVE_RECURSE "${binary_dir}/other_dir")
+ file(MAKE_DIRECTORY "${binary_dir}/other_dir")
+ file(WRITE "${binary_dir}/other_dir/CMakeLists.txt" [=[ ]=])
+ run_cmake_with_options(S-S-same -S ${source_dir} -S ${source_dir} -B ${binary_dir})
+ run_cmake_with_options(S-S-differs -S ${binary_dir}/other_dir -S ${source_dir} -B ${binary_dir})
+ run_cmake_with_options(S-implicit-same -S ${source_dir} ${source_dir} -B ${binary_dir})
+ run_cmake_with_options(S-implicit-differs -S ${source_dir} ${binary_dir}/other_dir -B ${binary_dir})
+ run_cmake_with_options(S-implicit-differs2 ${binary_dir}/other_dir -S ${source_dir} -B ${binary_dir})
+ run_cmake_with_options(S-implicit-differs3 ${binary_dir}/other_dir ${source_dir} -B ${binary_dir})
+ run_cmake_with_options(S-S-Sdiffers -S ${binary_dir}/other_dir1 -S ${binary_dir}/other_dir2 -S ${source_dir} -B ${binary_dir})
+ run_cmake_with_options(S-S-Simplicit ${binary_dir}/other_dir1 ${binary_dir}/other_dir2 ${source_dir} -B ${binary_dir})
+
# make sure that -B can explicitly construct build directories
file(REMOVE_RECURSE "${binary_dir}")
run_cmake_with_options(B-arg -B ${binary_dir} ${source_dir})
diff --git a/Tests/RunCMake/CommandLine/S-S-Sdiffers-stderr.txt b/Tests/RunCMake/CommandLine/S-S-Sdiffers-stderr.txt
new file mode 100644
index 0000000..43869db
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/S-S-Sdiffers-stderr.txt
@@ -0,0 +1,9 @@
+^CMake Warning:
+ Ignoring extra path from command line:
+
+ .*other_dir1"
+.*
+CMake Warning:
+ Ignoring extra path from command line:
+
+ .*other_dir2"$
diff --git a/Tests/RunCMake/CommandLine/S-S-Simplicit-stderr.txt b/Tests/RunCMake/CommandLine/S-S-Simplicit-stderr.txt
new file mode 100644
index 0000000..43869db
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/S-S-Simplicit-stderr.txt
@@ -0,0 +1,9 @@
+^CMake Warning:
+ Ignoring extra path from command line:
+
+ .*other_dir1"
+.*
+CMake Warning:
+ Ignoring extra path from command line:
+
+ .*other_dir2"$
diff --git a/Tests/RunCMake/CommandLine/S-S-differs-stderr.txt b/Tests/RunCMake/CommandLine/S-S-differs-stderr.txt
new file mode 100644
index 0000000..5714130
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/S-S-differs-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Warning:
+ Ignoring extra path from command line:
+
+ .*ExplicitDirs-build/other_dir.*
diff --git a/Tests/RunCMake/CommandLine/S-implicit-differs-stderr.txt b/Tests/RunCMake/CommandLine/S-implicit-differs-stderr.txt
new file mode 100644
index 0000000..18f0d16
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/S-implicit-differs-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Warning:
+ Ignoring extra path from command line:
+
+ .*other_dir"$
diff --git a/Tests/RunCMake/CommandLine/S-implicit-differs2-stderr.txt b/Tests/RunCMake/CommandLine/S-implicit-differs2-stderr.txt
new file mode 100644
index 0000000..5714130
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/S-implicit-differs2-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Warning:
+ Ignoring extra path from command line:
+
+ .*ExplicitDirs-build/other_dir.*
diff --git a/Tests/RunCMake/CommandLine/S-implicit-differs3-stderr.txt b/Tests/RunCMake/CommandLine/S-implicit-differs3-stderr.txt
new file mode 100644
index 0000000..5714130
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/S-implicit-differs3-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Warning:
+ Ignoring extra path from command line:
+
+ .*ExplicitDirs-build/other_dir.*