https://git.reactos.org/?p=reactos.git;a=commitdiff;h=04d0d95b8a0d28a44afe448fb278ce5e8bf57327

commit 04d0d95b8a0d28a44afe448fb278ce5e8bf57327
Author:     Jérôme Gardou <jerome.gar...@reactos.org>
AuthorDate: Tue Mar 17 11:53:18 2020 +0000
Commit:     Jérôme Gardou <zefk...@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": []
+        },
+    ],
+}

Reply via email to