Commit Graph

42 Commits

Author SHA1 Message Date
Allan Odgaard
e19686c9d8 Handle targets with no dependencies
These would not be added to the dependency graph and thus no build instructions were generated for them.
2013-01-21 15:03:52 +01:00
Allan Odgaard
aa50c31636 Workaround for ruby’s YAML.load
JSON should be a subset of YAML so we use ruby’s YAML parser to parse GitHub’s JSON. This however leads to syntax errors reported by the parser (as noted in issue #637) but if the JSON is “pretty printed” it seems to parse it fine (seems to be the extra white space for associative array pairs).

We can trick GitHub into pretty printing the JSON result by setting the user agent to be curl, so that is all this workaround does.
2013-01-04 02:07:50 +01:00
Allan Odgaard
5f635aa026 Build: Convert *.strings files to UTF-16 if needed
If the *.strings file does not contain an UTF-16 byte order mark (either big or little endian) then it is assumed to be UTF-8.
2013-01-02 01:46:48 +01:00
Allan Odgaard
71be61cbbb Enable ARC by default
We now explicitly disable it for targets that hasn’t yet been upgraded to ARC. This way, it’s easier to get an overview of which targets hasn’t yet been upgraded and ensures new targets has ARC enabled.
2012-12-19 19:42:36 +01:00
Allan Odgaard
2ae8d9371e Apply custom build flags last
This allows using RAVE_FLAGS to override the more general compiler flags.
2012-12-19 19:42:36 +01:00
Allan Odgaard
6e228b69aa Fix typo 2012-12-19 19:42:36 +01:00
Allan Odgaard
a7e70de9dd Help book index: Enable verbose output
This seems to be the only way to learn of problems creating the help index, as parsing errors are otherwise silently ignored.
2012-12-19 19:42:34 +01:00
Allan Odgaard
d4513dd76d Use YAML::load to parse JSON
This avoids depending on the user having installed the JSON gem (and fixes problems where user has it installed, but for a different ruby than the one used to run this script).
2012-12-14 18:03:37 +01:00
Brad Choate
09a81e9024 Seed the contributor lookup table a bit. 2012-11-12 14:49:47 +07:00
Brad Choate
eb30ea3cb8 Add dynamic contributions page to the About window 2012-11-12 14:49:47 +07:00
Brad Choate
6753f4e3d6 Evaluate embedded ruby in markdown files
This is when generating HTML for the release notes, manual, and, where we actually need this, list of contributions.

Long-term we should probably switch to template tags as we are effectively adding code to the (otherwise declarative) build graph, which means we don’t have any way to tell if the generated HTML is up-to-date or not (as that would require analyzing the embedded ruby code).
2012-11-12 14:34:22 +07:00
Brad Choate
a1a73e8593 Don’t output markdown headers when generating HTML 2012-11-12 14:30:39 +07:00
Allan Odgaard
9b00db3139 Update CxxTest 2012-11-12 13:28:34 +07:00
Allan Odgaard
df6c6f5f8b Avoid using ‘-q’ with pgrep
The version installed via MacPorts does not have such option so relaunching TextMate (after successful build) would not work.
2012-09-29 00:16:07 +02:00
Allan Odgaard
c77c6fc4e2 Let gen_build support TM_NINJA
This is for when building from TextMate and PATH has not been setup to contain the directory containing ninja.
2012-09-28 16:36:37 +02:00
Allan Odgaard
7d50b4db92 Change version bumping rules
We no longer do an implicit bump after deploy — this should be done, but as we also want to do a bump before deploy (so deployment builds do not share revision with any custom builds) we need the bump rule to be usable by itself.

Also fix issue with bumping APP_REVISION in build.ninja not affecting APP_VERSION after rebuilding build.ninja.

And additionally include user file after main build.ninja.
2012-09-25 01:41:07 +02:00
Allan Odgaard
50217a73ba Let precompiled headers depend on compiler 2012-09-24 20:58:43 +02:00
Allan Odgaard
de3a1ee2f0 Build tests with same compiler flags as their sources
We link the test’s .o with the .o objects from the library being tested, rather than link it with a potential dylib, hence why some flags matter.
2012-09-24 20:58:43 +02:00
Allan Odgaard
ed7a93af93 Allow enabling ARC per target
The issue is that the precompiled header must also be created with ARC enabled, so now we use different precompiled headers depending on wether or not the file to be compiled has -fobjc-arc enabled.

The way this is done is hardcoded for the ARC options, it might be nice to abstract it so that the PCH dependency had a name derived from the PCH-sensitive compiler options.
2012-09-22 13:23:40 +02:00
Allan Odgaard
ebbd58c513 Improve build file dependency tracking
Previously if we did something like:

    CP_Resources = resources/*

The build file would correctly depend on the ‘resources’ directory, but a change, as in, adding, removing, or renaming a file, in a directory below ‘resources’ (e.g. adding ‘resources/English.lproj/NewWindow.xib’) would not correctly update the build file to include the new resource.
2012-09-17 16:42:42 +02:00
Allan Odgaard
e721e6e0d6 Ensure builddir doesn’t contain removed files
If e.g. we rename “image.tiff” → “image.png” then the build files are correctly updated to copy “image.png” to the build directory, but until this commit, the old tiff image would stay in the build directory until manually removing it / cleaning the build directory.
2012-09-14 17:14:56 +02:00
Allan Odgaard
2b2b0b016d Make all second level headings article 2012-09-14 17:14:54 +02:00
Allan Odgaard
e4fcd7987f Update release notes styling
Thanks to Khadgar (irc nick) for this!
2012-08-28 12:54:26 +02:00
Allan Odgaard
7e186a8283 Documentation: Wrap keys in a keyEquivalent class 2012-08-27 19:29:50 +02:00
Allan Odgaard
15bfe9fc9c Let build rules depend on their tool 2012-08-27 01:03:17 +02:00
Allan Odgaard
c0de81d943 Label the build.ninja target
This is to prettify the build output (for the cases where build.ninja needs to be regenerated).
2012-08-25 02:06:22 +02:00
Allan Odgaard
12a1d86735 Add upload targets for executables
This is to make it easy to push test programs.
2012-08-22 18:24:41 +02:00
Allan Odgaard
69196f58f3 Add missing dependencies to debug targets 2012-08-21 20:24:06 +02:00
Allan Odgaard
d737efd7e1 Generalize bin/upload
It now takes key path and destination (github repostiory) as arguments. The generated build.ninja assumes the user local build.ninja sets these variables.
2012-08-20 15:44:47 +02:00
Allan Odgaard
95a9ab8561 Improve error reporting in gen_build
This is for the case where the user is missing targets (e.g. did not checkout submodules).
2012-08-20 15:44:47 +02:00
Allan Odgaard
a463e8f621 Let build.ninja include $USER.ninja (if it exists)
User specific settings and rules can go into this file.
2012-08-20 15:44:47 +02:00
Allan Odgaard
7f177f1345 Introduce test targets that always run
This means having a test file open (in TextMate) and using ⌘B, the test will always run, even if it has previously succeeded and none of the test’s dependencies have been updated.
2012-08-18 15:30:24 +02:00
Allan Odgaard
7f68e1a8e5 Download URL now taken from the GitHub response
Previously it was based on a hardcoded URL template. This also adds an extra check on the GitHub response, to see if we actually got a URL back.
2012-08-18 15:30:23 +02:00
Allan Odgaard
8a5fb16367 Let configure create DefaultBundles.tbz
Motivated by a lot of “where is the syntax highlight?” questions from users that build from source, we now always create the DefaultBundles.tbz (if it doesn’t exist).
2012-08-16 11:46:15 +02:00
Allan Odgaard
218551185b Add gdb targets to build.ninja
Since ninja run each build job with its own stdin/out/err we can’t launch gdb itself in a build job, so we use osascript to launch gdb in a new window.

I used Terminal for this only because it is simpler to script than iTerm2.
2012-08-15 23:23:24 +02:00
Allan Odgaard
b7174fafa0 Add phoney target for deploying
The nightly builds still require me to manually run the ‘TextMate/deploy’ target, so if we can make it 9 characters shorter, it’s totally worth it! :)
2012-08-15 00:33:33 +02:00
Allan Odgaard
0cedb7f3ab Specifically call platform’s tsort.
This fixes issue #102 where user has a ‘tsort’ not supporting the ‘-q’ option in his PATH (before the platform version).
2012-08-12 22:30:49 +02:00
Allan Odgaard
2ff7684eda Order build rules based on dependencies.
Previously we wrote out the build rules alphabetically and grouped by target type. So e.g. the build rule for a framework would be created before that of an application bundle.

While it worked, it didn’t allow e.g. the preferences framework to depend on the mate executables (for copying to its resources section) since the build rules for mate would be created after that of the preferences framework.

We now do a topological sort on the dependency graph (by shelling out to ‘tsort’) to make the build system more flexible.
2012-08-12 16:07:29 +02:00
Allan Odgaard
2ac005815b Upload to GitHub instead of S3.
Technically GitHub is backed by S3 (shielded by a CDN), but now all releases also go to the Downloads section of GitHub.
2012-08-10 18:30:35 +02:00
Allan Odgaard
e8bad0d669 Quote compiler variables.
This is incase user has clang installed e.g. under /Applications/Xcode 4.5.app/…

Fixes issue #29.
2012-08-09 22:33:18 +02:00
Aaron Brethorst
0462b4a18b Hardcode Ruby scripts to use the Apple-provided version of MRI 1.8 since rdoc/usage is missing in 1.9 2012-08-09 10:04:23 -07:00
Allan Odgaard
9894969e67 Initial commit 2012-08-09 16:25:56 +02:00