https://git.reactos.org/?p=reactos.git;a=commitdiff;h=04d0d95b8a0d28a44afe4…
commit 04d0d95b8a0d28a44afe448fb278ce5e8bf57327
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Tue Mar 17 11:53:18 2020 +0000
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Thu Apr 2 18:03:18 2020 +0200
[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.
---
.gitpod.Dockerfile | 23 +++++++++++++
.gitpod.yml | 18 +++++++++++
.theia/launch.json | 29 +++++++++++++++++
.theia/settings.json | 10 ++++++
.theia/tasks.json | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 171 insertions(+)
diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
new file mode 100644
index 00000000000..5e090eb7cdf
--- /dev/null
+++ b/.gitpod.Dockerfile
@@ -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
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 00000000000..9eb9fb144fc
--- /dev/null
+++ b/.gitpod.yml
@@ -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==
diff --git a/.theia/launch.json b/.theia/launch.json
new file mode 100644
index 00000000000..8a7abb7111b
--- /dev/null
+++ b/.theia/launch.json
@@ -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"
+ }
+ ]
+}
diff --git a/.theia/settings.json b/.theia/settings.json
new file mode 100644
index 00000000000..4f270f4945c
--- /dev/null
+++ b/.theia/settings.json
@@ -0,0 +1,10 @@
+{
+ "cpp.buildConfigurations": [
+ {
+ "name": "build",
+ "directory": "${workspaceFolder}/build"
+ }
+ ],
+ "cpp.clangdArgs": "--background-index",
+ "C_Cpp.intelliSenseEngine": "Disabled",
+}
diff --git a/.theia/tasks.json b/.theia/tasks.json
new file mode 100644
index 00000000000..58d78516f95
--- /dev/null
+++ b/.theia/tasks.json
@@ -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": []
+ },
+ ],
+}