The following instructions have been tested under Windows 10 Pro.
Download Visual Studio Community Edition from from the official website visualstudio.microsoft.com The current build instructions are tested with Visual Studio 2022.
Download Qt from from the official website qt.io
Make sure to choose the open source version of Qt and download the online installer.
Select Qt 5.15.2 (LTS) and open the sub tree. Only ‘MSVC 2019 64-bit’ component is needed.
Make a symbolic link to the directory corresponding to the current Qt version; e.g., if Qt 5.15.2 is installed in
C:\Qt\5.15.2, then in Windows
cmd (with administrative rights) execute:
$ mklink /D "C:\Qt\current" "C:\Qt\5.15.2" $ mklink /D "C:\Qt\msvc" "C:\Qt\5.15.2\msvc2019_64"
Download the Windows x64 Installer from the official website cmake.org/download
Next up, download Python 3.9. For that, go to python.org/downloads/, look for Python 3.9.x and download the Windows installer (64-bit). Follow the setup and make sure to add Python to
Once Python is set up correctly, install
numpy. Therefore open a PowerShell and type the command:
py -m pip install numpy
py -m pip install matplotlib setuptools build wheel
Download and install NSIS 3.03 from the official website.
Add NSIS to the system
PATH; see below.
If you want to re-build the Python-API with SWIG, download and install SWIG from the official website swig.org/download.html
Information can be found on [http://www.swig.org/Doc1.3/windows.html#Windows_installation]
Unpack the ZIP file and add its folder to PATH (so e.g.
From there download:
Create the folders
and paste the corresponding content from the ZIP files in those two folders.
After those installations your
PATH should contain
C:\Qt\5.15.2\msvc2019_64\bin C:\Program Files\Python39\Scripts\ C:\Program Files\Python39\ C:\opt\x64\include C:\opt\x64\lib C:\Program Files\CMake\bin C:\Program Files (x86)\NSIS
With all prerequisites completed, you should be able to build and test BornAgain in a PowerShell. In there, execute
$OPTLIBS = "C:/opt/x64" $FFTW3_INCLUDE_DIR = "$OPTLIBS/include" $FFTW3_LIB = "$OPTLIBS/lib/libfftw3-3.lib" $QTDIR = "C:/Qt/current/msvc2019_64" $QTCMake_DIR = "$QTDIR/lib/cmake" $BUILD_DIR = "build" mkdir -Force "$BUILD_DIR" cd "$BUILD_DIR" cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 -DLIB_MAN=OFF -DQTDIR="$QTDIR" -DQt5_DIR="$QTCMake_DIR/Qt5" -DQt5Test_DIR="$QTCMake_DIR/Qt5Test" -DFFTW3_INCLUDE_DIR="$FFTW3_INCLUDE_DIR" -DFFTW3_LIBRARY="$FFTW3_LIB" -DCMAKE_INCLUDE_PATH="$OPTLIBS/include" -DCMAKE_LIBRARY_PATH="$OPTLIBS/lib" -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -B. .. cmake --build . --config Release ctest -C Release --parallel 8 --output-on-failure
Compilation might be accelerated if Ninja is used as a build system.
Download the Ninja binary for Windows from ninja-build.org. Add the binaries to a directory in your
To use Ninja as the build system, the compilation cannot be performed in a PowerShell but in the Visual Studio Shell x64 Native Tools Command Prompt for VS 2019 which you can search for in the start menu.
Use the following commands to build BornAgain:
set OPTLIBS=C:/opt/x64 set FFTW3_INCLUDE_DIR=%OPTLIBS%/include set FFTW3_LIB=%OPTLIBS%/lib/libfftw3-3.lib set QTDIR=C:/Qt/current/msvc2019_64 set QTCMake_DIR=%QTDIR%/lib/cmake set BUILD_DIR=buildnj mkdir "%BUILD_DIR%" cd "%BUILD_DIR%" cmake --version cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DQTDIR="%QTDIR%" -DQt5_DIR="%QTCMake_DIR%/Qt5" -DQt5Test_DIR="%QTCMake_DIR%/Qt5Test" -DFFTW3_INCLUDE_DIR="%FFTW3_INCLUDE_DIR%" -DFFTW3_LIBRARY="%FFTW3_LIB%" -DCMAKE_INCLUDE_PATH="%OPTLIBS%/include" -DCMAKE_LIBRARY_PATH="%OPTLIBS%/lib" -DLIB_MAN=OFF -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -B. .. echo "## BUILD START:" %time% cmake --build . --config Release --parallel 8 echo "## BUILD END:" %time% ctest -C Release --parallel 8 --output-on-failure