LSSTApplications
20.0.0
LSSTDataManagementBasePackage
stack
1a1d771
Linux64
base
20.0.0
src
versions.cc
Go to the documentation of this file.
1
#include <cstddef>
2
#include <cstdlib>
3
4
#include <sstream>
5
6
#include "
lsst/base/library.h
"
7
#include "
lsst/base/versions.h
"
8
9
namespace
lsst
{
10
namespace
base
{
11
12
namespace
{
13
14
typedef
std::string
(*VersionGetter)(void);
15
16
// List of packages and how to determine the version
17
std::map<std::string, VersionGetter>
const
packages {
18
{
"cfitsio"
,
getCfitsioVersion
},
19
{
"fftw"
,
getFftwVersion
},
20
{
"wcslib"
,
getWcslibVersion
},
21
{
"gsl"
,
getGslVersion
},
22
};
23
24
}
// anonymous namespace
25
26
std::string
getCfitsioVersion
()
27
{
28
typedef
float (GetVersion)(
float
*);
29
float
version
;
30
loadSymbol<GetVersion>(
"libcfitsio"
,
"ffvers"
)(&
version
);
31
32
std::stringstream
ss(std::stringstream::in | std::stringstream::out);
33
ss <<
version
;
34
return
ss.
str
();
35
}
36
37
std::string
getFftwVersion
()
38
{
39
return
std::string
(loadSymbol<char const>(
"libfftw3"
,
"fftw_version"
));
40
}
41
42
std::string
getWcslibVersion
()
43
{
44
typedef
char
const
* (GetVersion)(
int
[]);
45
return
std::string
(loadSymbol<GetVersion>(
"libwcs"
,
"wcslib_version"
)(NULL));
46
}
47
48
std::string
getGslVersion
()
49
{
50
return
std::string
(*loadSymbol<char const*>(
"libgsl"
,
"gsl_version"
));
51
}
52
53
54
std::map<std::string, std::string>
getRuntimeVersions
()
55
{
56
std::map<std::string, std::string>
versions;
57
for
(
auto
&& pkg : packages) {
58
try
{
59
versions[pkg.first] = pkg.second();
60
}
catch
(
LibraryException
const
&) {
61
// Can't find the module, so ignore it
62
}
63
}
64
return
versions;
65
}
66
67
68
}}
// namespace lsst::base
versions.h
std::string
STL class.
lsst::base::getCfitsioVersion
std::string getCfitsioVersion()
Definition:
versions.cc:26
base
Definition:
__init__.py:1
version
table::Key< int > version
Definition:
PhotoCalib.cc:374
std::stringstream
STL class.
lsst::base::getRuntimeVersions
std::map< std::string, std::string > getRuntimeVersions()
Return version strings for dependencies.
Definition:
versions.cc:54
lsst::base::getFftwVersion
std::string getFftwVersion()
Definition:
versions.cc:37
library.h
std::map
STL class.
lsst::base::getWcslibVersion
std::string getWcslibVersion()
Definition:
versions.cc:42
lsst
A base class for image defects.
Definition:
imageAlgorithm.dox:1
std::stringstream::str
T str(T... args)
lsst::base::LibraryException
Unable to load library.
Definition:
library.h:16
lsst::base::getGslVersion
std::string getGslVersion()
Definition:
versions.cc:48
Generated on Wed Jun 24 2020 18:10:06 for LSSTApplications by
1.8.18