text: #pragma once
  
  #include "util_string.h"
  
  namespace dxvk::env {
    
    /**
     * \brief Gets environment variable
     * 
     * If the variable is not defined, this will return
     * an empty string. Note that environment variables
     * may be defined with an empty value.
     * \param [in] name Name of the variable
     * \returns Value of the variable
     */
    std::string getEnvVar(const char* name);
    
    /**
     * \brief Gets the executable name
     * 
     * Returns the base name (not the full path) of the
     * program executable, including the file extension.
     * This function should be used to identify programs.
     * \returns Executable name
     */
    std::string getExeName();
    
    /**
     * \brief Gets full path to executable
     * \returns Path to executable
     */
    std::string getExePath();
    
    /**
     * \brief Sets name of the calling thread
     * \param [in] name Thread name
     */
    void setThreadName(const std::string& name);
  
    /**
     * \brief Creates a directory
     * 
     * \param [in] path Path to directory
     * \returns \c true on success
     */
    bool createDirectory(const std::string& path);
    
  }
  