mirror of
https://github.com/openvswitch/ovs
synced 2025-09-04 00:05:15 +00:00
python: Allow building json C extension with static OVS library.
Allow caller of setup.py to pass in libopenvswitch.a as an object for linking through the use of LDFLAGS environment variable when not building a shared openvswitch library. To accomplish this set the `enable_shared` environment variable to 'no'. Example: LDFLAGS=lib/libopenvswitch.a enable_shared=no setup.py install Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
committed by
Ilya Maximets
parent
ae262ddf22
commit
671f93fe42
@@ -10,6 +10,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from distutils.command.build_ext import build_ext
|
from distutils.command.build_ext import build_ext
|
||||||
@@ -63,6 +64,15 @@ class try_build_ext(build_ext):
|
|||||||
raise BuildFailed()
|
raise BuildFailed()
|
||||||
|
|
||||||
|
|
||||||
|
# Allow caller of setup.py to pass in libopenvswitch.a as an object for linking
|
||||||
|
# through the use of LDFLAGS environment variable when not building a shared
|
||||||
|
# openvswitch library.
|
||||||
|
if os.environ.get('enable_shared', '') == 'no':
|
||||||
|
json_libraries = []
|
||||||
|
else:
|
||||||
|
json_libraries = ['openvswitch']
|
||||||
|
|
||||||
|
|
||||||
setup_args = dict(
|
setup_args = dict(
|
||||||
name='ovs',
|
name='ovs',
|
||||||
description='Open vSwitch library',
|
description='Open vSwitch library',
|
||||||
@@ -85,7 +95,7 @@ setup_args = dict(
|
|||||||
'Programming Language :: Python :: 3.5',
|
'Programming Language :: Python :: 3.5',
|
||||||
],
|
],
|
||||||
ext_modules=[setuptools.Extension("ovs._json", sources=["ovs/_json.c"],
|
ext_modules=[setuptools.Extension("ovs._json", sources=["ovs/_json.c"],
|
||||||
libraries=['openvswitch'])],
|
libraries=json_libraries)],
|
||||||
cmdclass={'build_ext': try_build_ext},
|
cmdclass={'build_ext': try_build_ext},
|
||||||
install_requires=['sortedcontainers'],
|
install_requires=['sortedcontainers'],
|
||||||
extras_require={':sys_platform == "win32"': ['pywin32 >= 1.0']},
|
extras_require={':sys_platform == "win32"': ['pywin32 >= 1.0']},
|
||||||
|
Reference in New Issue
Block a user