]> git.tdb.fi Git - builder.git/log
builder.git
10 years agoBetter algorithm for ordering static libraries
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.

10 years agoProvide the AR tool on Android
Mikko Rasa [Fri, 10 Oct 2014 21:44:37 +0000 (00:44 +0300)]
Provide the AR tool on Android

10 years agoForce shared linking on Android
Mikko Rasa [Fri, 10 Oct 2014 21:43:05 +0000 (00:43 +0300)]
Force shared linking on Android

Android applications are not run as standalone programs, but instead
loaded as native libraries into the Java VM.

10 years agoOnly use files from the first overlay that has them
Mikko Rasa [Fri, 10 Oct 2014 19:08:45 +0000 (22:08 +0300)]
Only use files from the first overlay that has them

This allows special-casing pieces of code for some platforms without
fragmenting the directory structure too badly.

10 years agoMake use of Task's file affinity and unlinking capabilities in Copy
Mikko Rasa [Fri, 10 Oct 2014 16:41:59 +0000 (19:41 +0300)]
Make use of Task's file affinity and unlinking capabilities in Copy

10 years agoA bunch of new tools and targets to build Android packages
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.

10 years agoAdd some logging to AndroidTools
Mikko Rasa [Fri, 10 Oct 2014 11:12:50 +0000 (14:12 +0300)]
Add some logging to AndroidTools

10 years agoOnly get DataTransform directory contents when needed
Mikko Rasa [Fri, 10 Oct 2014 10:25:31 +0000 (13:25 +0300)]
Only get DataTransform directory contents when needed

10 years agoBetter incpath logic in AndroidCxxCompiler
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.

10 years agoIntroduce a helper function in Architecture to pick the best matching name
Mikko Rasa [Fri, 10 Oct 2014 09:59:58 +0000 (12:59 +0300)]
Introduce a helper function in Architecture to pick the best matching name

10 years agoDon't generate filenames with double dash for versionless packages
Mikko Rasa [Thu, 9 Oct 2014 22:18:58 +0000 (01:18 +0300)]
Don't generate filenames with double dash for versionless packages

10 years agoAdd a field for a human-readable name for packages
Mikko Rasa [Thu, 9 Oct 2014 22:14:57 +0000 (01:14 +0300)]
Add a field for a human-readable name for packages

10 years agoNot all devices have libgnustl_shared.so, so better link the static one
Mikko Rasa [Thu, 9 Oct 2014 22:11:51 +0000 (01:11 +0300)]
Not all devices have libgnustl_shared.so, so better link the static one

10 years agoSupport "installing" files to a private staging area
Mikko Rasa [Thu, 9 Oct 2014 22:07:05 +0000 (01:07 +0300)]
Support "installing" files to a private staging area

10 years agoUse C++ include path from sysroot
Mikko Rasa [Thu, 9 Oct 2014 21:02:02 +0000 (00:02 +0300)]
Use C++ include path from sysroot

10 years agoAdd utility class for executing chains of tasks
Mikko Rasa [Thu, 9 Oct 2014 17:46:37 +0000 (20:46 +0300)]
Add utility class for executing chains of tasks

10 years agoSupport redirecting ExternalTask's stdin/stdout from/to a file
Mikko Rasa [Thu, 9 Oct 2014 17:42:57 +0000 (20:42 +0300)]
Support redirecting ExternalTask's stdin/stdout from/to a file

10 years agoA bunch of minor cleanups
Mikko Rasa [Wed, 8 Oct 2014 22:42:04 +0000 (01:42 +0300)]
A bunch of minor cleanups

10 years agoRewrite ExternalTask to use Msp::Process
Mikko Rasa [Wed, 8 Oct 2014 20:08:16 +0000 (23:08 +0300)]
Rewrite ExternalTask to use Msp::Process

10 years agoUse qualified name in base class initializer
Mikko Rasa [Mon, 6 Oct 2014 23:02:48 +0000 (02:02 +0300)]
Use qualified name in base class initializer

10 years agoAlso default to clang on FreeBSD
Mikko Rasa [Mon, 6 Oct 2014 21:55:42 +0000 (00:55 +0300)]
Also default to clang on FreeBSD

