Skip to main content
Version sets are predefined configuration files that specify exact versions of all third-party libraries needed to build a specific release of Miele-LXIV. They ensure compatibility and reproducible builds.

What are Version Sets?

A version set is a configuration file (.conf) that defines:
  • Library version numbers for all dependencies
  • Build configuration flags (C++ standard, deployment target)
  • CMake options for specific toolkits
  • Compiler flags and preprocessor definitions
Using version sets ensures that all components are built with compatible versions that have been tested together.

Available Version Sets

Miele-LXIV Easy provides three predefined version sets:

Version 7.1.38

Legacy version with VTK 7.1, ITK 4.11, DCMTK 3.6.2

Version 7.3.46

Updated version with VTK 8.2, ITK 4.13, DCMTK 3.6.4

Version 8.8

Latest version with VTK 9.0, ITK 5.1, DCMTK 3.6.5

Version Set Comparison

Version Set 7.1.38

This is the legacy version set for Miele-LXIV 7.1.38.Build Configuration:
C++ Standard: gnu++14
Deployment Target: macOS 10.9
Miele Version: 7.1.38
Major Library Versions:
LibraryVersionNotes
VTK7.1.1OpenGL2 rendering backend
ITK4.11.1
DCMTK3.6.2OpenSSL and iconv disabled
OpenSSL1.1.0f
OpenJPEG2.2.0
Jasper2.0.12
JPEG9b
TIFF4.0.8
PNG1.6.30
zlib1.2.11
libiconv1.15
GLEW2.1.0
GLM0.9.8.5
DCMTK Configuration:
DCMTK_OPTIONS="-D DCMTK_WITH_OPENSSL=OFF \
               -D WITH_OPENSSLINC=OFF \
               -D OPENSSL_VERSION_CHECK=OFF \
               -D DCMTK_WITH_ICONV=OFF"
DCMTK_CXX_FLAGS=FOR_OSIRI_LXIV
This version set disables OpenSSL and iconv support in DCMTK for compatibility with older OsiriX-based code.

Using Version Sets

Version sets are configured during the initial setup in STEP 1 of the build process.

Selecting a Version Set

  1. Run the configuration script:
    ./build.sh
    
  2. On first run, the seed configuration menu appears
  3. Select the appropriate version set file:
    • version-set-7.1.38.conf
    • version-set-7.3.46.conf
    • version-set-8.8.conf
  4. The selected version set is saved in seed.conf
The version set selection is typically done once. To change version sets, you need to remove seed.conf and re-run ./build.sh.

Version Set Structure

Each version set file follows this structure:
version-set-example.conf
# Build configuration
MINUS_STD=gnu++17
DEPL_TARG=10.9

# DCMTK configuration
DCMTK_MAJOR=3
DCMTK_MINOR=6
DCMTK_BUILD=5
DCMTK_VERSION=$DCMTK_MAJOR.$DCMTK_MINOR.$DCMTK_BUILD
DCMTK_OPTIONS="-D DCMTK_WITH_OPENSSL=ON -D DCMTK_WITH_ICONV=ON"
DCMTK_CXX_FLAGS=FOR_MIELE_LXIV

# VTK configuration
VTK_MAJOR=9
VTK_MINOR=0
VTK_BUILD=1
VTK_VERSION=$VTK_MAJOR.$VTK_MINOR.$VTK_BUILD
VTK_OPTIONS="-D VTK_RENDERING_BACKEND:STRING=OpenGL2"

# ITK configuration
ITK_MAJOR=5
ITK_MINOR=1
ITK_BUILD=1
ITK_VERSION=$ITK_MAJOR.$ITK_MINOR.$ITK_BUILD

# Other libraries...
JPEG_VERSION=9d
PNG_VERSION=1.6.37
TIFF_VERSION=4.0.10
ZLIB_VERSION=1.3.1
# ... etc

# Application version
MIELE_VERSION=8.4.62

Version Set Variables

The build script (build.sh) reads these variables from the version set:
  • MINUS_STD - C++ standard (gnu++14 or gnu++17)
  • DEPL_TARG - macOS deployment target
  • COMPILER_FLAGS - Additional compiler flags
  • DCMTK_MAJOR, DCMTK_MINOR, DCMTK_BUILD - Version components
  • DCMTK_VERSION - Full version string
  • DCMTK_OPTIONS - CMake configuration options
  • DCMTK_CXX_FLAGS - Preprocessor definitions
  • VTK_MAJOR, VTK_MINOR, VTK_BUILD - Version components
  • VTK_VERSION - Full version string
  • VTK_OPTIONS - CMake options (rendering backend, etc.)
  • ITK_MAJOR, ITK_MINOR, ITK_BUILD - Version components
  • ITK_VERSION - Full version string
Each library has a {LIBRARY}_VERSION variable:
  • JPEG_VERSION
  • PNG_VERSION
  • TIFF_VERSION
  • ZLIB_VERSION
  • ICONV_VERSION
  • OPENSSL_VERSION
  • OPENJPG_VERSION (with OPENJPG_TAR for download)
  • JASPER_VERSION
  • XML2_VERSION
  • GLEW_VERSION
  • GLM_VERSION
  • MIELE_VERSION - Miele-LXIV application version

Creating Custom Version Sets

You can create custom version sets for testing newer library versions:
  1. Copy an existing version set:
    cp version-set-8.8.conf version-set-custom.conf
    
  2. Edit the version numbers:
    # Modify library versions as needed
    VTK_VERSION=9.1.0
    ITK_VERSION=5.2.0
    
  3. Update the configuration:
    rm seed.conf
    ./build.sh
    # Select your custom version set
    
Custom version sets may encounter compatibility issues. Test thoroughly and ensure library versions are compatible with each other.

Version Compatibility Notes

ITK depends on VTK through the Module_ITKVtkGlue option. Ensure VTK is built before ITK, and that versions are compatible:
  • ITK 4.x works with VTK 7.x and 8.x
  • ITK 5.x requires VTK 8.2+ or VTK 9.x
DCMTK secure networking requires OpenSSL:
  • Version 7.1.38: OpenSSL disabled in DCMTK
  • Version 7.3.46+: OpenSSL 1.1.x required
  • Ensure DCMTK_WITH_OPENSSL=ON when using secure DICOM
  • VTK 9.x and ITK 5.x require at least C++11
  • Recommended: Use gnu++17 for version 8.8+
  • Older versions can use gnu++14

Build docs developers (and LLMs) love