Commit graph

15 commits

Author SHA1 Message Date
Kumi 1e8ff8684d
Updated CXX env var and removed redundant
library_dirs in setup

Enhanced the 'CXX' environment variable assignment in setup.py to
include the '-shlib' flag for shared library support. Also, streamlined
the Extension configuration by eliminating the now unnecessary
specification of default library directories, simplifying the build
process.

Refactors setup configuration for efficiency and compatibility with
shared libraries.
2024-02-10 20:00:27 +01:00
Kumi 0568a820af
Simplify build and link HDF5 libraries
Removed custom BuildExtCommand class from setup.py, simplifying the
build process by relying on standard build_ext behavior. The custom
command handling of submodule initialization and build extension
modifications were deemed unnecessary. Additionally, extended the
library dependencies to include 'hdf5_cpp' and 'hdf5' to ensure correct
linking for HDF5 support. This change makes the build process more
straightforward and maintainable.
2024-02-10 18:02:07 +01:00
Kumi fd52d145bc
The Return of the H5C++ 2024-02-10 16:27:23 +01:00
Kumi d1b8c79acb
Removed static HDF5 library linkage in build
process

Reflecting a shift toward dynamic library usage, the build system has
been updated to omit hard-coded links to the HDF5 libraries. This change
simplifies dependency management and increases flexibility in various
build environments. It's important to ensure dependent projects are
aware of this change, as they might need to explicitly link HDF5 if they
don't dynamically load it.
2024-02-09 15:43:27 +01:00
Kumi 7fe4ccdf38
Disabled forced compiler override in setup
Commented out the hardcoded compiler environment setting in the setup
script to allow for greater flexibility in users' build environments.
Letting the user or the system decide the appropriate C++ compiler
prevents potential conflicts with predefined environment configurations.
2024-02-09 15:40:34 +01:00
Kumi c0d1fbbf66
Enhance extension building in setup
Updated the `BuildExtCommand` class in `setup.py` to append `rpath`
flags and link against `hdf5` libraries when building extensions. This
ensures that the shared libraries are correctly located at runtime and
resolves potential linkage issues with HDF5-related extensions for a
smoother installation and deployment process.
2024-02-09 15:33:51 +01:00
Kumi 75b7340354
Add library_dirs to extension build configuration
Enhanced the build process by specifying the library directories in
setup.py. This ensures the linker can locate all relevant libraries for
the 'limedriver.binding' extension, preventing potential build issues on
systems where libraries are not in the default search path.
2024-02-09 15:30:29 +01:00
Kumi 507c7538c6
Removed hdf5_cpp dependency from setup
Optimized the build process by removing the unnecessary 'hdf5_cpp'
library from the extension module configuration. This change simplifies
linkage and can potentially reduce compile-time and binary size.
2024-02-09 15:21:10 +01:00
Kumi 4b2226e3f9
Add HDF5 include path to limedriver extension
Extended the include directories for the limedriver binding in setup.py
to address linking issues with HDF5 serialization. This is a temporary
workaround to ensure compatibility and successful building of the
extension, as indicated by the 'TODO' comment highlighting the need for
a cleaner solution. Further refinement is required to integrate HDF5 in
a more elegant manner.
2024-02-09 15:12:02 +01:00
Kumi a85671e1af
Updated submodule commands and linked against
hdf5_cpp library

Enabled the use of shell in 'git submodule' commands to ensure
cross-platform compatibility in the setup process. Also revised the
linked libraries for the 'limedriver.binding' extension, replacing
'hdf5' with 'hdf5_cpp' to properly utilize the C++ HDF5 library
interface. This change is expected to enhance compatibility and
performance when interacting with HDF5 files.
2024-02-09 14:43:35 +01:00
Kumi 7572583efb
Added hdf5 library dependency to limedriver
binding

Extended the library dependencies for the limedriver binding in setup.py
to include the hdf5 library, ensuring compatibility with data handling
features that require HDF5 support. This change addresses the need for
advanced data storage and management capabilities within the limedriver
interface.
2024-02-09 14:04:28 +01:00
Kumi a61875e9a8
Fixed main branch 2024-02-09 13:47:11 +01:00
Kumi 1f24eb3f64
Enforce C++ compiler for Cython and fix Python binding
- Standardized the C++ compiler across build environments by setting it in `setup.py`, ensuring consistent compilation of Cython extensions.
- Transitioned to using `setuptools.build_meta` as the build backend in `pyproject.toml` for enhanced package build processes.
- Modified the extension module path in `setup.py` to align with the new Python binding structure.
- Introduced Python property decorators to `PyLimeConfig` class in `limedriver.pyx` for getter methods, enhancing the Pythonic interface of the Cython module.
- Facilitated direct import of the binding in `__init__.py`, streamlining the usage of the `limedriver` package.
2024-02-08 09:52:51 +01:00
Kumi 261ccac1a0
Extend .gitignore and update build setup for C++ integration
The .gitignore file now ignores C++ build artifacts alongside existing ones. In setup.py, the build configuration for 'limedriver' was modified to include a new C++ source file, indicating a shift to or expansion of C++ code usage within the project. This change prepares the build process to handle and compile C++ code, potentially for performance improvements or new functionality that leverages C++ capabilities.
2024-02-08 09:07:09 +01:00
Kumi 0465a51a46
Initial project config and implement build process
Enhanced the .gitignore to filter out additional build artifacts and Python cache files, promoting a cleaner repository state. Introduced a basic project structure with a new pyproject.toml, defining metadata and build requirements for the 'limedriver' Python package. Also added a LICENSE file and a custom setup.py which automates the retrieval and build of 'limedriver' submodules, streamlining the set-up for development and ensuring consistent builds across environments. These changes lay the groundwork for further development and distribution of the project.
2024-02-07 18:18:44 +01:00