Added new easy way of building TbaMUD in the Visual Studio through the CMake (#127)

* Added new experimental MSVC build way through CMake

* Small build/README.md fix
This commit is contained in:
Roman Shapiro 2023-11-19 10:04:39 +07:00 committed by GitHub
parent 498b652546
commit b2d38522e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 50 additions and 0 deletions

3
.gitignore vendored
View file

@ -10,3 +10,6 @@ src/util/Makefile
src/.accepted
src/depend
src/util/depend
build/*
!build/create_solution.bat
!build/README.md

15
build/README.md Normal file
View file

@ -0,0 +1,15 @@
### Overview
This guide describes how to build TbaMUD in the Visual Studio through the new experimental CMake environment.
### Prerequisites
* [Visual Studio 2022+](https://visualstudio.microsoft.com/ru/vs/)
* [CMake 3.27+](https://cmake.org/)
### Build Steps
1. Goto the folder `src` and copy `conf.h.win` to `conf.h`.
2. Goto the folder `build` and execute `create_solution.bat`.
3. Open `build/circle.sln` in Visual Studio.
4. Compile and run.

View file

@ -0,0 +1 @@
cmake -B . -S ..\src -G "Visual Studio 17 2022"

26
src/CMakeLists.txt Normal file
View file

@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.27)
# Set the project name
project(circle)
# Global definitions
if(MSVC)
# using Visual Studio C++
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
endif()
# circle itself
file(GLOB CIRCLE_SOURCES
"*.h"
"*.c"
)
add_executable(circle ${CIRCLE_SOURCES})
if(MSVC)
target_link_libraries(circle wsock32.lib)
set_target_properties(circle PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/.."
)
endif()

View file

@ -13,6 +13,11 @@
#include <sys/types.h>
#include "protocol.h"
#ifdef _MSC_VER
#include "telnet.h"
#define alloca _alloca
#endif
/******************************************************************************
The following section is for Diku/Merc derivatives. Replace as needed.
******************************************************************************/