diff options
author | Cara Salter <cara@devcara.com> | 2023-03-23 15:29:20 -0400 |
---|---|---|
committer | Cara Salter <cara@devcara.com> | 2023-03-23 15:29:38 -0400 |
commit | 0a838a6932beb1f89a81b16a568098fb45ecb266 (patch) | |
tree | 4e1335ac9a4fb5e18adc227b1e0ab033842a2021 | |
parent | 9ae99ae2949716cb05cd8fee618cb4ce67fff4a5 (diff) | |
download | cmud-0a838a6932beb1f89a81b16a568098fb45ecb266.tar.gz cmud-0a838a6932beb1f89a81b16a568098fb45ecb266.zip |
Cmake
-rw-r--r-- | .gitignore | 24 | ||||
-rw-r--r-- | CMakeLists.txt | 42 | ||||
-rw-r--r-- | Makefile | 28 |
3 files changed, 66 insertions, 28 deletions
@@ -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 |