Commit Graph

143 Commits

Author SHA1 Message Date
Ronald Wampler
62ee2f94be Add support for building Asset Catalogs
We compile all assets into one file that resides in the main app bundle so while we can have multiple asset catalogs (per Framework, etc.), individual assets should still be namespaced.
2018-10-28 12:12:04 +07:00
Allan Odgaard
8e186231fd Fix typo in bin/gen_build 2018-10-28 12:09:12 +07:00
Paul Collins
108b99149c Handle rate-limiting when using GitHub’s API to obtain author emails 2018-02-06 17:14:40 +07:00
Paul Collins
d00a5cd4a0 Create credits database file’s enclosing directory as necessary 2018-02-06 17:11:31 +07:00
Allan Odgaard
14e91b6d35 Output error when referencing non-existing target 2017-09-12 16:57:00 +02:00
Allan Odgaard
e072a6a1ac Update CxxTest subproject (despite not really being used) 2017-03-10 12:22:35 +07:00
Allan Odgaard
5caf3f789d Update build file generator
We no longer build frameworks as standalone targets but instead link it all together, which also means resources from “frameworks” will end up in the main bundle.

Currently the new build file generator does not create test targets and changing linker settings in frameworks is not inherited by the main target (since there is no naive way to “merge” framework specific linker settings).

For custom library dependencies (capnp, kj, and libressl) we specify them via `LIBS` using `/path/to/libfoo.a` so that the root target will inherit these dependencies and using the absolute path ensures that we get the static (rather than dynamic) version.
2016-11-06 16:49:46 +07:00
Allan Odgaard
d261e2801e Do not copy extended attributes to build directory
Also exclude extended attributes when creating the tar archive, and copy symbolic links as links (instead of copying the file they reference).
2016-11-02 23:02:17 +07:00
Allan Odgaard
8dbe66cdb1 Remove support for building targets with manual retain/release 2016-10-31 17:30:30 +07:00
Allan Odgaard
56610d4e89 Drop rules to skip running tests since they do not work 2016-10-31 17:30:30 +07:00
Allan Odgaard
ecfcce9ebb Remove unused build directive 2016-10-24 02:21:29 +07:00
Ronald Wampler
5fb4c6850e throw() → noexcept (C++11) 2016-10-18 23:06:49 +02:00
Allan Odgaard
9818980b8c Change where we redirect stdin/out in ‘relaunch target’ build script 2016-08-22 16:14:36 +02:00
Allan Odgaard
7dbb44c4a0 Make parallel test execution the default (again) 2016-07-12 11:35:29 +02:00
Allan Odgaard
168c06402c Setup CFRunLoop in test runner 2016-07-10 17:49:43 +02:00
Allan Odgaard
436e43d78f Specify OS requirements (to server) via depends DSL 2016-07-05 12:13:06 +02:00
Allan Odgaard
c36ec7757e Send minimum OS requirement to server when we upload a new build 2016-06-22 22:53:38 +02:00
Ronald Wampler
9337b12616 Pass our minimum deployment target to ibtool
This suppresses the below warning when compiling xibs with Xcode 7 or later.

    warning: This file is set to build for a version older than the deployment target. Functionality may be limited. [9]

We should revisit this when we update our minimum deployment target to 10.8 or higher, as it may not be needed.
2016-06-21 06:19:04 +02:00
Allan Odgaard
863ed2a691 When running tests synchronously failures would be ignored 2016-06-21 06:19:04 +02:00
Martin Kühl
597a49015d Run tests synchronously by default
Running tests in parallel (which is the default)
results in spurious failures in the `scm` git tests,
probably due to an undiagnosed race condition.

This change lets tests run serially by default,
but provides a flag `-p` (or `--parallel`)
which enables running them in parallel again.

It also adds a variable `test_flags`
which is passed to each test run,
and which can be set by running

    env test="-v" ./configure
