package lensfun: add pkg-config file and test program

This commit is contained in:
Tony Theodore 2013-03-24 06:33:47 +11:00
parent b2dbb6d384
commit d4f2dcf3f0
2 changed files with 102 additions and 2 deletions

87
src/lensfun-test.c Normal file
View File

@ -0,0 +1,87 @@
/*
* This file is part of MXE.
* See index.html for further information.
*/
/*
http://lensfun.berlios.de/manual/example_8c-example.html
A simple example of library usage from plain C
*/
#include "lensfun.h"
#include <stdio.h>
#include <locale.h>
#include <glib.h>
int main ()
{
int i, j;
const struct lfMount *const *mounts;
const struct lfCamera *const *cameras;
const struct lfLens *const *lenses;
struct lfDatabase *ldb;
lfError e;
/* Initialize locale in order to get translated names */
setlocale (LC_ALL, "");
ldb = lf_db_new ();
if (!ldb)
{
fprintf (stderr, "Failed to create database\n");
return -1;
}
g_print ("HomeDataDir: %s\n", ldb->HomeDataDir);
lf_db_load (ldb);
g_print ("< --------------- < Mounts > --------------- >\n");
mounts = lf_db_get_mounts (ldb);
for (i = 0; mounts [i]; i++)
{
g_print ("Mount: %s\n", lf_mlstr_get (mounts [i]->Name));
if (mounts [i]->Compat)
for (j = 0; mounts [i]->Compat [j]; j++)
g_print ("\tCompat: %s\n", mounts [i]->Compat [j]);
}
g_print ("< --------------- < Cameras > --------------- >\n");
cameras = lf_db_get_cameras (ldb);
for (i = 0; cameras [i]; i++)
{
g_print ("Camera: %s / %s %s%s%s\n",
lf_mlstr_get (cameras [i]->Maker),
lf_mlstr_get (cameras [i]->Model),
cameras [i]->Variant ? "(" : "",
cameras [i]->Variant ? lf_mlstr_get (cameras [i]->Variant) : "",
cameras [i]->Variant ? ")" : "");
g_print ("\tMount: %s\n", lf_db_mount_name (ldb, cameras [i]->Mount));
g_print ("\tCrop factor: %g\n", cameras [i]->CropFactor);
}
g_print ("< --------------- < Lenses > --------------- >\n");
lenses = lf_db_get_lenses (ldb);
for (i = 0; lenses [i]; i++)
{
g_print ("Lens: %s / %s\n",
lf_mlstr_get (lenses [i]->Maker),
lf_mlstr_get (lenses [i]->Model));
g_print ("\tCrop factor: %g\n", lenses [i]->CropFactor);
g_print ("\tFocal: %g-%g\n", lenses [i]->MinFocal, lenses [i]->MaxFocal);
g_print ("\tAperture: %g-%g\n", lenses [i]->MinAperture, lenses [i]->MaxAperture);
g_print ("\tCenter: %g,%g\n", lenses [i]->CenterX, lenses [i]->CenterY);
g_print ("\tCCI: %g/%g/%g\n", lenses [i]->RedCCI, lenses [i]->GreenCCI, lenses [i]->BlueCCI);
if (lenses [i]->Mounts)
for (j = 0; lenses [i]->Mounts [j]; j++)
g_print ("\tMount: %s\n", lf_db_mount_name (ldb, lenses [i]->Mounts [j]));
}
g_print ("< ---< Saving database into one big file >--- >\n");
e = lf_db_save_file (ldb, "example-big.xml", mounts, cameras, lenses);
if (e != LF_NO_ERROR)
fprintf (stderr, "Failed writing to file, error code %d\n", e);
lf_db_destroy (ldb);
return 0;
}

View File

@ -23,6 +23,19 @@ define $(PKG)_BUILD
--mode=release \
--vectorization= \
--staticlibs=YES
$(MAKE) -C '$(1)' -j '$(JOBS)' libs bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j '$(JOBS)' libs
$(MAKE) -C '$(1)' -j 1 install
#pkg-config file
(echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: $(PKG)'; \
echo 'Requires: glib-2.0'; \
echo 'Libs: -l$(PKG) -lstdc++ -lregex';) \
> '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-lensfun.exe' \
`'$(TARGET)-pkg-config' lensfun --cflags --libs`
endef