10 years agoAdd more recognized architectures
Mikko Rasa [Mon, 6 Oct 2014 21:47:21 +0000 (00:47 +0300)]
Add more recognized architectures

Aliases can now resolve to multiple parts, so words like x86_64 or win32
can do the right thing.

The pc type was changed to x86, because that more accurately describes
the processor archetype.

10 years agoAdd a binary package for zlib
Mikko Rasa [Mon, 6 Oct 2014 21:00:48 +0000 (00:00 +0300)]
Add a binary package for zlib

Not all systems ship it with a .pc file

10 years agoMove the bpk files into a subdirectory and install them
Mikko Rasa [Mon, 6 Oct 2014 20:58:30 +0000 (23:58 +0300)]
Move the bpk files into a subdirectory and install them

10 years agoUse frameworks instead of raw libraries for OpenGL and OpenAL on OS X
Mikko Rasa [Mon, 6 Oct 2014 20:54:15 +0000 (23:54 +0300)]
Use frameworks instead of raw libraries for OpenGL and OpenAL on OS X

10 years agoAdd support for specifying the language standard to use
Mikko Rasa [Mon, 6 Oct 2014 20:49:40 +0000 (23:49 +0300)]
Add support for specifying the language standard to use

10 years agoDrop support for generic tarball components
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.

10 years agoSplit Component into several subclasses
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.

10 years agoDon't use soname for modules
Mikko Rasa [Sun, 5 Oct 2014 23:59:28 +0000 (02:59 +0300)]
Don't use soname for modules

10 years agoDon't rely on component type in determining whether to use -fPIC
Mikko Rasa [Sun, 5 Oct 2014 23:49:06 +0000 (02:49 +0300)]
Don't rely on component type in determining whether to use -fPIC

Instead let SharedLibrary set a flag in ObjectFiles and use that.

10 years agoCollect libpath for static library dependencies from the libs themselves
Mikko Rasa [Sun, 5 Oct 2014 23:41:14 +0000 (02:41 +0300)]
Collect libpath for static library dependencies from the libs themselves

Also fixes Binary::find_dependencies which broke in 3f0f721.

10 years agoAdd options for custom compiler and debug build to bootstrap.sh
Mikko Rasa [Sun, 5 Oct 2014 21:53:02 +0000 (00:53 +0300)]
Add options for custom compiler and debug build to bootstrap.sh

These are not expected to be used normally, but may help in an initial
port to a new platform.

10 years agoRecognize PowerPC architecture
Mikko Rasa [Sun, 5 Oct 2014 11:47:24 +0000 (14:47 +0300)]
Recognize PowerPC architecture

10 years agoOlder versions of OS X don't have clang
Mikko Rasa [Sun, 5 Oct 2014 11:46:54 +0000 (14:46 +0300)]
Older versions of OS X don't have clang

10 years agoAllow overriding tool commands on the command line
Mikko Rasa [Sun, 5 Oct 2014 11:46:28 +0000 (14:46 +0300)]
Allow overriding tool commands on the command line

10 years agoVarious cleanups
Mikko Rasa [Sun, 5 Oct 2014 00:47:08 +0000 (03:47 +0300)]
Various cleanups

10 years agoRudimentary support for compiling things for Android
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.

10 years agoDeal with absolute paths in tool commands
Mikko Rasa [Fri, 3 Oct 2014 22:09:27 +0000 (01:09 +0300)]
Deal with absolute paths in tool commands

10 years agoAdd sysroot support for BuildInfo and compilers
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.

10 years agoAdd paths to beginning when merging BuildInfo
Mikko Rasa [Fri, 3 Oct 2014 21:53:09 +0000 (00:53 +0300)]
Add paths to beginning when merging BuildInfo

This is more consistent with how scalars are handled, since earlier
values take predecence.

10 years agoAdd build info to tools and use it to pass runtime libs
Mikko Rasa [Fri, 3 Oct 2014 21:42:20 +0000 (00:42 +0300)]
Add build info to tools and use it to pass runtime libs

This is more flexible and removes the need for the linker to know about
all compilers.

