Opened 9 years ago
Closed 8 years ago
#6117 closed defect (fixed)
Compile fails with vector data disabled (--without-ogr)
Reported by: | peterdm | Owned by: | warmerdam |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | default | Version: | 2.0.0 |
Severity: | normal | Keywords: | |
Cc: |
Description
I want to build gdal without vector data support because I don't need it. Disabling vector data makes compilation fail though.
Steps to reproduce:
- ./configure --without-ogr --with-java
- make
-> make fails
Note that make succeeds when omitting '--without-ogr'. Possibly the root cause is that there is an illegal dependency from pdf on ogr?
I looked for an option to disable pdf too since I don't need that either, but couldn't find any option to do os. So the only workaround I could find is to make with ogr enabled.
[make] ../../GDALmake.opt:576: recipe for target '../o/pdfwritabledataset.lo' failed [make] make[2]: Leaving directory '/mnt/data/jenkins-slave/workspace/GDAL_-_2016.0_-_Native_Build_-_Linux64/native/gdal-2.0.0/frmts/pdf' [make] GNUmakefile:10: recipe for target 'pdf-install-obj' failed [make] make[1]: Leaving directory '/mnt/data/jenkins-slave/workspace/GDAL_-_2016.0_-_Native_Build_-_Linux64/native/gdal-2.0.0/frmts' [make] GNUmakefile:61: recipe for target 'frmts-target' failed [make] pdfwritabledataset.cpp: In member function 'virtual OGRErr PDFWritableVectorDataset::SyncToDisk()': [make] pdfwritabledataset.cpp:307:17: error: 'class GDALPDFWriter' has no member named 'WriteOGRLayer' [make] oWriter.WriteOGRLayer((OGRDataSourceH)this, [make] ^ [make] make[2]: *** [../o/pdfwritabledataset.lo] Error 1 [make] make[1]: *** [pdf-install-obj] Error 2 [make] make: *** [frmts-target] Error 2
Change History (9)
comment:1 by , 9 years ago
comment:2 by , 8 years ago
I propose that we remove the --without-ogr option and the OGR_ENABLED preprocessor directive for trunk head.
Anyway I was wondering if it was worth fixing that? as it might be a continuing maintenance pain... This was something I actually considered during RFC 46 (I mean dropping support for --without-ogr). Even
e.g. in gdalbuildvrt_lib.cpp
#ifdef OGR_ENABLED #include "ogr_api.h" #endif #include "ogr_srs_api.h"
would become
#include "ogr_api.h" #include "ogr_srs_api.h"
find . -name \*.h -o -name \*.c -o -name \*.cpp -o -name \*akef\* -o -name \*.i | xargs grep OGR_ENABLED | wc -l 80 find . -name \*.h -o -name \*.c -o -name \*.cpp -o -name \*akef\* -o -name \*.i | xargs grep -l OGR_ENABLED | wc -l 29 # Number of files
egrep -A 1 'OGR_ENABLED|[_-]ogr' *.in configure.in:AC_ARG_WITH(ogr,[ --without-ogr Don't build OGR into shared library],,) configure.in- configure.in:if test "$with_ogr" = yes -o x"$with_ogr" = x ; then configure.in- echo checking for OGR ... enabled configure.in: OGR_ENABLED=yes configure.in-else -- configure.in: OGR_ENABLED=no configure.in-fi configure.in:AC_SUBST(OGR_ENABLED,$OGR_ENABLED) configure.in- -- configure.in:LOC_MSG([ enable OGR building: ${OGR_ENABLED}]) configure.in-LOC_MSG([ enable GNM building: ${GNM_ENABLED}]) -- GDALmake.opt.in:OGR_ENABLED = @OGR_ENABLED@ GDALmake.opt.in-GNM_ENABLED = @GNM_ENABLED@ -- GDALmake.opt.in:ifeq ($(OGR_ENABLED),yes) GDALmake.opt.in-GDAL_LIBS := $(GDAL_LIB) $(OCI_LIB) $(GDAL_LIBS) GDALmake.opt.in:CPPFLAGS := -DOGR_ENABLED $(CPPFLAGS) GDALmake.opt.in-else -- GDALmake.opt.in:ifeq ($(OGR_ENABLED),yes) GDALmake.opt.in-ifeq ($(HAVE_SQLITE),yes) -- GDALmake.opt.in:ifeq ($(OGR_ENABLED),yes) GDALmake.opt.in-GDAL_FORMATS := $(GDAL_FORMATS) arg
comment:3 by , 8 years ago
Proposed initial patch:
-
configure.in
svn diff configure.in
2804 2804 2805 2805 dnl --------------------------------------------------------------------------- 2806 2806 2807 AC_ARG_WITH(ogr,[ --without-ogr Don't build OGR into shared library],,) 2807 dnl Always build with OGR support. 2808 OGR_ENABLED=yes 2808 2809 2810 dnl TODO: Remove this option. 2811 AC_ARG_WITH(ogr,[ --without-ogr No longer does anything. Always builds with OGR.],,) 2812 2809 2813 if test "$with_ogr" = yes -o x"$with_ogr" = x ; then 2810 echo checking for OGR ... enabled 2811 OGR_ENABLED=yes 2814 dnl This is always the case. 2812 2815 else 2813 echo checking for OGR ... disabled by user2814 OGR_ENABLED=no2816 echo "WARNING: User attempted to disable OGR." 2817 echo " The ability to build without OGR has been removed." 2815 2818 fi 2816 2819 AC_SUBST(OGR_ENABLED,$OGR_ENABLED) 2817 2820
comment:4 by , 8 years ago
r33756 removes the --without-ogr flag completely. As discussed on IRC, there is no point in keeping a flag around with a warning if it hasn't worked in a long time. Now need to remove the #if logic around OGR_ENABLED
comment:5 by , 8 years ago
r33757 removes most of the #if stuff for OGR_ENABLED c preprocessor (cpp) logic.
comment:7 by , 8 years ago
Still a bit more remaining. I'll see if I can finish up this ticket today. Thanks for the ping.
find . -type f | xargs grep OGR_ENABLED # Hand removed a few things ./GDALmake.opt:OGR_ENABLED = yes ./GDALmake.opt:# TODO: Remove -DOGR_ENABLED. ./GDALmake.opt:CPPFLAGS := -DOGR_ENABLED $(CPPFLAGS) ./GDALmake.opt.in:OGR_ENABLED = yes ./GDALmake.opt.in:# TODO: Remove -DOGR_ENABLED. ./GDALmake.opt.in:CPPFLAGS := -DOGR_ENABLED $(CPPFLAGS) ./ogr/makefile.vc:EXTRAFLAGS = $(EXTRAFLAGS) -DOGR_ENABLED -DHAVE_MITAB ./configure.in:OGR_ENABLED=yes ./alg/makefile.vc:EXTRAFLAGS = $(EXTRAFLAGS) -DOGR_ENABLED ./swig/perl/Makefile.PL:my $have_ogr = `grep "CONFIG_OGR_ENABLED" $config`; ./makefile.vc:CPPFLAGS = $(CPPFLAGS) -DOGR_ENABLED ./frmts/northwood/grddataset.cpp:#ifdef OGR_ENABLED ./frmts/northwood/grddataset.cpp:#ifdef OGR_ENABLED ./frmts/northwood/grddataset.cpp:#ifdef OGR_ENABLED ./apps/GNUmakefile: echo 'CONFIG_OGR_ENABLED=yes' >> gdal-config ./apps/GNUmakefile: echo 'CONFIG_OGR_ENABLED=yes' >> gdal-config-inst ./nmake.opt:OGR_FLAG = -DOGR_ENABLED ./gcore/gdal_misc.cpp: osBuildInfo += "OGR_ENABLED=YES\n";
comment:8 by , 8 years ago
comment:9 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed for trunk. I don't really see a need to back port.
find . -type f | xargs grep OGR_ENABLED | egrep -v 'log\.txt|GDALmake.opt|Binary|Deprecated|cache|apps/gdal-config|NEWS|configure:' # No results
See https://lists.osgeo.org/pipermail/gdal-dev/2015-June/thread.html#42109