Installation
We've tried to make Skywalker as easy as possible to use with your current software. To build it, you need
- CMake v3.10+
- GNU Make
- Reliable C and C++ compilers (like GCC and Clang)
- A decent Fortran compiler (like GFortran or Intel's
ifort)
You can also build Skywalker on Windows. It has been tested with Visual Studio
2022 Community Edition with the Intel oneAPI Fortran Classіc (ifort) compiler.
Your mileage may vary if you use different versions of Visual Studio or a
different Fortran compiler.
Clone the Repository
First, go get the source code at GitHub:
git clone git@github.com:eagles-project/skywalker.git
git clone https://github.com/eagles-project/skywalker.git
This places a skywalker folder into your current path. If you're using
Visual Studio, just use your Git workflow to clone the repository.
Configure Skywalker
Skywalker uses CMake as its build system. CMake accepts a few options that specify how Skywalker should be built. Here are the most important options for you to consider.
CMAKE_INSTALL_PREFIXsets the path to which the Skywalker C, C++, and Fortran headers/module and libraries are installed. This is often something like/usr/localby default.CMAKE_BUILD_TYPEcontrols whether optimization is on (Release) or whether the build is instrumented for a debugger (Debug).SKYWALKER_PRECISIONcan be set tosingleordouble(default) to control the precision of floating point numbers.CMAKE_C_COMPILERsets the C compiler that is used to build Skywalker. Usually, the default compiler is fine, but if you want to use an MPI-capable compiler or a specific vendor compiler, you can specify it with this option.ENABLE_FORTRAN, when set toON(its default value), builds Fortran support for Skywalker. You can set this toOFFif you don't need Fortran.CMAKE_Fortran_COMPILERsets the Fortran compiler that is used to build Skywalker's Fortran interface.
From the top-level skywalker directory, create a "build" directory
(e.g. build). This is where you'll configure and build Skywalker. For example,
to configure a debuggable build of Skywalker that uses double precision, do the
following:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install \
-DCMAKE_BUILD_TYPE=Debug \
-DSKYWALKER_PRECISION=double \
..
This creates a set of Makefiles in your build directory. Now you're ready
to build.
Visual Studio gets its settings from CMakeSettings.json in the top-level
source directory.
Build, Test, and Install Skywalker
To build skywalker, make sure you're in your build directory and type
make -j
If this process succeeds, you can run the tests and examples included with Skywalker by typing
make test
If you're using Linux, you can also run Skywalker's tests through Valgrind to check for memory corruptions and leaks with
make memcheck
(but be prepared to wait a while for the tests to finish).
You should see several tests run (and hopefully pass!). Now, to install
Skywalker to the path you specified with CMAKE_INSTALL_PREFIX, type
make install
You should be able to use the Build and Test workflows in Visual Studio to build, test, and install Skywalker.
The installation process produces the following artifacts, which you can use to build your own Skywalker programs:
PREFIX/lib/libskywalker_<precision>.a, a library you can use with a C or C++ Skywalker program.PREFIX/include/skywalker.h, a C header file that provides Skywalker's C interface.PREFIX/include/skywalker.hpp, a C++ header file that provides Skywalker's C++ interface.PREFIX/share/skywalker.cmake, a CMake file that includes installation information for Skywalker, plus a function calledadd_skywalker_driveryou can use to build your own driver programs.
When ENABLE_FORTRAN is set to ON, you get additional Fortran artifacts:
* PREFIX/lib/libskywalker_f90_<precision>.a, a library you can use with a
Fortran Skywalker program.
* PREFIX/include/skywalker.mod, a Fortran 90 module header file that provides
Skywalker's Fortran interface.
On Windows, the library files have a .lib suffix instead of .a.
Here, PREFIX stands for the path you passed to CMAKE_INSTALL_PREFIX. These
files are all you need to build Skywalker programs.
Try It Out!
At this point, you're ready to start using Skywalker. Look at the Quick Start section to get started.