diff --git a/Makefile b/Makefile deleted file mode 100644 index fc3944c..0000000 --- a/Makefile +++ /dev/null @@ -1,76 +0,0 @@ -# -# ***************************** XP make SCRIPT ******************************** -# -# XP USE, Test On Windows XP SP3 under mingw730_32 with boost1.83 filesystem -# boost compile arg: b2.exe link=static runtime-link=shared --with-filesystem --prefix=C:\boost install -export PATH := C:\mingw32\bin:$(PATH) -BOOST_VER = 1_83 -CXX = g++ -CXXFLAGSA = -O2 -Wall -DUSE_BOOST_FILESYSTEM -std=c++17 -I./ -I./3rd -I./net -I./ofen/include -I./util -Wa,-mbig-obj -CXXFLAGSB = -IC:\boost\include\boost-$(BOOST_VER) -Wno-unused-variable -finput-charset=utf-8 -fexec-charset=gbk -# 目录 -CURDIR_WINDOWS := $(subst /,\,$(CURDIR)) -OBJDIR = $(CURDIR_WINDOWS)\build\obj -BINDIR = $(CURDIR_WINDOWS)\build\bin -LIBDIR = $(CURDIR_WINDOWS)\build\lib -# 库路径和库文件 -LIB_PATHS = -L$(LIBDIR) -LC:\boost\lib -LIBS = -lws2_32 -lwsock32 -lboost_filesystem-mgw7-mt-x32-$(BOOST_VER) -# 源文件 -UTIL_SRC = $(wildcard util/*.cpp) -NET_SRC = $(wildcard net/*.cpp) -OFEN_SRC = $(wildcard ofen/src/*.cpp) -CLIENT_SRC = $(wildcard client/*.cpp) -SERVER_SRC = $(wildcard server/*.cpp) -# 对应的目标文件 -UTIL_OBJ = $(UTIL_SRC:%.cpp=$(OBJDIR)/%.o) -NET_OBJ = $(NET_SRC:%.cpp=$(OBJDIR)/%.o) -OFEN_OBJ = $(OFEN_SRC:%.cpp=$(OBJDIR)/%.o) -CLIENT_OBJ = $(CLIENT_SRC:%.cpp=$(OBJDIR)/%.o) -SERVER_OBJ = $(SERVER_SRC:%.cpp=$(OBJDIR)/%.o) -# 库文件 -UTIL_LIB = $(LIBDIR)\libutil.a -NET_LIB = $(LIBDIR)\libnet.a -OFEN_LIB = $(LIBDIR)\libofen.a -# 可执行文件 -CLIENT_BIN = $(BINDIR)\client.exe -SERVER_BIN = $(BINDIR)\server.exe -# 生成的目标文件夹 -$(shell if not exist "$(OBJDIR)" md "$(OBJDIR)") -$(shell if not exist "$(BINDIR)" md "$(BINDIR)") -$(shell if not exist "$(LIBDIR)" md "$(LIBDIR)") - -# 默认目标:编译所有目标 -all: $(CLIENT_BIN) $(SERVER_BIN) - -# 生成 util 库 -$(UTIL_LIB): $(UTIL_OBJ) - ar rcs $@ $^ - -# 生成 net 库 -$(NET_LIB): $(NET_OBJ) - ar rcs $@ $^ - -# 生成 ofen 库 -$(OFEN_LIB): $(OFEN_OBJ) - ar rcs $@ $^ - -# 生成 client 可执行文件 -$(CLIENT_BIN): $(CLIENT_OBJ) $(UTIL_LIB) $(NET_LIB) $(OFEN_LIB) - $(CXX) -o $@ $^ $(CXXFLAGSA) $(CXXFLAGSB) $(LIB_PATHS) $(LIBS) - -# 生成 server 可执行文件 -$(SERVER_BIN): $(SERVER_OBJ) $(UTIL_LIB) $(NET_LIB) $(OFEN_LIB) - $(CXX) -o $@ $^ $(CXXFLAGSA) $(CXXFLAGSB) $(LIB_PATHS) $(LIBS) - -# 编译 .cpp 文件为 .o 文件 -$(OBJDIR)/%.o: %.cpp - @if not exist "$(subst /,\,$(dir $@))" (md "$(subst /,\,$(dir $@))") - $(CXX) -c -o $@ $< $(CXXFLAGSA) $(CXXFLAGSB) - -# 清理生成的文件 -clean: - rd /S /Q $(CURDIR_WINDOWS)\build - -# 只编译可执行文件 -.PHONY: all clean diff --git a/client/xmake.lua b/client/xmake.lua index a252c90..74744ea 100644 --- a/client/xmake.lua +++ b/client/xmake.lua @@ -1,12 +1,26 @@ add_rules("mode.debug", "mode.release") set_languages("c++17") -if is_plat("windows") then - add_cxxflags("/source-charset:utf-8") -end add_includedirs(os.scriptdir()) target("tsc") + add_options("boost") set_kind("binary") add_files("*.cpp") add_deps("ofen") add_deps("trans_util") - add_deps("trans_net") \ No newline at end of file + add_deps("trans_net") + + if is_plat("mingw") then + add_links("ws2_32", "wsock32") + end + +option("boost") + boost_root_dir = os.getenv("BOOST_HEADER_DIR") + boost_lib_dir = os.getenv("BOOST_LIB_DIR") + boost_libs = os.getenv("BOOST_LIBS") + add_includedirs(boost_root_dir) + print(boost_root_dir) + add_defines("USE_BOOST_FILESYSTEM") + add_linkdirs(boost_lib_dir) + print(boost_lib_dir) + add_links(boost_libs) + print(boost_libs) \ No newline at end of file diff --git a/net/xmake.lua b/net/xmake.lua index e69c7ca..9a76016 100644 --- a/net/xmake.lua +++ b/net/xmake.lua @@ -1,8 +1,5 @@ add_rules("mode.debug", "mode.release") set_languages("c++17") -if is_plat("windows") then - add_cxxflags("/source-charset:utf-8") -end if is_mode("debug") then set_suffixname("d") end @@ -11,4 +8,8 @@ target("trans_net") set_kind("static") add_files("*.cpp") add_deps("ofen") - add_deps("trans_util") \ No newline at end of file + add_deps("trans_util") + + if is_plat("mingw") then + add_links("ws2_32", "wsock32") + end \ No newline at end of file diff --git a/ofen b/ofen index 1bf2550..de084c1 160000 --- a/ofen +++ b/ofen @@ -1 +1 @@ -Subproject commit 1bf2550248e21147472d1c4363cbcb1bc1037054 +Subproject commit de084c146d75ebddf5ed773a61e4603a6f3ce085 diff --git a/server/xmake.lua b/server/xmake.lua index f98548f..87b3791 100644 --- a/server/xmake.lua +++ b/server/xmake.lua @@ -1,12 +1,13 @@ add_rules("mode.debug", "mode.release") set_languages("c++17") -if is_plat("windows") then - add_cxxflags("/source-charset:utf-8") -end add_includedirs(os.scriptdir()) target("tss") set_kind("binary") add_files("*.cpp") add_deps("ofen") add_deps("trans_util") - add_deps("trans_net") \ No newline at end of file + add_deps("trans_net") + + if is_plat("mingw") then + add_links("ws2_32", "wsock32") + end \ No newline at end of file diff --git a/xmake.lua b/xmake.lua index 7f26e81..7c59ffa 100644 --- a/xmake.lua +++ b/xmake.lua @@ -3,6 +3,9 @@ set_languages("c++17") if is_plat("windows") then add_cxxflags("/source-charset:utf-8") end +if is_plat("mingw") then + add_cxxflags("-Wno-unused-variable -finput-charset=utf-8 -fexec-charset=gbk") +end add_includedirs("$(projectdir)/3rd", {public = true}) add_includedirs("$(projectdir)/build", {public = true}) includes("util", "ofen", "net", "server", "client")