OLD | NEW |
1 # Linux Eclipse Dev | 1 # Linux Eclipse Dev |
2 | 2 |
3 Eclipse can be used on Linux (and probably Windows and Mac) as an IDE for | 3 Eclipse can be used on Linux (and probably Windows and Mac) as an IDE for |
4 developing Chromium. It's unpolished, but here's what works: | 4 developing Chromium. It's unpolished, but here's what works: |
5 | 5 |
6 * Editing code works well (especially if you're used to it or Visual Studio). | 6 * Editing code works well (especially if you're used to it or Visual Studio). |
7 * Navigating around the code works well. There are multiple ways to do this | 7 * Navigating around the code works well. There are multiple ways to do this |
8 (F3, control-click, outlines). | 8 (F3, control-click, outlines). |
9 * Building works fairly well and it does a decent job of parsing errors so | 9 * Building works fairly well and it does a decent job of parsing errors so |
10 that you can click and jump to the problem spot. | 10 that you can click and jump to the problem spot. |
11 * Debugging is hit & miss. You can set breakpoints and view variables. STL | 11 * Debugging is hit & miss. You can set breakpoints and view variables. STL |
12 containers give it (and gdb) a bit of trouble. Also, the debugger can get | 12 containers give it (and gdb) a bit of trouble. Also, the debugger can get |
13 into a bad state occasionally and eclipse will need to be restarted. | 13 into a bad state occasionally and eclipse will need to be restarted. |
14 * Refactoring seems to work in some instances, but be afraid of refactors that | 14 * Refactoring seems to work in some instances, but be afraid of refactors that |
15 touch a lot of files. | 15 touch a lot of files. |
16 | 16 |
17 [TOC] | 17 [TOC] |
18 | 18 |
19 ## Setup | 19 ## Setup |
20 | 20 |
21 ### Get & Configure Eclipse | 21 ### Get & Configure Eclipse |
22 | 22 |
23 Eclipse 4.3 (Kepler) is known to work with Chromium for Linux. | 23 Eclipse 4.3 (Kepler) is known to work with Chromium for Linux. |
24 | 24 |
25 * Download the distribution appropriate for your OS. For example, for Linux | 25 * [Download](http://www.eclipse.org/downloads/) the distribution appropriate |
26 64-bit/Java 64-bit, use the Linux 64 bit package from | 26 for your OS. For example, for Linux 64-bit/Java 64-bit, use the Linux 64 bit |
27 http://www.eclipse.org/downloads/ (Eclipse Packages Tab -> Linux 64 bit | 27 package (Eclipse Packages Tab -> Linux 64 bit (link in bottom right)). |
28 (link in bottom right)). | |
29 * Tip: The packaged version of eclipse in distros may not work correctly | 28 * Tip: The packaged version of eclipse in distros may not work correctly |
30 with the latest CDT plugin (installed below). Best to get them all from | 29 with the latest CDT plugin (installed below). Best to get them all from |
31 the same source. | 30 the same source. |
32 * Googlers: The version installed on Goobuntu works fine. The UI will be | 31 * Googlers: The version installed on Goobuntu works fine. The UI will be |
33 much more responsive if you do not install the google3 plug-ins. Just | 32 much more responsive if you do not install the google3 plug-ins. Just |
34 uncheck all the boxes at first launch. | 33 uncheck all the boxes at first launch. |
35 * Unpack the distribution and edit the eclipse/eclipse.ini to increase the | 34 * Unpack the distribution and edit the eclipse/eclipse.ini to increase the |
36 heap available to java. For instance: | 35 heap available to java. For instance: |
37 * Change `-Xms40m` to `-Xms1024m` (minimum heap) and `-Xmx256m` to | 36 * Change `-Xms40m` to `-Xms1024m` (minimum heap) and `-Xmx256m` to |
38 `-Xmx3072m` (maximum heap). | 37 `-Xmx3072m` (maximum heap). |
39 * Googlers: Edit `~/.eclipse/init.sh` to add this: | 38 * Googlers: Edit `~/.eclipse/init.sh` to add this: |
40 | 39 |
41 export ECLIPSE_MEM_START="1024M" | 40 ``` |
42 export ECLIPSE_MEM_MAX="3072M" | 41 export ECLIPSE_MEM_START="1024M" |
| 42 export ECLIPSE_MEM_MAX="3072M" |
| 43 ``` |
43 | 44 |
44 The large heap size prevents out of memory errors if you include many Chrome | 45 The large heap size prevents out of memory errors if you include many Chrome |
45 subprojects that Eclipse is maintaining code indices for. | 46 subprojects that Eclipse is maintaining code indices for. |
46 | 47 |
47 * Turn off Hyperlink detection in the Eclipse preferences. (Window -> | 48 * Turn off Hyperlink detection in the Eclipse preferences. (Window -> |
48 Preferences, search for "Hyperlinking, and uncheck "Enable on demand | 49 Preferences, search for "Hyperlinking, and uncheck "Enable on demand |
49 hyperlink style navigation"). | 50 hyperlink style navigation"). |
50 | 51 |
51 Pressing the control key on (for keyboard shortcuts such as copy/paste) can | 52 Pressing the control key on (for keyboard shortcuts such as copy/paste) can |
52 trigger the hyperlink detector. This occurs on the UI thread and can result in | 53 trigger the hyperlink detector. This occurs on the UI thread and can result in |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 | 87 |
87 Set the Workspace to be a directory on a local disk (e.g. | 88 Set the Workspace to be a directory on a local disk (e.g. |
88 `/work/workspaces/chrome`). Placing it on an NFS share is not recommended -- | 89 `/work/workspaces/chrome`). Placing it on an NFS share is not recommended -- |
89 it's too slow and Eclipse will block on access. Don't put the workspace in the | 90 it's too slow and Eclipse will block on access. Don't put the workspace in the |
90 same directory as your checkout. | 91 same directory as your checkout. |
91 | 92 |
92 ### Install the C Development Tools ("CDT") | 93 ### Install the C Development Tools ("CDT") |
93 | 94 |
94 1. From the Help menu, select Install New Software... | 95 1. From the Help menu, select Install New Software... |
95 1. Select the 'Workd with' URL for the CDT | 96 1. Select the 'Workd with' URL for the CDT |
96 1. If it's not there you can click Add... and add it. | 97 If it's not there you can click Add... and add it. |
97 1. See https://eclipse.org/cdt/downloads.php for up to date | 98 See https://eclipse.org/cdt/downloads.php for up to date versions, |
98 versions. | 99 e.g. with CDT 8.7.0 for Eclipse Mars, use |
99 1. e.g. with CDT 8.7.0 for Eclipse Mars, use | 100 http://download.eclipse.org/tools/cdt/releases/8.7 |
100 http://download.eclipse.org/tools/cdt/releases/8.7 | |
101 1. Googlers: We have a local mirror, but be sure you run prodaccess before | 101 1. Googlers: We have a local mirror, but be sure you run prodaccess before |
102 trying to use it. | 102 trying to use it. |
103 1. Select & install the Main and Optional features. | 103 1. Select & install the Main and Optional features. |
104 1. Restart Eclipse | 104 1. Restart Eclipse |
105 1. Go to Window > Open Perspective > Other... > C/C++ to switch to the C++ | 105 1. Go to Window > Open Perspective > Other... > C/C++ to switch to the C++ |
106 perspective (window layout). | 106 perspective (window layout). |
107 1. Right-click on the "Java" perspective in the top-right corner and select | 107 1. Right-click on the "Java" perspective in the top-right corner and select |
108 "Close" to remove it. | 108 "Close" to remove it. |
109 | 109 |
110 ### Create your project(s) | 110 ### Create your project(s) |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 ### Additional tips | 392 ### Additional tips |
393 | 393 |
394 1. Mozilla's | 394 1. Mozilla's |
395 [Eclipse CDT guide](https://developer.mozilla.org/en-US/docs/Eclipse_CDT) | 395 [Eclipse CDT guide](https://developer.mozilla.org/en-US/docs/Eclipse_CDT) |
396 is helpful: | 396 is helpful: |
397 1. For improved performance, I use medium-granularity projects (eg. one for | 397 1. For improved performance, I use medium-granularity projects (eg. one for |
398 WebKit/Source) instead of putting all of 'src/' in one project. | 398 WebKit/Source) instead of putting all of 'src/' in one project. |
399 1. For working in Blink (which uses WebKit code style), feel free to use | 399 1. For working in Blink (which uses WebKit code style), feel free to use |
400 [this](https://drive.google.com/file/d/0B2LVVIKSxUVYM3R6U0tUa1dmY0U/view?usp
=sharing) | 400 [this](https://drive.google.com/file/d/0B2LVVIKSxUVYM3R6U0tUa1dmY0U/view?usp
=sharing) |
401 code-style formatter XML profile | 401 code-style formatter XML profile |
OLD | NEW |