| 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 #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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |