Commit Graph

85 Commits

Author SHA1 Message Date
probablycorey
ab53e2ffda Rename create-atom script to constructicon/build 2013-06-20 12:15:35 -07:00
probablycorey
fcaa952973 Simplify gyp
Gyp is only used for construction now.
2013-06-20 12:15:34 -07:00
Cheng Zhao
c6d4942295 Generate Info.plist for App and Helper. 2013-05-29 19:33:48 +08:00
Cheng Zhao
0fa5ca3782 Generate version after all files are copied.
And also note that <(PRODUCT_DIR) cannot work in postbuilds.
2013-05-24 23:58:01 +08:00
Cheng Zhao
a00fe91fca Show Atom's version. 2013-05-24 23:24:46 +08:00
Cheng Zhao
e99fe93029 Don't build native code and use atom-shell's binary instead. 2013-05-13 13:49:31 +08:00
Nathan Sobo
93cddcf8dc Make CODE_SIGN gyp var lowercase and 💄 it in Rakefile 2013-04-10 15:57:17 -06:00
Nathan Sobo
2cb18f5855 Allow gyp version var to be set from CLI, but default it to git HEAD. 2013-04-10 15:57:17 -06:00
Cheng Zhao
7c8e1634b8 Remove native path watcher code. 2013-04-07 19:33:27 +08:00
Kevin Sawicki
9633677bcc Only check for updates on code signed builds 2013-04-05 10:16:56 -07:00
probablycorey
44d78ed30d move files int tools/mac to scripts dir 2013-04-04 10:04:45 -07:00
Corey Johnson & Nathan Sobo
081967dc95 Change development version number to the sha 2013-04-03 15:24:17 -07:00
Corey Johnson & Nathan Sobo
262e2fe1ec Add Quincy crash reporter framework 2013-04-03 15:08:16 -07:00
probablycorey
142d18bb7c Add current commit sha to the version 2013-03-29 14:13:46 -07:00
probablycorey
1c5b72e04d Add version to the Atom Helper plist
Closes #368
2013-03-29 14:13:33 -07:00
Kevin Sawicki
858f58da97 Precompile less files to css during build
This mirrors the CSON to JSONS compilation step.

Closes #440
2013-03-26 12:05:12 -04:00
Cheng Zhao
347ba6c7ee Bundle offical node binary with Atom.
This is required for using child_process.fork.
2013-03-13 20:15:41 +08:00
Kevin Sawicki
f3049681bd Use git-utils module
Removes the need to include libgit2 as this is now handled by the
git-utils module which provides functions that were previously in
git.mm and git.coffee
2013-03-09 14:34:06 -08:00
Kevin Sawicki
b0ec0cda7f Merge remote-tracking branch 'origin/dev' into cefode 2013-03-07 11:44:46 -08:00
Kevin Sawicki
d34796a78b Use oniguruma node module
This removes all internal native oniguruma
sources and starts using the node module
directly to create onig scanners and regexes.
2013-03-07 10:45:22 -08:00
Kevin Sawicki
ce2d0389e1 Use ctags node module
Remove internal ctags code and defer to
new node module for finding tags and listing
tags.
2013-03-07 09:41:04 -08:00
probablycorey
716a78a774 Default all targets to Release 2013-03-05 14:32:51 -08:00
Adam Roben
cea04758a5 Print the environment for Constructicon 2013-03-05 14:32:51 -08:00
Adam Roben
5421dddec6 info.plist -> Atom-Info.plist for Constructicon 2013-03-05 14:32:51 -08:00
Adam Roben
83ee2d23b3 Use gyp's rules functionality to compile .coffee/.cson files
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.
2013-03-04 11:32:06 -05:00
Adam Roben
8a3b395613 Use gyp's copies facility instead of cp -r
This is more portable, and ensures that we won't screw up symlinks like
cp -r would.
2013-03-01 16:35:48 -05:00
Adam Roben
a3c48df25b Move all code and resources into Atom.framework
All our native code now gets built into Atom.framework. Atom.app and
Atom Helper.app both link against this framework. All resources other
than a couple of main-bundle-only ones (e.g., atom.icns) go into
Atom.framework.

Note that this means that there's no compile- or link-time separation
between main process code and helper process code. We could introduce a
compile-time separation by building main process and helper process code
into separate static libraries with mutually exclusive include paths, if
we want.

