mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-23 07:28:51 -06:00
Merge topic 'test-explicit-dirs'
39e7fd8c68Tests: Avoid enabling languages in RunCMake.CommandLine -S and -B casesbaed22c4b0Tests: Fix RunCMake.CommandLine test to use generator with -S and -B44d6370db3Tests: Add RunCMake helper to run cmake with options538721939fTests: Teach RunCMake to optionally exclude the source dir argument Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3209
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(ExplicitDirs NONE)
|
||||
add_custom_command(
|
||||
OUTPUT output.txt
|
||||
COMMAND ${CMAKE_COMMAND} -E echo CustomCommand > output.txt
|
||||
|
||||
@@ -82,23 +82,27 @@ project(ExplicitDirsMissing LANGUAGES NONE)
|
||||
set(source_dir ${RunCMake_SOURCE_DIR}/ExplicitDirs)
|
||||
set(binary_dir ${RunCMake_BINARY_DIR}/ExplicitDirs-build)
|
||||
|
||||
set(RunCMake_TEST_SOURCE_DIR "${source_dir}")
|
||||
set(RunCMake_TEST_BINARY_DIR "${binary_dir}")
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
set(RunCMake_TEST_NO_SOURCE_DIR 1)
|
||||
|
||||
file(REMOVE_RECURSE "${binary_dir}")
|
||||
file(MAKE_DIRECTORY "${binary_dir}")
|
||||
run_cmake_command(S-arg ${CMAKE_COMMAND} -S ${source_dir} ${binary_dir})
|
||||
run_cmake_command(S-arg-reverse-order ${CMAKE_COMMAND} ${binary_dir} -S${source_dir} )
|
||||
run_cmake_command(S-no-arg ${CMAKE_COMMAND} -S )
|
||||
run_cmake_command(S-no-arg2 ${CMAKE_COMMAND} -S -T)
|
||||
run_cmake_command(S-B ${CMAKE_COMMAND} -S ${source_dir} -B ${binary_dir})
|
||||
run_cmake_with_options(S-arg -S ${source_dir} ${binary_dir})
|
||||
run_cmake_with_options(S-arg-reverse-order ${binary_dir} -S${source_dir} )
|
||||
run_cmake_with_options(S-no-arg -S )
|
||||
run_cmake_with_options(S-no-arg2 -S -T)
|
||||
run_cmake_with_options(S-B -S ${source_dir} -B ${binary_dir})
|
||||
|
||||
# make sure that -B can explicitly construct build directories
|
||||
file(REMOVE_RECURSE "${binary_dir}")
|
||||
run_cmake_command(B-arg ${CMAKE_COMMAND} -B ${binary_dir} ${source_dir})
|
||||
run_cmake_with_options(B-arg -B ${binary_dir} ${source_dir})
|
||||
file(REMOVE_RECURSE "${binary_dir}")
|
||||
run_cmake_command(B-arg-reverse-order ${CMAKE_COMMAND} ${source_dir} -B${binary_dir})
|
||||
run_cmake_command(B-no-arg ${CMAKE_COMMAND} -B )
|
||||
run_cmake_command(B-no-arg2 ${CMAKE_COMMAND} -B -T)
|
||||
run_cmake_with_options(B-arg-reverse-order ${source_dir} -B${binary_dir})
|
||||
run_cmake_with_options(B-no-arg -B )
|
||||
run_cmake_with_options(B-no-arg2 -B -T)
|
||||
file(REMOVE_RECURSE "${binary_dir}")
|
||||
run_cmake_command(B-S ${CMAKE_COMMAND} -B${binary_dir} -S${source_dir})
|
||||
run_cmake_with_options(B-S -B${binary_dir} -S${source_dir})
|
||||
|
||||
endfunction()
|
||||
run_ExplicitDirs()
|
||||
|
||||
@@ -98,8 +98,14 @@ function(run_cmake test)
|
||||
else()
|
||||
set(_D_CMAKE_GENERATOR_INSTANCE "")
|
||||
endif()
|
||||
if(NOT RunCMake_TEST_NO_SOURCE_DIR)
|
||||
set(maybe_source_dir "${RunCMake_TEST_SOURCE_DIR}")
|
||||
else()
|
||||
set(maybe_source_dir "")
|
||||
endif()
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} "${RunCMake_TEST_SOURCE_DIR}"
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
${maybe_source_dir}
|
||||
-G "${RunCMake_GENERATOR}"
|
||||
-A "${RunCMake_GENERATOR_PLATFORM}"
|
||||
-T "${RunCMake_GENERATOR_TOOLSET}"
|
||||
@@ -182,5 +188,10 @@ function(run_cmake_command test)
|
||||
run_cmake(${test})
|
||||
endfunction()
|
||||
|
||||
function(run_cmake_with_options test)
|
||||
set(RunCMake_TEST_OPTIONS "${ARGN}")
|
||||
run_cmake(${test})
|
||||
endfunction()
|
||||
|
||||
# Protect RunCMake tests from calling environment.
|
||||
unset(ENV{MAKEFLAGS})
|
||||
|
||||
Reference in New Issue
Block a user