Windows

We compile and test NEML on Windows using the MSYS2 system. This provides a linux-like build environment for Windows. We build and test the library using the mingw-w64 compiler. MSYS2 supports other compilers and if needed you may be able to compile and run NEML using one of the other support compilers. These directions assume the use of mingw.

Basic library

Go to the MSYS2 website and follow the instructions there to install the framework. Follow the directions all the way through updating the package repository and installing mingw with the command:

pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain

As the directions state, at this point close the original MSYS2 window, go to the start menu, and run “MSYS MinGW 64-bit”. You are now ready to obtain the NEML source code and compile the library

Use the “MSYS MinGW 64-bit” terminal you opened to navigate to the location you want to download and install NEML to. Install the required dependencies with

pacman -S mingw-w64-x86_64-openblas mingw-w64-x86_64-cmake git

You can now clone the NEML source repository and enter the NEML directory with

git clone https://github.com/Argonne-National-Laboratory/neml.git
cd neml

Finally, configure the base library with CMake and build the library with

cmake . -G"MSYS Makefiles"
make

This will build the NEML dynamic library, located in lib subdirectory in the NEML install.

Python bindings

To go on and build the Python binding first follow the instructions in the previous section for the base library. Then install a few additional dependencies with

pacman -S mingw-w64-x86_64-python-pip mingw-w64-x86_64-python-numpy mingw-w64-x86_64-python-scipy mingw-w64-x86_64-python-networkx mingw-w64-x86_64-python-matplotlib mingw-w64-x86_64-python-nose

Configure and build the Python bindings

cmake . -G"MSYS Makefiles" -D"WRAP_PYTHON=ON"
make

This produces the NEML python package in the neml subdirectory.

You can run the automatic test suite using nose with the command

nosetests-3.8.exe

To use the neml Python package outside the source directory you need to add the neml\neml subdirectory to both the system PATH and PYTHONPATH environment variables.