aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Dmitry Shevchenko <dmishe@google.com>2016-04-26 20:26:22 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-04-27 11:47:46 +0000
commit5c2386c7d3cbc10123236b70a38732b87aecf8b1 (patch)
tree08504a32bff25a40fdda26f65a2988bf474b6e9b /src/main/java/com
parentc686fd640b4b451d77d8a922331f405344d990ae (diff)
Turn on -g by default for dbg builds.
* Adds a flag to Objective-C copts set. * Adds a method to get Swift compilation flags, these are slightly different from ObjC clang. RELNOTES:Generate debug symbols (-g) is enabled for all dbg builds of objc_ rules. -- MOS_MIGRATED_REVID=120845678
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java20
2 files changed, 23 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
index 73e07e9baa..e1eff2af67 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
@@ -505,14 +505,14 @@ public final class CompilationSupport {
.add("-emit-object")
.add("-target").add(swiftTarget(appleConfiguration))
.add("-sdk").add(AppleToolchain.sdkDir())
- .add("-enable-objc-interop");
+ .add("-enable-objc-interop")
+ .add(objcConfiguration.getSwiftCoptsForCompilationMode());
if (objcConfiguration.generateDebugSymbols()) {
commandLine.add("-g");
}
commandLine
- .add("-Onone")
.add("-module-name").add(getModuleName())
.add("-parse-as-library");
addSource("-primary-file", commandLine, sourceFile)
@@ -587,7 +587,8 @@ public final class CompilationSupport {
.add("-frontend")
.add("-emit-module")
.add("-sdk").add(AppleToolchain.sdkDir())
- .add("-target").add(swiftTarget(appleConfiguration));
+ .add("-target").add(swiftTarget(appleConfiguration))
+ .add(objcConfiguration.getSwiftCoptsForCompilationMode());
if (objcConfiguration.generateDebugSymbols()) {
commandLine.add("-g");
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index d42bff1283..8398638ea0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -43,7 +43,7 @@ import javax.annotation.Nullable;
public class ObjcConfiguration extends BuildConfiguration.Fragment {
@VisibleForTesting
static final ImmutableList<String> DBG_COPTS =
- ImmutableList.of("-O0", "-DDEBUG=1", "-fstack-protector", "-fstack-protector-all");
+ ImmutableList.of("-O0", "-DDEBUG=1", "-fstack-protector", "-fstack-protector-all", "-g");
@VisibleForTesting
static final ImmutableList<String> GLIBCXX_DBG_COPTS =
@@ -173,6 +173,24 @@ public class ObjcConfiguration extends BuildConfiguration.Fragment {
}
/**
+ * Returns the default set of swiftc options for the current compilation mode.
+ */
+ @SkylarkCallable(name = "swift_copts_for_current_compilation_mode", structField = true,
+ doc = "Returns a list of default options to use for compiling Swift in the current mode.")
+ public ImmutableList<String> getSwiftCoptsForCompilationMode() {
+ switch (compilationMode) {
+ case DBG:
+ return ImmutableList.of("-Onone", "-DDEBUG=1", "-g");
+ case FASTBUILD:
+ return ImmutableList.of("-Onone", "-DDEBUG=1");
+ case OPT:
+ return ImmutableList.of("-O", "-DNDEBUG=1");
+ default:
+ throw new AssertionError();
+ }
+ }
+
+ /**
* Returns options passed to (Apple) clang when compiling Objective C. These options should be
* applied after any default options but before options specified in the attributes of the rule.
*/