aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
Commit message (Collapse)AuthorAge
* Introduce apple_binary, which links together one or more c-family libraries ↵Gravatar Chris Parsons2016-04-27
| | | | | | | and produces a potentially multi-architecture binary, controlled by the --ios_multi_cpus flag -- MOS_MIGRATED_REVID=120874805
* Turn on -g by default for dbg builds.Gravatar Dmitry Shevchenko2016-04-27
| | | | | | | | | | * 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
* Refactor CompilationSupport.registerFullyLinkedAction to be the ↵Gravatar Chris Parsons2016-04-26
| | | | | | | | | | responsibility of the caller to invoke, instead of creating the fully linked artifact by default It makes more sense for the caller rule to opt-in to creating its own implicit output. This also makes it easier for classes to use CompilationSupport without generating this artifact. -- MOS_MIGRATED_REVID=120764517
* Split ActionMetadata into ActionAnalysisMetadata and ActionExecutionMetadata.Gravatar Rumou Duan2016-04-26
| | | | | | | Except in action execution logic (ActionExecutionFunction, SkyframeActionExecutor, etc.), switch Action interface references to either ActionAnalysisMetadata if possible or ActionExecutionMetadata. -- MOS_MIGRATED_REVID=120723431
* Refactor CompilationSupport and IntermediateArtifacts to optionally take a ↵Gravatar Chris Parsons2016-04-20
| | | | | | | BuildConfiguration that is not the current rule context's configuration. -- MOS_MIGRATED_REVID=120271518
* Review a number of action subclasses and update them according to the spec.Gravatar Ulf Adams2016-04-19
| | | | | | | | | | Second pass. Consists of adding @Immutable annotations, adding final modifiers, and changing the types of fields to immutable types. -- MOS_MIGRATED_REVID=120216592
* Do not collide intermediate and final output dsym artifacts.Gravatar Peter Schmitt2016-04-14
| | | | | -- MOS_MIGRATED_REVID=119848254
* *_test rules now return an .xctest.dSYM bundle.Gravatar Googler2016-04-01
| | | | | -- MOS_MIGRATED_REVID=118786316
* Allow .o files as sources for objc builds.Gravatar Cal Peyser2016-04-01
| | | | | -- MOS_MIGRATED_REVID=118727286
* Add support for objc_generate_linkmap argument that controls whether a link ↵Gravatar Dave MacLachlan2016-03-31
| | | | | | | | | map is generated. R_FUTURE=cparsons -- MOS_MIGRATED_REVID=118631953
* Set -fmodules-cache-path to be rooted in the genfiles directory whenever ↵Gravatar Chris Parsons2016-03-31
| | | | | | | | | modules are enabled. Also warn when -fmodules-cache-path is explicitly set by the user (either in configuration or rule attributes) -- MOS_MIGRATED_REVID=118590843
* Rollback of commit d6dcde6bbf074b42f89b0feb6980e124c076863a.Gravatar Klaus Aehlig2016-03-30
| | | | | | | | | | | | | | | *** Reason for rollback *** Broke bazel http://ci.bazel.io/job/Bazel/417/JAVA_VERSION=1.8,PLATFORM_NAME=linux-x86_64/console by using a Guava 20 feature, while Gauva 20 is not yet released. *** Original change description *** Set -fmodules-cache-path to be rooted in the genfiles directory whenever modules are enabled. Also warn when -fmodules-cache-path is explicitly set by the user (either in configuration or rule attributes) -- MOS_MIGRATED_REVID=118555994
* Fix strip for ios_framework_binary by passing -x to strip.Gravatar Googler2016-03-30
| | | | | -- MOS_MIGRATED_REVID=118523482
* Set -fmodules-cache-path to be rooted in the genfiles directory whenever ↵Gravatar Chris Parsons2016-03-30
| | | | | | | | | modules are enabled. Also warn when -fmodules-cache-path is explicitly set by the user (either in configuration or rule attributes) -- MOS_MIGRATED_REVID=118478856
* Propagate -isystem includes from CC deps in Xcode project generation.Gravatar Googler2016-03-29
| | | | | | | | | The lack of cc_library dependencies in generated Xcode projects can be worked around using _fully_linked.a and objc_import, but some include files still fail to propagate. In particular this affects genrule outputs and proto headers. This fixes that issue. -- MOS_MIGRATED_REVID=118397125
* Refactor spawnXcrunActionBuilder to take an explicit apple platform.Gravatar Chris Parsons2016-03-24
| | | | | | | | | This both starts to clean up the code (making it clearer which platform each action is targeted to, caller by caller), as well as allows callers to issue certain actions for platforms which are not implicitly ios. We'll still need to migrate callers onto the new method signature. -- MOS_MIGRATED_REVID=117982741
* Pass -F flags to Swift compilation rules.Gravatar Dmitry Shevchenko2016-03-24
| | | | | -- MOS_MIGRATED_REVID=117974145
* Introduce the linkopts attribute to the objc family of rules.Gravatar Cal Peyser2016-03-23
| | | | | -- MOS_MIGRATED_REVID=117821922
* Remove deprecated objc_options.Gravatar Dave MacLachlan2016-03-17
| | | | | | | RELNOTES[INC]: Any project that depended on the objc_options rule will be broken. Can be fixed by adding attrs (infoplists,copts) directly to rules depending on the options. -- MOS_MIGRATED_REVID=117393853
* Rollback of commit 60434dae746ed61f025fdfd0464993fa6a0ff1d2.Gravatar Cal Peyser2016-02-15
| | | | | -- MOS_MIGRATED_REVID=114537166
* --Gravatar Cal Peyser2016-02-11
| | | | MOS_MIGRATED_REVID=114436999
* Adds a flag to prioritize static libs over system libs and frameworks in ↵Gravatar Cal Peyser2016-02-09
| | | | | | | linker includes. -- MOS_MIGRATED_REVID=114134316
* Move ObjC compilation actions for J2ObjC-translated code from binary level ↵Gravatar Rumou Duan2016-02-05
| | | | | | | | | | | | to the edges (J2ObjcAspect and J2ObjcProtoAspect). RELNOTES[INC]: ObjC compile actions for J2ObjC-translated code now only has access to headers from the java deps of the associated original java rule. These compile actions no longer takes the compiler options specified in "copts" attribute on objc_binary/ios_test rules. J2ObjC dead code removal (enabled through flag "--j2objc_dead_code_removal") now happens *after* ObjC compilation. -- MOS_MIGRATED_REVID=113910545
* Clang linker invocations for objc link system libraries before frameworks on ↵Gravatar Cal Peyser2016-02-01
| | | | | | | "--includes_prioritize_system_libs" flag. -- MOS_MIGRATED_REVID=113387488
* Don't load dumpsyms in configurations.Gravatar Peter Schmitt2016-01-28
| | | | | | | RELNOTES[INC]: Removed --objc_dump_syms_binary. -- MOS_MIGRATED_REVID=113186554
* Basic implementation for the build flag apple_bitcode, to propagate bitcode ↵Gravatar Chris Parsons2016-01-15
| | | | | | | | | | | build flags to clang based on a specified mode. This handles the very basic case of objc_* rule compilation which does not depend on non-objc targets. Until we support passing bitcode flags for cc compilation, such builds will be broken if bitcode is enabled (one may be able to get around this by propagating the appropriate bitcode flag to --copt, but we'll want to do this as part of the apple_bitcode flag). Additionally, we will want to use apple_bitcode to pass bitcode-enabling properties to generated xcode projects. -- MOS_MIGRATED_REVID=112192290
* Use xcode_config build target for actions which need to resolve an xcode ↵Gravatar Chris Parsons2016-01-13
| | | | | | | version. -- MOS_MIGRATED_REVID=111978539
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Find frameworks in System/ instead of in Developer/ for ios sdks 9.0 and laterGravatar Chris Parsons2015-12-08
| | | | | -- MOS_MIGRATED_REVID=109715685
* Rename Platform.forArch to Platform.forIosArch, as it is truly doing the latter.Gravatar Chris Parsons2015-11-18
| | | | | -- MOS_MIGRATED_REVID=108057030
* Create AppleConfiguration and AppleCommandLineOptions, and move a few items ↵Gravatar Chris Parsons2015-11-10
| | | | | | | | | | | of configuration over to the apple package. This moves a small number of configuration items over. Future changes will mostly likely follow to move yet more items. The split here is necessary as it is not only objc-related rules which require information about apple platforms and configuration -- cc rules will need this information as well to pass appropriate args to clang. -- MOS_MIGRATED_REVID=107396114
* Add xcrunwrapper to deal with DEVELOPER_DIR and SDKROOT.Gravatar Dave MacLachlan2015-11-06
| | | | | | | | | Replace uses of $SDKROOT and $DEVELOPER_DIR values in compile paths with __DEVELOPER_DIR__ and __SDKROOT__ to that xcrunwrapper can deal with them appropriately. RELNOTES:none -- MOS_MIGRATED_REVID=107259512
* Add experimental support for putting full paths into compile actions. This ↵Gravatar Dave MacLachlan2015-11-06
| | | | | | | | | is currently limited to compile actions started by the objc_* rules. Adding this because Xcode needs full paths to files embedded in the debug information if you want to debug while running in the simulator. RELNOTES:none -- MOS_MIGRATED_REVID=107253500
* Add missing header sources to Swift compilation stepsGravatar Dmitry Shevchenko2015-11-05
| | | | | | | | * Adds pass-through of dependent headers * Adds pass-through of search paths specified in "includes" attribute -- MOS_MIGRATED_REVID=107098761
* Add a mapping and relevant function calls in ObjcProvider to provide a way ↵Gravatar Rumou Duan2015-10-07
| | | | | | | | | to construct and export a J2ObjC-code-and-dep-only view of the ObjcProvider, which is then used to create the compile action for J2ObjC-generated code at the binary level. This greatly reduces the number of input artifacts for such actions. Also export header search paths at the edges (J2ObjcAsepct and J2ObjcProtoAspect) instead of in j2objc_library. This change removes some unnecessary header search paths. -- MOS_MIGRATED_REVID=104821185
* Move several commands over to using xcrun instead of hardcoding tooling ↵Gravatar Dave MacLachlan2015-10-07
| | | | | | | locations. -- MOS_MIGRATED_REVID=104797906
* Add a feature to require explicitly passing module maps.Gravatar Manuel Klimek2015-10-07
| | | | | | | | | | | | | | | | | | | | | | Currently, module maps contain both "use <module>" entries that specify which modules the current module map depends on, and "extern module" entries that provide paths where to load the dependent module maps from. This change adds a feature "module_map_without_extern_module", which instructs blaze to not write the "extern module" entries into the module map. Instead, the crosstool needs to add -fmodule-file flags for each dependent module file where needed for the compile via the new build variable "dependent_module_map_files". Note that the feature is phrased negatively ("_without_") in order to simplify the roll-out of this feature: as long as crosstools do not specify any features, they still want the old behavior. We cannot make the feature positive and add it to the legacy configuration, as we currently cannot remove features that have already been set in the crosstool file. -- MOS_MIGRATED_REVID=104757413
* Propagates cc_library linkopts attribute to dependent objc_libraries.Gravatar Googler2015-10-02
| | | | | -- MOS_MIGRATED_REVID=104439072
* Rollback of "Propagates cc_library linkopts attribute to dependent ↵Gravatar Chris Parsons2015-09-30
| | | | | | | objc_libraries.": breaks certain objc_binary build targets. -- MOS_MIGRATED_REVID=104146276
* Adds the textual_hdrs attribute, which are treated as regular headers but ↵Gravatar Googler2015-09-30
| | | | | | | | | not currently included in the module map. On Xcode 7, we should add them to the module map as additionalExportedHeaders, since it supports the textual keyword. RELNOTES: Add support for objc textual headers, which will not be compiled when modules are enabled. -- MOS_MIGRATED_REVID=104100551
* Give a nice error message on double included files in objc rules.Gravatar Peter Schmitt2015-09-28
| | | | | -- MOS_MIGRATED_REVID=103986912
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Disable generateSubModules, since it causes issues with private headers.Gravatar Googler2015-09-25
| | | | | -- MOS_MIGRATED_REVID=103847305
* Propagates cc_library linkopts attribute to dependent objc_libraries.Gravatar Googler2015-09-24
| | | | | -- MOS_MIGRATED_REVID=103792157
* Switch objc rules to standard coverage propagation using ↵Gravatar Peter Schmitt2015-09-22
| | | | | | | InstrumentedFilesCollector. -- MOS_MIGRATED_REVID=103642172
* Changes dylibs from being part of the xcodeproject file references to being ↵Gravatar Dave MacLachlan2015-09-22
| | | | | | | | | | | arguments to OTHER_LDFLAGS. Command lines now use -l"name" to link libraries. This solves the problem that libraries in Xcode 7 now have .tbd files instead of dylibs in device builds and maintains backwards compatibility with Xcode 6. Also modifies Bazel Objclink action to pass in libraries as -l"name" arguments. RELNOTES:Adds support for dylibs on devices for Xcode 7. -- MOS_MIGRATED_REVID=103589448
* Separate build-specific types and types inherent to Skylark.Gravatar Lukacs Berki2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103374106
* Adds an implicit "fully_linked" archive output to objc_library. Gravatar Googler2015-09-21
| | | | | | | | | | Adds a fully linked static library as an implicit target of objc_library. This implicit target is a library that contains the full transitive closure of libraries inside of it. For example, if liba depends on libb, then liba_fully_linked contains all of the symbols in liba and libb. Tested: Added unit tests that check the right libraries are linked in. -- MOS_MIGRATED_REVID=103334108
* Generate module maps for each objc_* target with compilation support.Gravatar Googler2015-09-15
| | | | | | | | | This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. To enable this feature, you must pass -experimental_objc_enable_module_maps to bazel. For objc_* targets that need to use the "modules" language features (@import, Swift interop, etc), set the "enable_modules" attribute to 1. -- MOS_MIGRATED_REVID=103045673
* Have clang output .d dependency files during ObjcCompile.Gravatar Googler2015-09-15
| | | | | | | | | These are not currently used by anything. The next step is for bazel to read these files and use them to check the declared dependencies for correctness. RELNOTES: -- MOS_MIGRATED_REVID=103023531