Reactos

[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.

authored by

Jérôme Gardou and committed by
Jérôme Gardou
04d0d95b 45b5ec8e

+171
+23
.gitpod.Dockerfile
··· 1 + FROM gitpod/workspace-full-vnc 2 + 3 + USER gitpod 4 + 5 + # Install custom tools, runtime, etc. using apt-get 6 + # For example, the command below would install "bastet" - a command line tetris clone: 7 + # 8 + # RUN sudo apt-get -q update && # sudo apt-get install -yq bastet && # sudo rm -rf /var/lib/apt/lists/* 9 + # 10 + # More information: https://www.gitpod.io/docs/config-docker/ 11 + RUN sudo apt-get -q update && \ 12 + sudo apt-get -yq upgrade && \ 13 + sudo apt-get -yq install qemu-system-x86 qemu-utils gdb-mingw-w64 && \ 14 + sudo rm -rf /var/lib/apt/lists/* 15 + 16 + RUN wget https://svn.reactos.org/amine/RosBEBinFull.tar.gz && \ 17 + sudo tar -xzf RosBEBinFull.tar.gz -C /usr/local && \ 18 + sudo mv /usr/local/RosBEBinFull /usr/local/RosBE && \ 19 + rm -f RosBEBinFull.tar.gz 20 + 21 + RUN echo 'export PATH=/usr/local/RosBE/i386/bin:$PATH' >> /home/gitpod/.profile 22 + 23 + RUN qemu-img create -f qcow2 reactos_hdd.qcow 10G
+18
.gitpod.yml
··· 1 + tasks: 2 + - before: > 3 + brew install cmake ninja 4 + init: > 5 + mkdir -p /workspace/reactos/build && 6 + cd /workspace/reactos/build && 7 + 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" && 8 + ninja xdk psdk 9 + command: > 10 + cd /workspace/reactos/build && 11 + ninja all 12 + 13 + image: 14 + file: .gitpod.Dockerfile 15 + 16 + vscode: 17 + extensions: 18 + - ms-vscode.cpptools@0.27.0-insiders3:Djj3Csw0GXjmueWAPWvTsg==
+29
.theia/launch.json
··· 1 + { 2 + // Use IntelliSense to learn about possible attributes. 3 + // Hover to view descriptions of existing attributes. 4 + "version": "0.2.0", 5 + "configurations": [ 6 + { 7 + "type": "cppdbg", 8 + "request": "launch", 9 + "name": "livecd (qemu)", 10 + "preLaunchTask": "launch livecd", 11 + "miDebuggerServerAddress": "localhost:9091", 12 + "miDebuggerArgs": "-l 15 -ex 'set sysroot ${workspaceRoot}/build/symbols'", 13 + "program": "${workspaceRoot}/build/ntoskrnl/ntoskrnl.exe", 14 + "cwd": "${workspaceRoot}/build", 15 + "miDebuggerPath": "i686-w64-mingw32-gdb" 16 + }, 17 + { 18 + "type": "cppdbg", 19 + "request": "launch", 20 + "name": "bootcd (qemu)", 21 + "preLaunchTask": "launch bootcd", 22 + "miDebuggerServerAddress": "localhost:9091", 23 + "miDebuggerArgs": "-l 15 -ex 'set sysroot ${workspaceRoot}/build/symbols'", 24 + "program": "${workspaceRoot}/build/ntoskrnl/ntoskrnl.exe", 25 + "cwd": "${workspaceRoot}/build", 26 + "miDebuggerPath": "i686-w64-mingw32-gdb" 27 + } 28 + ] 29 + }
+10
.theia/settings.json
··· 1 + { 2 + "cpp.buildConfigurations": [ 3 + { 4 + "name": "build", 5 + "directory": "${workspaceFolder}/build" 6 + } 7 + ], 8 + "cpp.clangdArgs": "--background-index", 9 + "C_Cpp.intelliSenseEngine": "Disabled", 10 + }
+91
.theia/tasks.json
··· 1 + { 2 + // See https://go.microsoft.com/fwlink/?LinkId=733558 3 + // for the documentation about the tasks.json format 4 + "version": "2.0.0", 5 + "tasks": [ 6 + { 7 + "label": "build livecd", 8 + "type": "shell", 9 + "command": "ninja livecd", 10 + "options": { 11 + "cwd": "${workspaceFolder}/build" 12 + }, 13 + "group": "build", 14 + "problemMatcher": [ 15 + { 16 + "owner": "cpp", 17 + "fileLocation": ["relative", "${workspaceFolder}/build"], 18 + "pattern": { 19 + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 20 + "file": 1, 21 + "line": 2, 22 + "column": 3, 23 + "severity": 4, 24 + "message": 5 25 + } 26 + } 27 + ] 28 + }, 29 + { 30 + "label": "build bootcd", 31 + "type": "shell", 32 + "command": "ninja bootcd", 33 + "options": { 34 + "cwd": "${workspaceFolder}/build" 35 + }, 36 + "group": "build", 37 + "problemMatcher": [ 38 + { 39 + "base": "$gcc", 40 + "fileLocation": ["relative", "${workspaceFolder}/build"], 41 + }, 42 + ] 43 + }, 44 + { 45 + "label": "launch livecd", 46 + "type": "process", 47 + "options": { 48 + "cwd": "${workspaceFolder}/build" 49 + }, 50 + "dependsOn": [ 51 + "build livecd" 52 + ], 53 + "dependsOrder": "sequence", 54 + "command": "qemu-system-i386", 55 + "args": [ 56 + "-cdrom", "livecd.iso", 57 + "-chardev", "socket,port=9091,host=localhost,server,nowait,id=char0", 58 + "-serial", "chardev:char0", 59 + "-nic", "user,model=e1000", 60 + "-boot", "d", 61 + "-chardev", "socket,path=/tmp/livecd_dbg,server,nowait,id=char1", "-serial", "chardev:char1", 62 + "-daemonize" 63 + ], 64 + "problemMatcher": [] 65 + }, 66 + { 67 + "label": "launch bootcd", 68 + "type": "process", 69 + "options": { 70 + "cwd": "${workspaceFolder}/build" 71 + }, 72 + "dependsOn": [ 73 + "build bootcd" 74 + ], 75 + "dependsOrder": "sequence", 76 + "command": "qemu-system-i386", 77 + "args": [ 78 + "-cdrom", "bootcd.iso", 79 + "-hda", "${env:HOME}/reactos_hdd.qcow", 80 + "-boot", "d", 81 + "-m", "1024", 82 + "-chardev", "socket,port=9091,host=localhost,server,nowait,id=char0", 83 + "-serial", "chardev:char0", 84 + "-nic", "user,model=e1000", 85 + "-chardev", "socket,path=/tmp/bootcd_dbg,server,nowait,id=char1", "-serial", "chardev:char1", 86 + "-daemonize" 87 + ], 88 + "problemMatcher": [] 89 + }, 90 + ], 91 + }