Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: docs/GypVsCMake.md

Issue 1292053003: Lots of documentation cleanup (Closed) Base URL: https://chromium.googlesource.com/external/gyp@md-pages
Patch Set: more nits Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « docs/Buildbot.md ('k') | docs/Hacking.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # GYP vs. CMake # 1 # vs. CMake
2 2
3 GYP was originally created to generate native IDE project files (Visual Studio, Xcode) for building [Chromium](http://www.chromim.org). 3 GYP was originally created to generate native IDE project files (Visual Studio, Xcode) for building [Chromium](http://www.chromim.org).
4 4
5 The functionality of GYP is very similar to the [CMake](http://www.cmake.org) 5 The functionality of GYP is very similar to the [CMake](http://www.cmake.org)
6 build tool. Bradley Nelson wrote up the following description of why the team 6 build tool. Bradley Nelson wrote up the following description of why the team
7 created GYP instead of using CMake. The text below is copied from 7 created GYP instead of using CMake. The text below is copied from
8 http://www.mail-archive.com/webkit-dev@lists.webkit.org/msg11029.html 8 http://www.mail-archive.com/webkit-dev@lists.webkit.org/msg11029.html
9 9
10 ``` 10 ```
11 11
(...skipping 10 matching lines...) Expand all
22 I did an exploratory port of portions of Chromium to cmake (I think I got as 22 I did an exploratory port of portions of Chromium to cmake (I think I got as
23 far as net, base, sandbox, and part of webkit). 23 far as net, base, sandbox, and part of webkit).
24 There were a number of motivations, not all of which would apply to other 24 There were a number of motivations, not all of which would apply to other
25 projects. Also, some of the design of gyp was informed by experience at 25 projects. Also, some of the design of gyp was informed by experience at
26 Google with large projects built wholly from source, leading to features 26 Google with large projects built wholly from source, leading to features
27 absent from cmake, but not strictly required for Chromium. 27 absent from cmake, but not strictly required for Chromium.
28 28
29 1. Ability to incrementally transition on Windows. It took us about 6 months 29 1. Ability to incrementally transition on Windows. It took us about 6 months
30 to switch fully to gyp. Previous attempts to move to scons had taken a long 30 to switch fully to gyp. Previous attempts to move to scons had taken a long
31 time and failed, due to the requirement to transition while in flight. For a 31 time and failed, due to the requirement to transition while in flight. For a
32 substantial period of time, we had a hybrid of checked in vcproj and 32 substantial period of time, we had a hybrid of checked in vcproj and gyp generat ed
33 gyp generated 33 vcproj. To this day we still have a good number of GUIDs pinned in the gyp files ,
34 vcproj. To this day we still have a good number of GUIDs pinned in the
35 gyp files,
36 because different parts of our release pipeline have leftover assumptions 34 because different parts of our release pipeline have leftover assumptions
37 regarding manipulating the raw sln/vcprojs. This transition occurred from 35 regarding manipulating the raw sln/vcprojs. This transition occurred from
38 the bottom up, largely because modules like base were easier to convert, and 36 the bottom up, largely because modules like base were easier to convert, and
39 had a lower churn rate. During early stages of the transition, the majority 37 had a lower churn rate. During early stages of the transition, the majority
40 of the team wasn't even aware they were using gyp, as it integrated into 38 of the team wasn't even aware they were using gyp, as it integrated into
41 their existing workflow, and only affected modules that had been converted. 39 their existing workflow, and only affected modules that had been converted.
42 40
43 2. Generation of a more 'normal' vcproj file. Gyp attempts, particularly on 41 2. Generation of a more 'normal' vcproj file. Gyp attempts, particularly on
44 Windows, to generate vcprojs which resemble hand generated projects. It 42 Windows, to generate vcprojs which resemble hand generated projects. It
45 doesn't generate any Makefile type projects, but instead produces msvs 43 doesn't generate any Makefile type projects, but instead produces msvs
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 in sometimes weird and counter-intuitive ways). In fairness though, gyp assumes 107 in sometimes weird and counter-intuitive ways). In fairness though, gyp assumes
110 that external python scripts can be used as an escape hatch. Also gyp avoids 108 that external python scripts can be used as an escape hatch. Also gyp avoids
111 a lot of the things you'd need imperative code for, by having a nice target 109 a lot of the things you'd need imperative code for, by having a nice target
112 settings publication mechanism. 110 settings publication mechanism.
113 111
114 5. (Feature/drawback depending on personal preference). Gyp's syntax is 112 5. (Feature/drawback depending on personal preference). Gyp's syntax is
115 DEEPLY nested. It suffers from all of Lisp's advantages and drawbacks. 113 DEEPLY nested. It suffers from all of Lisp's advantages and drawbacks.
116 114
117 -BradN 115 -BradN
118 ``` 116 ```
OLDNEW
« no previous file with comments | « docs/Buildbot.md ('k') | docs/Hacking.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698