Convert "-" to "" when generating module name
RELNOTES: None.
PiperOrigin-RevId: 184492828
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java
index 4619758..0cc7fa9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java
@@ -431,9 +431,9 @@
.toString()
.replace("//", "")
.replace("@", "")
+ .replace("-", "_")
.replace("/", "_")
.replace(":", "_");
-
Optional<Artifact> customModuleMap = CompilationSupport.getCustomModuleMap(ruleContext);
if (customModuleMap.isPresent()) {
return new CppModuleMap(customModuleMap.get(), moduleName);
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
index 4a15990..b477492 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -598,17 +598,18 @@
useConfiguration(
"--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
"--experimental_objc_enable_module_maps");
- createLibraryTargetWriter("//objc:lib")
+ String target = "//objc/library:lib@a-foo_foobar";
+ createLibraryTargetWriter(target)
.setAndCreateFiles("srcs", "a.m", "b.m", "private.h")
.setAndCreateFiles("hdrs", "c.h")
.write();
- CommandAction compileActionA = compileAction("//objc:lib", "a.o");
+ CommandAction compileActionA = compileAction(target, "a.o");
assertThat(compileActionA.getArguments())
- .containsAllIn(moduleMapArtifactArguments("//objc", "lib"));
+ .containsAllIn(moduleMapArtifactArguments("//objc/library", "lib@a-foo_foobar"));
assertThat(compileActionA.getArguments()).contains("-fmodule-maps");
assertThat(Artifact.toRootRelativePaths(compileActionA.getInputs()))
- .doesNotContain("objc/lib.modulemaps/module.modulemap");
+ .doesNotContain("objc/library/lib@a-foo_foobar.modulemaps/module.modulemap");
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
index 6aa0963..d062a9f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
@@ -380,7 +380,13 @@
Artifact moduleMapArtifact =
getGenfilesArtifact(
targetName + ".modulemaps/module.modulemap", packagePath + ":" + targetName);
- String moduleName = packagePath.replace("//", "").replace("/", "_") + "_" + targetName;
+ String moduleName =
+ (packagePath + "_" + targetName)
+ .replace("//", "")
+ .replace("@", "")
+ .replace("-", "_")
+ .replace("/", "_")
+ .replace(":", "_");
return ImmutableList.of("-iquote",
moduleMapArtifact.getExecPath().getParentDirectory().toString(),