Commit Graph

68 Commits

Author SHA1 Message Date
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
Nathan Sobo
e739ac8ad3 Remove path_watcher sources from browser process app 2012-08-28 12:00:57 -05:00
Nathan Sobo
f0dbe5db94 Break out AtomCefRenderProcessHandler so it's only included in the helper app
This means that none of the extension code has to be compiled into the browser app, which just seems cleaner.
2012-08-28 11:55:17 -05:00
Nathan Sobo
76b8f42bb7 Add atom extension, which implements atom.open
We send a message from the render process to the browser process indicating which path to open. Also start introducing a `v8_extensions::` namespace to contain the extensions.
2012-08-28 11:08:50 -05:00
Nathan Sobo
8cd4042fe9 Don't load atom_cef_client source files in render process helper 2012-08-28 11:06:11 -05:00
Corey Johnson & Nathan Sobo
da35ca4c44 Add OnigRegExp 2012-08-27 15:00:38 -07:00
Corey Johnson & Nathan Sobo
5141aba658 Move all extension C and JavaScript code into native/v8_extensions 2012-08-27 14:02:05 -07:00
Corey Johnson & Nathan Sobo
c4639b894e path 💄 2012-08-27 13:30:04 -07:00
Corey Johnson & Nathan Sobo
e8aa1524c7 Rename atom folder to native 2012-08-27 13:21:59 -07:00
Corey Johnson & Nathan Sobo
fe3461cd70 Add native handler 2012-08-27 11:40:28 -07:00
Nathan Sobo
65e245d6f5 Specify the project directory as RESOURCE_PATH in Debug configuration 2012-08-27 12:22:43 -05:00
Nathan Sobo
c3e748a17c WIP: Use rake to start compiling resources (like require.coffee) 2012-08-26 16:29:46 -05:00
Nathan Sobo
0eebdec453 Rename AtomController -> AtomWindowController 2012-08-25 15:06:00 -06:00
Nathan Sobo
fb592648e7 Rename ClientHandler to AtomCefClient
This clarifies its role relative to the Cef API… that it is Atom's version of the CefClient.
2012-08-25 11:17:47 -06:00
Nathan Sobo
1a276177ce Ensure AtomCefApp is used in the renderer process so our hooks get called 2012-08-24 10:03:49 -06:00
Corey Johnson
3d15f8a42e wip: atom_cef_app 2012-08-23 13:47:06 -07:00
Corey Johnson
f754be83da Rename atom_mac to atom_application 2012-08-23 12:51:43 -07:00
Corey Johnson
1f2453e98c Atom is getting closer... 2012-08-21 17:22:43 -07:00