|
Packit |
534379 |
# Copyright(c) 2018, Intel Corporation
|
|
Packit |
534379 |
#
|
|
Packit |
534379 |
# Redistribution and use in source and binary forms, with or without
|
|
Packit |
534379 |
# modification, are permitted provided that the following conditions are met:
|
|
Packit |
534379 |
#
|
|
Packit |
534379 |
# * Redistributions of source code must retain the above copyright notice,
|
|
Packit |
534379 |
# this list of conditions and the following disclaimer.
|
|
Packit |
534379 |
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
Packit |
534379 |
# this list of conditions and the following disclaimer in the documentation
|
|
Packit |
534379 |
# and/or other materials provided with the distribution.
|
|
Packit |
534379 |
# * Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
534379 |
# may be used to endorse or promote products derived from this software
|
|
Packit |
534379 |
# without specific prior written permission.
|
|
Packit |
534379 |
#
|
|
Packit |
534379 |
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Packit |
534379 |
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
534379 |
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Packit |
534379 |
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
Packit |
534379 |
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Packit |
534379 |
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Packit |
534379 |
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
Packit |
534379 |
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
Packit |
534379 |
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
Packit |
534379 |
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
Packit |
534379 |
# POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
534379 |
import os
|
|
Packit |
534379 |
from setuptools import setup, find_packages
|
|
Packit |
534379 |
from setuptools.command.build_ext import build_ext
|
|
Packit |
534379 |
from distutils.extension import Extension
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
# get the original build_extensions method
|
|
Packit |
534379 |
original_build_extensions = build_ext.build_extensions
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
def override_build_extensions(self):
|
|
Packit |
534379 |
if '-Wstrict-prototypes' in self.compiler.compiler_so:
|
|
Packit |
534379 |
self.compiler.compiler_so.remove('-Wstrict-prototypes')
|
|
Packit |
534379 |
self.compiler.compiler_so.append('-fvisibility=hidden')
|
|
Packit |
534379 |
# call the original build_extensions
|
|
Packit |
534379 |
original_build_extensions(self)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
# replace build_extensions with our custom version
|
|
Packit |
534379 |
build_ext.build_extensions = override_build_extensions
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
class pybind_include_dirs(object):
|
|
Packit |
534379 |
def __init__(self, user=False):
|
|
Packit |
534379 |
self.user = user
|
|
Packit |
534379 |
|
|
Packit |
534379 |
def __str__(self):
|
|
Packit |
534379 |
import pybind11
|
|
Packit |
534379 |
return pybind11.get_include(self.user)
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
extensions = [
|
|
Packit |
534379 |
Extension("opae.fpga._opae",
|
|
Packit |
534379 |
sources=["pyproperties.cpp",
|
|
Packit |
534379 |
"pycontext.cpp",
|
|
Packit |
534379 |
"pyhandle.cpp",
|
|
Packit |
534379 |
"pytoken.cpp",
|
|
Packit |
534379 |
"pyshared_buffer.cpp",
|
|
Packit |
534379 |
"pyevents.cpp",
|
|
Packit |
534379 |
"pyerrors.cpp",
|
|
Packit |
534379 |
"pysysobject.cpp",
|
|
Packit |
534379 |
"opae.cpp"],
|
|
Packit |
534379 |
language="c++",
|
|
Packit |
534379 |
extra_compile_args=["-std=c++11"],
|
|
Packit |
534379 |
extra_link_args=["-std=c++11"],
|
|
Packit |
534379 |
include_dirs=[
|
|
Packit |
534379 |
"@CMAKE_INSTALL_PREFIX@/include",
|
|
Packit |
534379 |
os.environ.get("OPAE_INCLUDE_DIR", ""),
|
|
Packit |
534379 |
pybind_include_dirs(),
|
|
Packit |
534379 |
pybind_include_dirs(True)
|
|
Packit |
534379 |
],
|
|
Packit |
534379 |
libraries=["opae-c", "opae-cxx-core", "uuid"],
|
|
Packit |
534379 |
library_dirs=[os.environ.get("OPAE_LIBRARY_DIR", ""),
|
|
Packit |
534379 |
"@CMAKE_INSTALL_PREFIX@/lib",
|
|
Packit |
534379 |
"@CMAKE_INSTALL_PREFIX@/lib64"])
|
|
Packit |
534379 |
]
|
|
Packit |
534379 |
|
|
Packit |
534379 |
setup(
|
|
Packit |
534379 |
name="opae.fpga",
|
|
Packit |
534379 |
version="@OPAE_VERSION@",
|
|
Packit |
534379 |
packages=find_packages(),
|
|
Packit |
534379 |
entry_points={
|
|
Packit |
534379 |
'console_scripts': [
|
|
Packit |
534379 |
]
|
|
Packit |
534379 |
},
|
|
Packit |
534379 |
ext_modules=extensions,
|
|
Packit |
534379 |
install_requires=['pybind11>=@PYOPAE_PYBIND11_VERSION@'],
|
|
Packit |
534379 |
description="pyopae provides Python bindings around the "
|
|
Packit |
534379 |
"OPAE C API",
|
|
Packit |
534379 |
license="BSD3",
|
|
Packit |
534379 |
keywords="OPAE accelerator fpga bindings",
|
|
Packit |
534379 |
url="https://01.org/OPAE",
|
|
Packit |
534379 |
)
|