2016-01-15 12:07:16 +01:00
Martin Kühl
bbced5c3f3 Protect gen_credits against invalid responses
The `gen_credits` scripts can spuriously fail
raising this error in the `user_by_email` method

    NoMethodError: undefined method `[]' for nil:NilClass

when `YAML.load(response.body)` returns nil.

This change protects the build against these failures
by returning nil early.
2016-01-15 12:07:16 +01:00
Allan Odgaard
720f9eac98 Expect more than just {?name} in GitHub’s URI template
Currently GitHub supports both name and label parameters.
2015-10-03 17:33:21 +07:00
Allan Odgaard
f8c823195f Update script to create release notes
We now place the GitHub version comparison link in the list of changes rather than in the heading.
2015-01-19 12:29:33 +07:00
Allan Odgaard
23386c1138 Enable session restore (if disabled) when relaunching after build 2014-11-30 09:12:08 +07:00
Allan Odgaard
fe798f4c0e Don’t explicitly define targets as applications or libraries
Libraries can be identified by either being linked with other targets, or exporting headers, so that is what we do.
2014-11-20 14:58:34 +01:00
Allan Odgaard
83d859ff52 Remove support for our special “EXPORTS” symbol
This allowed framework headers to test whether they were build as part of the framework itself, or part of building something that depends on the framework.

Ideally though we should not need two different paths for those two cases, and we no longer have.
2014-11-17 15:17:28 +01:00
Allan Odgaard
f16e83fb4f Get rid of APP_REVISION
This was just mirroring the last part of our version number so redundant and it wasn’t monotonically increasing as we switched from alpha.n → beta.1 (with n > 1), so it probably did more harm than good.
2014-10-30 20:49:10 +01:00
Allan Odgaard
aa96f1f342 Account for tar potentially failing 2014-10-03 21:49:13 +02:00
Allan Odgaard
e92759af78 Ensure we create signature before uploading file
This is so that we do not upload anything if signature creation fails.
2014-10-03 21:49:13 +02:00
Allan Odgaard
e13ec4dc18 Call developer shell tools via xcrun instead of using $xcodedir 2014-09-05 14:31:05 +02:00
Allan Odgaard
de60f228ac Do not assume CC/CXX is a single executable
The downside is that we no longer have our .o files depend on the compiler (so we need to do a clean build after upgrading the compiler) and if there is a space in the path to the compiler, it will fail.

The upside is that we can let CC/CXX be a command with arguments, e.g. ‘xcrun clang’.
2014-09-05 14:05:17 +02:00
Joachim Mårtensson
2df7620b8d Add Ruby 2.0 support for build scripts 2014-08-03 09:05:33 +02:00
Allan Odgaard
d422a21006 Do proper string conversion of non-string values
Only values from the root target goes through this code, so it wasn’t causing a problem, as none of those keys had a multi-element array, but in ruby 2.0 embedding an array in a string seems to use inspect instead of to_s:

	Ruby 1.8: "#{['foo']}" #=> foo
	Ruby 2.0: "#{['foo']}" #=> ["foo"]
2014-08-03 09:05:09 +02:00
Allan Odgaard
dfe38c3708 Set required version of ninja to 1.5 2014-07-24 08:18:50 +02:00
Brad Choate
6172d9ae8f Adding some 2012 committers. 2014-07-22 13:10:46 -07:00
Brad Choate
e94408b0c4 Support a "--warn" switch for gen_html.
Default is to suppress any warnings for unassociated GitHub profiles.
2014-07-22 12:13:35 -07:00
Allan Odgaard
f2387d8d23 Workaround for ruby 2.0 warning (shadowing outer local variable) 2014-07-06 22:42:00 +02:00
Allan Odgaard
1c742b0559 The cap’n proto rule should not be a generator rule
Also change 1 → true for another use of generator (for consistency).
2014-07-05 21:33:29 +02:00
Boris Dušek
320c3ec23a Add contributor emails
In other words, I don't like build warnings of any kind :-)
And they deserve credit for their contributions.
2014-06-29 18:21:50 +02:00
Allan Odgaard
2427464f60 Disable tar’s support for extended attributes and resource forks
A problem has been reported where tar will freeze while extracting the default bundles archive to a networked Application Support folder.

From the bug report (Michael Kuron):

File servers tested: SMB on OS X 10.9.3, AFP on OS X 10.9.3, AFP on OS X 10.6.8, SMB on Windows 2008 R2.

Multiple machines tested.

Using ‘gnutar’ from MacPorts does not show the problem.

Setting ‘COPYFILE_DISABLE=1’ before running tar does not show the problem (the workaround used in this commit).
2014-06-28 17:42:23 +02:00
Allan Odgaard
9f10bd56c7 Set ‘depfile = $out.d’ (may require ninja 1.5 for proper escapes) 2014-06-28 17:42:23 +02:00
Allan Odgaard
cb775822aa Use current ruby (rather than 1.8) for a few helper scripts 2014-06-28 17:42:23 +02:00
Allan Odgaard
42ff7850f3 Switch from gdb → lldb and run in current terminal (ninja 1.5) 2014-04-18 06:40:48 +07:00
Allan Odgaard
2134e957e6 Display progress during upload (ninja 1.5) 2014-04-18 06:40:48 +07:00
Allan Odgaard
e6d8ffed43 Create archive of default bundles by using the server side status 2014-04-14 08:55:06 +07:00
Allan Odgaard
75dc734a87 When tar fails, it does not remove the output file 2014-04-06 19:36:08 +07:00
Boris Dušek
c3088da9a5 Add my work email as contributor address 2014-04-01 14:03:29 +07:00
Allan Odgaard
3bc0c65c7a Introduce variable for where cap’n’proto is installed
Set the `capnp_prefix` variable when calling ./configure.

E.g. build and install cap’n’proto in $HOME/build:

    ./configure --disable-shared --prefix="$HOME/build"
    make -j6 check && make install

Then configure TextMate to find it there:

    capnp_prefix="$HOME/build" ./configure
2014-03-30 11:18:41 +07:00
Allan Odgaard
3aa383a166 GitHub releases API is no longer in preview 2014-02-14 13:35:54 +07:00
Allan Odgaard
d52eda852e Disable timestamp server for code signing
This slows down signing enormously (10+ seconds) and fails most of the time when internet connectivity is suboptimal (might be related to being behind a proxy).
2014-02-10 13:51:04 +07:00