From 400953796eb0d372cc20e993e8006d1e7b81b4ba Mon Sep 17 00:00:00 2001 From: Vinicius Silva Date: Mon, 11 Dec 2023 17:08:37 -0300 Subject: [PATCH] UPD and TCP graphics add --- CMakeLists.txt | 14 ++++++++++++++ graphics/tcp.png | Bin 0 -> 24974 bytes graphics/udp.png | Bin 0 -> 25905 bytes 3 files changed, 14 insertions(+) create mode 100644 graphics/tcp.png create mode 100644 graphics/udp.png diff --git a/CMakeLists.txt b/CMakeLists.txt index d821127..8a7336c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,5 +5,19 @@ execute_process( COMMAND mkdir -p bin ) +#set(CMAKE_CXX_FLAGS "-Wall -Wextra") +#set(CMAKE_CXX_FLAGS_DEBUG "-g") +#set(CMAKE_CXX_FLAGS_RELEASE "-O3") + +# Set warning level for GCC or Clang +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") +set(CMAKE_CXX_FLAGS_DEBUG "-g") +set(CMAKE_CXX_FLAGS_RELEASE "-O3") + +# Set warning level for MSVC +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") +endif() + add_executable(./bin/server ./src/server.c) add_executable(./bin/client ./src/client.c) diff --git a/graphics/tcp.png b/graphics/tcp.png new file mode 100644 index 0000000000000000000000000000000000000000..5df077e15402ded70346d18255d57748292112d7 GIT binary patch literal 24974 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 DP<%iT literal 0 HcmV?d00001 diff --git a/graphics/udp.png b/graphics/udp.png new file mode 100644 index 0000000000000000000000000000000000000000..69d88ff41016a55983ce07f820c305675f430652 GIT binary patch literal 25905 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