rdkit_chem 2025.09.3.6-x86_64-linux → 2025.09.3.13-x86_64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Code/RubyWrappers/MolOps.i +1 -1
- data/Code/RubyWrappers/gmwrapper/CMakeLists.txt +6 -0
- data/README.md +92 -0
- data/Rakefile +102 -16
- data/ext/rdkit_chem/extconf.rb +37 -17
- data/lib/rdkit_chem/{3.3.0 → 3.1.0}/RDKitChem.so +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitAbbreviations.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitAlignment.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitCIPLabeler.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitCatalogs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitChemDraw.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitChemReactions.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitChemTransforms.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitChemicalFeatures.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitDataStructs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitDepictor.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitDeprotect.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitDescriptors.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitDistGeomHelpers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitDistGeometry.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitEigenSolvers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitEnumerateStereoisomers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitFMCS.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitFileParsers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitFilterCatalog.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitFingerprints.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitForceField.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitForceFieldHelpers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitFragCatalog.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitGeneralizedSubstruct.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitGenericGroups.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitGraphMol.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitInfoTheory.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMMPA.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMarvinParser.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolAlign.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolCatalog.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolChemicalFeatures.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolDraw2D.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolEnumerator.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolHash.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolInteractionFields.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolInterchange.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolProcessing.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolStandardize.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitMolTransforms.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitO3AAlign.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitOptimizer.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitPartialCharges.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitPubChemShape.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRDChemDrawLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRDChemDrawReactionLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRDGeneral.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRDGeometryLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/{3.3.0/libRDKitOptimizer.so.1.2026.03.1pre → 3.1.0/libRDKitRDStreams.so.1.2026.03.1pre} +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRGroupDecomposition.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRascalMCES.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitReducedGraphs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitRingDecomposerLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSLNParse.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitScaffoldNetwork.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitShapeHelpers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSimDivPickers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSmilesParse.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSubgraphs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSubstructLibrary.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSubstructMatch.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitSynthonSpaceSearch.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitTautomerQuery.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitTrajectory.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitcoordgen.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitga.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKithc.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitmaeparser.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libRDKitpubchem_align3d.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.1.0/libboost_serialization.so.1.83.0 +0 -0
- data/lib/rdkit_chem/version.rb +2 -2
- data/lib/rdkit_chem.rb +21 -12
- metadata +215 -213
- data/lib/rdkit_chem/3.3.0/libRDKitAbbreviations.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitAlignment.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitCIPLabeler.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitChemDraw.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitChemReactions.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitChemTransforms.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitChemicalFeatures.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitDataStructs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitDepictor.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitDeprotect.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitDescriptors.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitDistGeomHelpers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitDistGeometry.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitEigenSolvers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitEnumerateStereoisomers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitFMCS.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitFileParsers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitFilterCatalog.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitFingerprints.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitForceField.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitForceFieldHelpers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitFragCatalog.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitGeneralizedSubstruct.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitGenericGroups.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitGraphMol.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitInfoTheory.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMMPA.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMarvinParser.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolAlign.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolCatalog.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolChemicalFeatures.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolDraw2D.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolEnumerator.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolHash.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolInteractionFields.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolInterchange.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolProcessing.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolStandardize.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitMolTransforms.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitO3AAlign.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitPartialCharges.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitPubChemShape.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRDChemDrawLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRDChemDrawReactionLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRDGeneral.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRDGeometryLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRDStreams.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRGroupDecomposition.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRascalMCES.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitReducedGraphs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitRingDecomposerLib.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSLNParse.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitScaffoldNetwork.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitShapeHelpers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSimDivPickers.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSmilesParse.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSubgraphs.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSubstructLibrary.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSubstructMatch.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitSynthonSpaceSearch.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitTautomerQuery.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitTrajectory.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitcoordgen.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitga.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKithc.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitmaeparser.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libRDKitpubchem_align3d.so.1.2026.03.1pre +0 -0
- data/lib/rdkit_chem/3.3.0/libboost_iostreams.so.1.83.0 +0 -0
- data/lib/rdkit_chem/3.3.0/libboost_serialization.so.1.83.0 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitAbbreviations.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitAbbreviations.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitAlignment.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitAlignment.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitCIPLabeler.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitCIPLabeler.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitCatalogs.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitCatalogs.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemDraw.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemDraw.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemReactions.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemReactions.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemTransforms.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemTransforms.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemicalFeatures.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitChemicalFeatures.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDataStructs.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDataStructs.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDepictor.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDepictor.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDeprotect.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDeprotect.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDescriptors.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDescriptors.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDistGeomHelpers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDistGeomHelpers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDistGeometry.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitDistGeometry.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitEigenSolvers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitEigenSolvers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitEnumerateStereoisomers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitEnumerateStereoisomers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFMCS.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFMCS.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFileParsers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFileParsers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFilterCatalog.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFilterCatalog.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFingerprints.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFingerprints.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitForceField.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitForceField.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitForceFieldHelpers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitForceFieldHelpers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFragCatalog.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitFragCatalog.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitGeneralizedSubstruct.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitGeneralizedSubstruct.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitGenericGroups.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitGenericGroups.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitGraphMol.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitGraphMol.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitInfoTheory.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitInfoTheory.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMMPA.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMMPA.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMarvinParser.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMarvinParser.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolAlign.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolAlign.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolCatalog.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolCatalog.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolChemicalFeatures.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolChemicalFeatures.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolDraw2D.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolDraw2D.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolEnumerator.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolEnumerator.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolHash.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolHash.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolInteractionFields.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolInteractionFields.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolInterchange.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolInterchange.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolProcessing.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolProcessing.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolStandardize.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolStandardize.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolTransforms.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitMolTransforms.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitO3AAlign.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitO3AAlign.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitOptimizer.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitOptimizer.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitPartialCharges.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitPartialCharges.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitPubChemShape.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitPubChemShape.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDChemDrawLib.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDChemDrawLib.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDChemDrawReactionLib.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDChemDrawReactionLib.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDGeneral.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDGeneral.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDGeometryLib.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDGeometryLib.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDStreams.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRDStreams.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRGroupDecomposition.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRGroupDecomposition.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRascalMCES.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRascalMCES.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitReducedGraphs.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitReducedGraphs.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRingDecomposerLib.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitRingDecomposerLib.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSLNParse.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSLNParse.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitScaffoldNetwork.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitScaffoldNetwork.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitShapeHelpers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitShapeHelpers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSimDivPickers.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSimDivPickers.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSmilesParse.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSmilesParse.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSubgraphs.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSubgraphs.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSubstructLibrary.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSubstructLibrary.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSubstructMatch.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSubstructMatch.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSynthonSpaceSearch.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitSynthonSpaceSearch.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitTautomerQuery.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitTautomerQuery.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitTrajectory.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitTrajectory.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitcoordgen.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitcoordgen.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitga.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitga.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKithc.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKithc.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitmaeparser.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitmaeparser.so.1 +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitpubchem_align3d.so +0 -0
- /data/lib/rdkit_chem/{3.3.0 → 3.1.0}/libRDKitpubchem_align3d.so.1 +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0cacf75cce91a8b8dc5c4db95ac1e571fd4cc82bd7b66a4bf0eddf77c93b58da
|
|
4
|
+
data.tar.gz: bea62b57958b2ed44b826f8554f8d884cf3a6982acdf45b262a35ba00076b191
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2c338e2000b175beff58ddaccb20101829c0bf30f6e1482dce7e359c1ad965d86d85cd9004badd6f4b405a5834ad77b671c461fe35c32360d941ec43ab75071e
|
|
7
|
+
data.tar.gz: f5cf656b1dd3c64ff5ea517634bd32075d891eb75e5cd90719b0be9584b4f0560710b1eecb92bc4d3d724e815202a50edc6e6371e314447cb9973d3a903ed531
|
data/Code/RubyWrappers/MolOps.i
CHANGED
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
// Only ONE definition needed - default parameter handles both use cases
|
|
57
57
|
int sanitizeMol(RDKit::RWMol &mol, int sanitizeOps=RDKit::MolOps::SANITIZE_ALL){
|
|
58
58
|
unsigned int opThatFailed;
|
|
59
|
-
try{
|
|
59
|
+
try {
|
|
60
60
|
RDKit::MolOps::sanitizeMol(mol, opThatFailed,
|
|
61
61
|
static_cast<unsigned int>(sanitizeOps));
|
|
62
62
|
} catch(...) {
|
|
@@ -55,6 +55,12 @@ SET(CMAKE_SWIG_FLAGS -small -naturalvar -autorename)
|
|
|
55
55
|
|
|
56
56
|
SWIG_ADD_LIBRARY(RDKitChem TYPE MODULE LANGUAGE ruby SOURCES GraphMolRuby.i)
|
|
57
57
|
|
|
58
|
+
if(APPLE)
|
|
59
|
+
set_target_properties(RDKitChem PROPERTIES
|
|
60
|
+
LINK_FLAGS "-undefined dynamic_lookup"
|
|
61
|
+
SUFFIX ".bundle")
|
|
62
|
+
endif()
|
|
63
|
+
|
|
58
64
|
# it doesnt seem like the threading libs should need to be here, but
|
|
59
65
|
# as of Oct 2012 using boost 1.51 under at least ubuntu 12.04 we get a
|
|
60
66
|
# link error if they aren't there.
|
data/README.md
CHANGED
|
@@ -22,3 +22,95 @@ GEM for [RDKIT](http://rdkit.org/), an Open-Source Cheminformatics Software
|
|
|
22
22
|
It downloads the sources, compiles and installs RDKIT with the ruby bindings.
|
|
23
23
|
The installation may last very long - please be patient.
|
|
24
24
|
|
|
25
|
+
## macOS Build Notes
|
|
26
|
+
|
|
27
|
+
### Known Issues and Solutions
|
|
28
|
+
|
|
29
|
+
#### 1. Boost Serialization Not Found
|
|
30
|
+
|
|
31
|
+
**Error:**
|
|
32
|
+
```
|
|
33
|
+
CMake Error: Found package configuration file boost_serialization-config.cmake
|
|
34
|
+
but it set boost_serialization_FOUND to FALSE
|
|
35
|
+
Reason: No suitable build variant has been found.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Solution:** The gem has been updated to use static Boost flags (`-DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_RUNTIME=ON`).
|
|
39
|
+
|
|
40
|
+
#### 2. Ruby Symbol Linking Error
|
|
41
|
+
|
|
42
|
+
**Error:**
|
|
43
|
+
```
|
|
44
|
+
Undefined symbols for architecture x86_64:
|
|
45
|
+
"_rb_define_class", "_rb_str_new", ... (Ruby C API symbols)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Solution:** Fixed in `Code/RubyWrappers/gmwrapper/CMakeLists.txt` with `-undefined dynamic_lookup` for macOS.
|
|
49
|
+
|
|
50
|
+
#### 3. Ruby 3.2+ Compatibility (CRITICAL)
|
|
51
|
+
|
|
52
|
+
**Error:**
|
|
53
|
+
```ruby
|
|
54
|
+
require 'RDKitChem'
|
|
55
|
+
# => TypeError: wrong argument type nil (expected Data)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Cause:** Ruby 3.2+ introduced a new `Data` class that conflicts with SWIG's wrapper generation.
|
|
59
|
+
|
|
60
|
+
**Workaround:** Use Ruby 3.1.x:
|
|
61
|
+
```bash
|
|
62
|
+
# Using asdf
|
|
63
|
+
asdf install ruby 3.1.6
|
|
64
|
+
asdf set ruby 3.1.6
|
|
65
|
+
|
|
66
|
+
# Using rbenv
|
|
67
|
+
rbenv install 3.1.6
|
|
68
|
+
rbenv local 3.1.6
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### 4. GitHub Actions CI - Xcode SDK Header Conflict
|
|
72
|
+
|
|
73
|
+
**Error:**
|
|
74
|
+
```
|
|
75
|
+
error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
|
|
76
|
+
error: no member named 'finite' in namespace 'std::__math'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Cause:** CMake finds Xcode SDK Ruby headers instead of `ruby/setup-ruby` installed headers.
|
|
80
|
+
|
|
81
|
+
**Solution:** Fixed in `extconf.rb` by explicitly passing Ruby paths to CMake.
|
|
82
|
+
|
|
83
|
+
### Ruby Version Compatibility
|
|
84
|
+
|
|
85
|
+
| Ruby Version | Build | Runtime | Notes |
|
|
86
|
+
|--------------|-------|---------|-------|
|
|
87
|
+
| 3.4.x | OK | FAIL | `Data` class conflict |
|
|
88
|
+
| 3.3.x | OK | FAIL | `Data` class conflict |
|
|
89
|
+
| 3.2.x | OK | FAIL | `Data` class conflict |
|
|
90
|
+
| 3.1.x | OK | OK | Recommended |
|
|
91
|
+
|
|
92
|
+
### Build Commands (macOS)
|
|
93
|
+
|
|
94
|
+
**Full Clean Build:**
|
|
95
|
+
```bash
|
|
96
|
+
rm -rf rdkit/build rdkit_chem
|
|
97
|
+
ruby ext/rdkit_chem/extconf.rb
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Resume Interrupted Build:**
|
|
101
|
+
```bash
|
|
102
|
+
cd rdkit/build
|
|
103
|
+
make -j8
|
|
104
|
+
make install
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Test Loading:**
|
|
108
|
+
```bash
|
|
109
|
+
DYLD_LIBRARY_PATH=$PWD/rdkit_chem/lib ruby -I $PWD/rdkit_chem/lib -e 'require "RDKitChem"; puts "Success!"'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Additional Notes
|
|
113
|
+
|
|
114
|
+
- Full build takes ~20 minutes
|
|
115
|
+
- Some `BOOST_NO_CXX98_FUNCTION_BASE` warnings during build are harmless
|
|
116
|
+
- For detailed troubleshooting, see [MACOS_BUILD_NOTES.md](MACOS_BUILD_NOTES.md)
|
data/Rakefile
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'rake/testtask'
|
|
4
4
|
require 'fileutils'
|
|
5
|
+
require 'set'
|
|
5
6
|
|
|
6
7
|
# Load version
|
|
7
8
|
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
|
@@ -29,12 +30,14 @@ task :build do
|
|
|
29
30
|
sh 'gem build rdkit_chem.gemspec'
|
|
30
31
|
end
|
|
31
32
|
|
|
32
|
-
desc 'Build pre-compiled gem for current platform
|
|
33
|
+
desc 'Build pre-compiled gem for current platform'
|
|
33
34
|
task :build_native do
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
ext_so = File.join(NATIVE_DIR, 'RDKitChem.so')
|
|
36
|
+
ext_bundle = File.join(NATIVE_DIR, 'RDKitChem.bundle')
|
|
37
|
+
|
|
38
|
+
unless File.exist?(ext_so) || File.exist?(ext_bundle)
|
|
39
|
+
abort "ERROR: Native extension not found at #{NATIVE_DIR}/RDKitChem.{so,bundle}\n" \
|
|
40
|
+
"Run 'cd ext/rdkit_chem && ruby extconf.rb' first to compile."
|
|
38
41
|
end
|
|
39
42
|
|
|
40
43
|
# Get Ruby version for directory structure
|
|
@@ -47,21 +50,28 @@ task :build_native do
|
|
|
47
50
|
FileUtils.mkdir_p(target_dir)
|
|
48
51
|
|
|
49
52
|
# Copy native extension and all shared libraries
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
# Linux: *.so*, macOS: *.bundle and *.dylib
|
|
54
|
+
lib_patterns = ["#{NATIVE_DIR}/*.so*", "#{NATIVE_DIR}/*.bundle", "#{NATIVE_DIR}/*.dylib"]
|
|
55
|
+
|
|
56
|
+
lib_patterns.each do |pattern|
|
|
57
|
+
Dir.glob(pattern).each do |lib|
|
|
58
|
+
# Skip symlinks first pass, copy only real files
|
|
59
|
+
next if File.symlink?(lib)
|
|
60
|
+
dest = File.join(target_dir, File.basename(lib))
|
|
61
|
+
FileUtils.cp(lib, dest, verbose: true)
|
|
62
|
+
end
|
|
55
63
|
end
|
|
56
64
|
|
|
57
65
|
# Also copy symlinks (they're needed for library resolution)
|
|
58
66
|
# This includes both .so -> .so.1 and .so.1 -> .so.1.version symlinks
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
lib_patterns.each do |pattern|
|
|
68
|
+
Dir.glob(pattern).each do |lib|
|
|
69
|
+
next unless File.symlink?(lib)
|
|
70
|
+
link_target = File.readlink(lib)
|
|
71
|
+
dest = File.join(target_dir, File.basename(lib))
|
|
72
|
+
FileUtils.rm_f(dest)
|
|
73
|
+
FileUtils.ln_s(link_target, dest, verbose: true)
|
|
74
|
+
end
|
|
65
75
|
end
|
|
66
76
|
|
|
67
77
|
# Build the platform-specific gem
|
|
@@ -137,6 +147,82 @@ task :fix_rpath do
|
|
|
137
147
|
sh "readelf -d #{so_file} | grep -E '(RPATH|RUNPATH)' || echo 'No RPATH found'"
|
|
138
148
|
end
|
|
139
149
|
|
|
150
|
+
desc 'Repair: bundle system libraries and fix RPATH'
|
|
151
|
+
task :repair do
|
|
152
|
+
Rake::Task['bundle_system_libs'].invoke
|
|
153
|
+
Rake::Task['fix_rpath'].invoke
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
MACOS_SYSTEM_LIBRARY_PREFIXES = ['/usr/lib/', '/System/'].freeze
|
|
157
|
+
MACOS_DEFAULT_SEARCH_PATHS = ['/opt/homebrew/lib', '/usr/local/lib'].freeze
|
|
158
|
+
|
|
159
|
+
def macos_shared_libraries(libs_dir)
|
|
160
|
+
Dir.glob("#{libs_dir}/*.dylib") + Dir.glob("#{libs_dir}/*.bundle")
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def macos_dependencies(lib)
|
|
164
|
+
otool_output = `otool -L '#{lib}' 2>/dev/null`
|
|
165
|
+
otool_output.lines.drop(1).map { |line| line.strip.split(' ').first }.compact
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def macos_system_library?(path)
|
|
169
|
+
MACOS_SYSTEM_LIBRARY_PREFIXES.any? { |prefix| path.start_with?(prefix) }
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def macos_resolve_dependency(dep, libs_dir)
|
|
173
|
+
return dep if dep.start_with?('/') && File.exist?(dep)
|
|
174
|
+
|
|
175
|
+
basename = File.basename(dep)
|
|
176
|
+
candidates = [File.join(libs_dir, basename)] +
|
|
177
|
+
MACOS_DEFAULT_SEARCH_PATHS.map { |dir| File.join(dir, basename) }
|
|
178
|
+
candidates.find { |path| File.exist?(path) }
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
desc 'Repair for macOS (bundle deps and fix install names)'
|
|
182
|
+
task :repair_macos do
|
|
183
|
+
libs_dir = File.expand_path(NATIVE_DIR)
|
|
184
|
+
libs = macos_shared_libraries(libs_dir)
|
|
185
|
+
abort "ERROR: no macOS libraries found in #{libs_dir}" if libs.empty?
|
|
186
|
+
|
|
187
|
+
queue = libs.dup
|
|
188
|
+
processed = Set.new
|
|
189
|
+
copied = 0
|
|
190
|
+
|
|
191
|
+
until queue.empty?
|
|
192
|
+
lib = queue.shift
|
|
193
|
+
next if processed.include?(lib)
|
|
194
|
+
processed.add(lib)
|
|
195
|
+
|
|
196
|
+
macos_dependencies(lib).each do |dep|
|
|
197
|
+
next if macos_system_library?(dep)
|
|
198
|
+
|
|
199
|
+
dep_path = macos_resolve_dependency(dep, libs_dir)
|
|
200
|
+
next if dep_path.nil?
|
|
201
|
+
|
|
202
|
+
dest = File.join(libs_dir, File.basename(dep_path))
|
|
203
|
+
unless File.exist?(dest)
|
|
204
|
+
FileUtils.cp(dep_path, dest, verbose: true)
|
|
205
|
+
copied += 1
|
|
206
|
+
end
|
|
207
|
+
queue << dest if File.exist?(dest)
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
macos_shared_libraries(libs_dir).each do |lib|
|
|
212
|
+
lib_name = File.basename(lib)
|
|
213
|
+
system("install_name_tool -id @loader_path/#{lib_name} '#{lib}' 2>/dev/null") if lib.end_with?('.dylib')
|
|
214
|
+
|
|
215
|
+
macos_dependencies(lib).each do |dep|
|
|
216
|
+
next if macos_system_library?(dep)
|
|
217
|
+
|
|
218
|
+
dep_basename = File.basename(dep)
|
|
219
|
+
system("install_name_tool -change '#{dep}' '@loader_path/#{dep_basename}' '#{lib}' 2>/dev/null")
|
|
220
|
+
end
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
puts "Bundled #{copied} macOS dependencies."
|
|
224
|
+
end
|
|
225
|
+
|
|
140
226
|
desc 'Test that native extension loads without LD_LIBRARY_PATH'
|
|
141
227
|
task :test_native do
|
|
142
228
|
so_dir = File.expand_path(NATIVE_DIR, __dir__)
|
data/ext/rdkit_chem/extconf.rb
CHANGED
|
@@ -16,17 +16,20 @@ rescue StandardError
|
|
|
16
16
|
nr_processors = 1
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
def run_command(command, description)
|
|
20
|
+
puts description if description
|
|
21
|
+
success = system(command)
|
|
22
|
+
abort "ERROR: #{description || command} failed" unless success
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
FileUtils.mkdir_p rdkit_dir
|
|
26
|
+
Dir.chdir main_dir do
|
|
27
|
+
FileUtils.rm_rf src_dir
|
|
28
|
+
run_command('git clone https://github.com/rdkit/rdkit.git', 'Downloading RDKit sources')
|
|
29
|
+
end
|
|
26
30
|
|
|
27
31
|
Dir.chdir(src_dir) do
|
|
28
|
-
|
|
29
|
-
system checkout
|
|
32
|
+
run_command('git checkout c2e48f41d88ddc15c6e1f818d1c4ced70b7f20d1', 'Checking out RDKit sources')
|
|
30
33
|
end
|
|
31
34
|
|
|
32
35
|
FileUtils.cp_r(
|
|
@@ -46,6 +49,26 @@ is_linux = host_os =~ /linux/
|
|
|
46
49
|
is_mac = host_os =~ /darwin/
|
|
47
50
|
ld_path = ''
|
|
48
51
|
|
|
52
|
+
# macOS-specific compiler flags to fix Ruby header compatibility issues
|
|
53
|
+
extra_cmake_flags = ''
|
|
54
|
+
if is_mac
|
|
55
|
+
# -Wno-register: Ruby headers use deprecated 'register' keyword (removed in C++17)
|
|
56
|
+
# -DHAVE_ISFINITE=1: Prevents Ruby's finite() from conflicting with std::isfinite
|
|
57
|
+
cxx_flags = '-std=c++17 -stdlib=libc++ -Wno-register -DHAVE_ISFINITE=1'
|
|
58
|
+
extra_cmake_flags = " -DCMAKE_CXX_FLAGS='#{cxx_flags}'"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Explicitly specify Ruby paths to avoid CMake finding system Ruby headers
|
|
62
|
+
# This is critical on macOS where Xcode SDK contains incompatible Ruby headers
|
|
63
|
+
ruby_executable = RbConfig.ruby
|
|
64
|
+
ruby_include_dir = RbConfig::CONFIG['rubyhdrdir']
|
|
65
|
+
ruby_arch_include_dir = RbConfig::CONFIG['rubyarchhdrdir']
|
|
66
|
+
|
|
67
|
+
extra_cmake_flags += " -DRuby_EXECUTABLE=#{ruby_executable}"
|
|
68
|
+
extra_cmake_flags += " -DRuby_INCLUDE_DIR=#{ruby_include_dir}"
|
|
69
|
+
extra_cmake_flags += " -DRuby_CONFIG_INCLUDE_DIR=#{ruby_arch_include_dir}" if ruby_arch_include_dir
|
|
70
|
+
extra_cmake_flags += " -DCMAKE_IGNORE_PREFIX_PATH='/Applications/Xcode.app;/Applications/Xcode_*.app'" if is_mac
|
|
71
|
+
|
|
49
72
|
if is_linux || is_mac
|
|
50
73
|
ld_string = is_linux ? 'LD_LIBRARY_PATH' : 'DYLD_LIBRARY_PATH'
|
|
51
74
|
ld_path = "#{ld_string}=#{install_dir}/lib"
|
|
@@ -56,25 +79,22 @@ end
|
|
|
56
79
|
|
|
57
80
|
FileUtils.mkdir_p build_dir
|
|
58
81
|
Dir.chdir build_dir do
|
|
59
|
-
puts 'Configuring RDKit'
|
|
60
|
-
|
|
61
82
|
cmake = "#{ld_path} cmake #{src_dir} -DRDK_INSTALL_INTREE=OFF " \
|
|
62
83
|
"-DCMAKE_INSTALL_PREFIX=#{install_dir} " \
|
|
63
84
|
'-DCMAKE_BUILD_TYPE=Release -DRDK_BUILD_PYTHON_WRAPPERS=OFF ' \
|
|
64
85
|
'-DRDK_BUILD_SWIG_WRAPPERS=ON -DRDK_BUILD_INCHI_SUPPORT=OFF ' \
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
"-DBoost_NO_BOOST_CMAKE=ON -DRDK_USE_BOOST_IOSTREAMS=OFF#{extra_cmake_flags}"
|
|
87
|
+
run_command(cmake, 'Configuring RDKit')
|
|
67
88
|
end
|
|
68
89
|
|
|
69
90
|
# local installation in gem directory
|
|
70
91
|
Dir.chdir build_dir do
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
system "#{ld_path} make install"
|
|
92
|
+
run_command("#{ld_path} make -j#{nr_processors}", 'Compiling RDKit sources')
|
|
93
|
+
run_command("#{ld_path} make install", 'Installing RDKit sources')
|
|
74
94
|
end
|
|
75
95
|
|
|
76
96
|
# Remove compiled file, free spaces
|
|
77
|
-
|
|
97
|
+
FileUtils.remove_dir(rdkit_dir)
|
|
78
98
|
|
|
79
99
|
# create a fake Makefile
|
|
80
100
|
File.open(File.join(File.dirname(__FILE__), 'Makefile'), 'w+') do |makefile|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/lib/rdkit_chem/version.rb
CHANGED
data/lib/rdkit_chem.rb
CHANGED
|
@@ -8,22 +8,31 @@ require 'rdkit_chem/version'
|
|
|
8
8
|
|
|
9
9
|
def find_rdkit_native_extension
|
|
10
10
|
ruby_version = "#{RUBY_VERSION.split('.')[0..1].join('.')}.0"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
base_dir = File.expand_path('rdkit_chem', __dir__)
|
|
12
|
+
|
|
13
|
+
# Location 1: Pre-compiled gem - exact Ruby version match
|
|
14
|
+
precompiled_path = File.join(base_dir, ruby_version)
|
|
15
|
+
return precompiled_path if File.directory?(precompiled_path) && has_native_extension?(precompiled_path)
|
|
16
|
+
|
|
17
|
+
# Location 2: Pre-compiled gem - any available Ruby version (fallback)
|
|
18
|
+
# This handles cases where gem was built with different Ruby minor version
|
|
19
|
+
if File.directory?(base_dir)
|
|
20
|
+
Dir.glob(File.join(base_dir, '*.0')).sort.reverse.each do |version_dir|
|
|
21
|
+
return version_dir if has_native_extension?(version_dir)
|
|
22
|
+
end
|
|
16
23
|
end
|
|
17
24
|
|
|
18
|
-
# Location
|
|
25
|
+
# Location 3: Source-compiled gem (legacy rdkit_chem/lib/)
|
|
19
26
|
source_compiled_path = File.expand_path('../rdkit_chem/lib', __dir__)
|
|
20
|
-
if
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
return source_compiled_path if has_native_extension?(source_compiled_path)
|
|
28
|
+
|
|
29
|
+
raise LoadError, 'Cannot find RDKitChem native extension. ' \
|
|
30
|
+
"Searched in:\n - #{precompiled_path}\n - #{base_dir}/*.0\n - #{source_compiled_path}"
|
|
31
|
+
end
|
|
24
32
|
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
def has_native_extension?(dir)
|
|
34
|
+
File.exist?(File.join(dir, 'RDKitChem.so')) ||
|
|
35
|
+
File.exist?(File.join(dir, 'RDKitChem.bundle'))
|
|
27
36
|
end
|
|
28
37
|
|
|
29
38
|
native_path = find_rdkit_native_extension
|