.. _installation-compilation-windows:
-----------------------
Building guide: Windows
-----------------------
Building with Windows Subsystem for Linux and Ubuntu 20 LTS
-----------------------------------------------------------
Alternatively to Cygwin, Windows 10 and Windows Server 2019 are able to run Linux executables natively with an compatibility layer developed by Microsoft, the `Windows Subsystem for Linux (WSL) `_. Different Linux distributions are available from the Microsoft store for installation into the WSL, including `Ubuntu 20.04 LTS `_. After setup of WSL and installation of Ubuntu 20.04 LTS (Focal Fossa) within WSL, the build process of IDSimF is the same as in Ubuntu 20.04 LTS.
.. note::
This guide assumes that you have basic familiarity with Linux / Unix shells and you can invoke commands, change directories, list directory contents etc. within a shell.
Install Windows Subsystem for Linux (WSL) and Ubuntu 20.04 LTS
..............................................................
Install Windows Subsystem for Linux (WSL) according to the `installation guide `_. Install Ubuntu 20.04 LTS from the `Microsoft Store `_.
After the installation of Ubuntu 20.04 (Focal Fossa) in WSL, you should have an "Ubuntu" tile in your Windows menu, which starts a new shell within the Ubuntu installation.
Build and test IDSimF within Ubuntu 20.04 LTS in WSL
....................................................
The build process of IDSimF in the Ubuntu system within WSL is exactly the same as in a natively installed Ubuntu system. Refer to the :doc:`Ubuntu 20.04 LTS installation guide ` for the remaining build process.
Building with Cygwin
--------------------
`Cygwin `_ Cygwin is an UNIX (Posix compatible) programming and runtime environment. It provides basically a Linux distribution which runs natively under Windows. IDSimF can be built and run in the Cygwin environment.
.. note::
This guide assumes that you have basic familiarity with Linux / Unix shells and you can invoke commands, change directories, list directory contents etc. within a shell.
Install Cygwin and required Cygwin packages
...........................................
Use the Cygwin setup program to install Cygwin and the following packages:
+ ``git``
+ ``cmake``
+ ``g++```
+ ``gnu make``
+ ``hdf5``
This makes all required tools available in the Cygwin environment. You can check if ``git`` ``cmake`` and a c++ compiler is available in the Cygwin environment by checking the versions of the individual tools in a cygwin shell:
.. code-block:: console
$ git --version
git version 2.28.0
$ cmake --version
cmake version 3.14.5
$ g++ --version
g++ (GCC) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
Clone the IDSimF repository
...........................
Within a Cygwin shell, clone the IDSimF repository to your local machine with git from GitHub:
.. code-block:: console
git clone https://github.com/IPAMS/IDSimF.git
This clones the IDSimF repository to a local folder "IDSimF".
Configuration and building with cmake
.....................................
Preparing the build
+++++++++++++++++++
.. include:: default_cmake_configuration.rst
Optional FMM Libraries
++++++++++++++++++++++
The optional FMM libraries, `exafmm-t `_ and `FMM3D `_ were not yet tested with cygwin. It should be possible to compile them within the cygwin environment if all dependencies of those libraries are available within cygwin.
Building
++++++++
.. include:: default_build.rst
Test the build
++++++++++++++
After compilation has finished without problems, the IDSimF build can be tested by :doc:`running tests or benchmarks `.