Ticket #159 (reopened defect)

Opened 2 years ago

Last modified 20 months ago

projects.h not installed

Reported by: markov Owned by: warmerdam
Priority: major Milestone: 4.8.0
Component: Core Version: unspecified
Keywords: Cc:

Description

With changeset 1975, proj/src/projects.h got removed from include_HEADERS in proj/src/Makefile.pm Since then, it does not get installed anymore.

As I understand, projects.h is "for internal use". However, some external applications like access to these features. In particular, my perl module Geo::Proj4 offers a list of available projections via pj_get_list_ref() defined in projects.h

Can projects.h return into the installation list?

Change History

Changed 2 years ago by warmerdam

  • status changed from new to closed
  • resolution set to wontfix

I assume you mean Makefile.am?

projects.h is intentionally private. If a package needs it then that package is "special" and should either be co-built with PROJ.4, or do something special to get access to projects.h.

Changed 2 years ago by markov

You do not want perl modules to be build with proj.4, believe me.

It is quite difficult to find the right projects.h file for an existing installation on some platform. Perl modules are platform independent and many people install the proj library by hand. I will need to support various proj4 versions.

It seems that the removal of projects.h (breaking backwards compatibility) will cause a continuous maintenance effort for me. Or you must have some trick for this. Teach me ;-)

Changed 20 months ago by slazav

  • status changed from closed to reopened
  • resolution wontfix deleted

I think it is a strange idea to keep in the library some "semi-public" functions and data which can be used by the proj program itself, but not by others. This perl module just wants to get information about known projections, datums, etc. I think, this is not a "special" case.

So I vote for adding interfaces to this information (datums, projs, ellps, units) into proj_api.h and adding pj_is_invertable(p) in addition to pj_is_latlong(p) and pj_is_geocent(p). This will be enough for the module and this also can be used in the proj program.

Changed 20 months ago by slazav

and adding pj_is_invertable(p)

the same request is in #155

Changed 20 months ago by slazav

and see also #173 :)

Note: See TracTickets for help on using tickets.