2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 14:25:26 +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:
Frode Nordahl
2022-07-14 17:55:42 +02:00
committed by Ilya Maximets
parent ae262ddf22
commit 671f93fe42

View File

@@ -10,6 +10,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import sys
from distutils.command.build_ext import build_ext
@@ -63,6 +64,15 @@ class try_build_ext(build_ext):
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(
name='ovs',
description='Open vSwitch library',
@@ -85,7 +95,7 @@ setup_args = dict(
'Programming Language :: Python :: 3.5',
],
ext_modules=[setuptools.Extension("ovs._json", sources=["ovs/_json.c"],
libraries=['openvswitch'])],
libraries=json_libraries)],
cmdclass={'build_ext': try_build_ext},
install_requires=['sortedcontainers'],
extras_require={':sys_platform == "win32"': ['pywin32 >= 1.0']},