Atom.framework exports a single symbol: AtomMain(). Atom.app and Atom
Helper.app contain a single source file: main.cpp. main() just calls
AtomMain().

All frameworks are placed in Atom.app/Contents/Frameworks. We now link
against all frameworks using @rpath-based install names, which allows
Atom.app and Atom Helper.app to find them automatically based on their
own LD_RUNPATH_SEARCH_PATH settings. We use install_name_tool at build
time on each of our three binaries (Atom.app, Atom Helper.app,
Atom.framework) to set the install names.

By reducing duplication of code and resources between Atom.app and Atom
Helper.app (and the EH/NP copies of Atom Helper.app), this reduces the
size of the total installed Atom.app bundle from 145MB to 82MB. By
compiling .coffee and .cson files only once, clean build time drops from
114 seconds to 79 seconds on my MacBook Pro.
2013-03-01 16:35:42 -05:00
Corey Johnson
9454cce157 Calling rake package will codesign the app 2013-02-26 16:43:15 -08:00
Corey Johnson
fcadc2a552 Codesign Atom.app 2013-02-26 15:06:10 -08:00
Adam Roben
668921d336 Remove CEF from the repo and download it as needed
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.
2013-02-17 11:59:06 -05:00
Corey Johnson
67b2aeaae9 Remove RESOURCE_PATH macro 2013-02-13 13:09:50 -08:00
Corey Johnson & Nathan Sobo
61e1effd28 Add Sparkle.framework and DSA key for speakeasy 2013-01-23 15:09:58 -08:00
Kevin Sawicki
4be8805c37 Add placeholder file icon 2012-12-28 15:39:19 -08:00
Kevin Sawicki
1686c97244 Add initial support for jump to declaration 2012-12-13 15:22:23 -08:00
Kevin Sawicki
ef00ba934f Copy libgit2 dylib and update using install_name_tool 2012-11-02 15:38:48 -07:00
Kevin Sawicki
2e8f6b926c Add libgit2 headers to gypi file 2012-11-02 15:33:37 -07:00
Kevin Sawicki
55063d61ec Add libgit2 to libraries 2012-11-02 15:30:06 -07:00
Kevin Sawicki
17c3621853 Add native Git v8 extension 2012-11-02 15:30:06 -07:00
Nathan Sobo
32e36700ae Add native OnigScanner, which handles matching multiple regexes on a line
This cuts the tokenization time from 250ms to 70ms by avoiding js <-> native overhead
2012-09-27 13:04:14 -06:00
Corey Johnson
c80641ccfd Don't optimize in debug mode 2012-09-20 15:13:25 -07:00
Corey Johnson
96e2a66065 Merge branch 'master' into making-things-easy
Conflicts:
	.gitignore
	Rakefile
2012-09-18 15:43:17 -07:00
Corey Johnson
b8c2786f85 Rename cef/resources to cef/Resources.
Something in the bowels of CEF wants it to be uppercase
2012-09-18 15:00:49 -07:00
Corey Johnson
61c8068171 Add The Setup's env when Xcode copy files to bundle. 2012-09-17 15:35:55 -07:00
John Barnette
2697b5e402 Make npm and rake play nicely
npm was noticing the atom.gyp file and trying to do stuff with it
automatically, and moving it out of the way ruins gyp's day. This fixes
both problems.
2012-09-13 11:41:35 -07:00
John Barnette
15a3f58f66 Move atom.gyp to stop confusing npm 2012-09-13 11:30:08 -07:00
Corey Johnson & Nathan Sobo
0ade1cd185 Remove debug.xcconfig
No longer using $RESOURCE_PATH in rake file.
2012-09-10 20:20:30 -07:00
Corey Johnson & Nathan Sobo
6570aedbb0 Making rake install almost work 2012-09-10 17:23:05 -07:00
Corey Johnson
b4f617c657 Remove util.h 2012-08-30 09:07:39 -07:00
Corey Johnson
2dbd095cdc rename process_helper_mac.cpp to main_helper_mac.mm 2012-08-29 15:36:01 -07:00
Nathan Sobo
fcc012eb11 Messages from the browser process call atom.messageReceivedFromBrowserProcess
This is how we will handle replies from dialogs presented in the browser process.
2012-08-29 15:07:10 -05:00