/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2000-2009 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #include "cmCTestCoverageCommand.h" #include "cmCTest.h" #include "cmCTestCoverageHandler.h" //---------------------------------------------------------------------------- cmCTestCoverageCommand::cmCTestCoverageCommand() { this->LabelsMentioned = false; } //---------------------------------------------------------------------------- cmCTestGenericHandler* cmCTestCoverageCommand::InitializeHandler() { this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, "CoverageCommand", "CTEST_COVERAGE_COMMAND"); cmCTestCoverageHandler* handler = static_cast( this->CTest->GetInitializedHandler("coverage")); if ( !handler ) { this->SetError("internal CTest error. Cannot instantiate test handler"); return 0; } // If a LABELS option was given, select only files with the labels. if(this->LabelsMentioned) { handler->SetLabelFilter(this->Labels); } return handler; } //---------------------------------------------------------------------------- bool cmCTestCoverageCommand::CheckArgumentKeyword(std::string const& arg) { // Look for arguments specific to this command. if(arg == "LABELS") { this->ArgumentDoing = ArgumentDoingLabels; this->LabelsMentioned = true; return true; } // Look for other arguments. return this->Superclass::CheckArgumentKeyword(arg); } //---------------------------------------------------------------------------- bool cmCTestCoverageCommand::CheckArgumentValue(std::string const& arg) { // Handle states specific to this command. if(this->ArgumentDoing == ArgumentDoingLabels) { this->Labels.insert(arg); return true; } // Look for other arguments. return this->Superclass::CheckArgumentValue(arg); }