Merge pull request #2409 from schellap/rcfg
Add runtimeconfig to corehost as well
This commit is contained in:
commit
49db7b246b
3 changed files with 15 additions and 6 deletions
|
@ -19,7 +19,7 @@ arguments_t::arguments_t() :
|
||||||
}
|
}
|
||||||
|
|
||||||
bool parse_arguments(const pal::string_t& deps_path, const std::vector<pal::string_t>& probe_paths, host_mode_t mode,
|
bool parse_arguments(const pal::string_t& deps_path, const std::vector<pal::string_t>& probe_paths, host_mode_t mode,
|
||||||
const int argc, const pal::char_t* argv[], arguments_t* arg_out)
|
const int argc, const pal::char_t* argv[], pal::string_t* runtime_config, arguments_t* arg_out)
|
||||||
{
|
{
|
||||||
arguments_t& args = *arg_out;
|
arguments_t& args = *arg_out;
|
||||||
// Get the full name of the application
|
// Get the full name of the application
|
||||||
|
@ -68,7 +68,7 @@ bool parse_arguments(const pal::string_t& deps_path, const std::vector<pal::stri
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unordered_map<pal::string_t, std::vector<pal::string_t>> opts;
|
std::unordered_map<pal::string_t, std::vector<pal::string_t>> opts;
|
||||||
std::vector<pal::string_t> known_opts = { _X("--depsfile"), _X("--additionalprobingpath") };
|
std::vector<pal::string_t> known_opts = { _X("--depsfile"), _X("--additionalprobingpath"), _X("--runtimeconfig") };
|
||||||
int num_args = 0;
|
int num_args = 0;
|
||||||
if (!parse_known_args(args.app_argc, args.app_argv, known_opts, &opts, &num_args))
|
if (!parse_known_args(args.app_argc, args.app_argv, known_opts, &opts, &num_args))
|
||||||
{
|
{
|
||||||
|
@ -79,7 +79,9 @@ bool parse_arguments(const pal::string_t& deps_path, const std::vector<pal::stri
|
||||||
args.app_argv += num_args;
|
args.app_argv += num_args;
|
||||||
pal::string_t opts_deps_file = _X("--depsfile");
|
pal::string_t opts_deps_file = _X("--depsfile");
|
||||||
pal::string_t opts_probe_path = _X("--additionalprobingpath");
|
pal::string_t opts_probe_path = _X("--additionalprobingpath");
|
||||||
|
pal::string_t opts_runtime_config = _X("--runtimeconfig");
|
||||||
pal::string_t deps_file = get_last_known_arg(opts, opts_deps_file, deps_path);
|
pal::string_t deps_file = get_last_known_arg(opts, opts_deps_file, deps_path);
|
||||||
|
*runtime_config = get_last_known_arg(opts, opts_runtime_config, _X(""));
|
||||||
if (opts.count(opts_probe_path))
|
if (opts.count(opts_probe_path))
|
||||||
{
|
{
|
||||||
for (const auto& str : opts[opts_probe_path])
|
for (const auto& str : opts[opts_probe_path])
|
||||||
|
|
|
@ -115,6 +115,6 @@ struct arguments_t
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool parse_arguments(const pal::string_t& deps_path, const std::vector<pal::string_t>& probe_paths, host_mode_t mode, const int argc, const pal::char_t* argv[], arguments_t* args);
|
bool parse_arguments(const pal::string_t& deps_path, const std::vector<pal::string_t>& probe_paths, host_mode_t mode, const int argc, const pal::char_t* argv[], pal::string_t* runtime_config, arguments_t* args);
|
||||||
|
|
||||||
#endif // ARGS_H
|
#endif // ARGS_H
|
||||||
|
|
|
@ -231,7 +231,8 @@ SHARED_API int corehost_main(const int argc, const pal::char_t* argv[])
|
||||||
|
|
||||||
// Take care of arguments
|
// Take care of arguments
|
||||||
arguments_t args;
|
arguments_t args;
|
||||||
if (!parse_arguments(g_init->deps_file(), g_init->probe_paths(), g_init->host_mode(), argc, argv, &args))
|
pal::string_t runtime_config;
|
||||||
|
if (!parse_arguments(g_init->deps_file(), g_init->probe_paths(), g_init->host_mode(), argc, argv, &runtime_config, &args))
|
||||||
{
|
{
|
||||||
return StatusCode::LibHostInvalidArgs;
|
return StatusCode::LibHostInvalidArgs;
|
||||||
}
|
}
|
||||||
|
@ -247,8 +248,14 @@ SHARED_API int corehost_main(const int argc, const pal::char_t* argv[])
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pal::string_t config_file, dev_config_file;
|
pal::string_t config_file, dev_config_file;
|
||||||
|
if (runtime_config.empty())
|
||||||
|
{
|
||||||
get_runtime_config_paths_from_app(args.managed_application, &config_file, &dev_config_file);
|
get_runtime_config_paths_from_app(args.managed_application, &config_file, &dev_config_file);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
get_runtime_config_paths_from_arg(runtime_config, &config_file, &dev_config_file);
|
||||||
|
}
|
||||||
runtime_config_t config(config_file, dev_config_file);
|
runtime_config_t config(config_file, dev_config_file);
|
||||||
|
|
||||||
if (!config.is_valid())
|
if (!config.is_valid())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue