Skip to content

Commit e7e242f

Browse files
committed
Initial Setup
Initial code draft for binding Kuzu to Godot.
0 parents  commit e7e242f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+12087
-0
lines changed

.clang-format

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# Commented out parameters are those with the same value as base LLVM style.
2+
# We can uncomment them if we want to change their value, or enforce the
3+
# chosen value in case the base style changes (last sync: Clang 14.0).
4+
---
5+
### General config, applies to all languages ###
6+
BasedOnStyle: LLVM
7+
AccessModifierOffset: -4
8+
AlignAfterOpenBracket: DontAlign
9+
# AlignArrayOfStructures: None
10+
# AlignConsecutiveMacros: None
11+
# AlignConsecutiveAssignments: None
12+
# AlignConsecutiveBitFields: None
13+
# AlignConsecutiveDeclarations: None
14+
# AlignEscapedNewlines: Right
15+
AlignOperands: DontAlign
16+
AlignTrailingComments: false
17+
# AllowAllArgumentsOnNextLine: true
18+
AllowAllParametersOfDeclarationOnNextLine: false
19+
# AllowShortEnumsOnASingleLine: true
20+
# AllowShortBlocksOnASingleLine: Never
21+
# AllowShortCaseLabelsOnASingleLine: false
22+
# AllowShortFunctionsOnASingleLine: All
23+
# AllowShortLambdasOnASingleLine: All
24+
# AllowShortIfStatementsOnASingleLine: Never
25+
# AllowShortLoopsOnASingleLine: false
26+
# AlwaysBreakAfterDefinitionReturnType: None
27+
# AlwaysBreakAfterReturnType: None
28+
# AlwaysBreakBeforeMultilineStrings: false
29+
# AlwaysBreakTemplateDeclarations: MultiLine
30+
# AttributeMacros:
31+
# - __capability
32+
# BinPackArguments: true
33+
# BinPackParameters: true
34+
# BraceWrapping:
35+
# AfterCaseLabel: false
36+
# AfterClass: false
37+
# AfterControlStatement: Never
38+
# AfterEnum: false
39+
# AfterFunction: false
40+
# AfterNamespace: false
41+
# AfterObjCDeclaration: false
42+
# AfterStruct: false
43+
# AfterUnion: false
44+
# AfterExternBlock: false
45+
# BeforeCatch: false
46+
# BeforeElse: false
47+
# BeforeLambdaBody: false
48+
# BeforeWhile: false
49+
# IndentBraces: false
50+
# SplitEmptyFunction: true
51+
# SplitEmptyRecord: true
52+
# SplitEmptyNamespace: true
53+
# BreakBeforeBinaryOperators: None
54+
# BreakBeforeConceptDeclarations: true
55+
# BreakBeforeBraces: Attach
56+
# BreakBeforeInheritanceComma: false
57+
# BreakInheritanceList: BeforeColon
58+
# BreakBeforeTernaryOperators: true
59+
# BreakConstructorInitializersBeforeComma: false
60+
BreakConstructorInitializers: AfterColon
61+
# BreakStringLiterals: true
62+
ColumnLimit: 0
63+
# CommentPragmas: '^ IWYU pragma:'
64+
# QualifierAlignment: Leave
65+
# CompactNamespaces: false
66+
ConstructorInitializerIndentWidth: 8
67+
ContinuationIndentWidth: 8
68+
Cpp11BracedListStyle: false
69+
# DeriveLineEnding: true
70+
# DerivePointerAlignment: false
71+
# DisableFormat: false
72+
# EmptyLineAfterAccessModifier: Never
73+
# EmptyLineBeforeAccessModifier: LogicalBlock
74+
# ExperimentalAutoDetectBinPacking: false
75+
# PackConstructorInitializers: BinPack
76+
ConstructorInitializerAllOnOneLineOrOnePerLine: true
77+
# AllowAllConstructorInitializersOnNextLine: true
78+
# FixNamespaceComments: true
79+
# ForEachMacros:
80+
# - foreach
81+
# - Q_FOREACH
82+
# - BOOST_FOREACH
83+
# IfMacros:
84+
# - KJ_IF_MAYBE
85+
# IncludeBlocks: Preserve
86+
IncludeCategories:
87+
- Regex: '".*"'
88+
Priority: 1
89+
- Regex: '^<.*\.h>'
90+
Priority: 2
91+
- Regex: '^<.*'
92+
Priority: 3
93+
# IncludeIsMainRegex: '(Test)?$'
94+
# IncludeIsMainSourceRegex: ''
95+
# IndentAccessModifiers: false
96+
IndentCaseLabels: true
97+
# IndentCaseBlocks: false
98+
# IndentGotoLabels: true
99+
# IndentPPDirectives: None
100+
# IndentExternBlock: AfterExternBlock
101+
# IndentRequires: false
102+
IndentWidth: 4
103+
# IndentWrappedFunctionNames: false
104+
# InsertTrailingCommas: None
105+
# JavaScriptQuotes: Leave
106+
# JavaScriptWrapImports: true
107+
KeepEmptyLinesAtTheStartOfBlocks: false
108+
# LambdaBodyIndentation: Signature
109+
# MacroBlockBegin: ''
110+
# MacroBlockEnd: ''
111+
# MaxEmptyLinesToKeep: 1
112+
# NamespaceIndentation: None
113+
# PenaltyBreakAssignment: 2
114+
# PenaltyBreakBeforeFirstCallParameter: 19
115+
# PenaltyBreakComment: 300
116+
# PenaltyBreakFirstLessLess: 120
117+
# PenaltyBreakOpenParenthesis: 0
118+
# PenaltyBreakString: 1000
119+
# PenaltyBreakTemplateDeclaration: 10
120+
# PenaltyExcessCharacter: 1000000
121+
# PenaltyReturnTypeOnItsOwnLine: 60
122+
# PenaltyIndentedWhitespace: 0
123+
# PointerAlignment: Right
124+
# PPIndentWidth: -1
125+
# ReferenceAlignment: Pointer
126+
# ReflowComments: true
127+
# RemoveBracesLLVM: false
128+
# SeparateDefinitionBlocks: Leave
129+
# ShortNamespaceLines: 1
130+
# SortIncludes: CaseSensitive
131+
# SortJavaStaticImport: Before
132+
# SortUsingDeclarations: true
133+
# SpaceAfterCStyleCast: false
134+
# SpaceAfterLogicalNot: false
135+
# SpaceAfterTemplateKeyword: true
136+
# SpaceBeforeAssignmentOperators: true
137+
# SpaceBeforeCaseColon: false
138+
# SpaceBeforeCpp11BracedList: false
139+
# SpaceBeforeCtorInitializerColon: true
140+
# SpaceBeforeInheritanceColon: true
141+
# SpaceBeforeParens: ControlStatements
142+
# SpaceBeforeParensOptions:
143+
# AfterControlStatements: true
144+
# AfterForeachMacros: true
145+
# AfterFunctionDefinitionName: false
146+
# AfterFunctionDeclarationName: false
147+
# AfterIfMacros: true
148+
# AfterOverloadedOperator: false
149+
# BeforeNonEmptyParentheses: false
150+
# SpaceAroundPointerQualifiers: Default
151+
# SpaceBeforeRangeBasedForLoopColon: true
152+
# SpaceInEmptyBlock: false
153+
# SpaceInEmptyParentheses: false
154+
# SpacesBeforeTrailingComments: 1
155+
# SpacesInAngles: Never
156+
# SpacesInConditionalStatement: false
157+
# SpacesInContainerLiterals: true
158+
# SpacesInCStyleCastParentheses: false
159+
## Godot TODO: We'll want to use a min of 1, but we need to see how to fix
160+
## our comment capitalization at the same time.
161+
SpacesInLineCommentPrefix:
162+
Minimum: 0
163+
Maximum: -1
164+
# SpacesInParentheses: false
165+
# SpacesInSquareBrackets: false
166+
# SpaceBeforeSquareBrackets: false
167+
# BitFieldColonSpacing: Both
168+
# StatementAttributeLikeMacros:
169+
# - Q_EMIT
170+
# StatementMacros:
171+
# - Q_UNUSED
172+
# - QT_REQUIRE_VERSION
173+
TabWidth: 4
174+
# UseCRLF: false
175+
UseTab: Always
176+
# WhitespaceSensitiveMacros:
177+
# - STRINGIZE
178+
# - PP_STRINGIZE
179+
# - BOOST_PP_STRINGIZE
180+
# - NS_SWIFT_NAME
181+
# - CF_SWIFT_NAME
182+
---
183+
### C++ specific config ###
184+
Language: Cpp
185+
Standard: c++17
186+
---
187+
### ObjC specific config ###
188+
Language: ObjC
189+
# ObjCBinPackProtocolList: Auto
190+
ObjCBlockIndentWidth: 4
191+
# ObjCBreakBeforeNestedBlockParam: true
192+
# ObjCSpaceAfterProperty: false
193+
# ObjCSpaceBeforeProtocolList: true
194+
---
195+
### Java specific config ###
196+
Language: Java
197+
# BreakAfterJavaFieldAnnotations: false
198+
JavaImportGroups: ['org.godotengine', 'android', 'androidx', 'com.android', 'com.google', 'java', 'javax']
199+
...

