From 04c6e736f65306f434d99e2f4d6c365a9cc5201b Mon Sep 17 00:00:00 2001 From: KWSys Upstream <kwrobot@kitware.com> Date: Wed, 5 May 2021 09:19:02 -0400 Subject: [PATCH] KWSys 2021-05-05 (e9ca4104) Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit e9ca4104e816c28e3fcf94ce69fd75ca9498f4a7 (master). Upstream Shortlog ----------------- Ben Boeckel (1): 99ffa991 cmake: clear some configure checks when the deployment target changes Martin Willers (2): bbf6cdef Terminal: Simplify CLICOLOR_FORCE check f308fcfb Terminal: Disable color output when CLICOLOR is set to 0 --- CMakeLists.txt | 10 ++++++++++ Terminal.c | 11 +++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf8543ec72..ef615b3fee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,6 +98,16 @@ foreach(p endif() endforeach() +# Some configure checks depend upon the deployment target. Clear checks when +# the deployment target changes. +if (APPLE) + if (NOT CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL KWSYS_LAST_OSX_DEPLOYMENT_TARGET) + unset(KWSYS_CXX_HAS_UTIMENSAT CACHE) + endif () + set(KWSYS_LAST_OSX_DEPLOYMENT_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}" + CACHE INTERNAL "remember the last deployment target to trigger configure rechecks") +endif () + #----------------------------------------------------------------------------- # If a namespace is not specified, use "kwsys" and enable testing. # This should be the case only when kwsys is not included inside diff --git a/Terminal.c b/Terminal.c index 9409d1b764..57a68bfdbf 100644 --- a/Terminal.c +++ b/Terminal.c @@ -167,12 +167,19 @@ static int kwsysTerminalStreamIsVT100(FILE* stream, int default_vt100, /* Force color according to http://bixense.com/clicolors/ convention. */ { const char* clicolor_force = getenv("CLICOLOR_FORCE"); - if (clicolor_force && *clicolor_force && - strcmp(clicolor_force, "0") != 0) { + if (clicolor_force && strcmp(clicolor_force, "0") != 0) { return 1; } } + /* Disable color according to http://bixense.com/clicolors/ convention. */ + { + const char* clicolor = getenv("CLICOLOR"); + if (clicolor && strcmp(clicolor, "0") == 0) { + return 0; + } + } + /* GNU make 4.1+ may tell us that its output is destined for a TTY. */ { const char* termout = getenv("MAKE_TERMOUT"); -- GitLab