diff options
author | 2016-04-26 20:26:22 +0000 | |
---|---|---|
committer | 2016-04-27 11:47:46 +0000 | |
commit | 5c2386c7d3cbc10123236b70a38732b87aecf8b1 (patch) | |
tree | 08504a32bff25a40fdda26f65a2988bf474b6e9b /src/main/java/com | |
parent | c686fd640b4b451d77d8a922331f405344d990ae (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.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java | 20 |
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. */ |