* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "../pch.h"
Backend::~Backend()
{
}
+
+string
+Backend::GetFullPath ( const FileLocation& file ) const
+{
+ string directory;
+ switch ( file.directory )
+ {
+ case SourceDirectory:
+ directory = "";
+ break;
+ case IntermediateDirectory:
+ directory = Environment::GetIntermediatePath ();
+ break;
+ case OutputDirectory:
+ directory = Environment::GetOutputPath ();
+ break;
+ case InstallDirectory:
+ directory = Environment::GetInstallPath ();
+ break;
+ default:
+ throw InvalidOperationException ( __FILE__,
+ __LINE__,
+ "Invalid directory %d.",
+ file.directory );
+ }
+
+ if ( file.relative_path.length () > 0 )
+ {
+ if ( directory.length () > 0 )
+ directory += sSep;
+ directory += file.relative_path;
+ }
+ return directory;
+}
+
+string
+Backend::GetFullName ( const FileLocation& file ) const
+{
+ string directory = GetFullPath ( file );
+
+ if ( directory.length () > 0 )
+ directory += sSep;
+
+ return directory + file.name;
+}