compile: add mingw xmake compile arg
This commit is contained in:
		
							parent
							
								
									16ef463d76
								
							
						
					
					
						commit
						e77f8446ee
					
				
							
								
								
									
										76
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								Makefile
									
									
									
									
									
								
							@ -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
 | 
			
		||||
@ -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")
 | 
			
		||||
	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)
 | 
			
		||||
@ -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")
 | 
			
		||||
	add_deps("trans_util")
 | 
			
		||||
	
 | 
			
		||||
	if is_plat("mingw") then
 | 
			
		||||
		add_links("ws2_32", "wsock32")
 | 
			
		||||
	end
 | 
			
		||||
							
								
								
									
										2
									
								
								ofen
									
									
									
									
									
								
							
							
								
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								ofen
									
									
									
									
									
								
							@ -1 +1 @@
 | 
			
		||||
Subproject commit 1bf2550248e21147472d1c4363cbcb1bc1037054
 | 
			
		||||
Subproject commit de084c146d75ebddf5ed773a61e4603a6f3ce085
 | 
			
		||||
@ -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")
 | 
			
		||||
	add_deps("trans_net")
 | 
			
		||||
	
 | 
			
		||||
	if is_plat("mingw") then
 | 
			
		||||
		add_links("ws2_32", "wsock32")
 | 
			
		||||
	end
 | 
			
		||||
@ -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")
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user