Mikko Rasa [Tue, 13 Oct 2015 19:55:10 +0000 (22:55 +0300)]
Allow features to be exported
While overlay directories are generally preferred, sometimes it's not
worth the effort for a small feature. In those cases the -D switch needs
to be applied to any package that might use the library's headers.
Mikko Rasa [Tue, 13 Oct 2015 19:32:20 +0000 (22:32 +0300)]
Pass language standards through dependencies
If a library uses a particular standard in its headers, all packages that
depend on it should use that standard as well (unless overridden at the
package).
Mikko Rasa [Mon, 10 Nov 2014 18:50:35 +0000 (20:50 +0200)]
Deal with static build flags for binary packages
Some libraries have internal dependencies to other libraries, which are
automatically pulled in with dynamic linking, but need to be manually
specified to the linker when linking statically.
Mikko Rasa [Mon, 10 Nov 2014 17:51:44 +0000 (19:51 +0200)]
Fix DataCollection dependencies
Since DataTransform is not buildable, it won't get a rebuild flag even if
its dependencies change. Thus the dependencies must also be added to
DataCollection.
Mikko Rasa [Sat, 11 Oct 2014 06:35:21 +0000 (09:35 +0300)]
Add a list of symbols to keep in the binary to BuildInfo
The linker normally does not pull unnecessary symbols from static
libraries, which can cause problems if those symbols are meant to be
referenced externally.
Mikko Rasa [Sat, 11 Oct 2014 04:36:01 +0000 (07:36 +0300)]
Better algorithm for ordering static libraries
Put each static library dependency immediately after the library that
required it. This way, if a tool includes a static library in its own
build_info (such as gnustl_static for AndroidCxxCompiler), it will be
placed last and be available for all other static libraries.
Mikko Rasa [Fri, 10 Oct 2014 16:35:44 +0000 (19:35 +0300)]
A bunch of new tools and targets to build Android packages
Currently can only build apks using NativeActivity and debug key, and
will probably break if the package has a version. Still, it's useful
in certain configurations so I'll commit this version now and continue
improving it.
Mikko Rasa [Fri, 10 Oct 2014 10:07:56 +0000 (13:07 +0300)]
Better incpath logic in AndroidCxxCompiler
Don't expose the private directory through system_path, since programs
are not suppose to #include those files directly. Also use architecture
to determine which subdir to pick.
Mikko Rasa [Mon, 6 Oct 2014 20:43:34 +0000 (23:43 +0300)]
Drop support for generic tarball components
I originally envisioned using them for creating binary release tarballs,
but that turns out to be a less than spectacular idea. Tarballs only
really work as a distribution format on Linux. Other platforms either
use a different archive format or require more complicated preparations.
Mikko Rasa [Mon, 6 Oct 2014 00:13:37 +0000 (03:13 +0300)]
Split Component into several subclasses
The create_targets function in particular was rather unwieldy and
contained four completely separate branches. Having distinct component
types in different classes will also enhance modularity.
Mikko Rasa [Fri, 3 Oct 2014 23:08:48 +0000 (02:08 +0300)]
Rudimentary support for compiling things for Android
At the moment programs are compiled as if for a desktop system. Creating
graphical applications in this way is difficult, as it requires different
build rules to compile the application code as a .so and some boilerplate
to wrap it in a .apk with a NativeActivity.
Mikko Rasa [Fri, 3 Oct 2014 22:04:28 +0000 (01:04 +0300)]
Add sysroot support for BuildInfo and compilers
Embedded SDKs commonly ship with a sysroot to use with their compilers.
It might also come useful for compiling things for different Linux
distributions.
Mikko Rasa [Wed, 25 Sep 2013 17:19:57 +0000 (20:19 +0300)]
Move nested build signature creation to FileTarget
This way the same code can be used by different target classes that need
it. In particular, both Binary and StaticLibrary need nested signatures,
and FileTerget is their closest common base.
Mikko Rasa [Thu, 22 Aug 2013 12:06:07 +0000 (15:06 +0300)]
Check an ObjectFile's dependencies again if a dependency is modified
This is necessary to get generated sources to behave correctly. Includes
can only be read after they're built for the first time. The ObjectFile
must then add the necessary dependencies to ensure that required headers
are installed.
Mikko Rasa [Thu, 22 Aug 2013 12:03:03 +0000 (15:03 +0300)]
Add transitive dependencies for source files
This eliminates a problem where includes in C source files would cause
generates sources to be rebuilt if any of the included files changed.
Includes should only affect the object file built from the source file,
not the source file itself.
Mikko Rasa [Thu, 9 May 2013 07:12:52 +0000 (10:12 +0300)]
Improvements for handling side effects
Propagate rebuild from side effects to the primary target. This can
happen if the side effect does not exist for whatever reason. As an
additional safeguard, redirect any build attempts on side effects to
the primary target.
Mikko Rasa [Wed, 8 May 2013 09:36:22 +0000 (12:36 +0300)]
Store problems at their source rather than globally
This allows finer granularity in determining whether problems are
preventing a build. In some cases it may be desirable to build just one
component of a package, even if others have problems.