# Copyright (c) 2016 Baidu, Inc. All Rights Reserved # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This file is used to build paddle python binding package. # It will be invoked by Makefile that generated by COMAKE from setuptools import setup, Extension import numpy as np import api.paddle_ld_flags # The extra links will passed from COMAKE # because generate paddle LDFLAGS is too complicated to do in setup.py # it just read COMAKE generated LDFLAGS. extra_links = [] ldflags = api.paddle_ld_flags.PaddleLDFlag() ldflags = ldflags.ldflag_str() if ldflags is not None: extra_links.extend(ldflags.split(" ")) try: with open('.py_paddle_extra_link_flags', 'r') as f: for line in f: extra_links += line.split() except: pass setup(name="py_paddle", version="0.8.0b", # TODO(yuyang18): Make this version same as CMake ext_modules=[ Extension('py_paddle._swig_paddle', # Build SWIG Extension. ['Paddle_wrap.cxx'], extra_link_args=["-Xlinker", '-start-group'] + extra_links + ["-Xlinker", "-end-group"] ) ], packages=['py_paddle'], include_dirs = [np.get_include(), "../"], # include numpy and paddle. install_requires = [ 'numpy>=1.10.1', # The numpy is required. 'protobuf>=2.4.1' # The paddle protobuf version ])