Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ReenigneArcher committed Oct 15, 2024
1 parent c9dd12f commit 5d48dce
Show file tree
Hide file tree
Showing 12 changed files with 381 additions and 2 deletions.
74 changes: 74 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
# This file is centrally managed in https://github.com/<organization>/.github/
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in
# the above-mentioned repo.

# Generated from CLion C/C++ Code Style settings
BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignOperands: Align
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlignTrailingComments: false
AlwaysBreakAfterReturnType: All
AlwaysBreakTemplateDeclarations: MultiLine
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterUnion: false
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: true
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
ColumnLimit: 0
CompactNamespaces: false
ContinuationIndentWidth: 2
IndentCaseLabels: true
IndentPPDirectives: BeforeHash
IndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PointerAlignment: Right
ReflowComments: true
SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 2
Cpp11BracedListStyle: false
UseTab: Never
23 changes: 23 additions & 0 deletions .codeql-prebuild-cpp-Linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# install dependencies for C++ analysis
set -e

# install dependencies
dependencies=(
"bison"
"build-essential"
"clang"
"cmake"
"flex"
"git"
"lld"
"llvm"
)
sudo apt-get update
sudo apt-get install --no-install-recommends -y "${dependencies[@]}"

# build
./third-party/nxdk/bin/activate
make

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
26 changes: 26 additions & 0 deletions .codeql-prebuild-cpp-Windows.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# install dependencies for C++ analysis
set -e

# update pacman
pacman --noconfirm -Syu

# install dependencies
dependencies=(
"make"
"cmake"
"git"
"bison"
"flex"
"mingw-w64-x86_64-gcc"
"mingw-w64-x86_64-llvm"
"mingw-w64-x86_64-clang"
"mingw-w64-x86_64-lld"
)
pacman -S --noconfirm "${dependencies[@]}"

# build
./third-party/nxdk/bin/activate
make

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
17 changes: 17 additions & 0 deletions .codeql-prebuild-cpp-macOS.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# install dependencies for C++ analysis
set -e

# install dependencies
dependencies=(
"cmake"
"coreutils"
"llvm"
)
brew install "${dependencies[@]}"

# build
./third-party/nxdk/bin/activate
make

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
159 changes: 159 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
---
name: CI

on:
pull_request:
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches:
- master

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
shell: "bash"
- os: ubuntu-latest
shell: "bash"
- os: windows-latest
shell: "msys2 {0}"

name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
defaults:
run:
shell: ${{ matrix.shell }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup Dependencies Linux
if: runner.os == 'Linux'
run: |
dependencies=(
"bison"
"build-essential"
"clang"
"cmake"
"flex"
"git"
"lld"
"llvm"
)
sudo apt-get update
sudo apt-get install --no-install-recommends -y "${dependencies[@]}"
- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
dependencies=(
"cmake"
"coreutils"
"llvm"
)
brew install "${dependencies[@]}"
- name: Setup Dependencies Windows
if: runner.os == 'Windows'
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
make
cmake
git
bison
flex
mingw-w64-x86_64-gcc
mingw-w64-x86_64-llvm
mingw-w64-x86_64-clang
mingw-w64-x86_64-lld
- name: Setup python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Python Path
id: python-path
run: |
if [ "${{ runner.os }}" = "Windows" ]; then
# replace backslashes with double backslashes
python_path=$(echo "${{ steps.setup-python.outputs.python-path }}" | sed 's/\\/\\\\/g')
else
python_path=${{ steps.setup-python.outputs.python-path }}
fi
# step output
echo "python-path=${python_path}"
echo "python-path=${python_path}" >> $GITHUB_OUTPUT
- name: Build
run: |
source ./third-party/nxdk/bin/activate
make
cd $GITHUB_WORKSPACE
ls -a build
- name: Run tests
id: test
if: false
working-directory: build/tests
run: |
./test_moonlight-xboxog --gtest_color=yes
- name: Generate gcov report
# any except canceled or skipped
if: always() && (steps.test.outcome == 'success' || steps.test.outcome == 'failure')
id: test_report
working-directory: build
run: |
${{ steps.python-path.outputs.python-path }} -m pip install gcovr
${{ steps.python-path.outputs.python-path }} -m gcovr . -r ../src \
--exclude-noncode-lines \
--exclude-throw-branches \
--exclude-unreachable-branches \
--verbose \
--xml-pretty \
-o coverage.xml
- name: Debug coverage file
if: >-
always() &&
steps.test_report.outcome == 'success'
run: |
cat build/coverage.xml
# todo: upload coverage in separate job similar to LizardByte/libdisplaydevice
- name: Upload coverage
# any except canceled or skipped
if: >-
always() &&
steps.test_report.outcome == 'success' &&
startsWith(github.repository, 'LizardByte/')
uses: codecov/codecov-action@v4
with:
disable_search: true
fail_ci_if_error: true
files: ./build/coverage.xml
flags: "${{ runner.os }}"
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
38 changes: 38 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# JetBrains IDE
.idea/

# VSCode IDE
.vscode/
8 changes: 8 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[submodule "third-party/moonlight-common-c"]
path = third-party/moonlight-common-c
url = https://github.com/moonlight-stream/moonlight-common-c.git
branch = master
[submodule "third-party/nxdk"]
path = third-party/nxdk
url = https://github.com/XboxDev/nxdk.git
branch = master
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
XBE_TITLE = Moonlight
OUTPUT_DIR = $(CURDIR)/build
GEN_XISO = $(XBE_TITLE).iso
SRCS = $(CURDIR)/src/main.cpp
NXDK_DIR ?= $(CURDIR)/third-party/nxdk
NXDK_CXX = y

include $(NXDK_DIR)/Makefile
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# template-base
Base repository template for LizardByte.
# Moonlight-XboxOG
Port of Moonlight for the Original Xbox. Unlikely to ever actually work. Do NOT use.
24 changes: 24 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include <hal/debug.h>
#include <hal/video.h>
#include <string>
#include <vector>
#include <windows.h>

int main(void) {
XVideoSetMode(640, 480, 32, REFRESH_DEFAULT);

std::vector<std::string> words;
words.emplace_back("Hello");
words.emplace_back(" ");
words.emplace_back("nxdk!");
words.emplace_back("\n");

while (true) {
for (auto& word : words) {
debugPrint("%s", word.c_str());
}
Sleep(2000);
}

return 0;
}
1 change: 1 addition & 0 deletions third-party/moonlight-common-c
Submodule moonlight-common-c added at 8599b6
1 change: 1 addition & 0 deletions third-party/nxdk
Submodule nxdk added at 56cdc3

0 comments on commit 5d48dce

Please sign in to comment.