Skip to content

Conversation

@exaexa
Copy link
Contributor

@exaexa exaexa commented Jan 27, 2021

SBML is Systems Biology Markup Language, a de-facto standard for creation, annotation, conversion and processing of models for computational systems biology, see https://en.wikipedia.org/wiki/LibSBML. This builds the package as-is with minimal required explicit modifications in the build script.

I'm a bit new to JLL packaging, any feedback welcome.

@giordano
Copy link
Member

Oh wow, I was planning to look into this in the near future 😅

(thanks @giordano for review)
@giordano
Copy link
Member

@exaexa you mentioned CxxWrap, but as far as I understand libsbml has also a C interface, which would be way easier to call from Julia

@exaexa
Copy link
Contributor Author

exaexa commented Jan 28, 2021

also a C interface

That is an interesting idea, it could replace one level of glue layers that I'm using here. I'll test that and let you know. Marking this as WIP in the meantime.

@exaexa exaexa changed the title new recipe: SBML new recipe: SBML [WIP] Jan 28, 2021
(thanks to @giordano again)
@exaexa
Copy link
Contributor Author

exaexa commented Jan 28, 2021

Anyway, it seems to work, even the licenses seem to get discovered correctly now. The C API works for our use-case, so I guess I can submit this and work with SBML_jll using the C calls later.

One last thing that seems a bit wrong-- I'm getting this warning:

┌ Warning: Minimum instruction set detected for lib/libsbml.so.5.19.0 is sandybridge, not x86_64 as desired.
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/OMMHj/src/Auditor.jl:269

I was not able to make the SBML buildsystem compile without producing the sse3 instructions (these trigger the warning); tried all combinations of -mtune=generic and others. Still, to me this seems a bit like false positive-- I'm not really sure if any x86-64 platforms without sse3 even exist.

@exaexa exaexa changed the title new recipe: SBML [WIP] new recipe: SBML Jan 28, 2021
@giordano
Copy link
Member

tried all combinations of -mtune=generic and others

We already force -march=x86-64 -mtune=generic: https://github.com/JuliaPackaging/BinaryBuilderBase.jl/blob/b699dcdaeb099bb374b39f33580ee07e719cf6e7/src/Platforms.jl#L96 😉

I'm not really sure if any x86-64 platforms without sse3 even exist.

Not super-common perhaps, but do exist. However, if the library authors explicitly require those instructions, there is little we can do. The warning is there just to let us know.

Thanks for your contribution!

@giordano giordano merged commit e85dd9f into JuliaPackaging:master Jan 28, 2021
@exaexa
Copy link
Contributor Author

exaexa commented Jan 28, 2021

Great, thanks a lot for all help @giordano !

@exaexa exaexa deleted the sbml branch January 28, 2021 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants