Opened 5 years ago

Last modified 4 years ago

#159 reopened defect

projects.h not installed

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


With changeset 1975, proj/src/projects.h got removed from include_HEADERS in proj/src/ 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 (5)

comment:1 Changed 5 years ago by warmerdam

  • Resolution set to wontfix
  • Status changed from new to closed

I assume you mean

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.

comment:2 Changed 5 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 ;-)

comment:3 Changed 4 years ago by slazav

  • Resolution wontfix deleted
  • Status changed from closed to reopened

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.

comment:4 Changed 4 years ago by slazav

and adding pj_is_invertable(p)

the same request is in #155

comment:5 Changed 4 years ago by slazav

and see also #173 :)

Note: See TracTickets for help on using tickets.