// SPDX-License-Identifier: GPL-2.0-or-later
/** @file
 * TODO: insert short description here
 *//*
 * Authors: see git history
 *
 * Copyright (C) 2018 Authors
 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
 */
/*
 * Separate the inkscape paths from the prefix code, as that is kind of
 * a separate package (binreloc)
 * 	http://autopackage.org/downloads.html
 *
 * Since the directories set up by autoconf end up in config.h, we can't
 * _change_ them, since config.h isn't protected by a set of
 * one-time-include directives and is repeatedly re-included by some
 * chains of .h files.  As a result, nothing should refer to those
 * define'd directories, and instead should use only the paths defined here.
 *
 */
#ifndef SEEN_PATH_PREFIX_H
#define SEEN_PATH_PREFIX_H

#ifdef HAVE_CONFIG_H
# include "config.h"  // only include where actually required!
#endif

#include "prefix.h"

#ifdef ENABLE_BINRELOC // TODO: Should we drop binreloc in favor of OS-specific relocation code
                       //       in append_inkscape_datadir() like we already do for win32?
/* The way that we're building now is with a shared library between Inkscape
   and Inkview, and the code will find the path to the library then. But we
   don't really want that. This prefix then pulls things out of the lib directory
   and back into the root install dir. */
#  define INKSCAPE_LIBPREFIX      "/../.."
#  define INKSCAPE_DATADIR_REAL   BR_DATADIR( INKSCAPE_LIBPREFIX "/share")
#  define INKSCAPE_ATTRRELDIR     BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/attributes" )
#  define INKSCAPE_DOCDIR         BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/doc" )
#  define INKSCAPE_EXAMPLESDIR    BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/examples" )
#  define INKSCAPE_EXTENSIONDIR   BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/extensions" )
#  define INKSCAPE_FILTERDIR      BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/filters" )
#  define INKSCAPE_FONTSDIR       BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/fonts" )
#  define INKSCAPE_KEYSDIR        BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/keys" )
#  define INKSCAPE_ICONSDIR       BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/icons" )
#  define INKSCAPE_PIXMAPSDIR     BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/pixmaps" )
#  define INKSCAPE_MARKERSDIR     BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/markers" )
#  define INKSCAPE_PAINTDIR       BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/paint" )
#  define INKSCAPE_PALETTESDIR    BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/palettes" )
#  define INKSCAPE_SCREENSDIR     BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/screens" )
#  define INKSCAPE_SYMBOLSDIR     BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/symbols" )
#  define INKSCAPE_THEMEDIR       BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/themes" )
#  define INKSCAPE_TUTORIALSDIR   BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/tutorials" )
#  define INKSCAPE_TEMPLATESDIR   BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/templates" )
#  define INKSCAPE_UIDIR          BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/ui" )
//CREATE V0.1 support
#    define CREATE_PAINTDIR       BR_DATADIR( INKSCAPE_LIBPREFIX "/share/create/paint" )
#    define CREATE_PALETTESDIR    BR_DATADIR( INKSCAPE_LIBPREFIX "/share/create/swatches" )
#elif defined ENABLE_OSX_APP_LOCATIONS // TODO: Is ENABLE_OSX_APP_LOCATIONS still in use?
#    define INKSCAPE_DATADIR_REAL "Contents/Resources/share"
#    define INKSCAPE_ATTRRELDIR   "Contents/Resources/share/inkscape/attributes"
#    define INKSCAPE_DOCDIR       "Contents/Resources/share/inkscape/doc"
#    define INKSCAPE_EXAMPLESDIR  "Contents/Resources/share/inkscape/examples"
#    define INKSCAPE_EXTENSIONDIR "Contents/Resources/share/inkscape/extensions"
#    define INKSCAPE_FILTERDIR    "Contents/Resources/share/inkscape/filters"
#    define INKSCAPE_FONTSDIR     "Contents/Resources/share/inkscape/fonts"
#    define INKSCAPE_KEYSDIR      "Contents/Resources/share/inkscape/keys"
#    define INKSCAPE_ICONSDIR     "Contents/Resources/share/inkscape/icons"
#    define INKSCAPE_PIXMAPSDIR   "Contents/Resources/share/inkscape/pixmaps"
#    define INKSCAPE_MARKERSDIR   "Contents/Resources/share/inkscape/markers"
#    define INKSCAPE_PAINTDIR     "Contents/Resources/share/inkscape/paint"
#    define INKSCAPE_PALETTESDIR  "Contents/Resources/share/inkscape/palettes"
#    define INKSCAPE_SCREENSDIR   "Contents/Resources/share/inkscape/screens"
#    define INKSCAPE_SYMBOLSDIR   "Contents/Resources/share/inkscape/symbols"
#    define INKSCAPE_THEMEDIR     "Contents/Resources/share/inkscape/themes"
#    define INKSCAPE_TUTORIALSDIR "Contents/Resources/share/inkscape/tutorials"
#    define INKSCAPE_TEMPLATESDIR "Contents/Resources/share/inkscape/templates"
#    define INKSCAPE_UIDIR        "Contents/Resources/share/inkscape/ui"
//CREATE V0.1 support
#    define CREATE_PAINTDIR      "/Library/Application Support/create/paint"
#    define CREATE_PALETTESDIR   "/Library/Application Support/create/swatches"
#else
#    define INKSCAPE_DATADIR_REAL append_inkscape_datadir()
#    define INKSCAPE_ATTRRELDIR   append_inkscape_datadir("inkscape/attributes")
#    define INKSCAPE_BINDDIR      append_inkscape_datadir("inkscape/bind")
#    define INKSCAPE_DOCDIR       append_inkscape_datadir("inkscape/doc")
#    define INKSCAPE_EXAMPLESDIR  append_inkscape_datadir("inkscape/examples")
#    define INKSCAPE_EXTENSIONDIR append_inkscape_datadir("inkscape/extensions")
#    define INKSCAPE_FILTERDIR    append_inkscape_datadir("inkscape/filters")
#    define INKSCAPE_FONTSDIR     append_inkscape_datadir("inkscape/fonts")
#    define INKSCAPE_KEYSDIR      append_inkscape_datadir("inkscape/keys")
#    define INKSCAPE_ICONSDIR     append_inkscape_datadir("inkscape/icons")
#    define INKSCAPE_PIXMAPSDIR   append_inkscape_datadir("inkscape/pixmaps")
#    define INKSCAPE_MARKERSDIR   append_inkscape_datadir("inkscape/markers")
#    define INKSCAPE_PAINTDIR     append_inkscape_datadir("inkscape/paint")
#    define INKSCAPE_PALETTESDIR  append_inkscape_datadir("inkscape/palettes")
#    define INKSCAPE_SCREENSDIR   append_inkscape_datadir("inkscape/screens")
#    define INKSCAPE_SYMBOLSDIR   append_inkscape_datadir("inkscape/symbols")
#    define INKSCAPE_THEMEDIR     append_inkscape_datadir("inkscape/themes")
#    define INKSCAPE_TUTORIALSDIR append_inkscape_datadir("inkscape/tutorials")
#    define INKSCAPE_TEMPLATESDIR append_inkscape_datadir("inkscape/templates")
#    define INKSCAPE_UIDIR        append_inkscape_datadir("inkscape/ui")
//CREATE V0.1 support
#    define CREATE_PAINTDIR       append_inkscape_datadir("create/paint")
#    define CREATE_PALETTESDIR    append_inkscape_datadir("create/swatches")
#endif


char *append_inkscape_datadir(const char *relative_path=nullptr);
char *get_program_name();
char *get_program_dir();


#endif /* _PATH_PREFIX_H_ */
