fix compile paddle swig bug on MAC OS

avx_docs
liaogang 9 years ago
parent ec2a3eb3c9
commit 70cceb0cdd

@ -15,6 +15,19 @@
try: try:
from paddle_api_config import * from paddle_api_config import *
import os.path import os.path
import platform
system = platform.system().lower()
is_osx = (system == 'darwin')
is_win = (system == 'windows')
is_lin = (system == 'linux')
if is_lin:
whole_start = "-Wl,--whole-archive"
whole_end = "-Wl,--no-whole-archive"
elif is_osx:
whole_start = ""
whole_end = ""
LIB_DIRS = ["math", 'utils', 'parameter', "gserver", "api", "cuda", "pserver", "trainer"] LIB_DIRS = ["math", 'utils', 'parameter', "gserver", "api", "cuda", "pserver", "trainer"]
PARENT_LIB_DIRS = ['proto'] PARENT_LIB_DIRS = ['proto']
@ -56,9 +69,9 @@ try:
def libs_str(self): def libs_str(self):
libs = [ libs = [
"-Wl,--whole-archive", whole_start,
"-lpaddle_gserver", "-lpaddle_gserver",
"-Wl,--no-whole-archive", whole_end,
"-lpaddle_pserver", "-lpaddle_pserver",
"-lpaddle_trainer_lib", "-lpaddle_trainer_lib",
"-lpaddle_network", "-lpaddle_network",

@ -17,6 +17,14 @@
from setuptools import setup, Extension from setuptools import setup, Extension
import numpy as np import numpy as np
import api.paddle_ld_flags import api.paddle_ld_flags
import platform
system = platform.system().lower()
is_osx = (system == 'darwin')
is_win = (system == 'windows')
is_lin = (system == 'linux')
# The extra links will passed from COMAKE # The extra links will passed from COMAKE
# because generate paddle LDFLAGS is too complicated to do in setup.py # because generate paddle LDFLAGS is too complicated to do in setup.py
@ -34,17 +42,24 @@ try:
except: except:
pass pass
if is_lin == True:
extra_links = ["-Xlinker", '-start-group'] + extra_links + ["-Xlinker", "-end-group"]
elif is_osx == True:
extra_links = ["-Wl,-all_load"] + extra_links
include_dirs = [np.get_include(), "../"] # include numpy and paddle.
setup(name="py_paddle", setup(name="py_paddle",
version="@PADDLE_VERSION@", version="@PADDLE_VERSION@",
ext_modules=[ ext_modules=[
Extension('py_paddle._swig_paddle', # Build SWIG Extension. Extension('py_paddle._swig_paddle', # Build SWIG Extension.
['Paddle_wrap.cxx'], ['Paddle_wrap.cxx'],
extra_link_args=["-Xlinker", '-start-group'] + include_dirs = include_dirs,
extra_links + ["-Xlinker", "-end-group"] extra_link_args = extra_links
) )
], ],
packages=['py_paddle'], packages=['py_paddle'],
include_dirs = [np.get_include(), "../"], # include numpy and paddle. include_dirs = include_dirs,
install_requires = [ install_requires = [
'numpy>=1.8.0', # The numpy is required. 'numpy>=1.8.0', # The numpy is required.
'protobuf>=2.4.1' # The paddle protobuf version 'protobuf>=2.4.1' # The paddle protobuf version

Loading…
Cancel
Save