]> git.tdb.fi Git - builder.git/log
builder.git
23 months agoMark overridden virtual functions as such
Mikko Rasa [Mon, 19 Dec 2022 13:39:27 +0000 (15:39 +0200)]
Mark overridden virtual functions as such

23 months agoUse shortcut functions for find calls
Mikko Rasa [Mon, 19 Dec 2022 12:52:33 +0000 (14:52 +0200)]
Use shortcut functions for find calls

23 months agoReplace basic for loops with range-based loops or algorithms
Mikko Rasa [Mon, 19 Dec 2022 12:32:43 +0000 (14:32 +0200)]
Replace basic for loops with range-based loops or algorithms

In remaining cases use auto as a shortcut for the iterator type.

23 months agoBegin converting the code to C++11
Mikko Rasa [Mon, 19 Dec 2022 10:11:32 +0000 (12:11 +0200)]
Begin converting the code to C++11

23 months agoImprove help output for the local package
Mikko Rasa [Sun, 18 Dec 2022 18:16:38 +0000 (20:16 +0200)]
Improve help output for the local package

Only output the required packages list if anything is required, and
output an overall header before the package-specific section.

23 months agoEmit configurations in Visual Studio solutions
Mikko Rasa [Sun, 18 Dec 2022 18:02:17 +0000 (20:02 +0200)]
Emit configurations in Visual Studio solutions

Projects other than the main one are marked as not being built, since
builder will build them implicitly as part of the main project.

This also seems to be enough for Visual Studio to not complain about the
solution being modified when closing it.

23 months agoAdd ability to generate Visual Studio solution files
Mikko Rasa [Sun, 18 Dec 2022 16:03:41 +0000 (18:03 +0200)]
Add ability to generate Visual Studio solution files

Currently very minimal, and VS treats the solution as modified
immediately after loading it.

23 months agoGenerate GUIDs for Visual C++ project files
Mikko Rasa [Sun, 18 Dec 2022 15:58:59 +0000 (17:58 +0200)]
Generate GUIDs for Visual C++ project files

23 months agoEmit include path in vcxproj files
Mikko Rasa [Sun, 18 Dec 2022 14:47:30 +0000 (16:47 +0200)]
Emit include path in vcxproj files

23 months agoDon't output a PlatformToolset tag in vcxproj files
Mikko Rasa [Sun, 18 Dec 2022 14:26:46 +0000 (16:26 +0200)]
Don't output a PlatformToolset tag in vcxproj files

Visual Studio doesn't seem to actually need it.  It's fairly meaningless
anyway since builder will choose the toolset itself.

23 months agoZlib has a different filename in MSVC builds
Mikko Rasa [Sun, 18 Dec 2022 11:09:26 +0000 (13:09 +0200)]
Zlib has a different filename in MSVC builds

23 months agoDetect the latest MSVC tools version
Mikko Rasa [Sun, 18 Dec 2022 11:03:50 +0000 (13:03 +0200)]
Detect the latest MSVC tools version

23 months agoAdd the corresponding generated source directory to local include path
Mikko Rasa [Sat, 17 Dec 2022 00:16:54 +0000 (02:16 +0200)]
Add the corresponding generated source directory to local include path

This allows generated headers to be used as normal.

23 months agoCreate a directory structure for generated source files
Mikko Rasa [Sat, 17 Dec 2022 00:15:36 +0000 (02:15 +0200)]
Create a directory structure for generated source files

23 months agoAdd support for SSE3 and SSE4.1 FPUs
Mikko Rasa [Sat, 10 Dec 2022 23:18:26 +0000 (01:18 +0200)]
Add support for SSE3 and SSE4.1 FPUs

23 months agoWhen combining build info, keep the highest standard versions
Mikko Rasa [Sat, 10 Dec 2022 23:17:13 +0000 (01:17 +0200)]
When combining build info, keep the highest standard versions

