[GITPOD]Add gitpod config

this commit adds support for Gitpod.io, a free automated
dev environment that makes contributing and generally working on GitHub
projects much easier. It allows anyone to start a ready-to-code dev
environment for any branch, issue and pull request with a single click.
This commit is contained in:
Jérôme Gardou 2020-03-17 11:53:18 +00:00 committed by Jérôme Gardou
parent 45b5ec8e7b
commit 04d0d95b8a
5 changed files with 171 additions and 0 deletions

23
.gitpod.Dockerfile vendored Normal file
View file

@ -0,0 +1,23 @@
FROM gitpod/workspace-full-vnc
USER gitpod
# Install custom tools, runtime, etc. using apt-get
# For example, the command below would install "bastet" - a command line tetris clone:
#
# RUN sudo apt-get -q update && # sudo apt-get install -yq bastet && # sudo rm -rf /var/lib/apt/lists/*
#
# More information: https://www.gitpod.io/docs/config-docker/
RUN sudo apt-get -q update && \
sudo apt-get -yq upgrade && \
sudo apt-get -yq install qemu-system-x86 qemu-utils gdb-mingw-w64 && \
sudo rm -rf /var/lib/apt/lists/*
RUN wget https://svn.reactos.org/amine/RosBEBinFull.tar.gz && \
sudo tar -xzf RosBEBinFull.tar.gz -C /usr/local && \
sudo mv /usr/local/RosBEBinFull /usr/local/RosBE && \
rm -f RosBEBinFull.tar.gz
RUN echo 'export PATH=/usr/local/RosBE/i386/bin:$PATH' >> /home/gitpod/.profile
RUN qemu-img create -f qcow2 reactos_hdd.qcow 10G

18
.gitpod.yml Normal file
View file

@ -0,0 +1,18 @@
tasks:
- before: >
brew install cmake ninja
init: >
mkdir -p /workspace/reactos/build &&
cd /workspace/reactos/build &&
cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DGDB:BOOL=TRUE -DSEPARATE_DBG:BOOL=TRUE -D_WINKD_:BOOL=TRUE -DKDBG:BOOL=FALSE -DENABLE_ROSTESTS:BOOL=TRUE -DCMAKE_TOOLCHAIN_FILE=toolchain-gcc.cmake -G "Ninja" &&
ninja xdk psdk
command: >
cd /workspace/reactos/build &&
ninja all
image:
file: .gitpod.Dockerfile
vscode:
extensions:
- ms-vscode.cpptools@0.27.0-insiders3:Djj3Csw0GXjmueWAPWvTsg==

29
.theia/launch.json Normal file
View file

@ -0,0 +1,29 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
"version": "0.2.0",
"configurations": [
{
"type": "cppdbg",
"request": "launch",
"name": "livecd (qemu)",
"preLaunchTask": "launch livecd",
"miDebuggerServerAddress": "localhost:9091",
"miDebuggerArgs": "-l 15 -ex 'set sysroot ${workspaceRoot}/build/symbols'",
"program": "${workspaceRoot}/build/ntoskrnl/ntoskrnl.exe",
"cwd": "${workspaceRoot}/build",
"miDebuggerPath": "i686-w64-mingw32-gdb"
},
{
"type": "cppdbg",
"request": "launch",
"name": "bootcd (qemu)",
"preLaunchTask": "launch bootcd",
"miDebuggerServerAddress": "localhost:9091",
"miDebuggerArgs": "-l 15 -ex 'set sysroot ${workspaceRoot}/build/symbols'",
"program": "${workspaceRoot}/build/ntoskrnl/ntoskrnl.exe",
"cwd": "${workspaceRoot}/build",
"miDebuggerPath": "i686-w64-mingw32-gdb"
}
]
}

10
.theia/settings.json Normal file
View file

@ -0,0 +1,10 @@
{
"cpp.buildConfigurations": [
{
"name": "build",
"directory": "${workspaceFolder}/build"
}
],
"cpp.clangdArgs": "--background-index",
"C_Cpp.intelliSenseEngine": "Disabled",
}

91
.theia/tasks.json Normal file
View file

@ -0,0 +1,91 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build livecd",
"type": "shell",
"command": "ninja livecd",
"options": {
"cwd": "${workspaceFolder}/build"
},
"group": "build",
"problemMatcher": [
{
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}/build"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
]
},
{
"label": "build bootcd",
"type": "shell",
"command": "ninja bootcd",
"options": {
"cwd": "${workspaceFolder}/build"
},
"group": "build",
"problemMatcher": [
{
"base": "$gcc",
"fileLocation": ["relative", "${workspaceFolder}/build"],
},
]
},
{
"label": "launch livecd",
"type": "process",
"options": {
"cwd": "${workspaceFolder}/build"
},
"dependsOn": [
"build livecd"
],
"dependsOrder": "sequence",
"command": "qemu-system-i386",
"args": [
"-cdrom", "livecd.iso",
"-chardev", "socket,port=9091,host=localhost,server,nowait,id=char0",
"-serial", "chardev:char0",
"-nic", "user,model=e1000",
"-boot", "d",
"-chardev", "socket,path=/tmp/livecd_dbg,server,nowait,id=char1", "-serial", "chardev:char1",
"-daemonize"
],
"problemMatcher": []
},
{
"label": "launch bootcd",
"type": "process",
"options": {
"cwd": "${workspaceFolder}/build"
},
"dependsOn": [
"build bootcd"
],
"dependsOrder": "sequence",
"command": "qemu-system-i386",
"args": [
"-cdrom", "bootcd.iso",
"-hda", "${env:HOME}/reactos_hdd.qcow",
"-boot", "d",
"-m", "1024",
"-chardev", "socket,port=9091,host=localhost,server,nowait,id=char0",
"-serial", "chardev:char0",
"-nic", "user,model=e1000",
"-chardev", "socket,path=/tmp/bootcd_dbg,server,nowait,id=char1", "-serial", "chardev:char1",
"-daemonize"
],
"problemMatcher": []
},
],
}