Skip to content

Commit 4ddec23

Browse files
authored
Merge pull request Tencent#1079 from lmssll/develop
add osx xlog-only build function, without [undefined symbols] link error on m1 mac
2 parents 72c9df0 + b4637fa commit 4ddec23

File tree

1 file changed

+54
-1
lines changed

1 file changed

+54
-1
lines changed

mars/build_osx.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313

1414
OSX_BUILD_OS_CMD = 'cmake ../.. -DCMAKE_BUILD_TYPE=Release -DENABLE_ARC=0 -DENABLE_BITCODE=0 && make -j8 && make install'
1515

16+
OSX_BUILD_ARM_CMD = 'cmake ../.. -DCMAKE_BUILD_TYPE=Release -DENABLE_ARC=0 -DENABLE_BITCODE=0 -DCMAKE_OSX_ARCHITECTURES="arm64" && make -j8 && make install'
17+
18+
OSX_BUILD_X86_CMD = 'cmake ../.. -DCMAKE_BUILD_TYPE=Release -DENABLE_ARC=0 -DENABLE_BITCODE=0 -DCMAKE_OSX_ARCHITECTURES="x86_64" && make -j8 && make install'
19+
1620
GEN_OSX_PROJ = 'cmake ../.. -G Xcode -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DENABLE_BITCODE=0'
1721

1822

@@ -40,6 +44,52 @@ def build_osx(tag=''):
4044
print(dst_framework_path)
4145
return True
4246

47+
def build_osx_xlog(tag=''):
48+
gen_mars_revision_file('comm', tag)
49+
50+
clean(BUILD_OUT_PATH)
51+
os.chdir(BUILD_OUT_PATH)
52+
53+
ret = os.system(OSX_BUILD_ARM_CMD)
54+
os.chdir(SCRIPT_PATH)
55+
if ret != 0:
56+
print('!!!!!!!!!!!build arm fail!!!!!!!!!!!!!!!')
57+
return False
58+
59+
libtool_arm_dst_lib = INSTALL_PATH + '/mars_arm'
60+
libtool_src_libs = [INSTALL_PATH + '/libcomm.a',
61+
INSTALL_PATH + '/libmars-boost.a',
62+
INSTALL_PATH + '/libxlog.a',
63+
BUILD_OUT_PATH + '/zstd/libzstd.a']
64+
if not libtool_libs(libtool_src_libs, libtool_arm_dst_lib):
65+
return False
66+
67+
clean(BUILD_OUT_PATH)
68+
os.chdir(BUILD_OUT_PATH)
69+
ret = os.system(OSX_BUILD_X86_CMD)
70+
os.chdir(SCRIPT_PATH)
71+
if ret != 0:
72+
print('!!!!!!!!!!!build x86 fail!!!!!!!!!!!!!!!')
73+
return False
74+
75+
libtool_x86_dst_lib = INSTALL_PATH + '/mars_x86'
76+
if not libtool_libs(libtool_src_libs, libtool_x86_dst_lib):
77+
return False
78+
79+
lipo_src_libs = []
80+
lipo_src_libs.append(libtool_arm_dst_lib)
81+
lipo_src_libs.append(libtool_x86_dst_lib)
82+
lipo_dst_lib = INSTALL_PATH + '/mars'
83+
84+
if not lipo_libs(lipo_src_libs, lipo_dst_lib):
85+
return False
86+
87+
dst_framework_path = INSTALL_PATH + '/mars.framework'
88+
make_static_framework(lipo_dst_lib, dst_framework_path, XLOG_COPY_HEADER_FILES, '../')
89+
90+
print('==================Output========================')
91+
print(dst_framework_path)
92+
4393
def gen_ios_project():
4494
gen_mars_revision_file('comm')
4595

@@ -60,14 +110,17 @@ def main():
60110
build_osx(sys.argv[1])
61111
break
62112
else:
63-
num = raw_input('Enter menu:\n1. Clean && build.\n2. Gen OSX Project.\n3. Exit\n')
113+
num = raw_input('Enter menu:\n1. Clean && build.\n2. Gen OSX Project.\n3. Build xlog.\n4. Exit\n')
64114
if num == '1':
65115
build_osx()
66116
break
67117
elif num == '2':
68118
gen_ios_project()
69119
break
70120
elif num == '3':
121+
build_osx_xlog()
122+
break
123+
elif num == '4':
71124
break
72125
else:
73126
build_osx()

0 commit comments

Comments
 (0)