cmake: Add tests for verbose output to --build mode

This commit is contained in:
Robert Maynard 2019-01-24 13:31:32 -05:00 committed by Brad King
parent 439fe2e253
commit 66801f4d40
11 changed files with 50 additions and 1 deletions

View File

@ -123,7 +123,7 @@ if(NOT CMAKE_GENERATOR MATCHES "Visual Studio|Xcode")
add_RunCMake_test(CMP0065)
endif()
if(CMAKE_GENERATOR MATCHES "Make")
add_RunCMake_test(Make)
add_RunCMake_test(Make -DMAKE_IS_GNU=${MAKE_IS_GNU})
endif()
if(CMAKE_GENERATOR STREQUAL "Ninja")
set(Ninja_ARGS

View File

@ -16,5 +16,22 @@ run_TargetMessages(OFF)
run_TargetMessages(VAR-ON -DCMAKE_TARGET_MESSAGES=ON)
run_TargetMessages(VAR-OFF -DCMAKE_TARGET_MESSAGES=OFF)
function(run_VerboseBuild)
run_cmake(VerboseBuild)
set(RunCMake_TEST_NO_CLEAN 1)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/VerboseBuild-build)
if(RunCMake_GENERATOR STREQUAL "Watcom WMake")
# wmake does not actually show the verbose output.
set(RunCMake-stdout-file VerboseBuild-build-watcom-stdout.txt)
endif()
run_cmake_command(VerboseBuild-build ${CMAKE_COMMAND} --build . -v --clean-first)
unset(RunCMake-stdout-file)
if(MAKE_IS_GNU)
set(RunCMake-stdout-file VerboseBuild-nowork-gnu-stdout.txt)
endif()
run_cmake_command(VerboseBuild-nowork ${CMAKE_COMMAND} --build . --verbose)
endfunction()
run_VerboseBuild()
run_cmake(CustomCommandDepfile-ERROR)
run_cmake(IncludeRegexSubdir)

View File

@ -0,0 +1 @@
.*DEFINE_FOR_VERBOSE_DETECTION.*hello.dir.*

View File

@ -0,0 +1 @@
.

View File

@ -0,0 +1 @@
.*Nothing to be done for.*hello.*

View File

@ -0,0 +1,8 @@
enable_language(C)
# Make sure compile command is not hidden in a temp file.
string(REPLACE "${CMAKE_START_TEMP_FILE}" "" CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}")
string(REPLACE "${CMAKE_END_TEMP_FILE}" "" CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}")
add_executable(hello hello.c)
target_compile_definitions(hello PRIVATE "DEFINE_FOR_VERBOSE_DETECTION")

View File

@ -0,0 +1,7 @@
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}

View File

@ -30,6 +30,15 @@ function(run_NoWorkToDo)
endfunction()
run_NoWorkToDo()
function(run_VerboseBuild)
run_cmake(VerboseBuild)
set(RunCMake_TEST_NO_CLEAN 1)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/VerboseBuild-build)
run_cmake_command(VerboseBuild-build ${CMAKE_COMMAND} --build . -v --clean-first)
run_cmake_command(VerboseBuild-nowork ${CMAKE_COMMAND} --build . --verbose)
endfunction()
run_VerboseBuild()
function(run_CMP0058 case)
# Use a single build tree for a few tests without cleaning.
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CMP0058-${case}-build)

View File

@ -0,0 +1 @@
.*DEFINE_FOR_VERBOSE_DETECTION.*hello.dir.*

View File

@ -0,0 +1 @@
^ninja: no work to do

View File

@ -0,0 +1,3 @@
enable_language(C)
add_executable(hello hello.c)
target_compile_definitions(hello PRIVATE "DEFINE_FOR_VERBOSE_DETECTION")