10 years agoGive targets the ability to gather their own build info
Mikko Rasa [Fri, 3 Oct 2014 21:10:16 +0000 (00:10 +0300)]
Give targets the ability to gather their own build info

10 years agoOnly use the -m flag on native arch
Mikko Rasa [Fri, 3 Oct 2014 20:40:44 +0000 (23:40 +0300)]
Only use the -m flag on native arch

Better yet would be to figure out whether the target arch supports it,
but that's not trivial.

10 years agoRefactor version discovery into the base GnuCompiler class
Mikko Rasa [Thu, 2 Oct 2014 15:24:26 +0000 (18:24 +0300)]
Refactor version discovery into the base GnuCompiler class

10 years agoAlso prepare transitive dependencies
Mikko Rasa [Wed, 1 Oct 2014 22:28:49 +0000 (01:28 +0300)]
Also prepare transitive dependencies

Mostly to make analyzer report correct results when source files are
given on command line.

10 years agoPass a tool hint to VirtualFileSystem::find_header
Mikko Rasa [Wed, 1 Oct 2014 22:27:02 +0000 (01:27 +0300)]
Pass a tool hint to VirtualFileSystem::find_header

This makes C++ includes findable again, since they have no suffix and
thus match no tool.

10 years agoGet the executable in GnuCxxCompiler::do_prepare
Mikko Rasa [Wed, 1 Oct 2014 21:46:42 +0000 (00:46 +0300)]
Get the executable in GnuCxxCompiler::do_prepare

It's needed for querying the compiler version, and Tool won't get it
until after do_prepare.

11 years agoMissed one location with the conditional conversion
Mikko Rasa [Sun, 6 Oct 2013 16:26:26 +0000 (19:26 +0300)]
Missed one location with the conditional conversion

11 years agoSupport boolean logic in conditions
Mikko Rasa [Thu, 3 Oct 2013 13:27:12 +0000 (16:27 +0300)]
Support boolean logic in conditions

Parentheses are missing and a few corner cases trigger obscure errors, but
it's good enough for now.

11 years agoGenerate shorter object file names for generated source files
Mikko Rasa [Thu, 3 Oct 2013 08:09:26 +0000 (11:09 +0300)]
Generate shorter object file names for generated source files

11 years agoMove nested build signature creation to FileTarget
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.

11 years agoAdd and improve build signatures for some tools
Mikko Rasa [Wed, 25 Sep 2013 17:18:52 +0000 (20:18 +0300)]
Add and improve build signatures for some tools

11 years agoProperly support multiple choice features
Mikko Rasa [Wed, 25 Sep 2013 17:06:57 +0000 (20:06 +0300)]
Properly support multiple choice features

11 years agoBase config options directly on features
Mikko Rasa [Wed, 25 Sep 2013 11:54:46 +0000 (14:54 +0300)]
Base config options directly on features

There are no standalone options anymore, so might as well streamline
things a bit.

11 years agoDon't print the configuration header in help for empty configuration
Mikko Rasa [Mon, 23 Sep 2013 20:02:30 +0000 (23:02 +0300)]
Don't print the configuration header in help for empty configuration

11 years agoCheck an ObjectFile's dependencies again if a dependency is modified
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.

11 years agoAdd transitive dependencies for source files
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.

11 years agoFix some problems with side effect dependencies
Mikko Rasa [Tue, 20 Aug 2013 15:18:47 +0000 (18:18 +0300)]
Fix some problems with side effect dependencies

Side effects can't depend on the primary, since a generated .c or .cpp
file might use a .h file generated as a side effect.

11 years agoAdd support for generating source files
Mikko Rasa [Tue, 20 Aug 2013 15:17:56 +0000 (18:17 +0300)]
Add support for generating source files

11 years agoUse the correct target as root for cleaning
Mikko Rasa [Tue, 20 Aug 2013 15:13:51 +0000 (18:13 +0300)]
Use the correct target as root for cleaning

11 years agoProcess paths after merging build info
Mikko Rasa [Sat, 22 Jun 2013 08:45:06 +0000 (11:45 +0300)]
Process paths after merging build info

11 years agoHacky support for OS X frameworks
Mikko Rasa [Tue, 28 May 2013 12:23:35 +0000 (15:23 +0300)]
Hacky support for OS X frameworks

