aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
Commit message (Collapse)AuthorAge
...
* 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
* When generating Xcode projects, remove -I options from copts and instead add ↵Gravatar Rumou Duan2015-09-14
| | | | | | | the -I include paths as non-propagated header search paths. If the paths are relative, prepend $(WORKSPACE_ROOT) to them. -- MOS_MIGRATED_REVID=102994196
* Propagate includes and defines attributes from cc_library to dependent ↵Gravatar Peter Schmitt2015-09-11
| | | | | | | objc_libraries. -- MOS_MIGRATED_REVID=102775222
* Remove expectation of clang in producing .gcno of assembly files for ↵Gravatar Chris Parsons2015-09-11
| | | | | | | | | instrumentation/coverage purposes. This is easier by grouping together all assembly files in a file set, thus justifying a simultaneous cleanup of the redundant usage of the assembler-with-cpp flag -- MOS_MIGRATED_REVID=102671848
* Fix ios debug symbol generation on Bazel.Gravatar Rumou Duan2015-09-02
| | | | | -- MOS_MIGRATED_REVID=102175026
* bazel --xcode_version flag to forward an environment variable ↵Gravatar Chris Parsons2015-09-02
| | | | | | | XCODE_VERSION_OVERRIDE to executors if specified -- MOS_MIGRATED_REVID=102049561
* Switch J2ObjC transpilation and dead code removal actions to use parameter ↵Gravatar Rumou Duan2015-09-01
| | | | | | | files. -- MOS_MIGRATED_REVID=101975830
* RELNOTES: Allow private headers in the srcs attribute. Add a warning if a ↵Gravatar Googler2015-08-20
| | | | | | | | | file is in both srcs and hdrs. This uses a very restrictive definition of private headers. They may only imported by sources in the same target and other private headers. They are not transitively available to dependers, even indirectly, though this may change in the future. -- MOS_MIGRATED_REVID=101028706
* --Gravatar Rumou Duan2015-08-20
| | | | MOS_MIGRATED_REVID=100930529
* Add Bridging Header attribute to objc_ compilation rulesGravatar Dmitry Shevchenko2015-08-17
| | | | | | | This allows Swift code to import and use Objective-C interfaces. -- MOS_MIGRATED_REVID=100715248
* Experimental support for ios_framework rulesGravatar Dmitry Shevchenko2015-08-12
| | | | | | | | | | | | | | | | | | | | | * Allows for building and linking to a framework in ios_application * Currently only works for single arch builds * Xcode generation produces correct target type, but is mostly untested The implementation is very similar to that of objc_framework: 1) Build the ios_framework_binary as a dynamic library (-dynamiclib) 2) Symlink the library and public headers to a staging location, inside of "X.framework" bundle. Where X is the name under ios_framework_binary#framework_name 3) Pass the bundle content to ObjcCommon.addFrameworkImports, reusing the core of objc_framework rule implementation. This results in correctly set -F/-framework flags and allows clients to use the framework in a way they would use any SDK/3rd-party framework. It's allowed to import headers via #import <X/X.h> call. 4) Copy the binary and all resources into final application bundle under Frameworks/X.framework 5) Sign the app and nested frameworks -- MOS_MIGRATED_REVID=100397239
* Remove -fprofile-dir flag from clang flags.Gravatar Googler2015-08-12
| | | | | | | xcode 6.4 upgrades clang from 6.0 to 6.1, which no longer needs this flag. -- MOS_MIGRATED_REVID=100383635
* Support for .s, .S, and .asm files for objc rulesGravatar Chris Parsons2015-07-23
| | | | | -- MOS_MIGRATED_REVID=98772452
* Add two binary size optimizations when --compilation_mode=opt and ↵Gravatar Rumou Duan2015-06-23
| | | | | | | | | | | | --objc_enable_binary_stripping are specified: 1. Symbol strippings. A new strip action is registered that uses Darwin tool /usr/bin/strip to remove the symbol table of the linked binary. 2. Dead-code strippings, which uses linker flag "--dead_strip" to remove unreachable code in binary link action. RELNOTES: Add a flag "objc_enable_binary_stripping" to enable symbol and dead code strippings on linked binaries generated by ObjC rules. -- MOS_MIGRATED_REVID=96587585
* Rollback of commit 6af85020b520a9dd2bd913562b16716c29c3dbc3.Gravatar Laszlo Csomor2015-06-23
| | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks ios_test targets. *** Original change description *** Add two binary size optimizations when --compilation_mode=opt is specified: 1. Symbol strippings. A new strip action is registered that uses Darwin tool /usr/bin/strip to remove the symbol table of the linked binary. 2. Dead-code strippings, which uses linker flag "--dead_strip" to remove unreachable code in binary link action. RELNOTES: Perform symbol and dead code strippings on linked binaries generated by ObjC rules. -- MOS_MIGRATED_REVID=96551473