23 months agoMore sophisticated handling of language standards
Mikko Rasa [Sat, 10 Dec 2022 23:16:49 +0000 (01:16 +0200)]
More sophisticated handling of language standards

23 months agoAdd language standards to exported build info of source packages
Mikko Rasa [Sat, 10 Dec 2022 22:35:43 +0000 (00:35 +0200)]
Add language standards to exported build info of source packages

3 years agoSave caches before starting the build
Mikko Rasa [Wed, 10 Nov 2021 18:06:23 +0000 (20:06 +0200)]
Save caches before starting the build

This causes the config cache file's timestamp to be earlier than any
built file, preventing a spurious second rebuild after changing options.

3 years agoReorder functions to match the header
Mikko Rasa [Sun, 31 Oct 2021 16:24:36 +0000 (18:24 +0200)]
Reorder functions to match the header

3 years agoAdd logging for some problem situations
Mikko Rasa [Sun, 31 Oct 2021 15:50:32 +0000 (17:50 +0200)]
Add logging for some problem situations

3 years agoAdd support for generating compile_commands.json
Mikko Rasa [Sun, 31 Oct 2021 15:44:48 +0000 (17:44 +0200)]
Add support for generating compile_commands.json

This file is used by some clang tools to find compile options.

3 years agoUse -fno-omit-frame-pointer if debug is set with optimizations
Mikko Rasa [Sun, 31 Oct 2021 08:23:34 +0000 (10:23 +0200)]
Use -fno-omit-frame-pointer if debug is set with optimizations

3 years agoAdd MSVC-specific library name for sigc++
Mikko Rasa [Wed, 1 Sep 2021 00:41:35 +0000 (03:41 +0300)]
Add MSVC-specific library name for sigc++

This is hardcoded for the debug version now, until I come up with a way
to make it conditional on build type.

3 years agoAdditional MSVC fixes
Mikko Rasa [Wed, 1 Sep 2021 00:18:24 +0000 (03:18 +0300)]
Additional MSVC fixes

3 years agoUse getenv from mspcore
Mikko Rasa [Wed, 1 Sep 2021 00:17:51 +0000 (03:17 +0300)]
Use getenv from mspcore

3 years agoAdd drivers for the MSVC toolchain
Mikko Rasa [Tue, 31 Aug 2021 23:41:52 +0000 (02:41 +0300)]
Add drivers for the MSVC toolchain

Shared libraries are not yet properly supported.  Import libraries are
not generated and all of my code lacks the necessary attributes anyway.

3 years agoUse a separate category for import library filename patterns
Mikko Rasa [Tue, 31 Aug 2021 18:14:53 +0000 (21:14 +0300)]
Use a separate category for import library filename patterns

3 years agoMore flexible way to manage filename patterns
Mikko Rasa [Tue, 31 Aug 2021 18:13:23 +0000 (21:13 +0300)]
More flexible way to manage filename patterns

3 years agoInclude the toolchain name in project file build commands
Mikko Rasa [Tue, 31 Aug 2021 11:55:59 +0000 (14:55 +0300)]
Include the toolchain name in project file build commands

3 years agoConvert architecture argument to lower case
Mikko Rasa [Tue, 31 Aug 2021 11:50:04 +0000 (14:50 +0300)]
Convert architecture argument to lower case

3 years agoTweak VC project files to better match what the software expects
Mikko Rasa [Mon, 30 Aug 2021 00:30:34 +0000 (03:30 +0300)]
Tweak VC project files to better match what the software expects

3 years agoAdd the VC project file generator to BuiltinTools
Mikko Rasa [Mon, 30 Aug 2021 00:29:25 +0000 (03:29 +0300)]
Add the VC project file generator to BuiltinTools

3 years agoAdapt to changes in mspcore
Mikko Rasa [Sun, 29 Aug 2021 20:37:17 +0000 (23:37 +0300)]
Adapt to changes in mspcore

3 years agoDetect CPU architecture on Windows
Mikko Rasa [Sat, 28 Aug 2021 13:01:52 +0000 (16:01 +0300)]
Detect CPU architecture on Windows

