mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 12:41:30 +00:00
Dev Container Overhaul (#5023)
* Cleanup & Reorganize Makefile for Dev Containers * Fix Makefile & misc fixes --------- Co-authored-by: m0th <43860202+m0th@users.noreply.github.com>
This commit is contained in:
parent
f74efcaa5f
commit
c611a25385
11
.devcontainer/.gitignore
vendored
11
.devcontainer/.gitignore
vendored
@ -1,6 +1,5 @@
|
|||||||
!Makefile
|
base/
|
||||||
base/*.sql
|
!base/*.json
|
||||||
base/*.zip
|
override/
|
||||||
base/db/
|
repo/
|
||||||
base/maps/
|
cache/
|
||||||
!base/expansion/Makefile
|
|
||||||
|
|||||||
@ -1,196 +1,127 @@
|
|||||||
|
# Build binaries: make cmake, make build
|
||||||
|
# One time initial setup (or to reset db): make prep, make inject-mariadb, make maps
|
||||||
|
# Update custom db edits: make inject-custom
|
||||||
|
# Start up server: make shared, make login, make world, make zone
|
||||||
|
# in game, stop combat spam #logs set gmsay 79 0
|
||||||
|
# in game, stop loot spam #logs set gmsay 69 0
|
||||||
NAME := eqemu-server
|
NAME := eqemu-server
|
||||||
.ONESHELL:
|
|
||||||
|
|
||||||
DOCKER_ARGS := --rm --name ${NAME} -v $$PWD:/src -w /src ${NAME}
|
|
||||||
DOCKER_ARM64_ARGS := --rm --platform linux/arm64 --name ${NAME}-arm64 -v $$PWD:/src -w /src ${NAME}-arm64
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build:
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile build --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
cd build$$BUILD_SUFFIX && cmake --build . --config Release --target all --
|
|
||||||
|
|
||||||
.PHONY: cmake
|
|
||||||
cmake:
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile cmake --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@echo "working directory: $$PWD"
|
|
||||||
mkdir -p build$$BUILD_SUFFIX
|
|
||||||
@cd build$$BUILD_SUFFIX && cmake -DEQEMU_BUILD_LOGIN=ON \
|
|
||||||
-DEQEMU_BUILD_TESTS=ON \
|
|
||||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache -G Ninja ..
|
|
||||||
|
|
||||||
clean:
|
|
||||||
ifneq (,$(findstring .devcontainer,$$PWD))
|
|
||||||
@make -C ../ -f .devcontainer/Makefile clean --no-print-directory
|
|
||||||
endif
|
|
||||||
rm -rf build
|
|
||||||
|
|
||||||
docker-cmake:
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile docker-cmake --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@echo "working directory: $$PWD"
|
|
||||||
git submodule update --init --recursive
|
|
||||||
docker run ${DOCKER_ARGS} make cmake
|
|
||||||
|
|
||||||
docker-build:
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile docker-build --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
docker run ${DOCKER_ARGS} make build
|
|
||||||
|
|
||||||
# Build image if it doesn't exist
|
|
||||||
docker-image-build:
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile docker-image-build --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
ifeq ($(shell docker images -q ${NAME} 2> /dev/null),)
|
|
||||||
@echo "Docker image not found. Building..."
|
|
||||||
docker build -f Dockerfile.debian.dev -t ${NAME} .
|
|
||||||
endif
|
|
||||||
|
|
||||||
docker-arm-cmake: docker-arm-image-build
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile docker-arm-cmake --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
git submodule update --init --recursive
|
|
||||||
docker run ${DOCKER_ARM64_ARGS} make cmake BUILD_SUFFIX=arm64
|
|
||||||
|
|
||||||
docker-arm-build: docker-arm-image-build
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile docker-arm-build --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
docker run ${DOCKER_ARM64_ARGS} make build BUILD_SUFFIX=arm64
|
|
||||||
|
|
||||||
docker-arm-image-build:
|
|
||||||
ifeq ($(shell docker images -q ${NAME}-arm64 2> /dev/null),)
|
|
||||||
@echo "Docker image not found. Building..."
|
|
||||||
docker build -f Dockerfile.debian.arm.dev -t ${NAME}-arm64 .
|
|
||||||
endif
|
|
||||||
|
|
||||||
docker-clean: clean
|
|
||||||
|
|
||||||
.PHONY: prep
|
.PHONY: prep
|
||||||
prep:
|
prep: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile prep --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@echo "Preparing build/bin for usage..."
|
@echo "Preparing build/bin for usage..."
|
||||||
mkdir -p build/bin/assets/patches
|
|
||||||
cp -R -u -p .devcontainer/base/eqemu_config.json build/bin/eqemu_config.json
|
@echo "Prepping folders..."
|
||||||
cp -R -u -p .devcontainer/base/login.json build/bin/login.json
|
@mkdir -p .devcontainer/override
|
||||||
cp -R -u -p loginserver/login_util/* build/bin/assets/patches/
|
@mkdir -p .devcontainer/repo
|
||||||
mkdir -p build/bin/assets
|
@mkdir -p .devcontainer/cache
|
||||||
cp -R -u -p utils/patches build/bin/assets/
|
@mkdir -p build/bin/logs
|
||||||
-unlink build/bin/lua_modules
|
@mkdir -p build/bin/shared
|
||||||
cd build/bin && ln -s quests/lua_modules lua_modules
|
@mkdir -p build/bin/assets
|
||||||
-unlink build/bin/mods
|
|
||||||
cd build/bin && ln -s quests/mods mods
|
@echo "Applying overrides..."
|
||||||
-unlink build/bin/maps
|
@if [ ! -f .devcontainer/override/eqemu_config.json ]; then cp .devcontainer/base/eqemu_config.json .devcontainer/override/eqemu_config.json; fi
|
||||||
cd build/bin && ln -s ../../base/maps maps
|
@if [ -f build/bin/eqemu_config.json ]; then unlink build/bin/eqemu_config.json; fi
|
||||||
mkdir -p build/bin/logs
|
cd build/bin && ln -s ../../.devcontainer/override/eqemu_config.json eqemu_config.json
|
||||||
mkdir -p build/bin/shared
|
@if [ ! -f .devcontainer/override/login.json ]; then cp .devcontainer/base/login.json .devcontainer/override/login.json; fi
|
||||||
|
@if [ -f build/bin/login.json ]; then unlink build/bin/login.json; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/override/login.json login.json
|
||||||
|
|
||||||
|
@echo "Cloning repositories..."
|
||||||
|
cd .devcontainer/repo && if [ ! -d "quests" ]; then cd ../../.devcontainer/repo/ && git clone https://github.com/ProjectEQ/projecteqquests.git quests; fi
|
||||||
|
cd .devcontainer/repo && if [ ! -d "eqemu-definitions" ]; then cd ../../.devcontainer/repo/ && git clone https://github.com/xackery/eqemu-definitions.git eqemu-definitions; fi
|
||||||
|
cd .devcontainer/repo && if [ ! -d "maps" ]; then cd ../../ && make maps; fi
|
||||||
|
@if [ -d build/bin/quests ]; then unlink build/bin/quests; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/repo/quests quests
|
||||||
|
@if [ -d build/bin/maps ]; then unlink build/bin/maps; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/repo/maps maps
|
||||||
|
@if [ -d build/bin/eqemu-definitions ]; then unlink build/bin/eqemu-definitions; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/repo/eqemu-definitions eqemu-definitions
|
||||||
|
@mkdir -p build/bin/quests/mods
|
||||||
|
|
||||||
|
@echo "Applying base links..."
|
||||||
|
cp -R -u -p utils/patches .devcontainer/base/
|
||||||
|
@if [ -d build/bin/assets/patches ]; then unlink build/bin/assets/patches; fi
|
||||||
|
cd build/bin/assets && ln -s ../../../.devcontainer/base/patches patches
|
||||||
|
@if [ -d build/bin/lua_modules ]; then unlink build/bin/lua_modules; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/repo/quests/lua_modules lua_modules
|
||||||
|
@if [ -d build/bin/mods ]; then unlink build/bin/mods; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/repo/quests/mods mods
|
||||||
|
@if [ -d build/bin/plugins ]; then unlink build/bin/plugins; fi
|
||||||
|
cd build/bin && ln -s ../../.devcontainer/repo/quests/plugins plugins
|
||||||
|
|
||||||
@echo "Eqemu is prepared. Edit build/bin/eqemu_config.json to configure."
|
@echo "Eqemu is prepared. Edit build/bin/eqemu_config.json to configure."
|
||||||
|
|
||||||
maps:
|
is-vscode:
|
||||||
@echo "Downloading maps..."
|
@if [ -z "$$REMOTE_CONTAINERS" ]; then \
|
||||||
@mkdir -p base/maps
|
echo "Not running in VS Code devcontainer"; \
|
||||||
@cd base/maps && wget -nc https://github.com/Akkadius/eqemu-maps/archive/refs/heads/master.zip
|
exit 1; \
|
||||||
@cd base/maps && unzip -o master.zip
|
fi
|
||||||
@cd base/maps && mv eqemu-maps-master/* .
|
|
||||||
@cd base/maps && rm -rf eqemu-maps-master
|
|
||||||
@echo "Maps downloaded."
|
|
||||||
|
|
||||||
quests:
|
clean: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
rm -rf build
|
||||||
@make -C ../ -f .devcontainer/Makefile quests --no-print-directory
|
|
||||||
exit
|
.PHONY: maps
|
||||||
endif
|
maps: is-vscode
|
||||||
@cd build/bin && git clone https://github.com/ProjectEQ/projecteqquests.git quests
|
@echo "Downloading maps..."
|
||||||
|
@mkdir -p .devcontainer/repo/maps
|
||||||
|
@cd .devcontainer/repo/maps && wget -nc https://github.com/EQEmu/maps/archive/refs/heads/master.zip
|
||||||
|
@cd .devcontainer/repo/maps && unzip -o master.zip
|
||||||
|
@cd .devcontainer/repo/maps && mv maps-master/* .
|
||||||
|
@cd .devcontainer/repo/maps && rm -rf maps-master
|
||||||
|
@echo "Maps downloaded."
|
||||||
|
|
||||||
# Runs tests
|
# Runs tests
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test:
|
test: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile test --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
cd build/bin && ./tests
|
cd build/bin && ./tests
|
||||||
|
|
||||||
# Runs login binary
|
# Runs login binary
|
||||||
.PHONY: login
|
.PHONY: login
|
||||||
login:
|
login: is-vscode check-mariadb
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile login --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
cd build/bin && ./loginserver
|
cd build/bin && ./loginserver
|
||||||
|
|
||||||
|
.PHONY: hotfix
|
||||||
|
hotfix: shared
|
||||||
|
|
||||||
# Runs shared_memory binary
|
# Runs shared_memory binary
|
||||||
.PHONY: shared
|
.PHONY: shared
|
||||||
shared:
|
shared: is-vscode check-mariadb
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile shared --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
cd build/bin && ./shared_memory
|
cd build/bin && ./shared_memory
|
||||||
|
|
||||||
# Runs zone binary
|
# Runs zone binary
|
||||||
.PHONY: zone
|
.PHONY: zone
|
||||||
zone:
|
zone: is-vscode check-mariadb
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
@find build/bin/logs/zone/ -type f -name 'zone*.log' -exec rm -f {} +
|
||||||
@make -C ../ -f .devcontainer/Makefile zone --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@-rm build/bin/logs/zone/zone*.log
|
|
||||||
cd build/bin && ./zone
|
cd build/bin && ./zone
|
||||||
|
|
||||||
|
check-mariadb: is-vscode
|
||||||
|
@if ! sudo service mariadb status | grep -q 'active (running)'; then \
|
||||||
|
sudo service mariadb start; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Runs world binary
|
# Runs world binary
|
||||||
.PHONY: world
|
.PHONY: world
|
||||||
world:
|
world: is-vscode check-mariadb
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
@find build/bin/logs/ -type f -name 'world*.log' -exec rm -f {} +
|
||||||
@make -C ../ -f .devcontainer/Makefile world --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@-rm build/bin/logs/world*.log
|
|
||||||
cd build/bin && ./world
|
cd build/bin && ./world
|
||||||
|
|
||||||
# Runs ucs binary
|
# Runs ucs binary
|
||||||
.PHONY: ucs
|
.PHONY: ucs
|
||||||
ucs:
|
ucs: is-vscode check-mariadb
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
@find build/bin/logs/ -type f -name 'ucs*.log' -exec rm -f {} +
|
||||||
@make -C ../ -f .devcontainer/Makefile ucs --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@-rm build/bin/logs/ucs*.log
|
|
||||||
cd build/bin && ./ucs
|
cd build/bin && ./ucs
|
||||||
|
|
||||||
# Runs queryserv binary
|
# Runs queryserv binary
|
||||||
.PHONY: queryserv
|
.PHONY: queryserv
|
||||||
queryserv:
|
queryserv: is-vscode check-mariadb
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
@find build/bin/logs/ -type f -name 'query_server*.log' -exec rm -f {} +
|
||||||
@make -C ../ -f .devcontainer/Makefile queryserv --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@-rm build/bin/logs/query_server*.log
|
|
||||||
cd build/bin && ./queryserv
|
cd build/bin && ./queryserv
|
||||||
|
|
||||||
valgrind-%:
|
reset-content:
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
@echo "Resetting content tables in database peq..."
|
||||||
@make -C ../ -f .devcontainer/Makefile valgrind --no-print-directory
|
cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_content.sql"
|
||||||
exit
|
|
||||||
endif
|
valgrind-%: is-vscode
|
||||||
cd build/bin && valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=logs/$*.valgrind.log ./$*
|
cd build/bin && valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=logs/$*.valgrind.log ./$*
|
||||||
|
|
||||||
# Start mariaDB standalone
|
# Start mariaDB standalone
|
||||||
@ -201,30 +132,33 @@ mariadb:
|
|||||||
.PHONY: inject-mariadb
|
.PHONY: inject-mariadb
|
||||||
inject-mariadb:
|
inject-mariadb:
|
||||||
-sudo service mariadb start
|
-sudo service mariadb start
|
||||||
-mkdir -p base/db/
|
-mkdir -p .devcontainer/cache/db/
|
||||||
-sudo mariadb -e 'DROP DATABASE IF EXISTS peq;'
|
-sudo mariadb -e 'DROP DATABASE IF EXISTS peq;'
|
||||||
-sudo mariadb -e 'CREATE DATABASE peq;'
|
-sudo mariadb -e 'CREATE DATABASE peq;'
|
||||||
-sudo mariadb -e "CREATE USER 'peq'@'127.0.0.1' IDENTIFIED BY 'peqpass';"
|
-sudo mariadb -e "CREATE USER IF NOT EXISTS 'peq'@'127.0.0.1' IDENTIFIED BY 'peqpass';"
|
||||||
-sudo mariadb -e "GRANT ALL PRIVILEGES ON *.* TO 'peq'@'127.0.0.1';"
|
-sudo mariadb -e "GRANT ALL PRIVILEGES ON *.* TO 'peq'@'127.0.0.1';"
|
||||||
ifeq (,$(wildcard base/db/db.sql.zip))
|
ifeq (,$(wildcard .devcontainer/cache/db/db.sql.zip))
|
||||||
@echo "base/db.sql.zip not found. Downloading latest from https://db.projecteq.net/"
|
@echo ".devcontainer/cache/db.sql.zip not found. Downloading database from https://db.eqemu.dev/latest"
|
||||||
wget -nc https://db.projecteq.net/latest -O base/db/db.sql.zip
|
wget -nc https://db.eqemu.dev/latest -O .devcontainer/cache/db/db.sql.zip
|
||||||
-cd base/db && unzip db.sql.zip
|
-cd .devcontainer/cache/db && unzip db.sql.zip
|
||||||
endif
|
endif
|
||||||
@echo "Sourcing db may take a while, please wait..."
|
@echo "Sourcing db may take a while, please wait..."
|
||||||
@cd base/db/peq-dump && sudo mariadb --database peq -e "source create_all_tables.sql"
|
|
||||||
|
@cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_content.sql"
|
||||||
|
@cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_login.sql"
|
||||||
|
@cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_player.sql"
|
||||||
|
@# deprecated cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_queryserv.sql"
|
||||||
|
@cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_state.sql"
|
||||||
|
@cd .devcontainer/cache/db/peq-dump && sudo mariadb --database peq -e "source create_tables_system.sql"
|
||||||
|
|
||||||
@echo "MariaDB is now injected."
|
@echo "MariaDB is now injected."
|
||||||
|
|
||||||
.PHONY: gm-%
|
.PHONY: gm-%
|
||||||
gm-%:
|
gm-%: is-vscode
|
||||||
sudo mariadb --database peq -e "UPDATE account SET status=255 WHERE name = '$*';"
|
sudo mariadb --database peq -e "UPDATE account SET status=255 WHERE name = '$*';"
|
||||||
@echo "Account $* is now a GM. /camp to have it go into effect."
|
@echo "Account $* is now a GM. /camp to have it go into effect."
|
||||||
|
|
||||||
depends:
|
depends: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile depends --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
sudo apt install graphviz pip time
|
sudo apt install graphviz pip time
|
||||||
pip3 install graphviz
|
pip3 install graphviz
|
||||||
mkdir -p build/depends
|
mkdir -p build/depends
|
||||||
@ -241,44 +175,54 @@ endif
|
|||||||
@echo "Common..."
|
@echo "Common..."
|
||||||
time python3 build/depends/dependency_graph.py -f png common build/depends/common.dot
|
time python3 build/depends/dependency_graph.py -f png common build/depends/common.dot
|
||||||
|
|
||||||
backup:
|
backup: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile backup --no-print-directory
|
|
||||||
exit
|
|
||||||
endif
|
|
||||||
@mkdir -p build/bin/backup
|
@mkdir -p build/bin/backup
|
||||||
cd build/bin && ./world database:dump --compress --player-tables --state-tables --system-tables --query-serv-tables
|
cd build/bin && ./world database:dump --compress --player-tables --state-tables --system-tables --query-serv-tables
|
||||||
|
|
||||||
cpu-zone:
|
restore-%: is-vscode
|
||||||
|
@if [ -z "$*" ]; then \
|
||||||
|
echo "Please provide a backup file to restore from. Example: make restore-backup.sql"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
@echo "Restoring from backup $*"
|
||||||
|
@sudo mariadb --database peq -e "$*"
|
||||||
|
|
||||||
|
|
||||||
|
cpu-zone: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
||||||
@make -C ../ -f .devcontainer/Makefile cpu-zone --no-print-directory
|
@echo "This makefile is not intended to be run from the .devcontainer directory."
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
@cd build/bin && mkdir -p tmp
|
@cd build/bin && mkdir -p tmp
|
||||||
cd build/bin && CPUPROFILE=prof.out ./zone
|
cd build/bin && CPUPROFILE=prof.out ./zone
|
||||||
|
|
||||||
pprof-zone:
|
pprof-zone: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
||||||
@make -C ../ -f .devcontainer/Makefile pprof-zone --no-print-directory
|
@echo "This makefile is not intended to be run from the .devcontainer directory."
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
cd build/bin && google-pprof --pdf zone prof.out > prof.pdf
|
cd build/bin && google-pprof --pdf zone prof.out > prof.pdf
|
||||||
pprof-web-zone:
|
|
||||||
|
pprof-gv-zone: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
||||||
@make -C ../ -f .devcontainer/Makefile pprof-web-zone --no-print-directory
|
@echo "This makefile is not intended to be run from the .devcontainer directory."
|
||||||
exit
|
|
||||||
endif
|
|
||||||
cd build/bin && google-pprof --web zone prof.out
|
|
||||||
pprof-gv-zone:
|
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
|
||||||
@make -C ../ -f .devcontainer/Makefile pprof-gv-zone --no-print-directory
|
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
cd build/bin && google-pprof --gv zone prof.out > prof.gv
|
cd build/bin && google-pprof --gv zone prof.out > prof.gv
|
||||||
heap-zone:
|
|
||||||
|
heap-zone: is-vscode
|
||||||
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
ifeq ($(findstring .devcontainer,$(CURDIR)),.devcontainer)
|
||||||
@make -C ../ -f .devcontainer/Makefile heap-zone --no-print-directory
|
@echo "This makefile is not intended to be run from the .devcontainer directory."
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
@cd build/bin && mkdir -p tmp
|
@cd build/bin && mkdir -p tmp
|
||||||
cd build/bin && HEAPPROFILE=prof.out ./zone
|
cd build/bin && HEAPPROFILE=prof.out ./zone
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: pull
|
||||||
|
pull:
|
||||||
|
git pull
|
||||||
|
@if [ ! -d "quests" ]; then git clone https://github.com/rebuildeq/quests.git quests; fi
|
||||||
|
cd quests && git pull
|
||||||
|
@if [ ! -d "eqemu-definitions" ]; then git clone https://github.com/xackery/eqemu-definitions.git eqemu-definitions; fi
|
||||||
|
cd eqemu-definitions && git pull
|
||||||
@ -40,10 +40,41 @@
|
|||||||
"GitHub.copilot",
|
"GitHub.copilot",
|
||||||
"xackery.make-magic",
|
"xackery.make-magic",
|
||||||
"Gruntfuggly.todo-tree",
|
"Gruntfuggly.todo-tree",
|
||||||
"ms-vscode.cmake-tools"
|
"ms-vscode.cmake-tools",
|
||||||
]
|
"sumneko.lua"
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"Lua.runtime.version": "Lua 5.1",
|
||||||
|
"Lua.workspace.library": [
|
||||||
|
"/src/repo/eqemu-definitions"
|
||||||
|
],
|
||||||
|
"Lua.diagnostics.disable": [
|
||||||
|
"lowercase-global"
|
||||||
|
],
|
||||||
|
"cmake.statusbar.advanced": {
|
||||||
|
"kit": {
|
||||||
|
"visibility": "hidden"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"visibility": "hidden"
|
||||||
|
},
|
||||||
|
"buildTarget": {
|
||||||
|
"visibility": "compact"
|
||||||
|
},
|
||||||
|
"launch": {
|
||||||
|
"visibility": "hidden"
|
||||||
|
},
|
||||||
|
"ctest": {
|
||||||
|
"visibility": "icon"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mounts": [
|
||||||
|
"source=${localWorkspaceFolder}/.devcontainer/Makefile,target=/src/Makefile,type=bind,consistency=cached"
|
||||||
|
],
|
||||||
|
|
||||||
"workspaceFolder": "/src",
|
"workspaceFolder": "/src",
|
||||||
"workspaceMount": "source=${localWorkspaceFolder},target=/src,type=bind,consistency=cached"
|
"workspaceMount": "source=${localWorkspaceFolder},target=/src,type=bind,consistency=cached"
|
||||||
}
|
}
|
||||||
25
.vscode/settings.json
vendored
25
.vscode/settings.json
vendored
@ -21,14 +21,6 @@
|
|||||||
"${workspaceFolder}/dependencies/zlibng"
|
"${workspaceFolder}/dependencies/zlibng"
|
||||||
],
|
],
|
||||||
"telemetry.enableTelemetry": false,
|
"telemetry.enableTelemetry": false,
|
||||||
"cmake.buildDirectory": "${workspaceFolder}/build",
|
|
||||||
"cmake.configureArgs": [
|
|
||||||
"-DEQEMU_BUILD_LOGIN=ON",
|
|
||||||
"-DEQEMU_BUILD_TESTS=ON",
|
|
||||||
"-DCMAKE_CXX_COMPILER_LAUNCHER=ccache",
|
|
||||||
"-DEQEMU_ADD_PROFILER=ON",
|
|
||||||
"Ninja"
|
|
||||||
],
|
|
||||||
"cmake.skipConfigureIfCachePresent": true,
|
"cmake.skipConfigureIfCachePresent": true,
|
||||||
"cmake.configureOnOpen": false,
|
"cmake.configureOnOpen": false,
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
@ -115,22 +107,5 @@
|
|||||||
"format": "cpp",
|
"format": "cpp",
|
||||||
"ranges": "cpp",
|
"ranges": "cpp",
|
||||||
"span": "cpp"
|
"span": "cpp"
|
||||||
},
|
|
||||||
"cmake.statusbar.advanced": {
|
|
||||||
"kit": {
|
|
||||||
"visibility": "hidden",
|
|
||||||
},
|
|
||||||
"debug": {
|
|
||||||
"visibility": "hidden",
|
|
||||||
},
|
|
||||||
"buildTarget": {
|
|
||||||
"visibility": "hidden",
|
|
||||||
},
|
|
||||||
"launch": {
|
|
||||||
"visibility": "hidden",
|
|
||||||
},
|
|
||||||
"ctest": {
|
|
||||||
"visibility": "icon",
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
49
CMakePresets.json
Normal file
49
CMakePresets.json
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"cmakeMinimumRequired": {
|
||||||
|
"major": 3,
|
||||||
|
"minor": 19,
|
||||||
|
"patch": 0
|
||||||
|
},
|
||||||
|
"configurePresets": [
|
||||||
|
{
|
||||||
|
"name": "linux-debug",
|
||||||
|
"displayName": "Linux Debug",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"binaryDir": "${sourceDir}/build",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
||||||
|
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
|
||||||
|
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache",
|
||||||
|
"EQEMU_BUILD_LOGIN": "ON",
|
||||||
|
"EQEMU_BUILD_TESTS": "ON",
|
||||||
|
"EQEMU_ADD_PROFILER": "ON"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "linux-release",
|
||||||
|
"displayName": "Linux Release",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"binaryDir": "${sourceDir}/build/release",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Release",
|
||||||
|
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
|
||||||
|
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache",
|
||||||
|
"EQEMU_BUILD_LOGIN": "ON"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "win-msvc",
|
||||||
|
"displayName": "Windows MSVC (VS 2022)",
|
||||||
|
"generator": "Visual Studio 17 2022",
|
||||||
|
"binaryDir": "${sourceDir}/build/{presetName}",
|
||||||
|
"architecture": { "value": "x64" },
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_CONFIGURATION_TYPES": "Debug;Release",
|
||||||
|
"EQEMU_BUILD_LOGIN": "ON",
|
||||||
|
"EQEMU_BUILD_TESTS": "ON"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -35,4 +35,4 @@ IF(UNIX)
|
|||||||
ADD_DEFINITIONS(-fPIC)
|
ADD_DEFINITIONS(-fPIC)
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|
||||||
SET(LIBRARY_OUTPUT_PATH ../../Bin)
|
SET(LIBRARY_OUTPUT_PATH ../../bin)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user