boinc/samples/wrappture
Vitalii Koshura 4594160ffb
[Windows] Add MSVS 2019 with vcpkg support
Added new projects to build with Microsoft Visual Studio 2019.
Added vcpkg support for 3rd party libraries.
For simplification all executables use static linked libraries
(impact +0.5 MB or < 3%).
Enable build for all projects (including examples for opencl, cuda etc).
Configuration is not tested yet, so no CI added.
Also because of the reason above projects for VS 2013 are not removed yet too.

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2020-03-16 02:32:35 +01:00
..
Makefile Unix build: tweak Makefiles in sample apps 2013-05-16 09:38:31 -07:00
README
driver.xml
fermi.cpp
fermi_in
fermi_out
license.terms add license file for rappture example 2015-09-08 22:33:24 -07:00
wrappture.cpp [Windows] Add MSVS 2019 with vcpkg support 2020-03-16 02:32:35 +01:00
wrappture.h
wrappture_example.cpp

README

Example of running a Rappture app under BOINC

--------------------------
Creating app versions

A Rappture app version has at minimum two files:

- The core application
- A wrapper that parses the XML parameter file,
    runs the core application with appropriate cmdline,
    parses its stdout for progress messages,
    and interfaces with the BOINC client.

In this directory, fermi.cpp is the core app.
The wrapper consists of two files:
    - wrappture_example.cpp (app-specific)
    - wrappture.cpp (app-independent)

Suppose you want to deploy this app for 64-bit Linux.
Suppose the app name is "fermi".

- compile the programs on a 64-bit Linux machine.
    producing executables "fermi" and "wrappture_example"
- in your project's apps/fermi directory, create a directory
    fermi_1.0_x86_64-pc-linux-gnu
    (the "1.0" is a version number)
- Into this directory, copy
    wrappture_example as fermi_1.0_x86_64-pc-linux-gnu
    fermi as fermi=fermi-core_1.0_x86_64-pc-linux-gnu
- run update_versions.

--------------------------
Submitting jobs

- create input and output templates in your project/templates
    fermi_in: 1 file, logical name "driver.xml"
    fermi_out: 1 file, logical name "fermi_out.dat"
    (you can copy the ones here)
- copy driver.xml to project/driver_1.xml
    (the "1" is a version number)
- copy cw_fermi to project/
    (this is a job-submission script)
- in project/, run cw_fermi

--------------------------
Notes

- wrappture_example links libexpat and libz (among others) dynamically,
    so it won't run on systems that don't have them.
    It would be better to link everything statically,
    i.e. linking libexpat.a rather libexpat.so.
    You may need to download or build the .a versions.