diff mbox series

[ovs-dev,v3,5/8] python: Allow building json C extension with static OVS library.

Message ID 20220707174223.923183-5-frode.nordahl@canonical.com
State Superseded
Headers show
Series [ovs-dev,v3,1/8] debian: Archive debian packaging source. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Frode Nordahl July 7, 2022, 5:42 p.m. UTC
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>
---
 python/setup.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/python/setup.py b/python/setup.py
index cfe01763f..369110531 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -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']},