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

Side by Side Diff: tools/gn/test_with_scope.cc

Issue 1530183005: Special-case paths that appear in libs by not prefixing them with -l. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix typo in previous patch Created 5 years 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 | « tools/gn/target_unittest.cc ('k') | tools/gn/value_extractors.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "tools/gn/test_with_scope.h" 5 #include "tools/gn/test_with_scope.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "tools/gn/parser.h" 8 #include "tools/gn/parser.h"
9 #include "tools/gn/tokenizer.h" 9 #include "tools/gn/tokenizer.h"
10 10
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 objcxx_tool.get()); 77 objcxx_tool.get());
78 objcxx_tool->set_outputs(SubstitutionList::MakeForTest( 78 objcxx_tool->set_outputs(SubstitutionList::MakeForTest(
79 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o")); 79 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o"));
80 toolchain->SetTool(Toolchain::TYPE_OBJCXX, objcxx_tool.Pass()); 80 toolchain->SetTool(Toolchain::TYPE_OBJCXX, objcxx_tool.Pass());
81 81
82 // Don't use RC and ASM tools in unit tests yet. Add here if needed. 82 // Don't use RC and ASM tools in unit tests yet. Add here if needed.
83 83
84 // ALINK 84 // ALINK
85 scoped_ptr<Tool> alink_tool(new Tool); 85 scoped_ptr<Tool> alink_tool(new Tool);
86 SetCommandForTool("ar {{output}} {{source}}", alink_tool.get()); 86 SetCommandForTool("ar {{output}} {{source}}", alink_tool.get());
87 alink_tool->set_lib_switch("-l");
88 alink_tool->set_lib_dir_switch("-L");
87 alink_tool->set_output_prefix("lib"); 89 alink_tool->set_output_prefix("lib");
88 alink_tool->set_outputs(SubstitutionList::MakeForTest( 90 alink_tool->set_outputs(SubstitutionList::MakeForTest(
89 "{{target_out_dir}}/{{target_output_name}}.a")); 91 "{{target_out_dir}}/{{target_output_name}}.a"));
90 toolchain->SetTool(Toolchain::TYPE_ALINK, alink_tool.Pass()); 92 toolchain->SetTool(Toolchain::TYPE_ALINK, alink_tool.Pass());
91 93
92 // SOLINK 94 // SOLINK
93 scoped_ptr<Tool> solink_tool(new Tool); 95 scoped_ptr<Tool> solink_tool(new Tool);
94 SetCommandForTool("ld -shared -o {{target_output_name}}.so {{inputs}} " 96 SetCommandForTool("ld -shared -o {{target_output_name}}.so {{inputs}} "
95 "{{ldflags}} {{libs}}", solink_tool.get()); 97 "{{ldflags}} {{libs}}", solink_tool.get());
98 solink_tool->set_lib_switch("-l");
99 solink_tool->set_lib_dir_switch("-L");
96 solink_tool->set_output_prefix("lib"); 100 solink_tool->set_output_prefix("lib");
97 solink_tool->set_default_output_extension(".so"); 101 solink_tool->set_default_output_extension(".so");
98 solink_tool->set_outputs(SubstitutionList::MakeForTest( 102 solink_tool->set_outputs(SubstitutionList::MakeForTest(
99 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}")); 103 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}"));
100 toolchain->SetTool(Toolchain::TYPE_SOLINK, solink_tool.Pass()); 104 toolchain->SetTool(Toolchain::TYPE_SOLINK, solink_tool.Pass());
101 105
102 // SOLINK_MODULE 106 // SOLINK_MODULE
103 scoped_ptr<Tool> solink_module_tool(new Tool); 107 scoped_ptr<Tool> solink_module_tool(new Tool);
104 SetCommandForTool("ld -bundle -o {{target_output_name}}.so {{inputs}} " 108 SetCommandForTool("ld -bundle -o {{target_output_name}}.so {{inputs}} "
105 "{{ldflags}} {{libs}}", solink_module_tool.get()); 109 "{{ldflags}} {{libs}}", solink_module_tool.get());
110 solink_module_tool->set_lib_switch("-l");
111 solink_module_tool->set_lib_dir_switch("-L");
106 solink_module_tool->set_output_prefix("lib"); 112 solink_module_tool->set_output_prefix("lib");
107 solink_module_tool->set_default_output_extension(".so"); 113 solink_module_tool->set_default_output_extension(".so");
108 solink_module_tool->set_outputs(SubstitutionList::MakeForTest( 114 solink_module_tool->set_outputs(SubstitutionList::MakeForTest(
109 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}")); 115 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}"));
110 toolchain->SetTool(Toolchain::TYPE_SOLINK_MODULE, solink_module_tool.Pass()); 116 toolchain->SetTool(Toolchain::TYPE_SOLINK_MODULE, solink_module_tool.Pass());
111 117
112 // LINK 118 // LINK
113 scoped_ptr<Tool> link_tool(new Tool); 119 scoped_ptr<Tool> link_tool(new Tool);
114 SetCommandForTool("ld -o {{target_output_name}} {{source}} " 120 SetCommandForTool("ld -o {{target_output_name}} {{source}} "
115 "{{ldflags}} {{libs}}", link_tool.get()); 121 "{{ldflags}} {{libs}}", link_tool.get());
122 link_tool->set_lib_switch("-l");
123 link_tool->set_lib_dir_switch("-L");
116 link_tool->set_outputs(SubstitutionList::MakeForTest( 124 link_tool->set_outputs(SubstitutionList::MakeForTest(
117 "{{root_out_dir}}/{{target_output_name}}")); 125 "{{root_out_dir}}/{{target_output_name}}"));
118 toolchain->SetTool(Toolchain::TYPE_LINK, link_tool.Pass()); 126 toolchain->SetTool(Toolchain::TYPE_LINK, link_tool.Pass());
119 127
120 // STAMP 128 // STAMP
121 scoped_ptr<Tool> stamp_tool(new Tool); 129 scoped_ptr<Tool> stamp_tool(new Tool);
122 SetCommandForTool("touch {{output}}", stamp_tool.get()); 130 SetCommandForTool("touch {{output}}", stamp_tool.get());
123 toolchain->SetTool(Toolchain::TYPE_STAMP, stamp_tool.Pass()); 131 toolchain->SetTool(Toolchain::TYPE_STAMP, stamp_tool.Pass());
124 132
125 // COPY 133 // COPY
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 const std::string& label_string, 168 const std::string& label_string,
161 Target::OutputType type) 169 Target::OutputType type)
162 : Target(setup.settings(), setup.ParseLabel(label_string)) { 170 : Target(setup.settings(), setup.ParseLabel(label_string)) {
163 visibility().SetPublic(); 171 visibility().SetPublic();
164 set_output_type(type); 172 set_output_type(type);
165 SetToolchain(setup.toolchain()); 173 SetToolchain(setup.toolchain());
166 } 174 }
167 175
168 TestTarget::~TestTarget() { 176 TestTarget::~TestTarget() {
169 } 177 }
OLDNEW
« no previous file with comments | « tools/gn/target_unittest.cc ('k') | tools/gn/value_extractors.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698