From 5dd3174fe752b7c0be343f48db8dedf1d7f6979b Mon Sep 17 00:00:00 2001 From: AI_WAIFU Date: Thu, 13 Jul 2023 00:48:24 +0100 Subject: [PATCH] add minetest build script and fix relative builds --- Makefile | 15 ++++++++++++--- src/CMakeLists.txt | 13 +++++++++++-- util/minetester/build_minetest.sh | 26 ++++++++++++++++++++++++++ util/minetester/build_zmqpp.sh | 2 ++ 4 files changed, 51 insertions(+), 5 deletions(-) create mode 100755 util/minetester/build_minetest.sh create mode 100755 util/minetester/build_zmqpp.sh diff --git a/Makefile b/Makefile index aa30716e58dd..fa1b6df0ea3c 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ -.PHONY: all deps repos sdl2 package +.PHONY: all deps repos sdl2 package zmqpp SDL2_CMAKE_FILE := lib/SDL/build/lib/cmake/SDL2/sdl2-config.cmake +ZMQPP_LIB_FILE := lib/zmqpp/build/max-g++/libzmqpp.a all: package @@ -11,12 +12,20 @@ repos: # Init all submodules git submodule update --init --recursive -$(SDL2_CMAKE_FILE): +$(SDL2_CMAKE_FILE): repos # compile sdl2 util/minetester/build_sdl2.sh - sdl2: $(SDL2_CMAKE_FILE) +$(ZMQPP_LIB_FILE): repos + #compile zmqpp + util/minetester/build_zmqpp.sh + +zmqpp: $(ZMQPP_LIB_FILE) + +minetest: + util/minetester/build_minetest.sh + package: deps repos diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1fb191218c70..22caf296a033 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -223,7 +223,7 @@ if(ENABLE_PROTOBUF) get_filename_component(directory ${file} DIRECTORY) get_filename_component(truename ${directory}/${basename} ABSOLUTE) file(RELATIVE_PATH relname ${PROTO_PARENT}/proto ${truename}) - set(outnames ${PROJECT_SOURCE_DIR}/${relname}.pb.h ${PROJECT_SOURCE_DIR}/${relname}.pb.cc) + set(outnames ${CMAKE_CURRENT_BINARY_DIR}/${relname}.pb.h ${CMAKE_CURRENT_BINARY_DIR}/${relname}.pb.cc) add_custom_command(OUTPUT ${outnames} COMMAND protobuf::protoc ARGS --cpp_out=. --proto_path ${PROTO_PARENT}/proto ${file} @@ -496,7 +496,6 @@ endif(BUILD_CLIENT) set(client_SRCS ${client_SRCS} - ${proto_targets} ${common_SRCS} ${gui_SRCS} ${client_network_SRCS} @@ -523,10 +522,20 @@ list(SORT server_SRCS) # Avoid source_group on broken CMake version. # see issue #7074 #7075 if (CMAKE_VERSION VERSION_GREATER 3.8.1) + source_group(TREE ${CMAKE_CURRENT_BINARY_DIR} PREFIX "ProtoBuf Source Files" FILES ${proto_targets}) source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "Source Files" FILES ${client_SRCS}) source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "Source Files" FILES ${server_SRCS}) endif() +set(client_SRCS + ${client_SRCS} + ${proto_targets} +) + +if (CMAKE_VERSION VERSION_GREATER 3.8.1) + +endif() + include_directories( ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} diff --git a/util/minetester/build_minetest.sh b/util/minetester/build_minetest.sh new file mode 100755 index 000000000000..6fb798f4834d --- /dev/null +++ b/util/minetester/build_minetest.sh @@ -0,0 +1,26 @@ + +ROOT=$(pwd) + +mkdir build +mkdir build/normal +mkdir build/headless + +cd build/headless + + +SDL2_DIR=${ROOT}/lib/SDL/build/lib/cmake/SDL2/ + +echo ${SDL2_DIR} + +cmake ../.. -DRUN_IN_PLACE=TRUE -DBUILD_HEADLESS=1 -DSDL2_DIR=${SDL2_DIR} +make -j$(( $(nproc) > 1 ? $(nproc) - 1 : 1 )) #use max(nproc,1) threads + +cd ../.. + +mv bin/minetest bin/minetest_headless + +cd build/normal +cmake ../.. -DRUN_IN_PLACE=TRUE -DBUILD_HEADLESS=0 -DSDL2_DIR= +make -j$(( $(nproc) > 1 ? $(nproc) - 1 : 1 )) + + diff --git a/util/minetester/build_zmqpp.sh b/util/minetester/build_zmqpp.sh new file mode 100755 index 000000000000..76cb6dd3445b --- /dev/null +++ b/util/minetester/build_zmqpp.sh @@ -0,0 +1,2 @@ +cd lib/zmqpp +make