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 <algorithm> | 5 #include <algorithm> |
6 #include <limits> | 6 #include <limits> |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "tools/gn/err.h" | 9 #include "tools/gn/err.h" |
10 #include "tools/gn/functions.h" | 10 #include "tools/gn/functions.h" |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 // Note that we don't want to use MakeLabelForScope since that will include | 317 // Note that we don't want to use MakeLabelForScope since that will include |
318 // the toolchain name in the label, and toolchain labels don't themselves | 318 // the toolchain name in the label, and toolchain labels don't themselves |
319 // have toolchain names. | 319 // have toolchain names. |
320 const SourceDir& input_dir = scope->GetSourceDir(); | 320 const SourceDir& input_dir = scope->GetSourceDir(); |
321 Label label(input_dir, args[0].string_value()); | 321 Label label(input_dir, args[0].string_value()); |
322 if (g_scheduler->verbose_logging()) | 322 if (g_scheduler->verbose_logging()) |
323 g_scheduler->Log("Defining toolchain", label.GetUserVisibleName(false)); | 323 g_scheduler->Log("Defining toolchain", label.GetUserVisibleName(false)); |
324 | 324 |
325 // This object will actually be copied into the one owned by the toolchain | 325 // This object will actually be copied into the one owned by the toolchain |
326 // manager, but that has to be done in the lock. | 326 // manager, but that has to be done in the lock. |
327 scoped_ptr<Toolchain> toolchain(new Toolchain(scope->settings(), label)); | 327 std::unique_ptr<Toolchain> toolchain(new Toolchain(scope->settings(), label)); |
328 toolchain->set_defined_from(function); | 328 toolchain->set_defined_from(function); |
329 toolchain->visibility().SetPublic(); | 329 toolchain->visibility().SetPublic(); |
330 | 330 |
331 Scope block_scope(scope); | 331 Scope block_scope(scope); |
332 block_scope.SetProperty(&kToolchainPropertyKey, toolchain.get()); | 332 block_scope.SetProperty(&kToolchainPropertyKey, toolchain.get()); |
333 block->Execute(&block_scope, err); | 333 block->Execute(&block_scope, err); |
334 block_scope.SetProperty(&kToolchainPropertyKey, nullptr); | 334 block_scope.SetProperty(&kToolchainPropertyKey, nullptr); |
335 if (err->has_error()) | 335 if (err->has_error()) |
336 return Value(); | 336 return Value(); |
337 | 337 |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 subst_validator = &IsValidCopySubstitution; | 837 subst_validator = &IsValidCopySubstitution; |
838 subst_output_validator = &IsValidCopySubstitution; | 838 subst_output_validator = &IsValidCopySubstitution; |
839 } else if (tool_type == Toolchain::TYPE_COMPILE_XCASSETS) { | 839 } else if (tool_type == Toolchain::TYPE_COMPILE_XCASSETS) { |
840 subst_validator = &IsValidCompileXCassetsSubstitution; | 840 subst_validator = &IsValidCompileXCassetsSubstitution; |
841 subst_output_validator = &IsValidCompileXCassetsSubstitution; | 841 subst_output_validator = &IsValidCompileXCassetsSubstitution; |
842 } else { | 842 } else { |
843 subst_validator = &IsValidToolSubstitution; | 843 subst_validator = &IsValidToolSubstitution; |
844 subst_output_validator = &IsValidToolSubstitution; | 844 subst_output_validator = &IsValidToolSubstitution; |
845 } | 845 } |
846 | 846 |
847 scoped_ptr<Tool> tool(new Tool); | 847 std::unique_ptr<Tool> tool(new Tool); |
848 | 848 |
849 if (!ReadPattern(&block_scope, "command", subst_validator, tool.get(), | 849 if (!ReadPattern(&block_scope, "command", subst_validator, tool.get(), |
850 &Tool::set_command, err) || | 850 &Tool::set_command, err) || |
851 !ReadOutputExtension(&block_scope, tool.get(), err) || | 851 !ReadOutputExtension(&block_scope, tool.get(), err) || |
852 !ReadPattern(&block_scope, "depfile", subst_validator, tool.get(), | 852 !ReadPattern(&block_scope, "depfile", subst_validator, tool.get(), |
853 &Tool::set_depfile, err) || | 853 &Tool::set_depfile, err) || |
854 !ReadDepsFormat(&block_scope, tool.get(), err) || | 854 !ReadDepsFormat(&block_scope, tool.get(), err) || |
855 !ReadPattern(&block_scope, "description", subst_validator, tool.get(), | 855 !ReadPattern(&block_scope, "description", subst_validator, tool.get(), |
856 &Tool::set_description, err) || | 856 &Tool::set_description, err) || |
857 !ReadString(&block_scope, "lib_switch", tool.get(), &Tool::set_lib_switch, | 857 !ReadString(&block_scope, "lib_switch", tool.get(), &Tool::set_lib_switch, |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1013 return Value(); | 1013 return Value(); |
1014 | 1014 |
1015 Scope::KeyValueMap values; | 1015 Scope::KeyValueMap values; |
1016 block_scope.GetCurrentScopeValues(&values); | 1016 block_scope.GetCurrentScopeValues(&values); |
1017 toolchain->args() = values; | 1017 toolchain->args() = values; |
1018 | 1018 |
1019 return Value(); | 1019 return Value(); |
1020 } | 1020 } |
1021 | 1021 |
1022 } // namespace functions | 1022 } // namespace functions |
OLD | NEW |