.editorconfig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_style = tab
7+
insert_final_newline = true
8+
trim_trailing_whitespace = true
9+
10+
[{*.gradle,AndroidManifest.xml}]
11+
indent_style = space
12+
indent_size = 4
13+
14+
[{*.py,SConstruct,SCsub}]
15+
indent_style = space
16+
indent_size = 4
17+
18+
# YAML requires indentation with spaces instead of tabs.
19+
[*.{yml,yaml}]
20+
indent_style = space
21+
indent_size = 2

.gdignore

Whitespace-only changes.

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Normalize EOL for all files that Git considers text files.
2+
* text=auto eol=lf
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Bug Report
2+
description: Report a bug with KuzuGD
3+
body:
4+
- type: markdown
5+
attributes:
6+
value: |
7+
- Write a descriptive issue title above.
8+
- Search [open](https://github.com/kthecoder/KuzuGD/issues) and [closed](https://github.com/kthecoder/KuzuGD/issues?q=is%3Aissue%20state%3Aclosed) issues to ensure it has not already been reported.
9+
- type: Input
10+
attributes:
11+
label: KuzuGD Version
12+
description: >
13+
Specify the Git commit hash of your KuzuGD build.
14+
placeholder: Godot.v4.4.KuzuGD [92bee43ad]
15+
validations:
16+
required: true
17+
18+
- type: input
19+
attributes:
20+
label: System Information
21+
description: |
22+
Specify the OS version.
23+
placeholder: Windows 11
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
attributes:
29+
label: Issue Description
30+
description: |
31+
Describe your issue briefly. What doesn't work, and how do you expect it to work instead?
32+
You can include images or videos with drag and drop, and format code blocks or logs with <code>```</code> tags.
33+
validations:
34+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
blank_issues_enabled: false
2+
3+
contact_links:
4+
- name: KuzuGD Proposals
5+
url: https://github.com/kthecoder/KuzuGD
6+
about: Please submit feature proposals on the Godot proposals repository, not here.
7+
8+
- name: KuzuGD Community Channels
9+
url: https://aveyrin.com/discord
10+
about: Please ask for technical support in , not here.

.github/workflows/builds.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# name: Build GDExtension
2+
# on:
3+
# workflow_call:
4+
# push:
5+
# pull_request:
6+
# merge_group:
7+
8+
# jobs:
9+
# build:
10+
# strategy:
11+
# fail-fast: false
12+
# matrix:
13+
# # A build is made for every possible combination of parameters
14+
# # You can add or remove entries from the arrays of each parameter to custimize which builds you want to run
15+
# # See https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow
16+
# target:
17+
# [
18+
# { platform: linux, arch: x86_64, os: ubuntu-22.04 },
19+
# { platform: windows, arch: x86_64, os: windows-latest },
20+
# { platform: windows, arch: x86_32, os: windows-latest },
21+
# { platform: macos, arch: universal, os: macos-latest },
22+
# { platform: android, arch: arm64, os: ubuntu-22.04 },
23+
# { platform: android, arch: arm32, os: ubuntu-22.04 },
24+
# { platform: android, arch: x86_64, os: ubuntu-22.04 },
25+
# { platform: android, arch: x86_32, os: ubuntu-22.04 },
26+
# { platform: ios, arch: arm64, os: macos-latest },
27+
# { platform: web, arch: wasm32, os: ubuntu-22.04 }
28+
# ]
29+
# target-type: [template_debug]
30+
# float-precision: [single, double]
31+
# include: # Also build a release version for these specific targets. Remove if you add template_release above.
32+
# - target: { platform: linux, arch: x86_64, os: ubuntu-22.04 }
33+
# target-type: template_release
34+
# float-precision: single
35+
36+
# - target: { platform: linux, arch: x86_64, os: ubuntu-22.04 }
37+
# target-type: template_release
38+
# float-precision: double
39+
40+
# runs-on: ${{ matrix.target.os }}
41+
# steps:
42+
# # Clone this repository
43+
# - name: Checkout
44+
# uses: actions/checkout@v4
45+
# with:
46+
# submodules: true
47+
48+
# # Lint
49+
# #- name: Setup clang-format
50+
# # shell: bash
51+
# # run: |
52+
# # python -m pip install clang-format
53+
# #- name: Run clang-format
54+
# # shell: bash
55+
# # run: |
56+
# # clang-format src/** --dry-run --Werror
57+
58+
# # Setup dependencies
59+
# - name: Setup godot-cpp
60+
# uses: ./godot-cpp/.github/actions/setup-godot-cpp
61+
# with:
62+
# platform: ${{ matrix.target.platform }}
63+
# em-version: 3.1.62
64+
65+
# # Build GDExtension (with caches)
66+
67+
# - name: Restore .scons_cache
68+
# uses: ./godot-cpp/.github/actions/godot-cache-restore
69+
# with:
70+
# scons-cache: ${{ github.workspace }}/.scons-cache/
71+
# cache-name: ${{ matrix.target.platform }}_${{ matrix.target.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}
72+
73+
# - name: Build GDExtension Debug Build
74+
# shell: sh
75+
# env:
76+
# SCONS_CACHE: ${{ github.workspace }}/.scons-cache/
77+
# run: |
78+
# scons target=${{ matrix.target-type }} platform=${{ matrix.target.platform }} arch=${{ matrix.target.arch }} precision=${{ matrix.float-precision }}
79+
80+
# - name: Save .scons_cache
81+
# uses: ./godot-cpp/.github/actions/godot-cache-save
82+
# with:
83+
# scons-cache: ${{ github.workspace }}/.scons-cache/
84+
# cache-name: ${{ matrix.target.platform }}_${{ matrix.target.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}
85+
86+
# # Clean up compilation files
87+
# - name: Windows - Delete compilation files
88+
# if: ${{ matrix.target.platform == 'windows' }}
89+
# shell: pwsh
90+
# run: |
91+
# Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
92+
93+
# # Upload the build
94+
# - name: Upload Artifact
95+
# uses: actions/upload-artifact@v4
96+
# with:
97+
# name: godot-cpp-template-${{ matrix.target.platform }}-${{ matrix.target.arch }}-${{ matrix.float-precision }}-${{ matrix.target-type }}
98+
# path: |
99+
# ${{ github.workspace }}/bin/**
100+
101+
# # Merges all the build artifacts together into a single godot-cpp-template artifact.
102+
# # If you comment out this step, all the builds will be uploaded individually.
103+
# merge:
104+
# runs-on: ubuntu-22.04
105+
# needs: build
106+
# steps:
107+
# - name: Merge Artifacts
108+
# uses: actions/upload-artifact/merge@v4
109+
# with:
110+
# name: godot-cpp-template
111+
# pattern: godot-cpp-template-*
112+
# delete-merged: true

0 commit comments

Comments
 (0)