From 2084a3df1230609a655591e438cfb97508d10347 Mon Sep 17 00:00:00 2001 From: Cal Peyser Date: Fri, 15 Apr 2016 14:45:19 +0000 Subject: Introduces experimental_objc_library. This rule builds objc code with the c++ rule implementation backend and an OSX crosstool. -- MOS_MIGRATED_REVID=119954578 --- .../devtools/build/lib/rules/cpp/CcLibraryHelper.java | 2 +- .../devtools/build/lib/rules/cpp/CppCompileAction.java | 14 ++++++++++++++ .../google/devtools/build/lib/rules/cpp/CppFileTypes.java | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java index 3b969b8d1a..9f8f98d46c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java @@ -69,7 +69,7 @@ import javax.annotation.Nullable; * methods. */ public final class CcLibraryHelper { - + /** * A group of source file types for builds controlled by CcLibraryHelper. Determines what * file types CcLibraryHelper considers sources. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index d1dce71ebf..04b862cb3a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -126,6 +126,16 @@ public class CppCompileAction extends AbstractAction implements IncludeScannable */ public static final String CPP_COMPILE = "c++-compile"; + /** + * A string constant for the objc compilation action. + */ + public static final String OBJC_COMPILE = "objc-compile"; + + /** + * A string constant for the objc++ compile action. + */ + public static final String OBJCPP_COMPILE = "objc++-compile"; + /** * A string constant for the c++ header parsing. */ @@ -1335,6 +1345,10 @@ public class CppCompileAction extends AbstractAction implements IncludeScannable return C_COMPILE; } else if (CppFileTypes.CPP_SOURCE.matches(sourcePath)) { return CPP_COMPILE; + } else if (CppFileTypes.OBJC_SOURCE.matches(sourcePath)) { + return OBJC_COMPILE; + } else if (CppFileTypes.OBJCPP_SOURCE.matches(sourcePath)) { + return OBJCPP_COMPILE; } else if (CppFileTypes.ASSEMBLER.matches(sourcePath)) { return ASSEMBLE; } else if (CppFileTypes.ASSEMBLER_WITH_C_PREPROCESSOR.matches(sourcePath)) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppFileTypes.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppFileTypes.java index d97dbb9931..c3bd853ff6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppFileTypes.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppFileTypes.java @@ -28,7 +28,7 @@ public final class CppFileTypes { public static final FileType C_SOURCE = FileType.of(".c"); public static final FileType OBJC_SOURCE = FileType.of(".m"); public static final FileType OBJCPP_SOURCE = FileType.of(".mm"); - + // Filetypes that generate LLVM bitcode when -flto is specified. public static final FileTypeSet LTO_SOURCE = FileTypeSet.of(CppFileTypes.CPP_SOURCE, CppFileTypes.C_SOURCE); -- cgit v1.2.3