3 years agoMove system-specific code to a separate file
Mikko Rasa [Sat, 28 Aug 2021 13:00:12 +0000 (16:00 +0300)]
Move system-specific code to a separate file

3 years agoMake object file names configurable through Architecture
Mikko Rasa [Sat, 28 Aug 2021 11:46:01 +0000 (14:46 +0300)]
Make object file names configurable through Architecture

3 years agoAdd a toolchain field to Architecture
Mikko Rasa [Sat, 28 Aug 2021 11:41:07 +0000 (14:41 +0300)]
Add a toolchain field to Architecture

3 years agoSplit SystemTools into GnuTools and ClangTools
Mikko Rasa [Sat, 28 Aug 2021 11:16:44 +0000 (14:16 +0300)]
Split SystemTools into GnuTools and ClangTools

3 years agoAdd support for generating Visual C++ projects
Mikko Rasa [Sun, 22 Aug 2021 11:33:13 +0000 (14:33 +0300)]
Add support for generating Visual C++ projects

3 years agoBasic support for running builder on Windows
Mikko Rasa [Sun, 22 Aug 2021 11:28:01 +0000 (14:28 +0300)]
Basic support for running builder on Windows

3 years agoAccount for install directories when forming displaced dependency paths
Mikko Rasa [Sun, 21 Feb 2021 20:00:48 +0000 (22:00 +0200)]
Account for install directories when forming displaced dependency paths

4 years agoAdd support for the orientation tag in Android manifest
Mikko Rasa [Sun, 9 Feb 2020 20:30:54 +0000 (22:30 +0200)]
Add support for the orientation tag in Android manifest

5 years agoFix Windows platform checks
Mikko Rasa [Tue, 17 Sep 2019 16:13:39 +0000 (19:13 +0300)]
Fix Windows platform checks

5 years agoAdd copy-constructor as required by C++11
Mikko Rasa [Tue, 17 Sep 2019 16:13:04 +0000 (19:13 +0300)]
Add copy-constructor as required by C++11

5 years agoDon't block in ExternalTask::do_wait unless requested
Mikko Rasa [Wed, 21 Aug 2019 22:04:12 +0000 (01:04 +0300)]
Don't block in ExternalTask::do_wait unless requested

5 years agoRead output from external task while waiting
Mikko Rasa [Fri, 21 Jun 2019 17:59:15 +0000 (20:59 +0300)]
Read output from external task while waiting

Waiting for the process to finish first may lead to a deadlock if it
produces more output than can fit in the pipe's buffers.

5 years agoAdd a statement to specify multiple arguments at once for a generator
Mikko Rasa [Wed, 12 Jun 2019 17:08:03 +0000 (20:08 +0300)]
Add a statement to specify multiple arguments at once for a generator

5 years agoSupport generators that require a switch before output file name
Mikko Rasa [Wed, 12 Jun 2019 16:41:12 +0000 (19:41 +0300)]
Support generators that require a switch before output file name

5 years agoAllow generator commands to reside outside of the package
Mikko Rasa [Wed, 12 Jun 2019 16:40:01 +0000 (19:40 +0300)]
Allow generator commands to reside outside of the package

In particular, this lets system binaries to be used as generators.

5 years agoProvide a binary package for libmad
Mikko Rasa [Thu, 6 Jun 2019 13:08:38 +0000 (16:08 +0300)]
Provide a binary package for libmad

It does not provide a .pc file of its own.

5 years agoUse a more appropriate check for adding -m<bits> flag
Mikko Rasa [Mon, 3 Jun 2019 12:37:02 +0000 (15:37 +0300)]
Use a more appropriate check for adding -m<bits> flag

The bits check was redundant because it's already included in the native
flag.  On the other hand -m<bits> is not supported on all architectures,
in particular on ARM.

5 years agoUse a different cross-compile prefix for 64-bit Windows
Mikko Rasa [Mon, 3 Jun 2019 12:00:07 +0000 (15:00 +0300)]
Use a different cross-compile prefix for 64-bit Windows

