Initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
build/*
|
||||||
55
.vscode/launch.json
vendored
Normal file
55
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "(gdb)Client Launch",
|
||||||
|
"type": "cppdbg",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/build/Client/Client",
|
||||||
|
"args": [],
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"cwd": "${fileDirname}",
|
||||||
|
"environment": [],
|
||||||
|
"externalConsole": false,
|
||||||
|
"MIMode": "gdb",
|
||||||
|
"setupCommands": [
|
||||||
|
{
|
||||||
|
"description": "Enable pretty-printing for gdb",
|
||||||
|
"text": "-enable-pretty-printing",
|
||||||
|
"ignoreFailures": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Set Disassembly Flavor to Intel",
|
||||||
|
"text": "-gdb-set disassembly-flavor intel",
|
||||||
|
"ignoreFailures": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preLaunchTask": "${defaultBuildTask}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "(gdb)Server Launch",
|
||||||
|
"type": "cppdbg",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/build/Server/Server",
|
||||||
|
"args": [],
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"cwd": "${fileDirname}",
|
||||||
|
"environment": [],
|
||||||
|
"externalConsole": false,
|
||||||
|
"MIMode": "gdb",
|
||||||
|
"setupCommands": [
|
||||||
|
{
|
||||||
|
"description": "Enable pretty-printing for gdb",
|
||||||
|
"text": "-enable-pretty-printing",
|
||||||
|
"ignoreFailures": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Set Disassembly Flavor to Intel",
|
||||||
|
"text": "-gdb-set disassembly-flavor intel",
|
||||||
|
"ignoreFailures": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preLaunchTask": "${defaultBuildTask}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
6
.vscode/settings.json
vendored
Normal file
6
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"assert": "cpp",
|
||||||
|
"zstring": "cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
36
.vscode/tasks.json
vendored
Normal file
36
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"type": "cppbuild",
|
||||||
|
"label": "ninja-build",
|
||||||
|
"command": "ninja",
|
||||||
|
"args": [],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/build/"
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"dependsOn": ["cmake"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"label": "cmake",
|
||||||
|
"command": "cmake",
|
||||||
|
"args": [
|
||||||
|
"..",
|
||||||
|
"-G",
|
||||||
|
"Ninja"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/build/"
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
9
CMakeLists.txt
Normal file
9
CMakeLists.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
set(PROJECT_NAME "Chattring")
|
||||||
|
set(CMAKE_BUILD_TYPE Debug)
|
||||||
|
|
||||||
|
project(${PROJECT_NAME})
|
||||||
|
|
||||||
|
add_subdirectory(Client)
|
||||||
|
add_subdirectory(Server)
|
||||||
13
Client/CMakeLists.txt
Normal file
13
Client/CMakeLists.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
set(PROJECT_NAME "Client")
|
||||||
|
set(CMAKE_BUILD_TYPE Debug)
|
||||||
|
|
||||||
|
project(${PROJECT_NAME})
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME} src/client.cpp)
|
||||||
|
|
||||||
|
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
)
|
||||||
5
Client/src/client.cpp
Normal file
5
Client/src/client.cpp
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
std::cout << "Hello, world!" << std::endl;
|
||||||
|
}
|
||||||
41
Server/CMakeLists.txt
Normal file
41
Server/CMakeLists.txt
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
set(PROJECT_NAME "Server")
|
||||||
|
set(CMAKE_BUILD_TYPE Debug)
|
||||||
|
|
||||||
|
project(${PROJECT_NAME} CXX)
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
|
||||||
|
FetchContent_Declare(
|
||||||
|
spdlog
|
||||||
|
GIT_REPOSITORY "https://github.com/gabime/spdlog.git"
|
||||||
|
GIT_TAG "v1.15.2"
|
||||||
|
GIT_SHALLOW ON
|
||||||
|
)
|
||||||
|
FetchContent_MakeAvailable(spdlog)
|
||||||
|
|
||||||
|
FetchContent_Declare(
|
||||||
|
GSL
|
||||||
|
GIT_REPOSITORY "https://github.com/microsoft/GSL.git"
|
||||||
|
GIT_TAG "v4.2.0"
|
||||||
|
GIT_SHALLOW ON
|
||||||
|
)
|
||||||
|
FetchContent_MakeAvailable(GSL)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE additional_sources CONFIGURE_DEPENDS
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../impl/*.cpp"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME}
|
||||||
|
src/server.cpp
|
||||||
|
${additional_sources}
|
||||||
|
)
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE Microsoft.GSL::GSL)
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE spdlog)
|
||||||
|
|
||||||
|
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
)
|
||||||
|
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
|
||||||
6
Server/src/server.cpp
Normal file
6
Server/src/server.cpp
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include "Socket/Error.hpp"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
std::cout << "Hello, world!" << std::endl;
|
||||||
|
}
|
||||||
29
impl/Socket/Error.cpp
Normal file
29
impl/Socket/Error.cpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#include "Socket/Error.hpp"
|
||||||
|
#include "spdlog/spdlog.h"
|
||||||
|
|
||||||
|
namespace Chattr::error {
|
||||||
|
|
||||||
|
void critical(gsl::czstring msg) {
|
||||||
|
#ifdef _WIN32
|
||||||
|
//TODO 윈도우에서 구현할 것
|
||||||
|
#elif __linux__
|
||||||
|
gsl::czstring msgbuf = strerror(errno);
|
||||||
|
#else
|
||||||
|
#error "이 플랫폼은 지원되지 않습니다."
|
||||||
|
#endif
|
||||||
|
spdlog::critical(msgbuf);
|
||||||
|
std::exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void error(gsl::czstring msg) {
|
||||||
|
#ifdef _WIN32
|
||||||
|
//TODO 윈도우에서 구현할 것
|
||||||
|
#elif __linux__
|
||||||
|
gsl::czstring msgbuf = strerror(errno);
|
||||||
|
#else
|
||||||
|
#error "이 플랫폼은 지원되지 않습니다."
|
||||||
|
#endif
|
||||||
|
spdlog::error(msgbuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
11
impl/Socket/Socket_Init.cpp
Normal file
11
impl/Socket/Socket_Init.cpp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#include "Socket/Socket_Init.hpp"
|
||||||
|
|
||||||
|
namespace Chattr {
|
||||||
|
|
||||||
|
Socket_Init::Socket_Init() {
|
||||||
|
}
|
||||||
|
|
||||||
|
Socket_Init::~Socket_Init() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
0
include/Common.hpp
Normal file
0
include/Common.hpp
Normal file
16
include/Socket/Error.hpp
Normal file
16
include/Socket/Error.hpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <winsock2.h>
|
||||||
|
#elif __linux__
|
||||||
|
#include <errno.h>
|
||||||
|
#else
|
||||||
|
#error "이 플랫폼은 지원되지 않습니다."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <gsl/gsl>
|
||||||
|
|
||||||
|
namespace Chattr::error {
|
||||||
|
void critical(gsl::czstring msg);
|
||||||
|
void error(gsl::czstring msg);
|
||||||
|
}
|
||||||
18
include/Socket/Socket_Init.hpp
Normal file
18
include/Socket/Socket_Init.hpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
#elif __linux__
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error "이 플랫폼은 지원되지 않습니다."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Chattr {
|
||||||
|
|
||||||
|
struct Socket_Init {
|
||||||
|
Socket_Init();
|
||||||
|
~Socket_Init();
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user