]>
git.tdb.fi Git - builder.git/log
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 .
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.
Mikko Rasa [Sun, 5 Oct 2014 11:47:24 +0000 (14:47 +0300)]
Recognize PowerPC architecture
Mikko Rasa [Sun, 5 Oct 2014 11:46:54 +0000 (14:46 +0300)]
Older versions of OS X don't have clang
Mikko Rasa [Sun, 5 Oct 2014 11:46:28 +0000 (14:46 +0300)]
Allow overriding tool commands on the command line
Mikko Rasa [Sun, 5 Oct 2014 00:47:08 +0000 (03:47 +0300)]
Various cleanups
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:09:27 +0000 (01:09 +0300)]
Deal with absolute paths in tool commands
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 [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.
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.
Mikko Rasa [Fri, 3 Oct 2014 21:10:16 +0000 (00:10 +0300)]
Give targets the ability to gather their own build info
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.
Mikko Rasa [Thu, 2 Oct 2014 15:24:26 +0000 (18:24 +0300)]
Refactor version discovery into the base GnuCompiler class
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.
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.
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.
Mikko Rasa [Sun, 6 Oct 2013 16:26:26 +0000 (19:26 +0300)]
Missed one location with the conditional conversion
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.
Mikko Rasa [Thu, 3 Oct 2013 08:09:26 +0000 (11:09 +0300)]
Generate shorter object file names for generated source files
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 [Wed, 25 Sep 2013 17:18:52 +0000 (20:18 +0300)]
Add and improve build signatures for some tools
Mikko Rasa [Wed, 25 Sep 2013 17:06:57 +0000 (20:06 +0300)]
Properly support multiple choice 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.
Mikko Rasa [Mon, 23 Sep 2013 20:02:30 +0000 (23:02 +0300)]
Don't print the configuration header in help for empty configuration
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 [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.
Mikko Rasa [Tue, 20 Aug 2013 15:17:56 +0000 (18:17 +0300)]
Add support for generating source files
Mikko Rasa [Tue, 20 Aug 2013 15:13:51 +0000 (18:13 +0300)]
Use the correct target as root for cleaning
Mikko Rasa [Sat, 22 Jun 2013 08:45:06 +0000 (11:45 +0300)]
Process paths after merging build info
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.
Mikko Rasa [Tue, 28 May 2013 10:07:46 +0000 (13:07 +0300)]
Add target and tools for compiling Objective-C sources
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)
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.
Mikko Rasa [Fri, 24 May 2013 17:09:21 +0000 (20:09 +0300)]
The mingw port of gcc doesn't recognize -pthread
Mikko Rasa [Fri, 24 May 2013 15:38:57 +0000 (18:38 +0300)]
Group most existing tools in sub-toolchains
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.
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.
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.
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
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 12:20:56 +0000 (15:20 +0300)]
Avoid a double verb in function name
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.
Mikko Rasa [Wed, 8 May 2013 08:16:36 +0000 (11:16 +0300)]
Add a utility function for setting the executable for a Tool
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.
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
Mikko Rasa [Tue, 7 May 2013 18:43:11 +0000 (21:43 +0300)]
Add a convenience function for saving caches in PackageManager
Mikko Rasa [Tue, 7 May 2013 18:42:39 +0000 (21:42 +0300)]
Properly process the command line arguments
Mikko Rasa [Tue, 7 May 2013 18:21:38 +0000 (21:21 +0300)]
Resolve cmdline targets and what-ifs the same way
Mikko Rasa [Tue, 7 May 2013 18:07:56 +0000 (21:07 +0300)]
Update comments to reflect the new roles of classes
Mikko Rasa [Tue, 7 May 2013 13:53:08 +0000 (16:53 +0300)]
Use GetOpt's new features
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.
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.
Mikko Rasa [Tue, 30 Apr 2013 11:07:27 +0000 (14:07 +0300)]
Fix whitespace errors
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 .
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.
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.
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.
Mikko Rasa [Wed, 24 Apr 2013 08:48:06 +0000 (11:48 +0300)]
Support gcc's -iquote feature
Mikko Rasa [Wed, 24 Apr 2013 08:39:12 +0000 (11:39 +0300)]
Sync readme with recent changes
Mikko Rasa [Sun, 14 Apr 2013 15:15:53 +0000 (18:15 +0300)]
Reimplement datafile building
Mikko Rasa [Sun, 14 Apr 2013 15:11:32 +0000 (18:11 +0300)]
Header fixes
Mikko Rasa [Sun, 14 Apr 2013 12:21:36 +0000 (15:21 +0300)]
Reorder functions
Mikko Rasa [Sun, 14 Apr 2013 12:17:07 +0000 (15:17 +0300)]
Un-abbreviate function names
Mikko Rasa [Sun, 14 Apr 2013 12:10:13 +0000 (15:10 +0300)]
Implement PackageManager::get_package
Mikko Rasa [Sun, 14 Apr 2013 12:05:08 +0000 (15:05 +0300)]
Remove some useless member functions
Mikko Rasa [Sun, 14 Apr 2013 11:50:52 +0000 (14:50 +0300)]
Support conditionals inside components
Mikko Rasa [Sun, 7 Apr 2013 19:55:03 +0000 (22:55 +0300)]
Move some more functionality into BuildGraph
Mikko Rasa [Sat, 6 Apr 2013 22:04:07 +0000 (01:04 +0300)]
Refactor build graph into its own class
Mikko Rasa [Sat, 6 Apr 2013 21:22:53 +0000 (00:22 +0300)]
Move main package tracking to PackageManager
Mikko Rasa [Tue, 29 Jan 2013 17:21:52 +0000 (19:21 +0200)]
Improve use statement handling
Installed libraries are now linked dynamically. For non-installed
libraries, the package source path is added to libpath so the library
will be found.
Mikko Rasa [Tue, 29 Jan 2013 17:10:44 +0000 (19:10 +0200)]
Improve bootstrap.sh to accept cmdline arguments and allow setting prefix
Mikko Rasa [Thu, 17 Jan 2013 09:01:15 +0000 (11:01 +0200)]
Handle "use"d libraries through build info
Mikko Rasa [Thu, 17 Jan 2013 08:54:54 +0000 (10:54 +0200)]
Make static library dependencies consistent with what the linker does
Rather than the linker using non-installed paths for static libraries,
the binary target now does this when resolving dependencies. This avoids
installing static libraries unnecessarily.
Mikko Rasa [Sat, 1 Dec 2012 09:34:19 +0000 (11:34 +0200)]
Add the target type to a lexical_cast invocation
Mikko Rasa [Fri, 5 Oct 2012 14:22:07 +0000 (17:22 +0300)]
Fix git URL in readme
Mikko Rasa [Sat, 29 Sep 2012 20:22:26 +0000 (23:22 +0300)]
Support specifying library modes on a per-library basis
Mikko Rasa [Fri, 28 Sep 2012 12:36:43 +0000 (15:36 +0300)]
Generate export definitions with dlltool
Having it as a side effect was causing trouble with rebuild check, and
it's cleaner to build each file separately anyway.
Mikko Rasa [Fri, 28 Sep 2012 12:31:13 +0000 (15:31 +0300)]
Don't add a symlink with the same name as the file
Mikko Rasa [Fri, 28 Sep 2012 12:20:02 +0000 (15:20 +0300)]
Prevent crashes if a tool's executable cannot be found
Mikko Rasa [Thu, 13 Sep 2012 07:53:03 +0000 (10:53 +0300)]
Don't try to create links with the same name as the file itself
Mikko Rasa [Fri, 7 Sep 2012 18:37:44 +0000 (21:37 +0300)]
Install shared libraries on windows to bin, not lib
Linking is done through import libraries, so the dlls are only needed for
running the application.
Mikko Rasa [Fri, 7 Sep 2012 18:37:19 +0000 (21:37 +0300)]
Build and install import libraries on windows
Mikko Rasa [Fri, 7 Sep 2012 17:29:46 +0000 (20:29 +0300)]
Give import libraries their own class
Mikko Rasa [Thu, 6 Sep 2012 15:02:04 +0000 (18:02 +0300)]
Have the linker specify symlinks for installed libraries
Mikko Rasa [Thu, 6 Sep 2012 14:42:32 +0000 (17:42 +0300)]
Have SourcePackage generate the interface version
It will be needed for import libraries in the near future as well, and it
would be stupid to duplicate the generation code. This also makes it
possibile for the package author to define a custom interface version.
Mikko Rasa [Thu, 6 Sep 2012 13:30:25 +0000 (16:30 +0300)]
Add a side effect system for building multiple targets at once
Mikko Rasa [Thu, 6 Sep 2012 11:54:29 +0000 (14:54 +0300)]
Library search fixes
An outdated check was preventing dynamic libraries from being considered
with libmode==STATIC (as opposed for FORCE_STATIC, which doesn't even
generate the candidate names).
Added a hack to prefer import libraries over real static libraries, and
consider them even in FORCE_DYNAMIC mode.
Mikko Rasa [Thu, 6 Sep 2012 06:51:42 +0000 (09:51 +0300)]
Let tools have a say in installing their targets
Mikko Rasa [Wed, 5 Sep 2012 17:08:12 +0000 (20:08 +0300)]
Don't append library version to the end of the filename on Windows
Mikko Rasa [Wed, 5 Sep 2012 16:54:45 +0000 (19:54 +0300)]
More generic system for installing targets under different names
Mikko Rasa [Wed, 5 Sep 2012 16:11:03 +0000 (19:11 +0300)]
Route InstalledFile target creation through Builder
Mikko Rasa [Tue, 4 Sep 2012 20:02:44 +0000 (23:02 +0300)]
Reload includes from CSourceFiles when they are modified
Without this, -W did not cause includes to be read if they were present
in the cache. It'll also come in handy for generated source files some
time in the future.
Mikko Rasa [Tue, 4 Sep 2012 20:01:55 +0000 (23:01 +0300)]
It's okay to throw exceptions from Loader functions
Mikko Rasa [Tue, 21 Aug 2012 23:18:15 +0000 (02:18 +0300)]
DataFile::DerivedObjectLoader was changed
Mikko Rasa [Wed, 15 Aug 2012 16:15:19 +0000 (19:15 +0300)]
Store lookup failures separately from the package map
This ensures that every pointer in the package map is valid, avoiding the
need to check them and preventing segfaults due to a forgotten check.
Mikko Rasa [Wed, 15 Aug 2012 16:13:20 +0000 (19:13 +0300)]
This ugly hack for arch-specific binary packages is no longer needed
Mikko Rasa [Thu, 2 Aug 2012 18:22:19 +0000 (21:22 +0300)]
There's no good reason to abbreviate this
Mikko Rasa [Fri, 27 Jul 2012 14:56:42 +0000 (17:56 +0300)]
Expand the readme even more