forked from JeffersonLab/mg_proto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
56 lines (38 loc) · 1.74 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
KOKKOS Builds:
=============
i) Clone develop branch of kokkos as a subdirectory kokkos in the parent directory.
ii) For CPU builds this is all
iii) For MPI based GPU builds get nvcc_wrapper with the mods to allow multiple --std options
( github.com:bjoo/nvcc_wrapper, develop branch)
Set appropriate env var for nvcc_wrapper to be your MPICC wrappers' compiler e.g.
MPICH_CXX=nvcc_wrapper for MPICH,MVAPICH
or OMPI_CXX=nvcc_wrapper for OpenMPI
Directory Organization:
=======================
Include files for external interfaces in include/
GTest Files in external/
Sources for Libraries in lib/
Sources fort Tests in test/
CMakeLists.txt organization
===========================
At top level:
- Define Project ' project() -- command '
- Set Revision and add to MG_config.h"
(this is generally an example of how to add '#defines' to .h files
use 'set' to set them in CMakeLists.txt and #define them in the config.h.in)
- Add commands to install this config file
- set up the include directory tree ( include for headers, external for gtest and the build dir for any generated headers)
- Recurse as appropriate into include/ lib/ test/ using add_subdirectory()
- Enable testing() and add tests for 'make test'
CMakeLists.txt in the include directory:
====================================
- This is just to install header files. I have an install line here (will add more)
CMakeLists.txt in the lib directory
================================
- This is to build your libraries: Currently 2 lines
i) to create the library
add_library(name srcs)
ii) To install the library in lib/
CMakeLists in the test/ directory
==================================
This builds the test executable (and takes care of the icky linkings.