From 7ef304a909bee5ca1a9985d7dfa4d8d6661408a3 Mon Sep 17 00:00:00 2001 From: keqingmoe Date: Fri, 20 Dec 2024 01:09:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=9D=E5=A7=8B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BB=93=E6=9E=84=EF=BC=8C=E5=8C=85=E6=8B=ACC?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E6=BA=90=E6=96=87=E4=BB=B6=E3=80=81=E5=A4=B4?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E3=80=81=E6=9E=84=E5=BB=BA=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=92=8C=E6=A0=BC=E5=BC=8F=E5=8C=96=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .clang-format | 57 +++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 5 ++++ include/kqm/defs.h | 8 +++++++ include/kqm/types.h | 11 +++++++++ src/main.c | 21 +++++++++++++++++ xmake.lua | 27 +++++++++++++++++++++ 6 files changed, 129 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 include/kqm/defs.h create mode 100644 include/kqm/types.h create mode 100644 src/main.c create mode 100644 xmake.lua diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..5ee97e7 --- /dev/null +++ b/.clang-format @@ -0,0 +1,57 @@ +BasedOnStyle: LLVM +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignArrayOfStructures: Left +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false +AlignConsecutiveAssignments: + Enabled: true + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: true + PadOperators: true +AlignConsecutiveMacros: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false +AlignOperands: Align +AllowAllParametersOfDeclarationOnNextLine: true +AllowAllArgumentsOnNextLine: false +AllowShortLambdasOnASingleLine: Empty +AllowShortFunctionsOnASingleLine: Empty +AllowShortBlocksOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: AllIfsAndElse +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakTemplateDeclarations: "Yes" +BinPackArguments: false +BinPackParameters: false +BreakBeforeBraces: Custom +BreakBeforeBinaryOperators: NonAssignment +ColumnLimit: 120 +CommentPragmas: "^ IWYU pragma:" +ConstructorInitializerIndentWidth: 4 +IndentWidth: 4 +Language: Cpp +MaxEmptyLinesToKeep: 2 +PointerAlignment: Left +TabWidth: 4 +UseTab: Never +SortIncludes: CaseSensitive +BraceWrapping: + AfterEnum: true + AfterStruct: true + AfterClass: true + AfterUnion: true + AfterExternBlock: true + AfterFunction: true + AfterNamespace: true +IndentRequires: true +FixNamespaceComments: false +NamespaceIndentation: None +BreakBeforeConceptDeclarations: Always +RequiresClausePosition: OwnLine +IndentRequiresClause: true +AllowBreakBeforeNoexceptSpecifier: OnlyWithParen diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39e9a10 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.cache/ +.vscode/ +.xmake/ +build/ +compile_commands.json diff --git a/include/kqm/defs.h b/include/kqm/defs.h new file mode 100644 index 0000000..8543214 --- /dev/null +++ b/include/kqm/defs.h @@ -0,0 +1,8 @@ +#ifndef KQM_DEFS_H +#define KQM_DEFS_H + +#define CR "\r" +#define LF "\n" +#define CRLF "\r\n" + +#endif // KQM_DEFS_H diff --git a/include/kqm/types.h b/include/kqm/types.h new file mode 100644 index 0000000..ddcfe3d --- /dev/null +++ b/include/kqm/types.h @@ -0,0 +1,11 @@ +#ifndef KQM_TYPES_H +#define KQM_TYPES_H + +#include + +typedef struct mg_callbacks mg_callbacks; +typedef struct mg_context mg_context; +typedef struct mg_connection mg_connection; +typedef struct mg_request_info mg_request_info; + +#endif // KQM_TYPES_H diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..0c48a7e --- /dev/null +++ b/src/main.c @@ -0,0 +1,21 @@ +#include + +#include +#include + +#include +#include + +int main(int argc, char** argv) +{ + const char* options[] = {"document_root", "./www", "listening_ports", "8080", NULL}; + mg_callbacks callbacks; + mg_context* ctx; + + memset(&callbacks, 0, sizeof(callbacks)); + ctx = mg_start(&callbacks, NULL, options); + + printf("Server started on port(s) %s\n", mg_get_option(ctx, "listening_ports")); + getchar(); + mg_stop(ctx); +} diff --git a/xmake.lua b/xmake.lua new file mode 100644 index 0000000..de7e415 --- /dev/null +++ b/xmake.lua @@ -0,0 +1,27 @@ +add_rules("mode.debug", "mode.release") +add_rules("plugin.compile_commands.autoupdate") + +set_languages("c23") + +set_warnings("all") +set_warnings("error") + +add_requires("civetweb") + +target("math") + set_kind("binary") + add_packages("civetweb") + add_includedirs("include") + add_files("src/main.c") + + after_build(function (target) + local npm = "npm" + if is_host("windows") then + npm = "npm.cmd" + end + os.execv(npm, {"--prefix", "ui", "run", "build"}) + + local vue_dist_dir = "ui/dist" + local target_dir = target:targetdir() .. "/www" + os.cp(vue_dist_dir, target_dir) + end)