Giter VIP home page Giter VIP logo

lillymol_6_cmake's Introduction

LillyMol_6_cmake

Fork of the official LillyMol, but builds on Ubuntu systems with cmake.

The official LillyMol has a horrible build process. I have been working on a new version that will use either Bazel, and hopefully cmake, to do the build. But when that gets released is uncertain.

In the meantime I have done minor code cleanup on LillyMol6 and changed the build to use cmake.

Prerequisites

gcc

On my Ubuntu 20.04 system, the installed gcc compiler is 9.4.0 and the build works. Earlier and later versions might also work.

cmake

Since this version used cmake, you must have cmake installed. On my Ubuntu 20.04 version, this is version 3.16.3 and that is specified as the minimum version in the top level CMakeLists.txt file. It is quite possible this might work with earlier versions, I did not test this.

This version has been built on two Ubuntu systems only.

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS"

and

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"

re2

The old regular expression handling in LillyMol6 was horrible, and has been replaced by Google's re2. This is a fast and convenient to use regular expression matcher. On Debian-like systems like Ubuntu you must have libre2-dev installed.

If you are unable to install software on the system, there are options.

  1. Install re2 in your local area and configure CMakeLists.txt to use that local install - perhaps by just adjusting cxx flags, or pointing to the cloned repo.
  2. Use the ExternalProject_Add functionality within cmake. The re2 repo is configured for use with cmake.

Beware that if you download, configure, install and test re2, it might consume several hunred MB of disk space. Even without tests, it may consume over 100MB. Removing the source tree after installation may be advisable.

zlib

When the old LillyMol was built, there were incompatible versions of zlib in use and it caused considerable problems. On up to date Ubuntu systems this should be installed by default.

Eigen (optional)

There are some executables that are not built by default that depend on eigen, and so if you have that installed you could build tshadow which is an interesting 3D tool.

f2c (optional)

There is a 3D reaction capability that depends on some matrix functionality implemented in an old Fortran function, that we have been using via f2c. As distributed, this functionality is suppressed, so you should not need libf2c in order to build.

Building

Go to the src directory and make a build subdirectory.

cd src
mkdir build
cd build

Then build the Makfiles

cmake ..

and then you should be ready to build.

make

which takes a couple of minutes on my system. Of course this can be faster if you run make in parallel.

make -j 4

and if you run into problems with a particular executable, you might be able to just tell make to ignore errors.

make -k

I would like to hear about problems, [email protected], my intent is that this should build relatively easily..

Documentation

As part of a longer term effort to document LillyMol, please see the docs directory. More documentation will be added to this soon.

lillymol_6_cmake's People

Contributors

ianawatson avatar nbehrnd avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.