The i686 version of MinGW won't compile 64-bit binaries even with -m64.

5 years agoFix check for appending pattern suffix
Mikko Rasa [Mon, 3 Jun 2019 11:59:04 +0000 (14:59 +0300)]
Fix check for appending pattern suffix

If the body is too short to already contain the suffix, it should be
added.

5 years agoUpdate deprecated things
Mikko Rasa [Mon, 3 Jun 2019 11:58:50 +0000 (14:58 +0300)]
Update deprecated things

5 years agoRemove the -lmingw32 hack
Mikko Rasa [Wed, 26 Dec 2018 22:41:03 +0000 (00:41 +0200)]
Remove the -lmingw32 hack

Libmspcore now implements main() on Windows so it isn't needed anymore.

5 years agoDon't apply parts of a pattern that are already present
Mikko Rasa [Tue, 25 Dec 2018 11:06:30 +0000 (13:06 +0200)]
Don't apply parts of a pattern that are already present

This allows naming a library component "libsomething" without the final
file name having a double lib prefix.

6 years agoSlight updates to Readme
Mikko Rasa [Thu, 30 Aug 2018 11:13:00 +0000 (14:13 +0300)]
Slight updates to Readme

6 years agoAdd support for statically linking the C++ standard library
Mikko Rasa [Thu, 30 Aug 2018 11:06:03 +0000 (14:06 +0300)]
Add support for statically linking the C++ standard library

It can be requested by setting the libmode for "stdc++" as STATIC.

6 years agoUse -rpath (or -rpath-link) when linking
Mikko Rasa [Thu, 30 Aug 2018 11:01:33 +0000 (14:01 +0300)]
Use -rpath (or -rpath-link) when linking

It avoids the need to use LD_LIBRARY_PATH when running programs linked
against custom libraries.  The default build types have been amended so
that debug builds use an absolute rpath.  This allows them to be run from
the source tree.  Release builds use a relative rpath to make them more
easily relocatable in the filesystem.

6 years agoUse const references in BuildInfo::Tracked operators
Mikko Rasa [Thu, 30 Aug 2018 10:41:06 +0000 (13:41 +0300)]
Use const references in BuildInfo::Tracked operators

6 years agoSilence the cast-function-type warning on GCC 8
Mikko Rasa [Thu, 30 Aug 2018 10:07:40 +0000 (13:07 +0300)]
Silence the cast-function-type warning on GCC 8

It causes problems when function type need to be explicitly converted,
like in sigc++.

6 years agoMove version discovery back to GnuCompiler
Mikko Rasa [Thu, 30 Aug 2018 10:05:24 +0000 (13:05 +0300)]
Move version discovery back to GnuCompiler

It's needed to determine whether some options are supported

6 years agoAlso store library path in static libraries
Mikko Rasa [Sun, 8 Jul 2018 15:25:19 +0000 (18:25 +0300)]
Also store library path in static libraries

6 years agoUse build info to store static library dependencies
Mikko Rasa [Sun, 8 Jul 2018 14:47:49 +0000 (17:47 +0300)]
Use build info to store static library dependencies

In some cases it's desirable to link a particular library statically but
use dynamic linking for its dependencies.  In particular, libpng and
libvorbis depend on libm, which is considered a part of libc and must be
linked in the same way.  Now all libraries are looked up according to
libmode, making such linking possible.

6 years agoDon't crash if the executable of a GnuCompiler is not found
Mikko Rasa [Mon, 25 Jun 2018 21:15:36 +0000 (00:15 +0300)]
Don't crash if the executable of a GnuCompiler is not found

6 years agoUse $sdk_root/ndk-bundle as default path for Android NDK
Mikko Rasa [Mon, 4 Dec 2017 08:15:24 +0000 (10:15 +0200)]
Use $sdk_root/ndk-bundle as default path for Android NDK