This isn't very elegant, but I need more time to come up with a proper
implementation.

11 years agoAdd target and tools for compiling Objective-C sources
Mikko Rasa [Tue, 28 May 2013 10:07:46 +0000 (13:07 +0300)]
Add target and tools for compiling Objective-C sources

11 years agoInitial support for building on Darwin (a.k.a. Mac OS X)
Mikko Rasa [Fri, 24 May 2013 17:29:52 +0000 (20:29 +0300)]
Initial support for building on Darwin (a.k.a. Mac OS X)

11 years agoRedesign the way commands are set for tools
Mikko Rasa [Fri, 24 May 2013 17:27:01 +0000 (20:27 +0300)]
Redesign the way commands are set for tools

This is necessary for some future developments.

11 years agoThe mingw port of gcc doesn't recognize -pthread
Mikko Rasa [Fri, 24 May 2013 17:09:21 +0000 (20:09 +0300)]
The mingw port of gcc doesn't recognize -pthread

11 years agoGroup most existing tools in sub-toolchains
Mikko Rasa [Fri, 24 May 2013 15:38:57 +0000 (18:38 +0300)]
Group most existing tools in sub-toolchains

11 years agoMake toolchains hierarchial
Mikko Rasa [Fri, 24 May 2013 15:37:48 +0000 (18:37 +0300)]
Make toolchains hierarchial

This enables eventual tool plugins to give out all of their tools in one
bundle.

11 years agoRemove deprecated features
Mikko Rasa [Fri, 24 May 2013 12:44:37 +0000 (15:44 +0300)]
Remove deprecated features

All of these have been deprecated for nearly a year, and I don't have any
active projects using them.

11 years agoInclude architecture in Binary build signature
Mikko Rasa [Thu, 9 May 2013 08:19:37 +0000 (11:19 +0300)]
Include architecture in Binary build signature

This reduces problems if the same source directory is shared between
computers of different architectures, or if building versions for
different CPUs.

11 years agoRemove all files in a side effect group when starting a task
Mikko Rasa [Thu, 9 May 2013 07:24:17 +0000 (10:24 +0300)]
Remove all files in a side effect group when starting a task

11 years agoImprovements for handling side effects
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.

11 years agoAvoid a double verb in function name
Mikko Rasa [Wed, 8 May 2013 12:20:56 +0000 (15:20 +0300)]
Avoid a double verb in function name

11 years agoStore problems at their source rather than globally
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.

11 years agoAdd a utility function for setting the executable for a Tool
Mikko Rasa [Wed, 8 May 2013 08:16:36 +0000 (11:16 +0300)]
Add a utility function for setting the executable for a Tool

11 years agoDelay locating tool executables until the tool is needed
Mikko Rasa [Wed, 8 May 2013 07:24:45 +0000 (10:24 +0300)]
Delay locating tool executables until the tool is needed

This solves a problem where the mspdatatool executable is not detected as
built by the mspdatafile package.

11 years agoTarget::build is virtual, so put the special case in the appropriate class
Mikko Rasa [Tue, 7 May 2013 20:40:30 +0000 (23:40 +0300)]
Target::build is virtual, so put the special case in the appropriate class

11 years agoAdd a convenience function for saving caches in PackageManager
Mikko Rasa [Tue, 7 May 2013 18:43:11 +0000 (21:43 +0300)]
Add a convenience function for saving caches in PackageManager

11 years agoProperly process the command line arguments
Mikko Rasa [Tue, 7 May 2013 18:42:39 +0000 (21:42 +0300)]
Properly process the command line arguments

11 years agoResolve cmdline targets and what-ifs the same way
Mikko Rasa [Tue, 7 May 2013 18:21:38 +0000 (21:21 +0300)]
Resolve cmdline targets and what-ifs the same way

11 years agoUpdate comments to reflect the new roles of classes
Mikko Rasa [Tue, 7 May 2013 18:07:56 +0000 (21:07 +0300)]
Update comments to reflect the new roles of classes

11 years agoUse GetOpt's new features
Mikko Rasa [Tue, 7 May 2013 13:53:08 +0000 (16:53 +0300)]
Use GetOpt's new features

