Move isFileTarget() to bazel_util.go
Move to common util file so that it may be used by other exporters.
Bug: skia:13485
Change-Id: I3a9833fe6d5ac55548481c93c7805779a374affc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/566437
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/bazel/exporter/bazel_util.go b/bazel/exporter/bazel_util.go
index 8656189..a7cfd54 100644
--- a/bazel/exporter/bazel_util.go
+++ b/bazel/exporter/bazel_util.go
@@ -96,6 +96,19 @@
return fmt.Sprintf("%s/%s:%s", repo, path, target), nil
}
+// Determine if a target refers to a file, or a rule. target is of
+// the form:
+//
+// file: //include/private:SingleOwner.h
+// rule: //bazel/common_config_settings:has_gpu_backend
+func isFileTarget(target string) bool {
+ _, _, target, err := parseRule(target)
+ if err != nil {
+ return false
+ }
+ return strings.Contains(target, ".")
+}
+
// Create a string that uniquely identifies the rule and can be used
// in the exported CMake file as a valid name.
func getRuleCMakeName(bazelRuleName string) (string, error) {
diff --git a/bazel/exporter/bazel_util_test.go b/bazel/exporter/bazel_util_test.go
index 6f48b5d..cee865d 100644
--- a/bazel/exporter/bazel_util_test.go
+++ b/bazel/exporter/bazel_util_test.go
@@ -116,3 +116,15 @@
func TestIsExternalRule_IsInternal_ExpectFalse(t *testing.T) {
assert.False(t, isExternalRule("//:skia_public"))
}
+
+func TestIsFileRule_InvalidRule_ReturnsFalse(t *testing.T) {
+ assert.False(t, isFileTarget(""))
+}
+
+func TestIsFileRule_ValidFileRule_ReturnsTrue(t *testing.T) {
+ assert.True(t, isFileTarget("//dir/path:hello.c"))
+}
+
+func TestIsFileRule_ValidNonFileRule_ReturnsFalse(t *testing.T) {
+ assert.False(t, isFileTarget("//dir/path:hello"))
+}
diff --git a/bazel/exporter/cmake_exporter.go b/bazel/exporter/cmake_exporter.go
index c5f6e9e..58eaf33 100644
--- a/bazel/exporter/cmake_exporter.go
+++ b/bazel/exporter/cmake_exporter.go
@@ -32,19 +32,6 @@
}
}
-// Determine if a target refers to a file, or a rule. target is of
-// the form:
-//
-// file: //include/private:SingleOwner.h
-// rule: //bazel/common_config_settings:has_gpu_backend
-func isFileTarget(target string) bool {
- _, _, target, err := parseRule(target)
- if err != nil {
- return false
- }
- return strings.Contains(target, ".")
-}
-
// Given a Bazel rule name find that rule from within the
// query results.
func findRule(qr *analysis_v2.CqueryResult, name string) (*build.Rule, error) {
diff --git a/bazel/exporter/cmake_exporter_test.go b/bazel/exporter/cmake_exporter_test.go
index 253773f..4ac6b77 100644
--- a/bazel/exporter/cmake_exporter_test.go
+++ b/bazel/exporter/cmake_exporter_test.go
@@ -249,18 +249,6 @@
assert.Equal(t, expected, contents.String())
}
-func TestIsFileRule_InvalidRule_ReturnsFalse(t *testing.T) {
- assert.False(t, isFileTarget(""))
-}
-
-func TestIsFileRule_ValidFileRule_ReturnsTrue(t *testing.T) {
- assert.True(t, isFileTarget("//dir/path:hello.c"))
-}
-
-func TestIsFileRule_ValidNonFileRule_ReturnsFalse(t *testing.T) {
- assert.False(t, isFileTarget("//dir/path:hello"))
-}
-
func TestFindRule_RuleExists_Success(t *testing.T) {
qr := analysis_v2.CqueryResult{}
err := prototext.Unmarshal([]byte(textProto), &qr)