using namespace clover;
namespace {
+
+ std::string
+ build_options(const char *p_opts, const char *p_debug) {
+ auto opts = std::string(p_opts ? p_opts : "");
+ std::string extra_opts = debug_get_option(p_debug, "");
+
+ return detokenize(std::vector<std::string>{opts, extra_opts}, " ");
+ }
+
class build_notifier {
public:
build_notifier(cl_program prog,
auto &prog = obj(d_prog);
auto devs =
(d_devs ? objs(d_devs, num_devs) : ref_vector<device>(prog.devices()));
- const auto opts = std::string(p_opts ? p_opts : "") + " " +
- debug_get_option("CLOVER_EXTRA_BUILD_OPTIONS", "");
+ const auto opts = build_options(p_opts, "CLOVER_EXTRA_BUILD_OPTIONS");
validate_build_common(prog, num_devs, d_devs, pfn_notify, user_data);
auto &prog = obj(d_prog);
auto devs =
(d_devs ? objs(d_devs, num_devs) : ref_vector<device>(prog.devices()));
- const auto opts = std::string(p_opts ? p_opts : "") + " " +
- debug_get_option("CLOVER_EXTRA_COMPILE_OPTIONS", "");
+ const auto opts = build_options(p_opts, "CLOVER_EXTRA_COMPILE_OPTIONS");
header_map headers;
validate_build_common(prog, num_devs, d_devs, pfn_notify, user_data);
void (*pfn_notify) (cl_program, void *), void *user_data,
cl_int *r_errcode) try {
auto &ctx = obj(d_ctx);
- const auto opts = std::string(p_opts ? p_opts : "") + " " +
- debug_get_option("CLOVER_EXTRA_LINK_OPTIONS", "");
+ const auto opts = build_options(p_opts, "CLOVER_EXTRA_LINK_OPTIONS");
auto progs = objs(d_progs, num_progs);
auto all_devs =
(d_devs ? objs(d_devs, num_devs) : ref_vector<device>(ctx.devices()));