Commit ef12cc62 authored by ESTERIE Pierre's avatar ESTERIE Pierre

Update README.md

parent 4a237e67
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
Copyright Inria, please read the licence. Copyright Inria, please read the licence.
### Requirements ## Requirements
- CMake v2.8.12 or later - CMake v3.10.0 or later
- C++ compiler that supports - C++ compiler that supports
- C++14 [compiler support list](http://en.cppreference.com/w/cpp/compiler_support) - C++14 [compiler support list](http://en.cppreference.com/w/cpp/compiler_support)
- [OpenMP](http://www.openmp.org/resources/openmp-compilers/) - [OpenMP](http://www.openmp.org/resources/openmp-compilers/)
...@@ -28,12 +28,15 @@ The following are optional: ...@@ -28,12 +28,15 @@ The following are optional:
- Custom BLAS, FFT implementations. - Custom BLAS, FFT implementations.
- [StarPU](http://starpu.gforge.inria.fr/) for the relevant FMM implementations. - [StarPU](http://starpu.gforge.inria.fr/) for the relevant FMM implementations.
### Get and Build ScalFMM ## Get and Build ScalFMM
To use last development states of ScalFMM, please clone the develop
### Cloning
To use last development states of ScalFMM, please clone the master
branch. Note that ScalFMM contains two git submodules `morse_cmake` and `inastemp`. branch. Note that ScalFMM contains two git submodules `morse_cmake` and `inastemp`.
To get sources please use these commands: To get sources please use these commands:
``` bash ``` bash
git clone --recursive git@gitlab.inria.fr:solverstack/ScalFMM.git -b develop git clone --recursive git@gitlab.inria.fr:solverstack/ScalFMM.git -b requested_branch
``` ```
or or
```bash ```bash
...@@ -43,7 +46,10 @@ git submodule init ...@@ -43,7 +46,10 @@ git submodule init
git submodule update git submodule update
``` ```
# Move to the build folder ### Building
You can do an out-of-source build by creating a `build` folder out of your clone or you can use the `Build`
folder inside your clone.
``` bash ``` bash
cd scalfmm/Build cd scalfmm/Build
# Use cmake, with relevant options # Use cmake, with relevant options
...@@ -59,18 +65,42 @@ ccmake ../ ...@@ -59,18 +65,42 @@ ccmake ../
cmake-gui ../ cmake-gui ../
``` ```
The binaries are then compiled calling `make`. They can be found in `scalfmm/Build/Tests/{Release,Debug}/...` The binaries are then compiled calling `make` (or `ninja` if you specified it at the configure step).
They can be found in `scalfmm/Build/Tests/{Release,Debug}/...`
Invoke `make help` to see the available targets.
Gloabal targets are available :
* `scalfmm_examples` builds the examples in the `Example` folder,
* `scalfmm_utests` builds the unit tests in the `Utests` folder.
An example build using StarPU: An example build using StarPU:
```bash ```bash
cmake .. -DSCALFMM_USE_STARPU=ON -DSCALFMM_USE_CUDA=OFF -DSCALFMM_USE_OPENCL=OFF \ cmake .. -DSCALFMM_USE_BLAS=ON -DSCALFMM_USE_MKL_AS_BLAS=ON -DSCALFMM_USE_FFT=ON -DSCALFMM_USE_STARPU=ON
-DHWLOC_DIR=/home/berenger/Download/hwloc-1.10.0/install/ \ make all
-DSTARPU_DIR=/home/berenger/Download/starpu-work/StarPU/installwithfxt
``` ```
You can also specify your install directory with `-DCMAKE_INSTALL_PREFIX=/path/to/your/install` and then
call `make install`
## Using ScalFMM in your project
#### Build the doc: To find ScalFMM, `pkgconfig` can be used within your CMake and all ScalFMM dependencies will be found automatically.
Here is an example :
```cmake
find_package(scalfmm CONFIG REQUIRED)
if(scalfmm_FOUND)
message(STATUS "ScalFMM Found")
add_executable(my_exe program.cpp )
target_link_libraries(my_exe scalfmm::scalfmm)
else()
message(FATAL_ERROR "ScalFMM NOT FOUND")
endif()
```
## Documentation
The doc can be found [here](https://solverstack.gitlabpages.inria.fr/ScalFMM/) or you can build it locally.
```bash ```bash
cd scalfmm/Build cd scalfmm/Build
...@@ -78,25 +108,31 @@ cmake .. -DSCALFMM_BUILD_DOC=ON # or if cmake has already been called, ccmake . ...@@ -78,25 +108,31 @@ cmake .. -DSCALFMM_BUILD_DOC=ON # or if cmake has already been called, ccmake .
make doc make doc
``` ```
This will generate the documentation in HTML format in the `Build/Doc/html` folder. You can create a local server to access it using Python This will generate the documentation in HTML format in the `Build/Doc/html` folder.
```bash ```bash
# From the Build folder # From the Build folder
cd Doc/html cd Doc/html
python3 -m http.server # or python2 -m SimpleHTTPServer firefox index.html
``` ```
## Contributing and development guidelines
### Gitlab flow
The documentation can then be accessed from an internet browser at the address `localhost:8000`. Please, read the Gitlab flow article available [here](https://docs.gitlab.com/ee/workflow/gitlab_flow.html<Paste>).
To make it simple, if you want to contribute to the library, create a branch from `master` with a meaningful name and develop
your feature in that branch. Keep your branch up to date by regularly rebasing your branch from the `master` branch to be up
to date. Once your are done, send a merge request.
### Help and News ## Help and News
You can subscribe to the scalfmm-public-users@lists.gforge.inria.fr mailing list (http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/scalfmm-public-users). The list is very low trafic (~ 2 mails per year), we will let you know of improvements and releases. You can subscribe to the scalfmm-public-users@lists.gforge.inria.fr mailing list (http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/scalfmm-public-users). The list is very low trafic (~ 2 mails per year), we will let you know of improvements and releases.
Contact the developers at : scalfmm-public-support@lists.gforge.inria.fr Contact the developers at : scalfmm-public-support@lists.gforge.inria.fr
### Folder structure ## Folder structure
- Src : library core. - include : library core.
- Data : particle distribution examples. - Data : particle distribution examples.
- Examples : common usage examples. - Examples : common usage examples.
- Doc : documentation configuration. - Doc : documentation configuration.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment