Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加运行参数配置set_runargs #2527

Closed
Domain opened this issue Jul 4, 2022 · 9 comments
Closed

增加运行参数配置set_runargs #2527

Domain opened this issue Jul 4, 2022 · 9 comments

Comments

@Domain
Copy link
Contributor

Domain commented Jul 4, 2022

你在什么场景下需要该功能?

不同的target需要不同的参数,每次都需要手动输入太麻烦,写在on_run里面也不够方便

描述可能的解决方案

希望能够增加set_runargs接口,里面配置运行参数,同时生成的工程文件也应该支持调试参数

描述你认为的候选方案

No response

其他信息

No response

@waruqi waruqi added this to the v2.6.9 milestone Jul 4, 2022
@waruqi
Copy link
Member

waruqi commented Jul 4, 2022

支持了

@waruqi waruqi closed this as completed Jul 4, 2022
@ysystudio
Copy link

我在windows上使用vs code + xmake插件 ,远程到wsl2的ubuntu(xmake 2.73),发现set_runargs有两个问题:
1, run时, 参数里相同的项会被滤掉,比如 ‘a‘ ,’b' , 'b',‘c' 传递main里变成‘a’,‘b',’c'
2, debug时 , 同样的set_runargs设置,参数传不到main函数里

@waruqi
Copy link
Member

waruqi commented Nov 11, 2022

1, run时, 参数里相同的项会被滤掉,比如 ‘a‘ ,’b' , 'b',‘c' 传递main里变成‘a’,‘b',’c'
2, debug时 , 同样的set_runargs设置,参数传不到main函数里

set_runargs 主要是给 xmake run 用的,去重暂时改进不了,插件里面可以用

        "xmake.runningTargetsArguments": {
          "type": "object",
          "default": {
            "default": []
          },
          "description": "The Running Targets Arguments, .e.g {\"targetName\": [\"args\", \"...\"]}"
        },
        "xmake.debuggingTargetsArguments": {
          "type": "object",
          "default": {
            "default": []
          },
          "description": "The Debugging Targets Arguments, .e.g {\"targetName\": [\"args\", \"...\"]}"
        },

@ysystudio
Copy link

哇,回复好快,谢谢。xmake对c等编译语言的大统一真是超级赞,最近入手想debug一个程序折腾了好几天没把参数传进去,O(∩_∩)O。试了一下runningTargetsArguments用下面的写法可以正确传参数,但是debuggingTargetsArguments同样写法还是穿不进参数:
"xmake.runningTargetsArguments": {
"type": "object", //好像跟传数没有关系,可以不写
"default": {
"default": []
},
#下面targetname 换成编译出来的可执行程序的文件名
"targetName": [
"args1",
"args2"
// 其他参数...
]
},

@waruqi
Copy link
Member

waruqi commented Nov 11, 2022

看下 xmake-io/xmake-vscode#2

@ysystudio
Copy link

搞定,debuggingTargetsArguments的参数必须填到default里。

@wangzhankun
Copy link
Contributor

请问这个配置要写到哪个文件呀?

@wangzhankun
Copy link
Contributor

wangzhankun commented Dec 6, 2022

  • xmake v2.7.3
    我在.vscode/setting.json中添加的配置文件如下:
{
    "xmake.runningTargetsArguments": {
        "type": "object",
        "loader_demo": [
            "/usr/bin/ls"
        ]
    },
    "xmake.debuggingTargetsArguments": {
        "type": "object",
        "loader_demo": [
            "/usr/bin/ls"
        ]
    }
}

但是仍然没有把参数传递进去。

    if(argc < 2){
        printf("usage: %s <binary>\n", argv[0]);
        return 1;
    }

在这里运行退出了。
改成如下的配置文件仍然无法传参:

{
    "xmake.runningTargetsArguments": {
        "type": "object",
        "default": {
            "loader_demo": [
                "/usr/bin/ls"
            ]
        }
    },
    "xmake.debuggingTargetsArguments": {
        "type": "object",
        "default": {
            "loader_demo": [
                "/usr/bin/ls"
            ]
        }
    }
}

@wangzhankun
Copy link
Contributor

搞懂了,配置文件写在.vscode/settings.json中,格式如下:

{
    "xmake.runningTargetsArguments": {
        "type": "object",
        "targetName": [
            "arg1",
            "arg2"
        ]
    },
    "xmake.debuggingTargetsArguments": {
        "targetName": [
            "arg1",
            "arg2"
        ]
    }
}

要想运行成功必须在插件的侧边栏,用鼠标选择对应的target,然后右键,点击运行或者调试。
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants