KiCad PCB EDA Suite
Loading...
Searching...
No Matches
env_vars.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
25#ifndef ENV_VARS_H
26#define ENV_VARS_H
27
28#include <kicommon.h>
29#include <wx/string.h>
30#include <map>
31#include <vector>
32#include <optional>
33
34class ENV_VAR_ITEM;
35
36namespace ENV_VAR
37{
38 using ENV_VAR_LIST = std::vector<wxString>;
39
47 KICOMMON_API bool IsEnvVarImmutable( const wxString& aEnvVar );
48
53
59 KICOMMON_API wxString GetVersionedEnvVarName( const wxString& aBaseName );
60
69 KICOMMON_API std::optional<wxString> GetVersionedEnvVarValue( const std::map<wxString, ENV_VAR_ITEM>& aMap,
70 const wxString& aBaseName );
71
82 KICOMMON_API wxString LookUpEnvVarHelp( const wxString& aEnvVar );
83
90 template <typename VAL_TYPE>
91 KICOMMON_API std::optional<VAL_TYPE> GetEnvVar( const wxString& aEnvVarName );
92
99 template<>
100 KICOMMON_API std::optional<wxString> GetEnvVar( const wxString& aEnvVarName );
101
109 template <>
110 KICOMMON_API std::optional<double> GetEnvVar( const wxString& aEnvVarName );
111};
112
113#endif /* ENV_VARS_H */
KiCad uses environment variables internally for determining the base paths for libraries,...
#define KICOMMON_API
Definition: kicommon.h:28
KICOMMON_API wxString LookUpEnvVarHelp(const wxString &aEnvVar)
Look up long-form help text for a given environment variable.
Definition: env_vars.cpp:145
KICOMMON_API std::optional< VAL_TYPE > GetEnvVar(const wxString &aEnvVarName)
Get an environment variable as a specific type, if set correctly.
KICOMMON_API const ENV_VAR_LIST & GetPredefinedEnvVars()
Get the list of pre-defined environment variables.
Definition: env_vars.cpp:68
KICOMMON_API std::optional< wxString > GetVersionedEnvVarValue(const std::map< wxString, ENV_VAR_ITEM > &aMap, const wxString &aBaseName)
Attempts to retrieve the value of a versioned environment variable, such as KICAD8_TEMPLATE_DIR.
Definition: env_vars.cpp:83
KICOMMON_API wxString GetVersionedEnvVarName(const wxString &aBaseName)
Constructs a versioned environment variable based on this KiCad major version.
Definition: env_vars.cpp:74
KICOMMON_API bool IsEnvVarImmutable(const wxString &aEnvVar)
Determine if an environment variable is "predefined", i.e.
Definition: env_vars.cpp:53
std::vector< wxString > ENV_VAR_LIST
Definition: env_vars.h:38