aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
Commit message (Collapse)AuthorAge
...
* 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
* Move J2ObjCLibrary and supporting classes to Bazel, and enable J2ObJC in Bazel.Gravatar Michael Thvedt2015-06-19
| | | | | -- MOS_MIGRATED_REVID=96324830
* Add two binary size optimizations when --compilation_mode=opt is specified:Gravatar Rumou Duan2015-06-18
| | | | | | | | | | 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=96211910
* Add ability to compile objc_binary targets with Swift sources.Gravatar Googler2015-06-17
| | | | | | | | | | | | | * Swift sources whitelisted * Swift compilation and module merging actions * Swift stdlib copying into IPA action * Special case for signing embedded swift stdlib dylibs during bundle signing * Works with mixed ObjC/Swift sources * Doesn't support working with dependencies from Swift code. * Requires Xcode 6.3.1 for swift compiler and tooling. -- MOS_MIGRATED_REVID=96141887
* Rollback of commit 162d5b276e1539b1acc44afcd4a4ccadcf99023a.Gravatar Googler2015-06-15
| | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks targets that have the same .m file in both srcs and hdrs. *** Original change description *** Allow private header files in the srcs attribute of objc_* rules. This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. clang enforces private header usage through these maps. Right now module maps are interpreted but modules aren't enabled. RELNOTES: Allow private header files in the srcs attribute of objc_* rules. -- MOS_MIGRATED_REVID=95916531
* Fix typo in error message when the same file is in both srcs and hdrs.Gravatar Googler2015-06-15
| | | | | -- MOS_MIGRATED_REVID=95852647
* Allow private header files in the srcs attribute of objc_* rules.Gravatar Googler2015-06-15
| | | | | | | | | This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. clang enforces private header usage through these maps. Right now module maps are interpreted but modules aren't enabled. RELNOTES: Allow private header files in the srcs attribute of objc_* rules. -- MOS_MIGRATED_REVID=95844137
* Allow objc_{library,binary} to depend on cc_library.Gravatar Peter Schmitt2015-06-05
| | | | | | | | | | | | | | | | | | | | | | This is an early version of support for this feature, likely still missing a number of edge cases. However the basic functionality should work. To allow a dependency from objc to cc, the following flags will have to be passed to bazel: --experimental_enable_objc_cc_deps --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool The feature is also compatible with --ios_multi_cpus, with the familiar values for --ios_cpu (i386, x86_64, armv7, arm64; passed instead of --cpu above). This CL does not contain any Xcode support for CC dependencies yet, they will just not show up in the generated Xcode project. (Second submission after earlier accidental submit before this CL was ready). -- MOS_MIGRATED_REVID=95110081
* Refactor J2ObjCSrcsProvider to have a builder, allowing us to move logic out ↵Gravatar Googler2015-05-29
| | | | | | | of ObjCRuleClasses. -- MOS_MIGRATED_REVID=94693481
* Rollback of commit b66898e44d79ef67f856eaeae711bb461564a3c1.Gravatar Peter Schmitt2015-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** This was accidentally submitted (why did tappresubmit not complain about no LGTM?!) *** Original change description *** Allow objc_{library,binary} to depend on cc_library. This is an early version of support for this feature, likely still missing a number of edge cases. However the basic functionality should work. To allow a dependency from objc to cc, the following flags will have to be passed to bazel: --experimental_enable_objc_cc_deps --experimental_disable_java --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool The feature is also compatible with --ios_multi_cpus, with the familiar values f... *** -- MOS_MIGRATED_REVID=94118959
* Allow objc_{library,binary} to depend on cc_library.Gravatar Peter Schmitt2015-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | This is an early version of support for this feature, likely still missing a number of edge cases. However the basic functionality should work. To allow a dependency from objc to cc, the following flags will have to be passed to bazel: --experimental_enable_objc_cc_deps --experimental_disable_java --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool The feature is also compatible with --ios_multi_cpus, with the familiar values for --ios_cpu (i386, x86_64, armv7, arm64). However, using this crosstool and any CPU defined in it (legal values are ios_i386, ios_x86_64, ios_armv7, ios_arm64) will make it impossible to use genrules with java make variables in the same build: Obviously they require java support and no that is not available for iOS CPUs. The new flag --experimental_disable_java has not been tested in any circumstances but the one enabled by this CL so use it with caution. This CL does not contain any Xcode support for CC dependencies yet, they will just not show up in the generated Xcode project. -- MOS_MIGRATED_REVID=94116942
* Simplify OptionsProvider logic.Gravatar Peter Schmitt2015-05-15
| | | | | | | | Eventually objc_options will go away but for now this reduces unnecessary logic and reduces rule/support interdependencies. -- MOS_MIGRATED_REVID=93653491
* Clean up obcj rules by removing ObjcActionsBuilder.Gravatar Peter Schmitt2015-05-15
| | | | | | | | Moved the last remaining logic to its corresponding support class (XcodeSupport). -- MOS_MIGRATED_REVID=93462899
* Add a genrule that generates a dummy J2ObjC dead code removal script in ↵Gravatar Googler2015-05-15
| | | | | | | tools/objc/BUILD. -- MOS_MIGRATED_REVID=93447039
* Refactor link command line to live in CompilationSupport.Gravatar Peter Schmitt2015-04-21
| | | | | | | Also simplifies command line construction and removes redundant linker arguments. -- MOS_MIGRATED_REVID=91613561
* Pull compilation support out of ObjcActionsBuilderGravatar Daniel Wagner-Hall2015-04-08
| | | | | -- MOS_MIGRATED_REVID=90441648
* objc: Only load dump_syms if we're actually going to use itGravatar Daniel Wagner-Hall2015-03-20
| | | | | -- MOS_MIGRATED_REVID=89095609
* Coverage implementation for Objective C.Gravatar Googler2015-02-18
| | | | | | | | | | | | | | | Added gcnoFile() to translate a source file to its corrosponding .gcno file. Added "-fprofile-arcs", "-ftest-coverage", "-fprofile-dir=./coverage_output" to compiler flags when compiling in coverage mode. Added "-fprofile-arcs", "-ftest-coverage" to linker flags when linking in coverage mode. Added constructor for InstrumentedFilesProviderImpl that was recently removed due to being unused in []. Added .gcno files to runfiles of IosTest runner to be used by gcov after tests have been run. This CL + [] will enable blaze coverage will work on an ios_test target. An example of the [] output of this change + [] is -- MOS_MIGRATED_REVID=86601223
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957