不想看废话的话,直接上github:https://github.com/zhangping312/VSCode-Premake5-Example
环境搭建好了,是时候开始测试了,先在Windows上创建一个文件夹VSCode-Premake5-Example, 在VSCode-Premake5-Example创建Game/SFML/Souce目录。先来介绍下目录结构,Game是工程目录,SFML是项目目录, Source是代码目录。
在Game目录下, 输入cmd打开cmd窗口,或者shift+鼠标右键选择Open PowerShell window here(Win10),输入code .打开。也可以先打开VSCode再选择目录。建议使用命令行的方式打开,后面编译VS2019工程需要命令行来实现。
在敲代码之前,先得熟悉一些tasks,如果在官网学习了,可以跳过这些废话,直接看tasks.json文件,如果看得懂,请跳到下一篇。
在执行任务之前,需要先创建tasks.json文件,可以手动创建,但新手估计不熟悉目录结构,有可能会出问题。避免这种情况,可以在Terminal(终端)按钮下选择Run Task...(执行任务),也可以通过快捷键(Windows快捷键Ctrl + Shift + P, Mac快捷键Command + Shift + P),在弹出的窗口上选择Tasks: Run Task。
会弹出如下窗口,点击
会弹出如下窗口,继续点击
会弹出如下窗口,这次有选择了,选择Others,其实随便选都可以,反正都是要改tasks.json文件的
好了,在左侧窗口上看到新创建的tasks.json文件了。
截图中的tasks.json内容我是随便选的,现在改成如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "First task", //任务名称
"type": "shell", //任务类型
"command": "echo", //命令
"args": [ //命令参数
"Hello, World!"
]
}
]
}
接着继续按照上面的方法Run Task...(执行任务),会看到多出了个选项,点击执行,
会弹出如下窗口,继续点击
会看到下方弹出一个窗口,输出如下:
好了,你现在已经学会了tasks.json文件,感觉上面的参数,已经把该讲的都讲了,如果command没看懂,这就是需要补充cmd命令知识,不是VSCode的知识。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"dependsOn":[ // 任务依赖,在执行该任务前,需要先执行依赖任务
"Create Bin folder"
],
"label": "First task", // 任务名称
"type": "shell", // 任务类型
"group": "none", // 组, 只有3个选项"build", "test", "none", 感觉功能就是用来简化选择用的
// build组: 通过Tasks: Run Build Task选择, 也可以通过Tasks: Run Task选择
// test组: 通过Tasks: Run Test Task选择, 也可以通过Tasks: Run Task选择
// none组: 通过Tasks: Run Task选择,就是显示全部任务
"command": "echo", // 命令
"args": [ // 命令参数
"Hello, World!"
]
},
/
// # Creating
/
// ## Mac need to create bin folder
{
"label": "Create Bin folder",
"type": "shell",
"group": "none",
"windows":{ // Window命令
"command": "mkdir",
"args": [
"-p",
"bin/${input:buildProject}",
";", // PowerShell command, 不能用"&&"
"echo",
"Create BIN folder."
],
},
"osx": { // Mac命令
"command": "mkdir",
"args": [
"-p",
"bin/${input:buildProject}",
"&&",
"echo",
"Create BIN folder."
]
},
"options": {
"cwd": "${workspaceFolder}/../" // 指定当前的工作文件夹
},
},
/
// # Cleaning
/
// ## Clean build files
{
"label": "Clean Build folder",
"type": "shell",
"group": "none",
"windows": {
"command": "Remove-Item",
"args": [
"build",
"-Recurse",
"-Force",
"-Confirm:$false",
";",
"echo",
"Cleaning Build folder."
]
},
"osx": {
"command": "rm -r build && echo Cleaning Build folder."
},
"options": {
"cwd": "${workspaceFolder}/../"
},
},
// ## Clean bin files
{
"label": "Clean Bin folder",
"type": "shell",
"group": "none",
"windows": {
"command": "Remove-Item",
"args": [
"bin*",
"-Recurse",
"-Force",
"-Confirm:$false",
";",
"echo",
"Cleaning BIN folder."
]
},
"osx": {
"command": "rm -r bin* && echo Cleaning BIN folder."
},
"options": {
"cwd": "${workspaceFolder}/../"
},
}
],
"inputs": [
{
"id": "buildProject", // 标识
"description": "Select project to build:", // UI上的描述
"default": "SFML", // 默认值
"type": "pickString", // 类型,只有3个选项"promptString", "pickString", "command"
"options": ["SFML", "Test"] // 选项
}
]
}
现在我们来添加后面会用到的3个task,顺便修改了"First task"。"First task"添加了dependsOn和group,都有相关注释,不再介绍。dependsOn因为后面会在编译的时候需要用上,这次就一并介绍了。3个新的task主要功能就是创建bin文件夹和删除bin文件夹和build文件夹,重点关注windows和osx这两个值,这是指定在执行那个平台的命令,因为不同的平台命令是不一样的。电脑是Win10的,所以选择了PowerShell执行命令,没有选择CMD执行命令。可以选择默认的终端,Ctrl + Shift + P输入Shell,选择Terminal: Select Default Shell。
还有一个参数需要关注,这边将cwd(当前的工作文件夹)改成了"${workspaceFolder}/../",workspaceFolder表示的是当前工作目录,也就是现在的Game目录,"${workspaceFolder}/../"就表示与Game文件夹同级。主要是为了后期的管理方便,会动态创建3个文件夹build,bin,bin-int,这边解释一下,premake5会创建build目录,编译运行的时候,在Windows上也会创建bin和bin-int目录,但在Mac上不会创建bin目录,如果不先创建的话会导致第一次编译失败。
tasks下面还添加了inputs,这个其实就是控制输入用的,在"Create Bin folder"task任务中,有个命令参数是"bin/${input:buildProject}", 表示${input:buildProject}通过用户的输入来控制,看一眼下面的截图就明白了。
至此VSCode task需要用到的知识都介绍到了。以上的功能都可以在Windows和Mac上测试。