It's now available for download through the SDK manager, which installs it
in this location.

6 years agoRecognize and use the common sysroot in newer Android NDKs
Mikko Rasa [Mon, 4 Dec 2017 08:06:41 +0000 (10:06 +0200)]
Recognize and use the common sysroot in newer Android NDKs

6 years agoClean up compiler and linker constructors
Mikko Rasa [Sun, 3 Dec 2017 15:05:28 +0000 (17:05 +0200)]
Clean up compiler and linker constructors

Now that the system path is populated in do_prepare, it's no longer
necessary to pass the sysroot as a constructor parameter.

6 years agoAlso get the linker system path from the actual linker program
Mikko Rasa [Sun, 3 Dec 2017 11:08:24 +0000 (13:08 +0200)]
Also get the linker system path from the actual linker program

6 years agoRevert to default system path for GnuCompiler is autodetection fails
Mikko Rasa [Sun, 3 Dec 2017 09:13:29 +0000 (11:13 +0200)]
Revert to default system path for GnuCompiler is autodetection fails

6 years agoImprove problem reporting for the Android toolchain
Mikko Rasa [Sat, 2 Dec 2017 21:31:24 +0000 (23:31 +0200)]
Improve problem reporting for the Android toolchain

Rather than throwing exceptions with cryptic messages, add the problems
to the tools' problem lists.

6 years agoMake AndroidCompiler more robust about detecting the cxx-stl location
Mikko Rasa [Fri, 1 Dec 2017 13:27:47 +0000 (15:27 +0200)]
Make AndroidCompiler more robust about detecting the cxx-stl location

On recent NDK versions the toolchain reports its version as 4.9.x but the
cxx-stl directory is still 4.9.

6 years agoHave SubTool automatically pass calls to the parent tool
Mikko Rasa [Fri, 1 Dec 2017 11:09:22 +0000 (13:09 +0200)]
Have SubTool automatically pass calls to the parent tool

6 years agoInterrogate the compiler for the system path
Mikko Rasa [Fri, 1 Dec 2017 11:08:09 +0000 (13:08 +0200)]
Interrogate the compiler for the system path

Rather than trying to guesstimate it from the compiler version.

6 years agoImprove ExternalTask::run_and_capture_output
Mikko Rasa [Fri, 1 Dec 2017 11:03:46 +0000 (13:03 +0200)]
Improve ExternalTask::run_and_capture_output

Redirect input from /dev/null and allow stderr to be captured as well.

6 years agoPrepare tools before querying their system path in the VFS
Mikko Rasa [Fri, 1 Dec 2017 09:18:24 +0000 (11:18 +0200)]
Prepare tools before querying their system path in the VFS

6 years agoCollapse the language-specific compilers into a single class
Mikko Rasa [Fri, 1 Dec 2017 07:48:37 +0000 (09:48 +0200)]
Collapse the language-specific compilers into a single class

There's very little differences between languages of the C family, but on
the other hand different platform SDKs need their own tweaks.  It makes
more sense to abstract by platform rather than by language here.

6 years agoCombine the gnu and clang toolchains into SystemToolchain
Mikko Rasa [Fri, 1 Dec 2017 07:12:13 +0000 (09:12 +0200)]
Combine the gnu and clang toolchains into SystemToolchain

7 years agoAdd FPU specification to Architecture and GnuCompiler
Mikko Rasa [Thu, 16 Nov 2017 12:28:28 +0000 (14:28 +0200)]
Add FPU specification to Architecture and GnuCompiler

7 years agoDon't treat using deprecated declarations as errors
Mikko Rasa [Fri, 6 Jan 2017 02:49:43 +0000 (04:49 +0200)]
Don't treat using deprecated declarations as errors

They can be impossible to avoid sometimes if a non-deprecated replacement
is not available.

7 years agoAttach component information to data source files
Mikko Rasa [Fri, 6 Jan 2017 02:46:48 +0000 (04:46 +0200)]
Attach component information to data source files

