aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
Commit message (Collapse)AuthorAge
* Contractually document BuildConfiguration.Fragment as immutable and strengthenGravatar Greg Estren2016-02-01
| | | | | | | | | | | | | | | the immutability interfaces of existing implementations. Eventually we want all implementations to comply, but right now CppConfiguration is a glaring exception due to FDO/LIPO support. We don't want more exceptions to arise. This is prep work for pre-trimming ConfigurationFragment.key's BuildOptions input to just the options needed by the fragment. That implies fragments can be shared across configurations, so that needs to be safe. -- MOS_MIGRATED_REVID=113408041
* Add CppCompileAction's environment variables to its computeKey methodGravatar Chris Parsons2016-02-01
| | | | | -- MOS_MIGRATED_REVID=113407051
* Redesign xcode_config rule to be evaluated at the level of configuration ↵Gravatar Chris Parsons2016-02-01
| | | | | | | instead of target depss -- MOS_MIGRATED_REVID=113398355
* Rollback of commit e379f28f464faacc4db21f4fed3a48fa6d4d23f0.Gravatar Googler2016-01-29
| | | | | | | | | | | | | *** Reason for rollback *** The new test apparently breaks some targets. Rolling back to fix the build. *** Original change description *** Include .dwp file in the runfiles for cc_test when building with Fission. -- MOS_MIGRATED_REVID=113310353
* Include .dwp file in the runfiles for cc_test when building with Fission.Gravatar Googler2016-01-29
| | | | | -- MOS_MIGRATED_REVID=113295790
* Don't display irrelevant line in --verbose_explanations of cc compile.Gravatar Googler2016-01-28
| | | | | -- MOS_MIGRATED_REVID=113251721
* Stop inserting local shell environment into CppCompileAction.Gravatar Han-Wen Nienhuys2016-01-26
| | | | | -- MOS_MIGRATED_REVID=112956748
* Allow switching on header processing (parse_headers or preprocess_headers)Gravatar Manuel Klimek2016-01-22
| | | | | | | | | | | | | | | | | for targets in the transitive closure of a target that is built. Previously, this would only happen if a link action for the library containing the headers was also built; this specifically means it did not trigger if a library didn't contain source files, as there is no link action for such libraries. That led to no header-only libraries would get their headers parsed, which includes all cc_public_library rules. Adding a flag to introduce this under so we can switch it on independently from the blaze release. Once it is switched on, we can remove the edges in the action graph from the link actions to the header processing actions. -- MOS_MIGRATED_REVID=112782219
* Do not compile source files mentioned in 'hdrs'.Gravatar Manuel Klimek2016-01-22
| | | | | | | | | | | | Currently for a library: cc_library(name='a', hdrs=['a.cc']) we compile a.cc into a.pic.o and link that into its reverse dependencies. With this change, a .cc file in hdrs will be treated like a .inc file or a file in textual_hdrs. -- MOS_MIGRATED_REVID=112770625
* Rename defaultShellEnvironment to localShellEnvironment and clarifyGravatar Han-Wen Nienhuys2016-01-21
| | | | | | | its intended use. -- MOS_MIGRATED_REVID=112598772
* Blaze CcLibraryHelper: make creating a CppCompilationContext publicGravatar Googler2016-01-20
| | | | | | | | | | | Also, don't require the :stl attribute to be defined by all rules that use CcLibraryHelper. This makes it possible for other languages to use CcLibraryHelper to create a CppCompilationContext. -- MOS_MIGRATED_REVID=112494452
* Libc top for the host should take its value only from --host_grte_top or the ↵Gravatar Googler2016-01-15
| | | | | | | | | host crosstool. RELNOTES[NEW]: --grte_top no longer also sets --host_grte_top in the absence of the latter -- MOS_MIGRATED_REVID=112258796
* Better error message for attempted builds of statically linked binaries ↵Gravatar Cal Peyser2016-01-15
| | | | | | | targeting Apple platforms. -- MOS_MIGRATED_REVID=112152418
* Use xcode_config build target for actions which need to resolve an xcode ↵Gravatar Chris Parsons2016-01-13
| | | | | | | version. -- MOS_MIGRATED_REVID=111978539
* cc_inc_library: Add CcSkylarkApiProvider infoGravatar Googler2016-01-13
| | | | | | | This will allow Skylark rules to interact nicely with cc_inc_library rules. -- MOS_MIGRATED_REVID=111969252
* Extend crosstool configuration to allow features to specify (expandable) ↵Gravatar Chris Parsons2016-01-07
| | | | | | | environment variables to pass to actions -- MOS_MIGRATED_REVID=111608329
* Remove Constants.ALLOW_CC_INCLUDE_SCANNING and handle the logic in ↵Gravatar Philipp Wollermann2016-01-07
| | | | | | | CppSemantics instead. -- MOS_MIGRATED_REVID=111406721
* Move annotation classes used for referencing framework Java classes from ↵Gravatar John Field2015-12-16
| | | | | | | | | | | | | | Skylark into their own package. This allows, e.g., classes in the syntax package to access classes in the cmdline package without creating circular dependencies. While we're here: - Removed a couple of unused BUILD deps flagged in []. - Updated SkylarkRuleImplementationFunctionsTest to remove non-ASCII characters and clarify the intent of the test. -- MOS_MIGRATED_REVID=110360763
* Clean up the configuration-related code paths a bit.Gravatar Ulf Adams2015-12-11
| | | | | | | | | - If we have a class object available, we can use .cast(Object) - Only store the required options objects in CppConfigurationParameters rather than keeping the entire BuildOptions -- MOS_MIGRATED_REVID=109981236
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Reorganize BUILD files.Gravatar Han-Wen Nienhuys2015-11-30
| | | | | -- MOS_MIGRATED_REVID=108985661
* Retrieve Android native link flag features from the right toolchain.Gravatar Brian Silverman2015-11-19
| | | | | | | | | | | | | Previously, the feature-based flags for links of native code for Android were coming from the standard TARGET toolchain, which is wrong. This went unnoticed because Bazel's CROSSTOOL (and mine until recently) don't add any flags that way in either, which means getting the flags either way results in none. -- Change-Id: I74cd18ff56e3aea7ca61fabe62cb2246100ee59a Reviewed-on: https://bazel-review.googlesource.com/#/c/2322 MOS_MIGRATED_REVID=108234274
* Propagate apple platform environment variables for CppCompileActionGravatar Chris Parsons2015-11-19
| | | | | -- MOS_MIGRATED_REVID=108182745
* Allow %package(@foo//bar)%/path for cxx builtin include dirs.Gravatar Brian Silverman2015-11-18
| | | | | | | | | | | | | This allows using compilers downloaded in *_repository rules without ugly hacks like symlinks to bazel-out/../../external. I manually tested all of the %prefix%s which this refactors the implementations of. -- Change-Id: Ie9931dfbed646b8b5c9cd7fba5e6df5cf0baa1f2 Reviewed-on: https://bazel-review.googlesource.com/#/c/2200 MOS_MIGRATED_REVID=108139097
* LipoDataTransition is only meaningful for C++Gravatar Greg Estren2015-11-18
| | | | | | | | | | | | options. If a rule (such as a filegroup) doesn't have C++ options in its transitive closure, then buildOptions.get(CppOptions.class) returns null and crashes. So add a check to just fast-return for these cases. -- MOS_MIGRATED_REVID=108079561
* When getting package roots for exec paths, don't start with the file, which ↵Gravatar Janak Ramakrishnan2015-11-13
| | | | | | | is guaranteed not to be a package. Instead, start with its parent. This will be faster and take less memory. -- MOS_MIGRATED_REVID=107725767
* Change Precondition.checkState to Precondition.checkArgument.Gravatar Greg Estren2015-11-13
| | | | | -- MOS_MIGRATED_REVID=107719461
* Use the new BuildConfiguration.equalsOrIsSupersetOfGravatar Greg Estren2015-11-13
| | | | | | | | | in CcLibraryHelper. Also add a check for null configurations. -- MOS_MIGRATED_REVID=107709170
* C++ libraries in remote repos don't need to set include pathsGravatar Kristina Chodorow2015-11-12
| | | | | | | | | Fixes #445, based on https://github.com/bazelbuild/bazel/compare/master...ulfjack:cpp-include-path. RELNOTES: C++ libraries no longer need includes = ["."] (or similar copts) to include paths relative to a remote repository's root. -- MOS_MIGRATED_REVID=107593486
* Make STL work even when not in the main repository.Gravatar Lukacs Berki2015-11-11
| | | | | | | This makes all tool dependencies be under @bazel_tools again (and not //tools) -- MOS_MIGRATED_REVID=107482585
* bazel: support linking accumulated libraries into C++ binariesGravatar Googler2015-11-06
| | | | | | | | | | | | | This CL permits a cc_binary to have a set of dependencies that are all gathered together when the cc_binary is linked, producing a set of LibraryToLink objects to link into the cc_binary. Each such dependency will an instance of a class that extends BuildLibraryToLink to a CcLinkParams. All instances of the same class will be gathered together. At link time the BuildLibraryToLink method buildLibraries will be called to build the LibraryToLink objects. -- MOS_MIGRATED_REVID=107242331
* Close some streams that we didn'tGravatar Miguel Alcon Pinto2015-11-05
| | | | | -- MOS_MIGRATED_REVID=107048547
* Make C++ builds work on OS X.Gravatar Lukacs Berki2015-10-30
| | | | | | | Fixes #538. -- MOS_MIGRATED_REVID=106674650
* Force hdrs_check to "strict", remove "hdrs_check" attribute from cc_* rules.Gravatar Philipp Wollermann2015-10-27
| | | | | | | RELNOTES: Bazel does strict validation of include files now to ensure correct incremental builds. If you see compilation errors when building C++ code, please make sure that you explicitly declare all header files in the srcs or hdrs attribute of your cc_* targets and that your cc_* targets have correct "deps" on cc_library's that they use. -- MOS_MIGRATED_REVID=106410969
* Allow C++ compile actions to run in a sandbox by replacing the ↵Gravatar Philipp Wollermann2015-10-27
| | | | | | | | | LocalGccStrategy / LocalLinkStrategy with SpawnGccStrategy / SpawnLinkStrategy. RELNOTES: C++ compile actions run in a sandbox now on systems that support sandboxed execution. -- MOS_MIGRATED_REVID=106299043
* Refactor include scanning / .d file parsing in the C++ rules so that ↵Gravatar Philipp Wollermann2015-10-27
| | | | | | | validating includes and updating action inputs is clearly separated and easier to understand now. -- MOS_MIGRATED_REVID=106298050
* Have @SkylarkCallable methods accept Iterable instead of CollectionGravatar Francois-Rene Rideau2015-10-22
| | | | | | | This makes it possible to call these methods with lists from Skylark, which are internally Iterable<>'s but not Collection<>'s. -- MOS_MIGRATED_REVID=106003065
* Add %crosstool_top% metasyntax for builtin cxx include directories.Gravatar Googler2015-10-20
| | | | | | | | | | | | Instead of two metasyntactic variables and one random bit of magic which changes relative paths to be children of crosstool, we now have three consistent pieces of metasyntax; except that since we can't actually remove the old syntax, we have either way for the time being. RELNOTES[NEW]: accept %crosstool_top% in cxx_builtin_include_directory -- MOS_MIGRATED_REVID=105854779
* Allow relative CxxBuiltinDirectories not just under crosstool or sysroot.Gravatar Googler2015-10-20
| | | | | | | | | | cxx_builtin_include directories which start with "%workspace%/" are taken to be relative to the build workspace, and not relative to crosstool-top. RELNOTES[NEW]: cpxx_builtin_include_directory specifications allow more flexibility. -- MOS_MIGRATED_REVID=105789270
* Expose link flags to SkylarkGravatar Googler2015-10-19
| | | | | -- MOS_MIGRATED_REVID=105624527
* Improves the error message for invalid cpu (--cpu or --fat_apk_cpu).Gravatar Alex Humesky2015-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | Before: ERROR: No toolchain found for cpu 'x84'. After: ERROR: No toolchain found for cpu 'x84'. Valid cpus are: [ armeabi, armeabi-v7a, armeabi-v7a-hard, armeabi-thumb, armeabi-v7a-thumb, armeabi-v7a-hard-thumb, arm64-v8a, mips, mips64, x86, x86_64, ]. -- MOS_MIGRATED_REVID=105324190
* Makes the error message for invalid or duplicate crosstool toolchains more ↵Gravatar Alex Humesky2015-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | legible by putting each flag combination on its own line. E.g. from this: ERROR: No toolchain found for --cpu='foo' --compiler='bar' --glibc='baz'. Valid toolchains are: [ --cpu='armeabi-v7a' --compiler='compiler' --glibc='armeabi-v7a', --cpu='armeabi-v7a' --compiler='compiler' --glibc='armeabi-v7a', --cpu='local' --compiler='compiler' --glibc='local', --cpu='darwin' --compiler='compiler' --glibc='macosx', --cpu='freebsd' --compiler='compiler' --glibc='local', --cpu='k8' --compiler='windows_mingw' --glibc='local', --cpu='k8' --compiler='windows_msys64_mingw64' --glibc='local', --cpu='k8' --compiler='windows_clang' --glibc='local',]. to this: ERROR: No toolchain found for --cpu='foo' --compiler='bar' --glibc='baz'. Valid toolchains are: [ --cpu='armeabi-v7a' --compiler='compiler' --glibc='armeabi-v7a', --cpu='armeabi-v7a' --compiler='compiler' --glibc='armeabi-v7a', --cpu='local' --compiler='compiler' --glibc='local', --cpu='darwin' --compiler='compiler' --glibc='macosx', --cpu='freebsd' --compiler='compiler' --glibc='local', --cpu='k8' --compiler='windows_mingw' --glibc='local', --cpu='k8' --compiler='windows_msys64_mingw64' --glibc='local', --cpu='k8' --compiler='windows_clang' --glibc='local', ]. (notice there is a duplicate toolchain) -- MOS_MIGRATED_REVID=105313547
* LTO: Don't choke on cc_library without srcs.Gravatar Han-Wen Nienhuys2015-10-12
| | | | | -- MOS_MIGRATED_REVID=105204997
* Set CLANG for invoking the LTO backend.Gravatar Han-Wen Nienhuys2015-10-08
| | | | | -- MOS_MIGRATED_REVID=104862806
* Add a custom converter to --crosstool_top so that select() works.Gravatar Lukacs Berki2015-10-08
| | | | | -- MOS_MIGRATED_REVID=104845397
* Collect .o files compiled from C(++), and skip the rest for the LTO backend ↵Gravatar Han-Wen Nienhuys2015-10-07
| | | | | | | | | | step. This should make ThinLTO work with .o files that are not generated by compiling C++ in a cc_library() -- MOS_MIGRATED_REVID=104764111
* 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
* Add a Constants.TOOLS_PREFIX constant that will serve to redirect the Bazel ↵Gravatar Lukacs Berki2015-10-05
| | | | | | | | | | | tools repository. This is a no-op refactoring CL. The actual switch will be made once everything passes with the new setup. As a side cleanup, change the awkward realAndroidSdk() / realAndroidCrosstoolTop() mechanism to a converter. -- MOS_MIGRATED_REVID=104649067
* Allow extractIncludes method to throw an ExecException.Gravatar Janak Ramakrishnan2015-10-05
| | | | | -- MOS_MIGRATED_REVID=104529103
* Resolve labels in linkopts against either 'deps' or 'srcs'Gravatar Googler2015-09-28
| | | | | | | RELNOTES[NEW]: labels in "linkopts" may match any label in either "deps" or "srcs" to be considered valid. -- MOS_MIGRATED_REVID=103945104