| OLD | NEW |
| 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 # This is the root build file for GN. GN will start processing by loading this | 5 # This is the root build file for GN. GN will start processing by loading this |
| 6 # file, and recursively load all dependencies until all dependencies are either | 6 # file, and recursively load all dependencies until all dependencies are either |
| 7 # resolved or known not to exist (which will cause the build to fail). So if | 7 # resolved or known not to exist (which will cause the build to fail). So if |
| 8 # you add a new build file, there must be some path of dependencies from this | 8 # you add a new build file, there must be some path of dependencies from this |
| 9 # file to your new one or GN won't know about it. | 9 # file to your new one or GN won't know about it. |
| 10 | 10 |
| 11 import("//build/config/features.gni") | 11 import("//build/config/features.gni") |
| 12 import("//build/config/sanitizers/sanitizers.gni") | 12 import("//build/config/sanitizers/sanitizers.gni") |
| 13 import("//build/config/ui.gni") | 13 import("//build/config/ui.gni") |
| 14 import("//build_overrides/v8.gni") | 14 import("//build_overrides/v8.gni") |
| 15 import("//media/media_options.gni") | 15 import("//media/media_options.gni") |
| 16 | 16 |
| 17 if (is_android) { | 17 if (is_android) { |
| 18 import("//build/config/android/config.gni") | 18 import("//build/config/android/config.gni") |
| 19 } | 19 } |
| 20 | 20 |
| 21 declare_args() { | 21 declare_args() { |
| 22 # A list of extra dependencies to add to the root target. This allows a | 22 # A list of extra dependencies to add to the root target. This allows a |
| 23 # checkout to add additional targets without explicitly changing any checked- | 23 # checkout to add additional targets without explicitly changing any checked- |
| 24 # in files. | 24 # in files. |
| 25 root_extra_deps = [] | 25 root_extra_deps = [] |
| 26 } | 26 } |
| 27 | 27 |
| 28 # This file defines the following four main targets: | 28 # This file defines the following five main targets: |
| 29 # | 29 # |
| 30 # "both_gn_and_gyp" should list every root target (target that nothing else | 30 # "both_gn_and_gyp" should list every root target (target that nothing else |
| 31 # depends on) built by GN that is also built in the GYP build. | 31 # depends on) built by GN that is also built in the GYP build. |
| 32 # | 32 # |
| 33 # "gn_all" should (transitively) cause everything to be built; if you run | 33 # "gn_all" should (transitively) cause everything to be built; if you run |
| 34 # 'ninja gn_all' and then 'ninja all', the second build should do no work. | 34 # 'ninja gn_all' and then 'ninja all', the second build should do no work. |
| 35 # | 35 # |
| 36 # "gn_only" should list every root target that is *not* intended to be built | 36 # "gn_only" should list every root target that is *not* intended to be built in |
| 37 # in a GYP build. Because GN has different rules for deciding what an 'all' | 37 # a GYP build. Because GN has different rules for deciding what an 'all' build |
| 38 # build is, this may end up including targets that are actually defined in a | 38 # is, this may end up including targets that are actually defined in a GYP |
| 39 # GYP build but not dependencies of GYP's "all" (and so not actually built). | 39 # build but not dependencies of GYP's "all" (and so not actually built). |
| 40 # | 40 # |
| 41 # "gn_visibility": targets that are normally not visible to top-level targets, | 41 # "gn_visibility": targets that are normally not visible to top-level targets, |
| 42 # but are built anyway by "all". Since we don't want any such targets, we | 42 # but are built anyway by "all". Since we don't want any such targets, we have |
| 43 # have this placeholder to make sure hidden targets that aren't otherwise | 43 # this placeholder to make sure hidden targets that aren't otherwise depended |
| 44 # depended on yet are accounted for. | 44 # on yet are accounted for. |
| 45 # |
| 46 # "All" is an alias for "gn_all". It exists for bot compatibility w/ GYP for |
| 47 # the iOS bots, but should not be generally used during the GYP->GN migration. |
| 48 # We cannot guarantee that GN's "All" builds the same set of targets as GYP's |
| 49 # "All" does, because GYP's "All" supports wildcards. |
| 50 # |
| 51 # Lastly, none of these targets are guaranteed to be the same as what ninja |
| 52 # will build with "all". For more on how "all" works and the differences in how |
| 53 # GYP and GN determine "all", see crbug.com/503241. |
| 45 # | 54 # |
| 46 # TODO(GYP): crbug.com/481694. Make sure that the above is true and there are | 55 # TODO(GYP): crbug.com/481694. Make sure that the above is true and there are |
| 47 # scripts run on the bots that enforce this. Once the GYP migration is over, | 56 # scripts run on the bots that enforce this. Once the GYP migration is over, we |
| 48 # we can collapse all of these targets as desired. | 57 # can collapse all of these targets as desired. |
| 49 | 58 |
| 50 group("gn_all") { | 59 group("gn_all") { |
| 51 testonly = true | 60 testonly = true |
| 52 | 61 |
| 53 deps = [ | 62 deps = [ |
| 54 ":both_gn_and_gyp", | 63 ":both_gn_and_gyp", |
| 55 ":gn_only", | 64 ":gn_only", |
| 56 ":gn_visibility", | 65 ":gn_visibility", |
| 57 ] | 66 ] |
| 58 } | 67 } |
| 59 | 68 |
| 69 # TODO(GYP): This target exists for compatibility with GYP, specifically |
| 70 # for the iOS bots. We should update the iOS bots to not pass 'All'. |
| 71 group("All") { |
| 72 testonly = true |
| 73 |
| 74 deps = [ |
| 75 ":gn_all", |
| 76 ] |
| 77 } |
| 78 |
| 60 # The "both_gn_and_gyp" target should reflect every target that is built | 79 # The "both_gn_and_gyp" target should reflect every target that is built |
| 61 # in both the GN and GYP builds, and ideally it should match the | 80 # in both the GN and GYP builds, and ideally it should match the |
| 62 # "both_gn_and_gyp" target in build/gn_migration.gypi line-for-line. | 81 # "both_gn_and_gyp" target in build/gn_migration.gypi line-for-line. |
| 63 # | 82 # |
| 64 # TODO(GYP): Add build steps that check and enforce this on the bots. | 83 # TODO(GYP): Add build steps that check and enforce this on the bots. |
| 65 group("both_gn_and_gyp") { | 84 group("both_gn_and_gyp") { |
| 66 testonly = true | 85 testonly = true |
| 67 deps = [ | 86 deps = [ |
| 68 "//base:base_unittests", | 87 "//base:base_unittests", |
| 69 "//chrome/installer", | 88 "//chrome/installer", |
| (...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 798 if (target_cpu == "x86") { | 817 if (target_cpu == "x86") { |
| 799 deps += [ | 818 deps += [ |
| 800 # "//content/shell:crash_service_win64", TODO(GYP): crbug.com/537009 | 819 # "//content/shell:crash_service_win64", TODO(GYP): crbug.com/537009 |
| 801 ] | 820 ] |
| 802 } | 821 } |
| 803 } else { | 822 } else { |
| 804 deps += [ "//breakpad:minidump_stackwalk($host_toolchain)" ] | 823 deps += [ "//breakpad:minidump_stackwalk($host_toolchain)" ] |
| 805 } | 824 } |
| 806 } | 825 } |
| 807 } | 826 } |
| OLD | NEW |