aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCara Salter <cara@devcara.com>2023-03-23 15:29:20 -0400
committerCara Salter <cara@devcara.com>2023-03-23 15:29:38 -0400
commit0a838a6932beb1f89a81b16a568098fb45ecb266 (patch)
tree4e1335ac9a4fb5e18adc227b1e0ab033842a2021
parent9ae99ae2949716cb05cd8fee618cb4ce67fff4a5 (diff)
downloadcmud-0a838a6932beb1f89a81b16a568098fb45ecb266.tar.gz
cmud-0a838a6932beb1f89a81b16a568098fb45ecb266.zip
Cmake
-rw-r--r--.gitignore24
-rw-r--r--CMakeLists.txt42
-rw-r--r--Makefile28
3 files changed, 66 insertions, 28 deletions
diff --git a/.gitignore b/.gitignore
index 90c86f9..942fa6a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -194,3 +194,27 @@ tags
# End of https://www.toptal.com/developers/gitignore/api/autotools,vim
config.cfg
+
+# Created by https://www.toptal.com/developers/gitignore/api/cmake
+# Edit at https://www.toptal.com/developers/gitignore?templates=cmake
+
+### CMake ###
+CMakeLists.txt.user
+CMakeCache.txt
+CMakeFiles
+CMakeScripts
+Testing
+Makefile
+cmake_install.cmake
+install_manifest.txt
+compile_commands.json
+CTestTestfile.cmake
+_deps
+
+### CMake Patch ###
+# External projects
+*-prefix/
+
+# End of https://www.toptal.com/developers/gitignore/api/cmake
+
+build/ \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..e3adabf
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,42 @@
+cmake_minimum_required(VERSION 3.0)
+project(cmud VERSION 0.1)
+
+set(CMAKE_C_STANDARD 11 REQUIRED)
+
+include(ExternalProject)
+find_program(MAKE_EXE NAMES make gmake nmake)
+ExternalProject_Add(project_argon2
+ GIT_REPOSITORY https://github.com/P-H-C/phc-winner-argon2
+ GIT_TAG 20190702
+ PATCH_COMMAND sed "s/ln -s/ln -sf/" Makefile
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ${MAKE_EXE} libs
+ BUILD_IN_SOURCE yes
+
+ INSTALL_COMMAND make PREFIX=<INSTALL_DIR> install
+ )
+
+include(FetchContent)
+FetchContent_Declare(config
+ GIT_REPOSITORY https://github.com/hyperrealm/libconfig
+ GIT_TAG v1.7.3
+ )
+
+FetchContent_MakeAvailable(config)
+
+ExternalProject_Get_Property(project_argon2 INSTALL_DIR)
+#add_library(argon2 STATIC IMPORTED)
+#set_property(TARGET argon2 PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/x86_64-linux-gnu/libargon2.a)
+
+#add_dependencies(argon2 project_argon2)
+#include_directories(${INSTALL_DIR}/src)
+
+add_executable(cmud src/data.c src/game.c src/hash.c src/log.c src/login.c
+ src/main.c src/server.c src/util.c)
+
+add_dependencies(cmud project_argon2)
+
+target_link_libraries(cmud config)
+target_link_libraries(cmud argon2)
+target_link_libraries(cmud m)
+#target_link_libraries(cmud ${INSTALL_DIR}/lib/x86_64-linux-gnu/libargon2.a)
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 374051e..0000000
--- a/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-CC=gcc
-CFLAGS=-I.
-SRCS=$(wildcard src/*.c)
-BIN=cmud
-LFLAGS=-largon2 -lpthread -lclog -lconfig -Wall
-
-%.o: %.c
- $(CC) -c -o $@ $< $(CFLAGS)
-
-dev: $(SRCS)
- $(CC) -o $(BIN)-devel $(SRCS) $(LFLAGS) -g
-
-main: $(SRCS)
- $(CC) -o $(BIN) $(SRCS) $(LFLAGS) $(CFLAGS)
-
-dist: main
- tar czvf $(BIN).tar.gz $(BIN)
-
-srcdist: clean
- tar czvf $(BIN)-src.tar.gz Makefile .gitignore src/
-
-clean:
- rm -f $(BIN)*
-
-install: main
-
-run: dev
- ./cmud-devel