blob: deb7cf49a2ed13c2542425c737e20ca99e510323 [file] [log] [blame]
/*
* Copyright 2015-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.facebook.buck.cli;
import com.facebook.buck.model.BuildTarget;
import com.facebook.buck.rules.TargetGraph;
import com.facebook.buck.rules.TargetGraphAndTargets;
import com.google.common.collect.ImmutableSet;
public class ProjectCommandTests {
// Utility class, do not instantiate.
private ProjectCommandTests() { }
public static TargetGraphAndTargets createTargetGraph(
TargetGraph projectGraph,
ProjectCommandOptions.Ide targetIde,
ImmutableSet<BuildTarget> passedInTargetsSet,
boolean withTests
) {
ProjectPredicates projectPredicates = ProjectPredicates.forIde(targetIde);
ImmutableSet<BuildTarget> graphRoots;
if (!passedInTargetsSet.isEmpty()) {
graphRoots = passedInTargetsSet;
} else {
graphRoots = ProjectCommand.getRootsFromPredicate(
projectGraph,
projectPredicates.getProjectRootsPredicate());
}
ImmutableSet<BuildTarget> explicitTests;
if (withTests) {
explicitTests = TargetGraphAndTargets.getExplicitTestTargets(
graphRoots,
projectGraph);
} else {
explicitTests = ImmutableSet.of();
}
return TargetGraphAndTargets.create(
graphRoots,
projectGraph,
projectPredicates.getAssociatedProjectPredicate(),
withTests,
explicitTests);
}
}