ComplexBuild
Sublime Text插件,允许多用户创建更复杂的构建环境,包含多个命令和变量
详细信息
安装次数
- 总数 339
- Win 227
- Mac 57
- Linux 55
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
README
Sublime Text Complex Build插件
Sublime Text插件,允许多用户创建更复杂的构建环境,包含多个命令和变量。
此插件对于以下场景很有帮助:* 拥有多条您频繁调用的构建命令,如构建、清理、配置、运行* 拥有需要经常更改的不同参数的构建命令* 对构建系统的配置进行自定义,以满足您的需求
安装
使用包控制进行安装
- 打开Sublime Text的命令面板
- 选择包控制:安装包
- 选择ComplexBuild
示例使用
用户视角
假设我们有一个CMake项目。因此,以下操作将经常执行:* 配置构建系统* 构建所有* 清理* 运行构建的可执行文件
对于此项目,我们经常修改以下参数:* 模式(调试/发布/reldev)* 要构建的目标* 预传给CMake的附加配置参数* 构建时传递的附加参数* 执行时传递的运行参数
在这个练习结束时,我们期望构建菜单(Cmd+Shift+B或Ctrl+Shift+B)显示以下内容
选择“更改选项”应显示以下内容
用户可以更改这些选项;对于其中一些(例如模式、目标),用户需要从一组固定值中选择,而对于其他一些,用户可以输入相应的文本值。
设置正确参数后,用户可以 配置 项目,对选定的目标进行 构建 或 清理,或运行通过构建解决方案所生成的可执行程序。如果用户在构建命令遇到问题,总可以使用 打印构建变量 命令来打印所有定义的变量及其值。
实现上述方案
为了本例的目的,我们将使用每个项目的构建方案;同样的结果可以使用独立的 Sublime Text 构建方案 (.sublime-build 文件) 实现。
需要配置一些事情,每一条都在其所属的部分:* 包含构建菜单中条目的 build_systems
部分 * 描述构建选项的 ComplexBuild_options
部分 * 描述我们将用于构建的预定义值 ComplexBuild_values
* 作为项目设置的一部分的 ComplexBuild
,其中将存储用户选择的值
前三个部分可以放置在专门的 Sublime Text 构建方案中,但最后一个始终将存储在项目设置中。
build_system
部分
在我们的例子中,build_systems
部分应该配置如下
"build_systems":
[
{
"name": "Testability build",
"target": "complex_build_exec",
"target_cmd": "${cmdbuild}",
"target_dir": "${builddir}",
"variants":
[
{
"name": "Change Options",
"target": "complex_build_options"
},
{
"name": "Configure",
"target": "complex_build_exec",
"target_cmd": "${cmdconfigure}"
},
{
"name": "Clean",
"target": "complex_build_exec",
"target_cmd": "${cmdclean}"
},
{
"name": "Run",
"target": "complex_build_exec",
"target_cmd": "${cmdrun}",
"target_dir": "${rundir}"
},
{
"name": "Print build variables",
"target": "complex_build_print_vars"
}
]
}
],
ComplexBuild 定义了 3 个可以在构建系统中使用的命令:* complex_build_exec
– 在 target_dir
目录中执行给定的 target_cmd
命令 * complex_build_options
– 显示用户要配置的选项菜单 * complex_build_print_vars
– 打印当前可用的变量
我们注意到 complex_build_exec
的实际参数形式为 ${var_name}
。ComplexBuild 将这些替换为这些变量的配置值。这些变量的值可以在两个地方定义:作为构建值或用户指定的值
ComplexBuild_values
部分
在这里,用户定义了直接由构建系统使用且通常用户无法指定的变量/值。对于我们这个例子,我们有
"ComplexBuild_values":
{
"builddir": "${project_path}",
"rundir": "${project_path}",
"cmdconfigure": "/usr/local/bin/cmake ${configure_args} -DCMAKE_BUILD_TYPE=${mode}",
"cmdbuild": "make ${build_args} ${target}",
"cmdclean": "make clean",
"cmdrun": "${executable} ${run_args}"
},
我们定义了执行每个构建操作时实际要执行的命令,以及用于构建和运行应用程序的目录(在我们的例子中是项目路径)
ComplexBuild_options
部分
在本节中,我们定义了用户之间切换不同构建配置所展示的菜单。对于我们这个例子,我们可以有
"ComplexBuild_options":
[
{
"name": "Set mode",
"show": "${mode}",
"choices":
[
{
"name": "Debug",
"set":
{
"mode": "Debug"
}
},
{
"name": "RelDev",
"set":
{
"mode": "RelDev"
}
},
{
"name": "Release",
"set":
{
"mode": "Release"
}
}
]
},
{
"name": "Set target",
"show": "${executable}",
"choices":
[
{
"name": "testability",
"set":
{
"target": "mytest",
"executable": "./mytest"
}
},
{
"name": "perf_test",
"set":
{
"target": "perfTest",
"executable": "./perfTest"
}
}
]
},
{
"name": "Set configure args",
"show": "${configure_args}",
"edit_value": "configure_args"
},
{
"name": "Set build args",
"show": "${build_args}",
"edit_value": "build_args"
},
{
"name": "Set run args",
"show": "${run_args}",
"edit_value": "run_args"
}
],
我们可以配置两种类型的选项:选择,用户将看到下拉列表,或编辑值,用户将看到一个编辑字段,用户可以在其中输入选项。所有这些选项都有一个名称,并且在显示选项时可选地显示文本;此文本通常是可以更改的变量的值。
对于 edit_value
类型的选项,我们需要提供一个变量名称,用户输入的文本将被放入其中。选择可以允许更先进的值更改;对于用户可以有的每个选项,我们可以在一个 set
列表中设置一个或多个变量。例如,当我们在调试和发布构建之间切换时,我们可以启用/禁用不同的构建选项,这些选项存储在不同的变量中。
保存的选项
用户将通过 更改选项 菜单设置的值将作为项目设置(.sublime-project 文件的一部分)存储。对于我们的项目,一个可能的配置是
"settings":
{
"ComplexBuild":
{
"build_args": "-j4",
"configure_args": "-G \"Unix Makefiles\"",
"target": "mytest",
"executable": "./mytest",
"mode": "Release",
"run_args": ""
}
}
这将在用户通过 更改选项 菜单更改设置时被覆盖。这里显示的值将覆盖在 ComplexBuild_values
部分中设置的任何值。
通过这些简单的配置,人们可以构建越来越复杂的构建系统。我们可以有很多变量,可以从选项菜单中轻松配置,并将其作为实际构建命令的参数应用。
完整的 .sublime-project 文件(点击展开)
{
"ComplexBuild_options":
[
{
"name": "Set mode",
"show": "${mode}",
"choices":
[
{
"name": "Debug",
"set":
{
"mode": "Debug"
}
},
{
"name": "RelDev",
"set":
{
"mode": "RelDev"
}
},
{
"name": "Release",
"set":
{
"mode": "Release"
}
}
]
},
{
"name": "Set target",
"show": "${executable}",
"choices":
[
{
"name": "testability",
"set":
{
"target": "mytest",
"executable": "./mytest"
}
},
{
"name": "perf_test",
"set":
{
"target": "perfTest",
"executable": "./perfTest"
}
}
]
},
{
"name": "Set configure args",
"show": "${configure_args}",
"edit_value": "configure_args"
},
{
"name": "Set build args",
"show": "${build_args}",
"edit_value": "build_args"
},
{
"name": "Set run args",
"show": "${run_args}",
"edit_value": "run_args"
}
],
"ComplexBuild_values":
{
"builddir": "${project_path}",
"rundir": "${project_path}",
"cmdconfigure": "/usr/local/bin/cmake ${configure_args} -DCMAKE_BUILD_TYPE=${mode}",
"cmdbuild": "make ${build_args} ${target}",
"cmdclean": "make clean",
"cmdrun": "${executable} ${run_args}"
},
"build_systems":
[
{
"name": "Testability build",
"target": "complex_build_exec",
"target_cmd": "${cmdbuild}",
"target_dir": "${builddir}",
"variants":
[
{
"name": "Change Options",
"target": "complex_build_options"
},
{
"name": "Configure",
"target": "complex_build_exec",
"target_cmd": "${cmdconfigure}"
},
{
"name": "Clean",
"target": "complex_build_exec",
"target_cmd": "${cmdclean}"
},
{
"name": "Run",
"target": "complex_build_exec",
"target_cmd": "${cmdrun}",
"target_dir": "${rundir}"
},
{
"name": "Print build variables",
"target": "complex_build_print_vars"
}
]
}
],
"folders":
[
{
"path": "."
},
],
"settings":
{
"ComplexBuild":
{
"build_args": "-j4",
"configure_args": "-G \"Unix Makefiles\"",
"target": "mytest",
"executable": "./mytest",
"mode": "Release",
"run_args": ""
}
}
}
有用的快捷键
有了正确的键盘快捷键,这些构建自定义功能将更加有用,以简化对构建功能的访问。
我们建议将以下额外的键配置添加到键绑定中
{ "keys": ["f5"], "command": "build", "args": { "variant": "Run"} },
{ "keys": ["alt+f7"], "command": "complex_build_options"},
{ "keys": ["alt+b"], "command": "show_panel" , "args" : {"panel": "output.exec"} },
有了这些添加,以下快捷键可以用来与构建系统交互
键盘快捷键 | 含义 |
---|---|
Cmd+Shift+B(或Ctrl+Shift+B) | 显示构建菜单;通常用于选择 配置、清理 或主构建命令 |
F7 或 Cmd+B(或Ctrl+B) | 运行最后选择的构建命令 |
Alt+F7 | 允许轻松更改构建选项 |
F5 | 运行所选程序 |
Alt+B | 显示最后控制台输出 |