9
9
<a name =" dependencies " ></a >
10
10
## 🟠 Dependencies
11
11
12
- The following sections (🟩) list the dependencies and how to obtain them.
12
+ The following sections (🟩) list the dependencies and how to obtain them. Click on each for details.
13
13
14
14
> [ !TIP]
15
15
> It's generally better to use your a package manager to install most dependencies, _ e.g._ :
@@ -25,59 +25,83 @@ The following sections (🟩) list the dependencies and how to obtain them.
25
25
> ```
26
26
<!--`-->
27
27
28
- ### 🟩 `meson`: Build system used by Iguana
29
- <https://mesonbuild.com/>
30
- - Likely available in your package manager, but the latest version is preferred and may be installed with `pip`:
31
- ```bash
32
- python -m pip install meson ninja
33
- ```
34
- This includes [ ` ninja ` ] ( https://ninja-build.org/ ) , which ` meson ` will benefit from using.
35
-
36
- ### 🟩 ` fmt ` : C++ output formatting library
37
- < https://github.com/fmtlib/fmt >
38
- - Likely available in your package manager, likely as ` fmt ` or ` libfmt `
39
- - If you need Python bindings on macOS, please install ` fmt ` with ` brew install fmt `
40
- - If you compile it yourself on Linux, include the ` cmake ` option ` -DCMAKE_POSITION_INDEPENDENT_CODE=ON ` to build the static library
41
-
42
- ### 🟩 ` yaml-cpp ` : YAML parser and emitter
43
- < https://github.com/jbeder/yaml-cpp >
44
- - Likely available in your package manager, likely as ` yaml-cpp `
45
-
46
- ### 🟩 ` hipo ` : C++ HIPO API
47
- < https://github.com/gavalian/hipo >
48
- - Use the ` hipo ` module on ` ifarm ` , or obtain and build it yourself
49
- - Example ` cmake ` commands:
50
- ``` bash
51
- cmake -S /path/to/hipo_source_code -B build-hipo -DCMAKE_INSTALL_PREFIX=/path/to/hipo_installation
52
- cmake --build build-hipo
53
- cmake --install build-hipo
54
- ```
28
+ <details>
29
+ <summary>🟩 Meson: Build system used by Iguana</summary>
30
+
31
+ > <https://mesonbuild.com/>
32
+ > - Likely available in your package manager, but the latest version is preferred and may be installed with `pip`:
33
+ > ```bash
34
+ > python -m pip install meson ninja
35
+ > ```
36
+ > <!--`-->
37
+ > This includes [`ninja`](https://ninja-build.org/), which `meson` will benefit from using.
38
+ </details>
39
+
40
+ <details>
41
+ <summary>🟩 fmt: C++ output formatting library</summary>
42
+
43
+ > <https://github.com/fmtlib/fmt>
44
+ > - Likely available in your package manager, likely as `fmt` or `libfmt`
45
+ > - If you need Python bindings on macOS, please install `fmt` with `brew install fmt`
46
+ > - If you compile it yourself on Linux, include the `cmake` option `-DCMAKE_POSITION_INDEPENDENT_CODE=ON` to build the static library
47
+ </details>
48
+
49
+ <details>
50
+ <summary>🟩 yaml-cpp: YAML parser and emitter</summary>
51
+
52
+ > <https://github.com/jbeder/yaml-cpp>
53
+ > - Likely available in your package manager, likely as `yaml-cpp`
54
+ </details>
55
+
56
+ <details>
57
+ <summary>🟩 HIPO: C++ HIPO API</summary>
58
+
59
+ > <https://github.com/gavalian/hipo>
60
+ > - Use the `hipo` module on `ifarm`, or obtain and build it yourself
61
+ > - Example `cmake` commands:
62
+ > ```bash
63
+ > cmake -S /path/to/hipo_source_code -B build-hipo -DCMAKE_INSTALL_PREFIX=/path/to/hipo_installation
64
+ > cmake --build build-hipo
65
+ > cmake --install build-hipo
66
+ > ```
67
+ > <!--`-->
68
+ </details>
69
+
70
+ <details>
71
+ <summary>🟩 Ruby [optional]: programming language</summary>
72
+
73
+ > <https://www.ruby-lang.org/en/>
74
+ > - Likely available in your package manager, likely as `ruby`
75
+ > - This is only needed if you intend to use Iguana with languages other than C++
76
+ > - Bindings to other programming languages are generated by [`chameleon`](/src/chameleon), a local Ruby program
77
+ </details>
78
+
79
+ <details>
80
+ <summary>🟩 ROOT [optional]: Data analysis framework</summary>
81
+
82
+ > <https://root.cern.ch/>
83
+ > - ROOT is an **optional** dependency: some algorithms and test code depends on ROOT, but if you do not
84
+ > have ROOT on your system, `iguana` will build everything _except_ ROOT-dependent code
85
+ > - It is **NOT recommended** to use your package manager to install ROOT; the most reliable installation
86
+ > method is [building it from source](https://root.cern/install/build_from_source/)
87
+ > - You may need to set the C++ standard to match that used in `iguana`, which is currently 17; to do so,
88
+ > use the build option `-DCMAKE_CXX_STANDARD=17`
89
+ > - After installation, depending on ROOT's installation prefix you may also need to set your environment so
90
+ > ROOT may be found; this is typically done by `source /path/to/root/bin/thisroot.sh`
91
+ </details>
92
+
93
+ <details>
94
+ <summary>🟩 RCDB [optional]: Run Condition Database</summary>
95
+
96
+ > <https://github.com/JeffersonLab/rcdb>
97
+ > - RCDB is optional, but needed for algorithms that use, _e.g._, the beam energy
98
+ > - You do not need to compile RCDB, just clone the repository
99
+ > - You may need to use the latest version on the main branch, rather than the most recent tag
100
+ > - Iguana uses `mysql` for RCDB; you may need to install `mariadb` or `mysql` client on your system
101
+ > - [`mariadb` is an open source fork of `mysql`](https://mariadb.org/)
102
+ > - depending on your OS's packages, you may need the "dev" version, _e.g._, `libmariadb-dev`
103
+ </details>
55
104
56
- ### 🟩 Optional: ` ruby ` : programming language
57
- < https://www.ruby-lang.org/en/ >
58
- - Likely available in your package manager, likely as ` ruby `
59
- - This is only needed if you intend to use Iguana with languages other than C++
60
- - Bindings to other programming languages are generated by [ ` chameleon ` ] ( /src/chameleon ) , a local Ruby program
61
-
62
- ### 🟩 Optional: ` ROOT ` : Data analysis framework
63
- < https://root.cern.ch/ >
64
- - ROOT is an ** optional** dependency: some algorithms and test code depends on ROOT, but if you do not
65
- have ROOT on your system, ` iguana ` will build everything _ except_ ROOT-dependent code
66
- - It is ** NOT recommended** to use your package manager to install ROOT; the most reliable installation
67
- method is [ building it from source] ( https://root.cern/install/build_from_source/ )
68
- - You may need to set the C++ standard to match that used in ` iguana ` , which is currently 17; to do so,
69
- use the build option ` -DCMAKE_CXX_STANDARD=17 `
70
- - After installation, depending on ROOT's installation prefix you may also need to set your environment so
71
- ROOT may be found; this is typically done by ` source /path/to/root/bin/thisroot.sh `
72
-
73
- ### 🟩 Optional: ` RCDB ` : Run Condition Database
74
- < https://github.com/JeffersonLab/rcdb >
75
- - RCDB is optional, but needed for algorithms that use, _ e.g._ , the beam energy
76
- - You do not need to compile RCDB, just clone the repository
77
- - You may need to use the latest version on the main branch, rather than the most recent tag
78
- - Iguana uses ` mysql ` for RCDB; you may need to install ` mariadb ` or ` mysql ` client on your system
79
- - [ ` mariadb ` is an open source fork of ` mysql ` ] ( https://mariadb.org/ )
80
- - depending on your OS's packages, you may need the "dev" version, _ e.g._ , ` libmariadb-dev `
81
105
82
106
<a name="building"></a>
83
107
## 🟠 Building and Installing
0 commit comments