pkg-config/pkg.h
Arch Librarian 1aaee14cab 2001-09-30 Tor Lillqvist <tml@iki.fi>
Author: tml
Date: 2001-09-29 21:05:25 GMT
2001-09-30  Tor Lillqvist  <tml@iki.fi>

	Changes for "pure" Win32 (without Cygwin or similar)
	support. The most important differences compared to pkg-config
	on Unix are:

	We don't use hardcoded PKGLIBDIR paths but deduce the
	installation prefix at runtime.

	Use the normal GLib DLL, not a private copy. Yes, this does
	introduce a circular dependency, but that can be worked around.

	* README.win32: New file.

	* configure.in: Check for Win32. If so, define USE_INSTALLED_GLIB,
	and don't configure in the included glib-1.2.8. Set GLIB_CFLAGS
	and GLIB_LIBS assuming that GLib is installed in the same location
	pkgconfig will be. Check for dirent.h, unistd.h and sys/wait.h
	headers.

	* Makefile.am: If USE_INSTALLED_GLIB, use the GLIB_* values set
	above, and don't make in the glib-1.2.8 subdir.

	* autogen.sh: Use perl -p -i.bak, works better on Win32 (and Cygwin).

	* *.c: Conditionalize inclusions of unistd.h and sys/wait.h.

	* findme.c: Define X_OK on Win32 if necessary.

	* parse.c
	* popthelp.c: Minor Win32 portability ifdefs.

	* parse.c: No need to include <windows.h>.

	* pkg.c: Don't hardcode PKGLIBDIR, but use
	g_win32_get_package_installation_directory() to deduce it.
	(scan_dir): Make a temp copy of dirname with potential superfluous
	trailing slash removed. The Win32 opendir implementation doesn't
	always like those.

	* pkg.h: If USE_INSTALLED_GLIB, include <glib.h> instead of
	partial-glib.h.

	* popt.c (execCommand): Don't compile on Win32.

	* poptconfig.c (configLine): Don't bother with the "exec" stuff on
	Win32, too complex to port, at least for now.
	(poptReadDefaultConfig) Don't bother compiling on Win32, this
	function isn't even called.
2005-07-14 13:04:29 +00:00

97 lines
2.6 KiB
C

#ifndef PKG_CONFIG_PKG_H
#define PKG_CONFIG_PKG_H
#ifdef USE_INSTALLED_GLIB
#include <glib.h>
#else
#include "partial-glib.h"
#endif
typedef enum
{
LESS_THAN,
GREATER_THAN,
LESS_THAN_EQUAL,
GREATER_THAN_EQUAL,
EQUAL,
NOT_EQUAL,
ALWAYS_MATCH
} ComparisonType;
typedef struct _Package Package;
typedef struct _RequiredVersion RequiredVersion;
struct _RequiredVersion
{
char *name;
ComparisonType comparison;
char *version;
Package *owner;
};
struct _Package
{
char *key; /* filename name */
char *name; /* human-readable name */
char *version;
char *description;
char *pcfiledir; /* directory it was loaded from */
GSList *requires;
GSList *l_libs;
char *l_libs_merged;
GSList *L_libs;
char *L_libs_merged;
char *other_libs;
char *other_libs_merged;
GSList *I_cflags;
char *I_cflags_merged;
char *other_cflags;
char *other_cflags_merged;
GHashTable *vars;
GHashTable *required_versions; /* hash from name to RequiredVersion */
GSList *conflicts; /* list of RequiredVersion */
gboolean uninstalled; /* used the -uninstalled file */
};
Package *get_package (const char *name);
char * package_get_l_libs (Package *pkg);
char * packages_get_l_libs (GSList *pkgs);
char * package_get_L_libs (Package *pkg);
char * packages_get_L_libs (GSList *pkgs);
char * package_get_other_libs (Package *pkg);
char * packages_get_other_libs (GSList *pkgs);
char * packages_get_all_libs (GSList *pkgs);
char * package_get_I_cflags (Package *pkg);
char * packages_get_I_cflags (GSList *pkgs);
char * package_get_other_cflags (Package *pkg);
char * packages_get_all_cflags (GSList *pkgs);
char * package_get_var (Package *pkg,
const char *var);
char * packages_get_var (GSList *pkgs,
const char *var);
void add_search_dir (const char *path);
void package_init (void);
int compare_versions (const char * a, const char *b);
gboolean version_test (ComparisonType comparison,
const char *a,
const char *b);
const char *comparison_to_str (ComparisonType comparison);
void print_package_list (void);
void define_global_variable (const char *varname,
const char *varval);
void debug_spew (const char *format, ...);
void verbose_error (const char *format, ...);
gboolean name_ends_in_uninstalled (const char *str);
/* If TRUE, do not automatically prefer uninstalled versions */
extern gboolean disable_uninstalled;
#endif