Skip to content

Instantly share code, notes, and snippets.

@cpyarger
Last active January 23, 2022 03:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cpyarger/44cd85f4d88d53cb204e942f7f8fa8fd to your computer and use it in GitHub Desktop.
Save cpyarger/44cd85f4d88d53cb204e942f7f8fa8fd to your computer and use it in GitHub Desktop.
VSCode Workspace that is ready to take on obs-studio on ubuntu linux
{
"folders": [
{ "name": "root",
"path": "./"
},
{
"name":"obs-studio",
"path": "./obs-studio"
},
{ "name": "obs-midi",
"path": "./obs-studio/plugins/obs-midi"
},
],
"settings": {
"C_Cpp.default.includePath": [
"${workspaceFolder:root}/**",
"/usr/include/**"
],
"git.scanRepositories": [
"${workspaceFolder:obs-midi}",
]
},
"launch":{
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder:root}/obs-studio-portable/bin/64bit/obs",
"args": [],
"cwd": "${workspaceFolder:root}/obs-studio-portable/bin/64bit",
"stopAtEntry": false,
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"preLaunchTask": "Ubuntu Build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"visualizerFile": "/home/cpyarger/.config/Code/User/workspaceStorage/058f00a6654b57caf6ccef9abdff0020/tonka3000.qtvsctools/qt.natvis.xml"
}
]
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "Ubuntu Configure",
"type": "shell",
"dependsOn": [
"Prepare Ubuntu"
],
"command": [
"mkdir ${workspaceFolder:obs-studio}/build;",
"cd ${workspaceFolder:obs-studio}/build;",
"cmake -DUNIX_STRUCTURE=0 -DENABLE_PIPEWIRE=OFF -DCMAKE_INSTALL_PREFIX='${workspaceFolder:root}/obs-studio-portable' -DBUILD_BROWSER=ON -DCEF_ROOT_DIR='../../cef_binary_4280_linux64' ..;"
]
},
{
"label": "Ubuntu Build",
"dependsOn": [
"Ubuntu Configure"
],
"type": "shell",
"command": [
"cd ${workspaceFolder:obs-studio}/build;",
"make -j$(nproc);",
"make install"
],
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Prepare Ubuntu",
"type": "shell",
"options": {
"cwd": "${workspaceFolder:root}"
},
"dependsOn": [
"Install Extentions"
],
"command": [
"FILE=./cef_binary_4280_linux64.tar.bz2 ;",
"if [ -f \"$FILE\" ]; then echo 'Already Prepared Ubuntu' ; else ",
"pkexec apt-get install build-essential checkinstall cmake git libmbedtls-dev libasound2-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libcurl4-openssl-dev libfdk-aac-dev libfontconfig-dev libfreetype6-dev libgl1-mesa-dev libjack-jackd2-dev libjansson-dev libluajit-5.1-dev libpulse-dev libqt5x11extras5-dev libspeexdsp-dev libswresample-dev libswscale-dev libudev-dev libv4l-dev libvlc-dev libwayland-dev libx11-dev libx264-dev libxcb-shm0-dev libxcb-xinerama0-dev libxcomposite-dev libxinerama-dev pkg-config python3-dev qtbase5-dev qtbase5-private-dev libqt5svg5-dev swig libxcb-randr0-dev libxcb-xfixes0-dev libx11-xcb-dev libxcb1-dev libxss-dev libnss3-dev ;",
"wget https://cdn-fastly.obsproject.com/downloads/cef_binary_4280_linux64.tar.bz2 ;",
"tar -xjf ./cef_binary_4280_linux64.tar.bz2 ;",
"git clone --recursive https://github.com/obsproject/obs-studio.git ;",
"cd obs-studio ;",
"mkdir build && cd build ;",
"fi"
],
"problemMatcher": []
},
{
"label": "Add OBS-MIDI",
"type": "shell",
"command": [
"if ! grep -q obs-midi ${workspaceFolder:obs-studio}/.git/info/exclude; then ",
"touch ${workspaceFolder:obs-studio}/.git/info/exclude ;",
"echo plugins/obs-midi >> ${workspaceFolder:obs-studio}/.git/info/exclude ;",
"echo plugins/CMakeLists.txt >> ${workspaceFolder:obs-studio}/.git/info/exclude ;",
"cd ${workspaceFolder:obs-studio}/plugins ;",
"git clone --recursive https://github.com/cpyarger/obs-midi.git ;",
"echo 'add_subdirectory(obs-midi)'>>CMakeLists.txt ;",
"else echo 'OBS-MIDI is already added';",
"fi"
],
"problemMatcher": []
},
{
"label": "Install Extentions",
"type": "shell",
"command": [
"code --install-extension ms-vscode.cpptools ;",
"code --install-extension ms-vscode.cmake-tools",
"code --install-extension ms-vscode.cpptools-extension-pack",
"code --install-extension tonka3000.qtvsctools",
"code --install-extension twxs.cmake",
"code --install-extension ms-vscode.cpptools-themes",
"code --install-extension jeff-hykin.better-cpp-syntax",
"code --install-extension lextudio.restructuredtext"
],
"problemMatcher": []
},
{
"label": "Setup OBS-MIDI and OBS Studio",
"type": "shell",
"dependsOn": [
"Prepare Ubuntu",
"Add OBS-MIDI"
],
"command": [],
"problemMatcher": []
}
]
},
}
@cpyarger
Copy link
Author

cpyarger commented Mar 3, 2021

So, Had issues getting the "folders" section to understand environment variables, so for now, to

  • use place this file in your home directory
  • open workspace file in vscode
  • type CTRL+P
  • type task Prepare Ubuntu
  • press F5 to build and launch

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