Instead of finding and compiling all .coffee/.cson files in
script/copy-files-to-bundle, we now tell gyp how to do this for us. It
works like this:
1. Rakefile invokes the new script/generate-sources-gypi script to
generate sources.gypi. This file lists all the .coffee/.cson files in
the src, static, and vendor directories, as well as a new
compiled_sources_dir variable that specifies where the compiled
versions of the files should be placed.
2. atom.gyp includes sources.gypi.
3. atom.gyp has a new target, generated_sources, which contains all the
.coffee/.cson files, and uses two rules to tell gyp how to compile
them. The rules invoke the new script/compile-coffee and
script/compile-cson files once for each file.
4. gyp generates one Makefile for each rule to actually perform the
compilation.
5. script/copy-files-to-bundle now takes the compiled_sources_dir
variable as an argument, and copies files both from there and from
the repository into the Resources directory.
By putting the compilation into a different target, we can do it in
parallel with compiling/linking our binaries. And gyp automatically runs
make using -j$(sysctl -n hw.ncpu), so compilation of .coffee/.cson files
happens in parallel, too.
These changes reduce clean build time on my MacBook Pro from 55 seconds
to 46 seconds.
Previously this was done during `rake install`.
Also default to `~/github/atom` as the default resource path
when no `--resource-path` argument is specified. This argument
will now be required when running in dev mode if the repository
is not at the default location.
Closes#300
We now use github/prebuilt-cef to download CEF from S3, then build
against that. This means we no longer need to have CEF committed to the
repo.
Fixes#280.
Now that the release build is generated from rake
install the RESOURCE_PATH is no longer defined so
explicitly set it via an argument to the launched
application.
This fixes a bug where we always moved the `bundles` dir inside the
`packages` dir if it existed, which caused a load error trying to load
the `bundles` dir as if it were a package.