11 years agoSeparate the command-line interface into its own class
Mikko Rasa [Mon, 29 Apr 2013 10:58:31 +0000 (13:58 +0300)]
Separate the command-line interface into its own class

This allows turning most of builder into a library later, and moving
tools into plugins.  Some parts are still rather ugly and require more
work.

11 years agoPass the option map through load_build_file and to Loader
Mikko Rasa [Tue, 30 Apr 2013 12:19:45 +0000 (15:19 +0300)]
Pass the option map through load_build_file and to Loader

This allows passing in options from outside Builder, which is necessary
for a planned split of the CLI part into its own class.

11 years agoFix whitespace errors
Mikko Rasa [Tue, 30 Apr 2013 11:07:27 +0000 (14:07 +0300)]
Fix whitespace errors

11 years agoSet config mtime to current time if an option is changed
Mikko Rasa [Tue, 30 Apr 2013 11:03:40 +0000 (14:03 +0300)]
Set config mtime to current time if an option is changed

This functionality got mistakenly circumvented in commit 3f541fc and then
removed entirely in commit bd61d7f.

11 years agoFix bootstrap.sh to work when multiple identically named headers
Mikko Rasa [Fri, 26 Apr 2013 16:48:39 +0000 (19:48 +0300)]
Fix bootstrap.sh to work when multiple identically named headers

Previously the overlay -iquote flags for all source directories were
applied to all files, so the compiler included the wrong file.  The fix
is to compile files one by one and only add the flags that are needed
for each.

The temp directory will now be deleted by default.  An option to keep
it was added.

11 years agoAdd a feature for overlay source directories
Mikko Rasa [Wed, 24 Apr 2013 10:03:30 +0000 (13:03 +0300)]
Add a feature for overlay source directories

This allows separation of architecture- or feature-specific source files
in their own directories.

11 years agoResolve a scoping problem in InternalTask::Worker
Mikko Rasa [Wed, 24 Apr 2013 08:52:56 +0000 (11:52 +0300)]
Resolve a scoping problem in InternalTask::Worker

This resulted from adding Msp::Thread::State, which also has a RUNNING
enumerator.

11 years agoSupport gcc's -iquote feature
Mikko Rasa [Wed, 24 Apr 2013 08:48:06 +0000 (11:48 +0300)]
Support gcc's -iquote feature

11 years agoSync readme with recent changes
Mikko Rasa [Wed, 24 Apr 2013 08:39:12 +0000 (11:39 +0300)]
Sync readme with recent changes

11 years agoReimplement datafile building
Mikko Rasa [Sun, 14 Apr 2013 15:15:53 +0000 (18:15 +0300)]
Reimplement datafile building

11 years agoHeader fixes
Mikko Rasa [Sun, 14 Apr 2013 15:11:32 +0000 (18:11 +0300)]
Header fixes

11 years agoReorder functions
Mikko Rasa [Sun, 14 Apr 2013 12:21:36 +0000 (15:21 +0300)]
Reorder functions

11 years agoUn-abbreviate function names
Mikko Rasa [Sun, 14 Apr 2013 12:17:07 +0000 (15:17 +0300)]
Un-abbreviate function names

11 years agoImplement PackageManager::get_package
Mikko Rasa [Sun, 14 Apr 2013 12:10:13 +0000 (15:10 +0300)]
Implement PackageManager::get_package

11 years agoRemove some useless member functions
Mikko Rasa [Sun, 14 Apr 2013 12:05:08 +0000 (15:05 +0300)]
Remove some useless member functions

11 years agoSupport conditionals inside components
Mikko Rasa [Sun, 14 Apr 2013 11:50:52 +0000 (14:50 +0300)]
Support conditionals inside components

11 years agoMove some more functionality into BuildGraph
Mikko Rasa [Sun, 7 Apr 2013 19:55:03 +0000 (22:55 +0300)]
Move some more functionality into BuildGraph

11 years agoRefactor build graph into its own class
Mikko Rasa [Sat, 6 Apr 2013 22:04:07 +0000 (01:04 +0300)]
Refactor build graph into its own class