Quantcast
Channel: Active questions tagged visual-studio-code - Stack Overflow
Viewing all articles
Browse latest Browse all 97327

Using a shell command as VSCode task variable value

$
0
0

I am trying to define a VSCode task in tasks.json that would adapt to the specific architecture where VSCode runs. To do this, I want to get the architecture as uname --m (e.g."aarch64" or "amd64"). My goal is to interpolate the output of uname into an environment variable like so

"version": "2.0.0",
"tasks": [
    {
        "label": "build",
        "type": "shell",
        "command": "cmake",
        "args": [
            "-DMYLIB_INCLUDE_DIR=$MYLIB/include",
            "-DMYLIB_LIBRARY=$MYLIB/lib"
        ],
        "options": {
            "env": {
                "MYLIB": "${workspaceFolder}/mylib/${command:get_arch}"
            }
        },
    }
]

In my case, I will have architecture-specific versions of mylib under mylib/aarch64, mylib/amd64, etc.

My attempt so far as been to define a second get_arch task used in the environment definition of MYLIB, that simply runs uname.

{
    "label": "get_arch",
    "type": "shell",
    "command": "uname --m"
}

Of course, this task is not a proper command and so it isn't detected by VSCode and my build task fails. I checked out the documentation on variable substition, but they don't mention if it's possible to substitute a shell command. I guess this would be possible from within an extension, but I want to keep things as simple as possible.


Viewing all articles
Browse latest Browse all 97327

Trending Articles