setup
This commit is contained in:
parent
1105c9b8d3
commit
4aa57c5bd0
8
.clang-format
Normal file
8
.clang-format
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
BasedOnStyle: WebKit
|
||||||
|
IndentWidth: 4
|
||||||
|
ColumnLimit: 80
|
||||||
|
IndentCaseLabels: true
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BraceWrapping:
|
||||||
|
AfterFunction: true
|
||||||
|
SplitEmptyFunction: false
|
40
.clangd
Normal file
40
.clangd
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
CompileFlags:
|
||||||
|
CompilationDatabase: ./builddir
|
||||||
|
Diagnostics:
|
||||||
|
ClangTidy:
|
||||||
|
Add:
|
||||||
|
- bugprone-*
|
||||||
|
- clang-analyzer-*
|
||||||
|
- cppcoreguidelines-*
|
||||||
|
- modernize-*
|
||||||
|
- readability-*
|
||||||
|
Remove:
|
||||||
|
- readability-braces-around-statements
|
||||||
|
- cppcoreguidelines-avoid-magic-numbers
|
||||||
|
- readability-magic-numbers
|
||||||
|
- readability-identifier-length
|
||||||
|
- bugprone-easily-swappable-parameters
|
||||||
|
|
||||||
|
CheckOptions:
|
||||||
|
UnusedIncludes: Strict
|
||||||
|
|
||||||
|
# typecase rules
|
||||||
|
readability-identifier-naming.ClassCase: CamelCase
|
||||||
|
readability-identifier-naming.ConstantCase: lower_case
|
||||||
|
readability-identifier-naming.EnumCase: CamelCase
|
||||||
|
readability-identifier-naming.EnumConstantCase: CamelCase
|
||||||
|
readability-identifier-naming.FunctionCase: lower_case
|
||||||
|
readability-identifier-naming.InlineNamespaceCase: lower_case
|
||||||
|
readability-identifier-naming.MacroDefinitionCase: UPPER_CASE
|
||||||
|
readability-identifier-naming.MemberCase: lower_case
|
||||||
|
readability-identifier-naming.MethodCase: lower_case
|
||||||
|
readability-identifier-naming.NamespaceCase: lower_case
|
||||||
|
readability-identifier-naming.ScopedEnumConstantCase: CamelCase
|
||||||
|
readability-identifier-naming.StructCase: CamelCase
|
||||||
|
readability-identifier-naming.TemplateParameterCase: CamelCase
|
||||||
|
readability-identifier-naming.TemplateTemplateParameterCase: CamelCase
|
||||||
|
readability-identifier-naming.TypeAliasCase: CamelCase
|
||||||
|
readability-identifier-naming.TypedefCase: CamelCase
|
||||||
|
readability-identifier-naming.UnionCase: CamelCase
|
||||||
|
readability-identifier-naming.ValueTemplateParameterCase: lower_case
|
||||||
|
readability-identifier-naming.VariableCase: lower_case
|
34
README.md
34
README.md
@ -1 +1,33 @@
|
|||||||
# web-stack-project
|
|
||||||
|
# web-stack-project
|
||||||
|
|
||||||
|
## Build project
|
||||||
|
|
||||||
|
- Open project in terminal
|
||||||
|
- Run `meson setup builddir`, or `CXX=clang-<version> meson setup builddir` if clang and clang-version is different
|
||||||
|
- Navigate into builddir, `cd builddir`
|
||||||
|
- Compile `meson compile`
|
||||||
|
- Run, `./browser` or `./server`
|
||||||
|
|
||||||
|
## VS Code development setup
|
||||||
|
|
||||||
|
### Install
|
||||||
|
- `clang-15` recommended, `clang-15` based, check with `clang --version`
|
||||||
|
- [Meson](https://mesonbuild.com/), build system
|
||||||
|
- [Meson VS Code extension](https://marketplace.visualstudio.com/items?itemName=mesonbuild.mesonbuild)
|
||||||
|
- [VSCode - clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd), linter
|
||||||
|
- [VSCode - CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb), debugger
|
||||||
|
- [VSCode - Better C++ Syntax](https://marketplace.visualstudio.com/items?itemName=jeff-hykin.better-cpp-syntax), syntax higlighting
|
||||||
|
|
||||||
|
### Config
|
||||||
|
|
||||||
|
Add these to `settings.json` if necessary
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
// probably necessary
|
||||||
|
"clangd.onConfigChanged": "restart",
|
||||||
|
|
||||||
|
// only necessary if default `/usr/bin/clangd` isn't the correct version
|
||||||
|
"clangd.path": "/usr/bin/clangd-<version>", // <version> is a place holder, eg, `clangd-15`
|
||||||
|
}
|
||||||
|
```
|
||||||
|
3
browser/main.cpp
Normal file
3
browser/main.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include <fmt/core.h>
|
||||||
|
|
||||||
|
int main() { fmt::print("browser: hello world!\n"); }
|
3
browser/meson.build
Normal file
3
browser/meson.build
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
browser_sources += files(
|
||||||
|
'main.cpp',
|
||||||
|
)
|
43
meson.build
Normal file
43
meson.build
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
project(
|
||||||
|
'web-stack-project',
|
||||||
|
'cpp',
|
||||||
|
version: '0.1',
|
||||||
|
default_options: [
|
||||||
|
'warning_level=3',
|
||||||
|
'werror=true',
|
||||||
|
'cpp_std=c++20',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
fmt_dep = dependency('fmt')
|
||||||
|
sdl2_dep = dependency('sdl2')
|
||||||
|
|
||||||
|
server_sources = []
|
||||||
|
subdir('server')
|
||||||
|
server_exe = executable(
|
||||||
|
'web-server',
|
||||||
|
server_sources,
|
||||||
|
win_subsystem: 'console',
|
||||||
|
include_directories: [
|
||||||
|
include_directories('server'),
|
||||||
|
],
|
||||||
|
dependencies: [
|
||||||
|
fmt_dep,
|
||||||
|
sdl2_dep,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
browser_sources = []
|
||||||
|
subdir('browser')
|
||||||
|
browser_exe = executable(
|
||||||
|
'web-browser',
|
||||||
|
browser_sources,
|
||||||
|
win_subsystem: 'console',
|
||||||
|
include_directories: [
|
||||||
|
include_directories('browser'),
|
||||||
|
],
|
||||||
|
dependencies: [
|
||||||
|
fmt_dep,
|
||||||
|
sdl2_dep,
|
||||||
|
],
|
||||||
|
)
|
3
server/main.cpp
Normal file
3
server/main.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include <fmt/core.h>
|
||||||
|
|
||||||
|
int main() { fmt::print("server: hello world!\n"); }
|
3
server/meson.build
Normal file
3
server/meson.build
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
server_sources += files(
|
||||||
|
'main.cpp',
|
||||||
|
)
|
3
subprojects/.gitignore
vendored
Normal file
3
subprojects/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
packagecache/
|
||||||
|
fmt-*
|
||||||
|
SDL2-*
|
12
subprojects/fmt.wrap
Normal file
12
subprojects/fmt.wrap
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[wrap-file]
|
||||||
|
directory = fmt-9.1.0
|
||||||
|
source_url = https://github.com/fmtlib/fmt/archive/9.1.0.tar.gz
|
||||||
|
source_filename = fmt-9.1.0.tar.gz
|
||||||
|
source_hash = 5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2
|
||||||
|
patch_filename = fmt_9.1.0-1_patch.zip
|
||||||
|
patch_url = https://wrapdb.mesonbuild.com/v2/fmt_9.1.0-1/get_patch
|
||||||
|
patch_hash = 4557b9ba87b3eb63694ed9b21d1a2117d4a97ca56b91085b10288e9a5294adf8
|
||||||
|
wrapdb_version = 9.1.0-1
|
||||||
|
|
||||||
|
[provide]
|
||||||
|
fmt = fmt_dep
|
12
subprojects/sdl2.wrap
Normal file
12
subprojects/sdl2.wrap
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[wrap-file]
|
||||||
|
directory = SDL2-2.26.0
|
||||||
|
source_url = https://github.com/libsdl-org/SDL/releases/download/release-2.26.0/SDL2-2.26.0.tar.gz
|
||||||
|
source_filename = SDL2-2.26.0.tar.gz
|
||||||
|
source_hash = 8000d7169febce93c84b6bdf376631f8179132fd69f7015d4dadb8b9c2bdb295
|
||||||
|
patch_filename = sdl2_2.26.0-1_patch.zip
|
||||||
|
patch_url = https://wrapdb.mesonbuild.com/v2/sdl2_2.26.0-1/get_patch
|
||||||
|
patch_hash = 6fcfd727d71cf7837332723518d5e47ffd64f1e7630681cf4b50e99f2bf7676f
|
||||||
|
wrapdb_version = 2.26.0-1
|
||||||
|
|
||||||
|
[provide]
|
||||||
|
sdl2 = sdl2_dep
|
Loading…
Reference in New Issue
Block a user