Opened 16 years ago

Closed 16 years ago

#57 closed defect (fixed)

v.digit compilation failure [also seems to affect v.edit]

Reported by: glynn Owned by: martinl
Priority: major Milestone: 6.3.0
Component: Python Version: svn-trunk
Keywords: v.digit v.edit Cc: grass-dev@…
CPU: Unspecified Platform: Unspecified

Description

v.digit depends upon v.edit but is built before it. The result is that compilation fails due to the absence of vedit.h (and if it wasn't for the header, linking would fail due to the absence of libgrass_vedit).

vector/v.edit/lib should be moved to lib/vedit (or maybe lib/vector/vedit) if it is meant to be used outside of v.edit.

Attachments (1)

v.edit.patch (406 bytes ) - added by dylan 16 years ago.
small change to v.edit, specifying the location of vedit.h

Download all attachments as: .zip

Change History (6)

by dylan, 16 years ago

Attachment: v.edit.patch added

small change to v.edit, specifying the location of vedit.h

comment:1 by dylan, 16 years ago

Summary: v.digit compilation failurev.digit compilation failure [also seems to affect v.edit]

Is there anyway to specify the direct path to vedit.h now that it lives in /lib/vector/vedit.h ? Not sure if this is a robust approach, but it compiles. See attached file

in reply to:  1 ; comment:2 by glynn, 16 years ago

Replying to dylan:

Is there anyway to specify the direct path to vedit.h now that it lives in /lib/vector/vedit.h ? Not sure if this is a robust approach, but it compiles. See attached file

There are two choices:

If the header is to be public, e.g. because third-party modules may wish to use vedit.h, it should be installed into $(ARCH_INCDIR) by lib/vector/vedit/Makefile. See e.g. lib/rst/qtree/Makefile for an example. The header should then be referenced as <grass/vedit.h>.

If the header (and thus the library) is for internal use only, then leave it where it is and add e.g.:

EXTRA_CFLAGS = -I../../../lib/vector/vedit

to the Makefile for any module which uses it. The header should be referenced as just <vedit.h>.

in reply to:  2 comment:3 by dylan, 16 years ago

Replying to glynn:

Replying to dylan:

Is there anyway to specify the direct path to vedit.h now that it lives in /lib/vector/vedit.h ? Not sure if this is a robust approach, but it compiles. See attached file

There are two choices:

If the header is to be public, e.g. because third-party modules may wish to use vedit.h, it should be installed into $(ARCH_INCDIR) by lib/vector/vedit/Makefile. See e.g. lib/rst/qtree/Makefile for an example. The header should then be referenced as <grass/vedit.h>.

If the header (and thus the library) is for internal use only, then leave it where it is and add e.g.:

EXTRA_CFLAGS = -I../../../lib/vector/vedit

to the Makefile for any module which uses it. The header should be referenced as just <vedit.h>.

OK- Lets wait and see what the three devs in charge of this module think / do . In the mean time v.edit does not compile on Debian/Unstable x86 unless some action is taken to better define the location of vedit.h .

in reply to:  2 comment:4 by martinl, 16 years ago

Cc: grass-dev@… added
Owner: changed from grass-dev@… to martinl
Status: newassigned

Replying to glynn:

If the header is to be public, e.g. because third-party modules may wish to use vedit.h, it should be installed into $(ARCH_INCDIR) by lib/vector/vedit/Makefile. See e.g. lib/rst/qtree/Makefile for an example. The header should then be referenced as <grass/vedit.h>.

If the header (and thus the library) is for internal use only, then leave it where it is and add e.g.:

EXTRA_CFLAGS = -I../../../lib/vector/vedit

to the Makefile for any module which uses it. The header should be referenced as just <vedit.h>.

I changed the header to be public (it could be also used by QGIS vdigit port, etc.). I moved vedit.h to 'include' directory. If this solution is reasonable I will backported the changes to branch for 6.3.

Martin

in reply to:  1 comment:5 by martinl, 16 years ago

Resolution: fixed
Status: assignedclosed

Replying to dylan:

Is there anyway to specify the direct path to vedit.h now that it lives in /lib/vector/vedit.h ? Not sure if this is a robust approach, but it compiles. See attached file

veditlib has been moved to lib/vector/vedit (also backported to releasebranch_6_3). Seems to be solved, closing the ticket. Martin

Note: See TracTickets for help on using tickets.