From 0a838a6932beb1f89a81b16a568098fb45ecb266 Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Thu, 23 Mar 2023 15:29:20 -0400 Subject: Cmake --- .gitignore | 24 ++++++++++++++++++++++++ CMakeLists.txt | 42 ++++++++++++++++++++++++++++++++++++++++++ Makefile | 28 ---------------------------- 3 files changed, 66 insertions(+), 28 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 Makefile 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 + ) + +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 -- cgit v1.2.3