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

Side by Side Diff: site/user/sample/building.md

Issue 1915013002: "Using Skia" tutorial: googlecode -> googlesource (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 7 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Building with Skia Tutorial 1 Building with Skia Tutorial
2 =========================== 2 ===========================
3 3
4 dsinclair@chromium.org 4 dsinclair@chromium.org
5 5
6 6
7 This document describes the steps used to create an application that uses Skia. The assumptions are that you're using: 7 This document describes the steps used to create an application that uses Skia. The assumptions are that you're using:
8 8
9 * [git](http://git-scm.com) 9 * [git](http://git-scm.com)
10 * [gclient](https://code.google.com/p/gclient/) 10 * [gclient](https://code.google.com/p/gclient/)
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 Create a src/DEPS file with the following: 70 Create a src/DEPS file with the following:
71 71
72 ~~~~ 72 ~~~~
73 73
74 vars = { 74 vars = {
75 "skia_revision": "a6a8f00a3977e71dbce9da50a32c5e9a51c49285", 75 "skia_revision": "a6a8f00a3977e71dbce9da50a32c5e9a51c49285",
76 } 76 }
77 77
78 deps = { 78 deps = {
79 "src/third_party/skia/": 79 "src/third_party/skia/":
80 "http://skia.googlecode.com/skia.git@" + Var("skia_revision"), 80 "http://skia.googlesource.com/skia.git@" + Var("skia_revision"),
81 } 81 }
82 82
83 ~~~~ 83 ~~~~
84 84
85 There are two sections to the `DEPS` file at the moment, `vars` and `deps`. 85 There are two sections to the `DEPS` file at the moment, `vars` and `deps`.
86 The `vars` sections defines variables we can use later in the file with the 86 The `vars` sections defines variables we can use later in the file with the
87 `Var()` accessor. In this case, we define our root directory, a shorter name 87 `Var()` accessor. In this case, we define our root directory, a shorter name
88 for any googlecode repositories and a specific revision of Skia that we're 88 for any googlesource repositories and a specific revision of Skia that we're
89 going to use. I've pinned to a specific version to insulate the application 89 going to use. I've pinned to a specific version to insulate the application
90 from changes in the Skia tree. This lets us know that when someone checks out 90 from changes in the Skia tree. This lets us know that when someone checks out
91 the repo they'll be using the same version of Skia that we've built and tested 91 the repo they'll be using the same version of Skia that we've built and tested
92 against. 92 against.
93 93
94 The `deps` section defines our dependencies. Currently we have one dependency 94 The `deps` section defines our dependencies. Currently we have one dependency
95 which we're going to checkout into the `src/third_party/skia` directory. 95 which we're going to checkout into the `src/third_party/skia` directory.
96 96
97 Once the deps file is created, commit and push it to the remote repository. 97 Once the deps file is created, commit and push it to the remote repository.
98 Once done, we can use gclient to checkout our dependencies. 98 Once done, we can use gclient to checkout our dependencies.
(...skipping 17 matching lines...) Expand all
116 solutions = [ 116 solutions = [
117 { "name" : "src", 117 { "name" : "src",
118 "url" : "https://bitbucket.org/dj2/usingskia.git", 118 "url" : "https://bitbucket.org/dj2/usingskia.git",
119 "deps_file" : "DEPS", 119 "deps_file" : "DEPS",
120 "managed" : True, 120 "managed" : True,
121 "custom_deps" : { 121 "custom_deps" : {
122 }, 122 },
123 "safesync_url": "", 123 "safesync_url": "",
124 }, 124 },
125 { "name" : "src/third_party/skia", 125 { "name" : "src/third_party/skia",
126 "url" : "http://skia.googlecode.com/skia.git@a6a8f00a3977e71dbce 9da50a32c5e9a51c49285", 126 "url" : "http://skia.googlesource.com/skia.git@a6a8f00a3977e71db ce9da50a32c5e9a51c49285",
127 "deps_file" : "DEPS", 127 "deps_file" : "DEPS",
128 "managed" : True, 128 "managed" : True,
129 "custom_deps" : { 129 "custom_deps" : {
130 }, 130 },
131 "safesync_url": "", 131 "safesync_url": "",
132 }, 132 },
133 ] 133 ]
134 cache_dir = None 134 cache_dir = None
135 135
136 This is a little annoying at the moment since I've duplicated the repository 136 This is a little annoying at the moment since I've duplicated the repository
137 revision number in the `.gclient` file. I'm hoping to find a way to do this 137 revision number in the `.gclient` file. I'm hoping to find a way to do this
138 through the `DEPS` file, but until then, this seems to work. 138 through the `DEPS` file, but until then, this seems to work.
139 139
140 With that done, re-run `gclient sync` and you should see a whole lot more 140 With that done, re-run `gclient sync` and you should see a whole lot more
141 repositories being checked out. The 141 repositories being checked out. The
142 `src/third_party/skia/third_party/externals` directory should now be 142 `src/third_party/skia/third_party/externals` directory should now be
143 populated. 143 populated.
144 144
145 GYP 145 GYP
146 --- 146 ---
147 147
148 The final piece of infrastructure we need to set up is GYP. GYP is a build 148 The final piece of infrastructure we need to set up is GYP. GYP is a build
149 system generator, in this project we're going to have it build ninja 149 system generator, in this project we're going to have it build ninja
150 configuration files. 150 configuration files.
151 151
152 First, we need to add GYP to our project. We'll do that by adding a new entry 152 First, we need to add GYP to our project. We'll do that by adding a new entry
153 to the deps section of the `DEPS` file. 153 to the deps section of the `DEPS` file.
154 154
155 "src/tools/gyp": 155 "src/tools/gyp":
156 (Var("googlecode_url") % "gyp") + "/trunk@1700", 156 (Var("googlesource_url") % "gyp") + "/trunk@1700",
157 157
158 As you can see, I'm going to put the library into `src/tools/gyp` and checkout 158 As you can see, I'm going to put the library into `src/tools/gyp` and checkout
159 revision 1700 (note, the revision used here, 1700, was the head revision at 159 revision 1700 (note, the revision used here, 1700, was the head revision at
160 the time the `DEPS` file was written. You're probably safe to use the 160 the time the `DEPS` file was written. You're probably safe to use the
161 tip-of-tree revision in your `DEPS` file). A quick `gclient sync` and we 161 tip-of-tree revision in your `DEPS` file). A quick `gclient sync` and we
162 should have everything checked out. 162 should have everything checked out.
163 163
164 In order to run GYP we'll create a wrapper script. I've called this 164 In order to run GYP we'll create a wrapper script. I've called this
165 `src/build/gyp_using_skia`. 165 `src/build/gyp_using_skia`.
166 166
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 273
274 Now, we can run: 274 Now, we can run:
275 275
276 $ ./build/gyp_using_skia 276 $ ./build/gyp_using_skia
277 277
278 And, we get an error. Turns out, Skia is looking for a `find\_mac\_sdk.py` file in 278 And, we get an error. Turns out, Skia is looking for a `find\_mac\_sdk.py` file in
279 a relative tools directory which doesn't exist. Luckily, that's easy to fix 279 a relative tools directory which doesn't exist. Luckily, that's easy to fix
280 with another entry in our DEPS file. 280 with another entry in our DEPS file.
281 281
282 "src/tools/": 282 "src/tools/":
283 File((Var("googlecode_url") % "skia") + "/trunk/tools/find_mac_sdk.py@" + 283 File((Var("googlesource_url") % "skia") + "/trunk/tools/find_mac_sdk.py@ " +
284 Var("skia_revision")), 284 Var("skia_revision")),
285 285
286 Here we using the `File()` function of `gclient` to specify that we're checking 286 Here we using the `File()` function of `gclient` to specify that we're checking
287 out an individual file. Running `gclient sync` should pull the necessary file 287 out an individual file. Running `gclient sync` should pull the necessary file
288 into `src/tools`. 288 into `src/tools`.
289 289
290 With that, running `build/gyp\_using\_skia` should complete successfully. You 290 With that, running `build/gyp\_using\_skia` should complete successfully. You
291 should now have an `out/` directory with a `Debug/` and `Release/` directory ins ide. 291 should now have an `out/` directory with a `Debug/` and `Release/` directory ins ide.
292 These correspond to the configurations we specified in `using\_skia.gyp`. 292 These correspond to the configurations we specified in `using\_skia.gyp`.
293 293
(...skipping 16 matching lines...) Expand all
310 { 310 {
311 # A change to a .gyp, .gypi or to GYP itself should run the generator. 311 # A change to a .gyp, .gypi or to GYP itself should run the generator.
312 "name": "gyp", 312 "name": "gyp",
313 "pattern": ".", 313 "pattern": ".",
314 "action": ["python", "src/build/gyp_using_skia"] 314 "action": ["python", "src/build/gyp_using_skia"]
315 } 315 }
316 ] 316 ]
317 317
318 Adding the above to the end of DEPS and running gclient sync should show the 318 Adding the above to the end of DEPS and running gclient sync should show the
319 GYP files being updated at the end of the sync procedure. 319 GYP files being updated at the end of the sync procedure.
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698