Files
mdlp/CONAN_README.md
Ricardo Montañana Gómez 42b91d1391 Create version 2.1.1 (#12)
* Update version and dependencies

* Fix conan and create new version (#11)

* First approach

* Fix debug conan build target

* Add viewcoverage and fix coverage generation

* Add more tests to cover new integrity checks

* Add tests to accomplish 100%

* Fix conan-create makefile target

* Update debug build

* Fix release build

* Update github build workflow

* Update github workflow

* Update github workflow

* Update github workflow

* Update github workflow remove coverage report
2025-07-19 22:04:10 +02:00

2.9 KiB

Conan Package for fimdlp

This directory contains the Conan package configuration for the fimdlp library.

Dependencies

The package manages the following dependencies:

Build Requirements

  • libtorch/2.4.1 - PyTorch C++ library for tensor operations

Test Requirements (when testing enabled)

  • catch2/3.8.1 - Modern C++ testing framework
  • arff-files - ARFF file format support (included locally in tests/lib/Files/)

Building with Conan

1. Install Dependencies and Build

# Install dependencies
conan install . --output-folder=build --build=missing

# Build the project
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build .

2. Using the Build Script

# Build release version
./scripts/build_conan.sh

# Build with tests
./scripts/build_conan.sh --test

Creating a Package

1. Create Package Locally

conan create . --profile:build=default --profile:host=default

2. Create Package with Options

# Create with testing enabled
conan create . -o enable_testing=True --profile:build=default --profile:host=default

# Create shared library version
conan create . -o shared=True --profile:build=default --profile:host=default

3. Using the Package Creation Script

./scripts/create_package.sh

Uploading to Cimmeria

1. Configure Remote

# Add Cimmeria remote
conan remote add cimmeria https://conan.rmontanana.es/artifactory/api/conan/Cimmeria

# Login to Cimmeria
conan remote login cimmeria <username>

2. Upload Package

# Upload the package
conan upload fimdlp/2.1.0 --remote=cimmeria --all

# Or use the script (will configure remote instructions if not set up)
./scripts/create_package.sh

Using the Package

In conanfile.txt

[requires]
fimdlp/2.1.0

[generators]
CMakeDeps
CMakeToolchain

In conanfile.py

def requirements(self):
    self.requires("fimdlp/2.1.0")

In CMakeLists.txt

find_package(fimdlp REQUIRED)
target_link_libraries(your_target fimdlp::fimdlp)

Package Options

Option Values Default Description
shared True/False False Build shared library
fPIC True/False True Position independent code
enable_testing True/False False Enable test suite
enable_sample True/False False Build sample program

Example Usage

#include <fimdlp/CPPFImdlp.h>
#include <fimdlp/Metrics.h>

int main() {
    // Create MDLP discretizer
    CPPFImdlp discretizer;
    
    // Calculate entropy
    Metrics metrics;
    std::vector<int> labels = {0, 1, 0, 1, 1};
    double entropy = metrics.entropy(labels);
    
    return 0;
}

Testing

The package includes comprehensive tests that can be enabled with:

conan create . -o enable_testing=True

Requirements

  • C++17 compatible compiler
  • CMake 3.20 or later
  • Conan 2.0 or later