Refactored the limr class to streamline initialization and improve parameter management by directly fetching default parameters from the `limedriver` binary with a `--dump` flag, eliminating manual parsing, leading to more robust and maintainable code. These changes improve the maintainability and extend the functionality of the parameter handling in the limr class, making it easier to scale and adapt for future requirements.
Improved JSON serialization logic in the driver to correctly handle and label special "///" arguments by giving them unique identifiers. This enhancement ensures that the outputted configuration data is not only syntactically correct but also more informative and easier to process programmatically. These changes address potential ambiguities when parsing the JSON output, leading to more reliable configuration management.
Moved compiled binaries to a dedicated 'bin/' directory to streamline output organization, ensuring that all executables are consolidated in a single, standard location. Updated the gitignore to reflect this change, which helps prevent accidental commits of executable files. The Makefile was also adjusted to build the 'limedriver' program within the new directory structure.
Removed the previously tracked binary 'limedriver' to reduce repository clutter and avoid potential merge conflicts with binary files. Now, future compilations will adhere to the new 'bin/' directory convention, improving the project's structure and maintainability.
Setup the initial build system and dependency management using Automake. This includes checks for a C++ compiler, LimeSuite library, and associated header files. Additionally, configured automatic dependency tracking to facilitate smoother development. This system is necessary for ensuring consistent builds across different environments and simplifying the addition of new components and dependencies as development progresses.