7 years agoCompilation fix
Mikko Rasa [Fri, 6 Jan 2017 02:36:15 +0000 (04:36 +0200)]
Compilation fix

Erase with const_iterator is allowed in C++11 so I didn't notice this
before.

7 years agoOnly use source files that are actually files
Mikko Rasa [Thu, 5 Jan 2017 23:02:52 +0000 (01:02 +0200)]
Only use source files that are actually files

And not, say, directories.

8 years agoSupport source generators that combine multiple files into one
Mikko Rasa [Fri, 18 Nov 2016 21:06:20 +0000 (23:06 +0200)]
Support source generators that combine multiple files into one

Some existing tools have processing unit annotations too, but for some of
them it's not clear what the unit should be.

8 years agoCheck for some errors in SourceGenerator
Mikko Rasa [Fri, 18 Nov 2016 20:29:49 +0000 (22:29 +0200)]
Check for some errors in SourceGenerator

8 years agoChange the suffix of modules
Mikko Rasa [Sat, 29 Oct 2016 16:44:24 +0000 (19:44 +0300)]
Change the suffix of modules

.m is already used by Objective-C.  It seems there's some precedent of
.dlm as Dynamic Link Module.

8 years agoUse correct library path for libraries from the containing package
Mikko Rasa [Sun, 9 Oct 2016 12:08:52 +0000 (15:08 +0300)]
Use correct library path for libraries from the containing package

8 years agoCheck DataTransform's directory mtime against cache mtime
Mikko Rasa [Tue, 4 Oct 2016 14:42:18 +0000 (17:42 +0300)]
Check DataTransform's directory mtime against cache mtime

Transforms commonly contain wildcard patterns, so the set of source files
may change without the transform itself changing.

8 years agoAdd .lib as a static library suffix for Windows
Mikko Rasa [Tue, 4 Oct 2016 14:41:50 +0000 (17:41 +0300)]
Add .lib as a static library suffix for Windows

8 years agoExplicitly add -lmingw32 before any other libraries
Mikko Rasa [Fri, 16 Sep 2016 22:32:45 +0000 (01:32 +0300)]
Explicitly add -lmingw32 before any other libraries

This fixes linking when WinMain() is in a library (such as libmspcore)
and shouldn't be harmful when it isn't.

8 years agoUpdate cross prefix for windows architecture
Mikko Rasa [Fri, 16 Sep 2016 22:31:24 +0000 (01:31 +0300)]
Update cross prefix for windows architecture

8 years agoAdjust the find command line
Mikko Rasa [Sun, 31 Jan 2016 15:12:22 +0000 (17:12 +0200)]
Adjust the find command line

The list syntax is a GNU extension, so use -false and -o to achieve the
same effect.

9 years agoSet the debuggable flag in Android manifest if debug is set in build info
Mikko Rasa [Thu, 19 Nov 2015 09:01:24 +0000 (11:01 +0200)]
Set the debuggable flag in Android manifest if debug is set in build info

9 years agoAllow Android application permissions to be set in Build file
Mikko Rasa [Thu, 19 Nov 2015 08:57:02 +0000 (10:57 +0200)]
Allow Android application permissions to be set in Build file

9 years agoMinor cleanup to the BuildInfo class
Mikko Rasa [Sat, 31 Oct 2015 15:27:31 +0000 (17:27 +0200)]
Minor cleanup to the BuildInfo class

9 years agoPass language standards throuhg ALL dependencies
Mikko Rasa [Sat, 31 Oct 2015 15:25:45 +0000 (17:25 +0200)]
Pass language standards throuhg ALL dependencies

Not just direct ones.  I really don't know why I put it in the !=CHAINED
block.

9 years agoAllow features to be exported
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.

9 years agoRecent versions of sigc++ require C++11
Mikko Rasa [Tue, 13 Oct 2015 19:52:18 +0000 (22:52 +0300)]
Recent versions of sigc++ require C++11

9 years agoPass language standards through dependencies
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).