summaryrefslogtreecommitdiffstats
path: root/Source/cmFindPathCommand.cxx
diff options
context:
space:
mode:
authorSylvain Joubert <joubert.sy@gmail.com>2020-03-06 13:30:01 (GMT)
committerSylvain Joubert <joubert.sy@gmail.com>2020-03-06 15:40:26 (GMT)
commitdc008095961fe4c2478d575931e8caf6c9bff92d (patch)
treed468b514eca32bf28351b91f41628ab8be64ca36 /Source/cmFindPathCommand.cxx
parentcc070e66cd9bd0d4e0ce56ad9dd307dbb854e61f (diff)
downloadCMake-dc008095961fe4c2478d575931e8caf6c9bff92d.zip
CMake-dc008095961fe4c2478d575931e8caf6c9bff92d.tar.gz
CMake-dc008095961fe4c2478d575931e8caf6c9bff92d.tar.bz2
find_*: Add support for REQUIRED keyword
In the same spirit as the REQUIRED keyword on find_package, this will stop cmake execution with an error on a failed find_program, find_file, find_path or find_library.
Diffstat (limited to 'Source/cmFindPathCommand.cxx')
-rw-r--r--Source/cmFindPathCommand.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/cmFindPathCommand.cxx b/Source/cmFindPathCommand.cxx
index 908f0c1..f5b52c2 100644
--- a/Source/cmFindPathCommand.cxx
+++ b/Source/cmFindPathCommand.cxx
@@ -5,6 +5,7 @@
#include "cmsys/Glob.hxx"
#include "cmMakefile.h"
+#include "cmMessageType.h"
#include "cmStateTypes.h"
#include "cmStringAlgorithms.h"
#include "cmSystemTools.h"
@@ -51,6 +52,13 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn)
this->VariableName, (this->VariableName + "-NOTFOUND").c_str(),
this->VariableDocumentation.c_str(),
(this->IncludeFileInPath) ? cmStateEnums::FILEPATH : cmStateEnums::PATH);
+ if (this->Required) {
+ this->Makefile->IssueMessage(
+ MessageType::FATAL_ERROR,
+ "Could not find " + this->VariableName +
+ " using the following files: " + cmJoin(this->Names, ", "));
+ cmSystemTools::SetFatalErrorOccured();
+ }
return true;
}