From 7c2a958328a37c17763176838bf06ca07ac71945 Mon Sep 17 00:00:00 2001 From: saudzahirr Date: Tue, 8 Apr 2025 14:36:55 +0500 Subject: [PATCH] move the shared dynamic libs to `lib` * refactor femzip_api to accomodate changes * update .gitignore to keep dll/so files --- .gitignore | 42 +++++------ lasso/femzip/femzip_api.py | 67 +++++++++--------- lasso/femzip/{ => lib/linux}/api_extended.so | Bin .../linux}/libfemzip_a_dyna_sidact_generic.so | Bin .../libfemzip_post_licgenerator_ext_flexlm.so | Bin lasso/femzip/{ => lib/linux}/libimf.so | Bin lasso/femzip/{ => lib/linux}/libintlc.so.5 | Bin lasso/femzip/{ => lib/linux}/libiomp5.so | Bin lasso/femzip/{ => lib/linux}/libirng.so | Bin lasso/femzip/{ => lib/linux}/libsvml.so | Bin .../femzip/{ => lib/windows}/api_extended.dll | Bin .../windows}/femzip_a_dyna_sidact_generic.dll | Bin ...libfemzip_post_licgenerator_ext_flexlm.dll | Bin .../femzip/{ => lib/windows}/libifcoremd.dll | Bin .../femzip/{ => lib/windows}/libifportmd.dll | Bin lasso/femzip/{ => lib/windows}/libiomp5md.dll | Bin lasso/femzip/{ => lib/windows}/libmmd.dll | Bin 17 files changed, 54 insertions(+), 55 deletions(-) rename lasso/femzip/{ => lib/linux}/api_extended.so (100%) rename lasso/femzip/{ => lib/linux}/libfemzip_a_dyna_sidact_generic.so (100%) rename lasso/femzip/{ => lib/linux}/libfemzip_post_licgenerator_ext_flexlm.so (100%) rename lasso/femzip/{ => lib/linux}/libimf.so (100%) rename lasso/femzip/{ => lib/linux}/libintlc.so.5 (100%) rename lasso/femzip/{ => lib/linux}/libiomp5.so (100%) rename lasso/femzip/{ => lib/linux}/libirng.so (100%) rename lasso/femzip/{ => lib/linux}/libsvml.so (100%) rename lasso/femzip/{ => lib/windows}/api_extended.dll (100%) rename lasso/femzip/{ => lib/windows}/femzip_a_dyna_sidact_generic.dll (100%) rename lasso/femzip/{ => lib/windows}/libfemzip_post_licgenerator_ext_flexlm.dll (100%) rename lasso/femzip/{ => lib/windows}/libifcoremd.dll (100%) rename lasso/femzip/{ => lib/windows}/libifportmd.dll (100%) rename lasso/femzip/{ => lib/windows}/libiomp5md.dll (100%) rename lasso/femzip/{ => lib/windows}/libmmd.dll (100%) diff --git a/.gitignore b/.gitignore index ae57f91..0a4e587 100644 --- a/.gitignore +++ b/.gitignore @@ -3,26 +3,15 @@ __pycache__/ *.py[cod] *$py.class -# Mac specific files -.DS_Store - -# Notepad++ backup file -.bak - -# C extensions -*.so - # Distribution / packaging .Python ./build/ -.vscode build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ -lib/ lib64/ parts/ sdist/ @@ -33,6 +22,21 @@ wheels/ *.egg MANIFEST +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Exclude femzip shared libraries +!**/lib/**/*.dll +!**/lib/**/*.so + # Unit test / coverage reports htmlcov/ .tox/ @@ -61,16 +65,14 @@ venv.bak/ # mkdocs documentation /site -# Compiled Object files -*.slo -*.lo -*.o -*.obj +# Mac specific files +.DS_Store -# Compiled Dynamic libraries -#*.so -*.dylib -*.dll +# Notepad++ backup file +.bak + +# Vscode configurations +.vscode # Ignore generated changelog CHANGELOG.md diff --git a/lasso/femzip/femzip_api.py b/lasso/femzip/femzip_api.py index 6a84dc9..a8c6d84 100644 --- a/lasso/femzip/femzip_api.py +++ b/lasso/femzip/femzip_api.py @@ -1,5 +1,6 @@ import logging import os +from pathlib import Path import re import stat import sys @@ -245,49 +246,45 @@ def api(self) -> CDLL: if self._api is None: - bin_dirpath = ( - os.path.abspath(os.path.dirname(sys.executable)) - if hasattr(sys, "frozen") - else os.path.dirname(os.path.abspath(__file__)) - ) + # Set the base path once + base_path = Path(__file__).parent - # Flexlm Settings - # prevent flexlm gui to pop up + # Set environment variables for FlexLM os.environ["FLEXLM_BATCH"] = "1" - # set a low timeout from originally 10 seconds if "FLEXLM_TIMEOUT" not in os.environ: os.environ["FLEXLM_TIMEOUT"] = "200000" - # windows - if "win32" in sys.platform: - + # Platform-specific configurations + if sys.platform == "win32": + bin_dirpath = base_path / "lib" / "windows" shared_lib_name = "api_extended.dll" - self.load_dynamic_library(os.path.join(bin_dirpath, "libmmd.dll")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libifcoremd.dll")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libifportmd.dll")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libiomp5md.dll")) - self.load_dynamic_library( - os.path.join(bin_dirpath, "femzip_a_dyna_sidact_generic.dll") - ) - self.load_dynamic_library( - os.path.join(bin_dirpath, "libfemzip_post_licgenerator_ext_flexlm.dll") - ) - # linux hopefully + libs = [ + "libmmd.dll", + "libifcoremd.dll", + "libifportmd.dll", + "libiomp5md.dll", + "femzip_a_dyna_sidact_generic.dll", + "libfemzip_post_licgenerator_ext_flexlm.dll", + ] else: + bin_dirpath = base_path / "lib" / "linux" shared_lib_name = "api_extended.so" - self.load_dynamic_library(os.path.join(bin_dirpath, "libiomp5.so")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libintlc.so.5")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libirng.so")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libimf.so")) - self.load_dynamic_library(os.path.join(bin_dirpath, "libsvml.so")) - self.load_dynamic_library( - os.path.join(bin_dirpath, "libfemzip_a_dyna_sidact_generic.so") - ) - self.load_dynamic_library( - os.path.join(bin_dirpath, "libfemzip_post_licgenerator_ext_flexlm.so") - ) - - filepath = os.path.join(bin_dirpath, shared_lib_name) + libs = [ + "libiomp5.so", + "libintlc.so.5", + "libirng.so", + "libimf.so", + "libsvml.so", + "libfemzip_a_dyna_sidact_generic.so", + "libfemzip_post_licgenerator_ext_flexlm.so", + ] + + # Load all the dynamic libraries + for lib in libs: + self.load_dynamic_library(bin_dirpath / lib) + + # Load the main shared library + filepath = bin_dirpath / shared_lib_name self._api = self.load_dynamic_library(filepath) # license check diff --git a/lasso/femzip/api_extended.so b/lasso/femzip/lib/linux/api_extended.so similarity index 100% rename from lasso/femzip/api_extended.so rename to lasso/femzip/lib/linux/api_extended.so diff --git a/lasso/femzip/libfemzip_a_dyna_sidact_generic.so b/lasso/femzip/lib/linux/libfemzip_a_dyna_sidact_generic.so similarity index 100% rename from lasso/femzip/libfemzip_a_dyna_sidact_generic.so rename to lasso/femzip/lib/linux/libfemzip_a_dyna_sidact_generic.so diff --git a/lasso/femzip/libfemzip_post_licgenerator_ext_flexlm.so b/lasso/femzip/lib/linux/libfemzip_post_licgenerator_ext_flexlm.so similarity index 100% rename from lasso/femzip/libfemzip_post_licgenerator_ext_flexlm.so rename to lasso/femzip/lib/linux/libfemzip_post_licgenerator_ext_flexlm.so diff --git a/lasso/femzip/libimf.so b/lasso/femzip/lib/linux/libimf.so similarity index 100% rename from lasso/femzip/libimf.so rename to lasso/femzip/lib/linux/libimf.so diff --git a/lasso/femzip/libintlc.so.5 b/lasso/femzip/lib/linux/libintlc.so.5 similarity index 100% rename from lasso/femzip/libintlc.so.5 rename to lasso/femzip/lib/linux/libintlc.so.5 diff --git a/lasso/femzip/libiomp5.so b/lasso/femzip/lib/linux/libiomp5.so similarity index 100% rename from lasso/femzip/libiomp5.so rename to lasso/femzip/lib/linux/libiomp5.so diff --git a/lasso/femzip/libirng.so b/lasso/femzip/lib/linux/libirng.so similarity index 100% rename from lasso/femzip/libirng.so rename to lasso/femzip/lib/linux/libirng.so diff --git a/lasso/femzip/libsvml.so b/lasso/femzip/lib/linux/libsvml.so similarity index 100% rename from lasso/femzip/libsvml.so rename to lasso/femzip/lib/linux/libsvml.so diff --git a/lasso/femzip/api_extended.dll b/lasso/femzip/lib/windows/api_extended.dll similarity index 100% rename from lasso/femzip/api_extended.dll rename to lasso/femzip/lib/windows/api_extended.dll diff --git a/lasso/femzip/femzip_a_dyna_sidact_generic.dll b/lasso/femzip/lib/windows/femzip_a_dyna_sidact_generic.dll similarity index 100% rename from lasso/femzip/femzip_a_dyna_sidact_generic.dll rename to lasso/femzip/lib/windows/femzip_a_dyna_sidact_generic.dll diff --git a/lasso/femzip/libfemzip_post_licgenerator_ext_flexlm.dll b/lasso/femzip/lib/windows/libfemzip_post_licgenerator_ext_flexlm.dll similarity index 100% rename from lasso/femzip/libfemzip_post_licgenerator_ext_flexlm.dll rename to lasso/femzip/lib/windows/libfemzip_post_licgenerator_ext_flexlm.dll diff --git a/lasso/femzip/libifcoremd.dll b/lasso/femzip/lib/windows/libifcoremd.dll similarity index 100% rename from lasso/femzip/libifcoremd.dll rename to lasso/femzip/lib/windows/libifcoremd.dll diff --git a/lasso/femzip/libifportmd.dll b/lasso/femzip/lib/windows/libifportmd.dll similarity index 100% rename from lasso/femzip/libifportmd.dll rename to lasso/femzip/lib/windows/libifportmd.dll diff --git a/lasso/femzip/libiomp5md.dll b/lasso/femzip/lib/windows/libiomp5md.dll similarity index 100% rename from lasso/femzip/libiomp5md.dll rename to lasso/femzip/lib/windows/libiomp5md.dll diff --git a/lasso/femzip/libmmd.dll b/lasso/femzip/lib/windows/libmmd.dll similarity index 100% rename from lasso/femzip/libmmd.dll rename to lasso/femzip/lib/windows/libmmd.dll