lsst.cpputils g2e2c1a68ba+cc1f6f037e
packaging.cc
Go to the documentation of this file.
1/*
2 * LSST Data Management System
3 * Copyright 2008, 2009, 2010 LSST Corporation.
4 *
5 * This product includes software developed by the
6 * LSST Project (http://www.lsst.org/).
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the LSST License Statement and
19 * the GNU General Public License along with this program. If not,
20 * see <http://www.lsstcorp.org/LegalNotices/>.
21 */
22
24
25#include <iostream>
26#include <sstream>
27#include <string>
28#include "lsst/pex/exceptions.h"
29
30namespace lsst {
31namespace cpputils {
32
34 std::string envVar = packageName; // package's environment variable
35
36 transform(envVar.begin(), envVar.end(), envVar.begin(), (int (*)(int)) toupper);
37 envVar += "_DIR";
38
39 char const *dir = getenv(envVar.c_str());
40 if (!dir) {
41 throw LSST_EXCEPT(lsst::pex::exceptions::NotFoundError, "Package " + packageName + " not found");
42 }
43
44 return dir;
45}
46
47}} // namespace lsst::cpputils
#define LSST_EXCEPT(type,...)
T begin(T... args)
T c_str(T... args)
T end(T... args)
std::string getPackageDir(std::string const &packageName)
return the root directory of a setup package
Definition: packaging.cc:33