diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..58ec89cc25834003b4189ba8733b4c51e01c82ac --- /dev/null +++ b/Makefile @@ -0,0 +1,362 @@ +# Unix Makefile for qhull and rbox (default gcc/g++) +# +# see README.txt +# Qt project file at src/qhull-all.pro +# +# make to produce qhull qconvex qdelaunay qhalf qvoronoi rbox user_eg user_eg2 +# make qhullx to produce qhull qconvex etc. w/o libqhull.a +# make qtest quick test of rbox and qhull (bin/rbox D4 | bin/qhull) +# make test test of rbox and qhull +# make bin/qvoronoi to produce bin/qvoronoi (etc.) +# make doc to print documentation +# make install to copy qhull, rbox, qhull.1, rbox.1 to BINDIR, MANDIR +# make new to rebuild qhull and rbox from source +# +# make printall to print all files +# make clean to remove object files and core +# make cleanall to remove all generated files +# +# PRINTMAN -- command for printing manual pages +# PRINTC -- command for printing C files +# BINDIR -- directory where to copy executables +# MANDIR -- directory where to copy manual pages +# CC -- ANSI C or C++ compiler +# CC_OPTS1 - options used to compile .c files +# CC_OPTS2 -- options used to link .o files +# CXX -- ANSI C++ compiler +# CXX_OPTS1 - options used to compile .o files +# CXX_OPTS2 -- options used to link .o files +# +# CFILES -- .c files for printing +# LIBQHULL_HDRS -- .h files for printing +# DFILES -- documentation files +# MFILES -- man pages and html files +# TFILES -- .txt versions of html html files +# FILES -- all other files +# LIBQHULL_OBJS -- specifies the object files of libqhull.a +# +# Do not replace tabs with spaces. Needed by 'make' for build rules + +BINDIR = /usr/local/bin +MANDIR = /usr/local/man/man1 + +# if you do not have enscript, try a2ps or just use lpr. The files are text. +PRINTMAN = enscript -2rl +PRINTC = enscript -2r +# PRINTMAN = lpr +# PRINTC = lpr + +#for Gnu's gcc compiler, -O2 for optimization, -g for debugging +# -fno-strict-aliasing not needed for gcc 4.4+ (segfault in qset.c) +#for CXX_OPTS1, libqhullcpp must be before libqhull +CC = gcc +CC_OPTS1 = -O2 -ansi -fno-strict-aliasing -Isrc/libqhull $(CC_WARNINGS) +CXX = g++ +CXX_OPTS1 = -O2 -Dqh_QHpointer -Isrc/ -Isrc/libqhullcpp -Isrc/libqhull $(CXX_WARNINGS) + +# for Sun's cc compiler, -fast or O2 for optimization, -g for debugging, -Xc for ANSI +#CC = cc +#CC_OPTS1 = -Xc -v -fast + +# for Silicon Graphics cc compiler, -O2 for optimization, -g for debugging +#CC = cc +#CC_OPTS1 = -ansi -O2 + +# for Next cc compiler with fat executable +#CC = cc +#CC_OPTS1 = -ansi -O2 -arch m68k -arch i386 -arch hppa + +# for loader, ld +CC_OPTS2 = $(CC_OPTS1) +CXX_OPTS2 = $(CXX_OPTS1) + +# [gcc 4.4] Compiles without error (-Werror) +CC_WARNINGS = -Wall -Wcast-qual -Wextra -Wwrite-strings -Wshadow +CXX_WARNINGS = -Wall -Wcast-qual -Wextra -Wwrite-strings -Wno-sign-conversion -Wshadow -Wconversion + +# Compiles OK with all gcc warnings except for -Wno-sign-conversion and -Wconversion +# Compiles OK with all g++ warnings except Qt source errors on -Wshadow and -Wconversion +# -Waddress -Warray-bounds -Wchar-subscripts -Wclobbered -Wcomment -Wunused-variable +# -Wempty-body -Wformat -Wignored-qualifiers -Wimplicit-function-declaration -Wimplicit-int +# -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-parameter-type -Wnonnull +# -Wold-style-declaration -Woverride-init -Wparentheses -Wpointer-sign -Wreturn-type +# -Wsequence-point -Wsign-compare -Wsign-compare -Wstrict-aliasing -Wstrict-overflow=1 +# -Wswitch -Wtrigraphs -Wtype-limits -Wuninitialized -Wuninitialized -Wvolatile-register-var +# -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value + +# LIBQHULL_OBJS ordered by frequency of execution with small files at end. Better locality. + +L= src/libqhull +LP= src/libqhullp +LCPP= src/libqhullcpp +TCPP= src/qhulltest + +LIBQHULL_OBJS = $(L)/rboxlib.o $(L)/user.o $(L)/global.o $(L)/stat.o \ + $(L)/io.o $(L)/geom2.o $(L)/poly2.o $(L)/merge.o \ + $(L)/libqhull.o $(L)/geom.o $(L)/poly.o $(L)/qset.o \ + $(L)/mem.o $(L)/usermem.o $(L)/userprintf.o $(L)/random.o + +LIBQHULLP_OBJS = $(LP)/rboxlib.o $(LP)/user.o $(LP)/global.o $(LP)/stat.o \ + $(LP)/io.o $(LP)/geom2.o $(LP)/poly2.o $(LP)/merge.o \ + $(LP)/libqhull.o $(LP)/geom.o $(LP)/poly.o $(LP)/qset.o \ + $(LP)/mem.o $(LP)/usermem.o $(LP)/userprintf.o $(LP)/random.o + +LIBQHULL_HDRS = $(L)/user.h $(L)/libqhull.h $(L)/qhull_a.h $(L)/geom.h \ + $(L)/io.h $(L)/mem.h $(L)/merge.h $(L)/poly.h $(L)/random.h \ + $(L)/qset.h $(L)/stat.h + +LIBQHULLCPP_OBJS = src/road/RoadError.o src/road/RoadLogEvent.o $(LCPP)/Coordinates.o \ + $(LCPP)/PointCoordinates.o $(LCPP)/Qhull.o $(LCPP)/QhullFacet.o \ + $(LCPP)/QhullFacetList.o $(LCPP)/QhullFacetSet.o \ + $(LCPP)/QhullHyperplane.o $(LCPP)/QhullPoint.o \ + $(LCPP)/QhullPoints.o $(LCPP)/QhullPointSet.o $(LCPP)/QhullQh.o \ + $(LCPP)/QhullRidge.o $(LCPP)/QhullSet.o $(LCPP)/QhullStat.o \ + $(LCPP)/QhullVertex.o $(LCPP)/QhullVertexSet.o $(LCPP)/RboxPoints.o \ + $(LCPP)/UsingLibQhull.o src/user_eg3/user_eg3.o + +LIBQHULLCPP_HDRS = src/road/RoadError.h src/road/RoadLogEvent.h $(LCPP)/Coordinates.h \ + $(LCPP)/QhullHyperplane.h $(LCPP)/functionObjects.h $(LCPP)/PointCoordinates.h \ + $(LCPP)/Qhull.h $(LCPP)/QhullError.h $(LCPP)/QhullFacet.h \ + $(LCPP)/QhullFacetList.h $(LCPP)/QhullFacetSet.h $(LCPP)/QhullIterator.h \ + $(LCPP)/QhullLinkedList.h $(LCPP)/QhullPoint.h $(LCPP)/QhullPoints.h \ + $(LCPP)/QhullPointSet.h $(LCPP)/QhullQh.h $(LCPP)/QhullRidge.h \ + $(LCPP)/QhullSet.h $(LCPP)/QhullSets.h $(LCPP)/QhullStat.h \ + $(LCPP)/QhullVertex.h $(LCPP)/RboxPoints.h $(LCPP)/UsingLibQhull.h + +# CFILES ordered alphabetically after libqhull.c +CFILES= src/qhull/unix.c $(L)/libqhull.c $(L)/geom.c $(L)/geom2.c $(L)/global.c $(L)/io.c \ + $(L)/mem.c $(L)/merge.c $(L)/poly.c $(L)/poly2.c $(L)/random.c $(L)/rboxlib.c \ + $(L)/qset.c $(L)/stat.c $(L)/user.c $(L)/usermem.c $(L)/userprintf.c \ + src/qconvex/qconvex.c src/qdelaunay/qdelaun.c src/qhalf/qhalf.c src/qvoronoi/qvoronoi.c + +CXXFILES= src/road/RoadError.cpp src/road/RoadLogEvent.cpp $(LCPP)/Coordinates.cpp \ + $(LCPP)/PointCoordinates.cpp $(LCPP)/Qhull.cpp $(LCPP)/QhullFacet.cpp \ + $(LCPP)/QhullFacetList.cpp $(LCPP)/QhullFacetSet.cpp \ + $(LCPP)/QhullHyperplane.cpp $(LCPP)/QhullPoint.cpp \ + $(LCPP)/QhullPoints.cpp $(LCPP)/QhullPointSet.cpp $(LCPP)/QhullQh.cpp \ + $(LCPP)/QhullRidge.cpp $(LCPP)/QhullSet.cpp $(LCPP)/QhullStat.cpp \ + $(LCPP)/QhullVertex.cpp $(LCPP)/QhullVertexSet.cpp $(LCPP)/RboxPoints.cpp \ + $(LCPP)/UsingLibQhull.cpp src/user_eg3/user_eg3.cpp + +TESTFILES= $(TCPP)/qhulltest.cpp $(TCPP)/Coordinates_test.cpp $(TCPP)/Point_test.cpp $(TCPP)/PointCoordinates_test.cpp \ + $(TCPP)/Qhull_test.cpp $(TCPP)/QhullFacet_test.cpp $(TCPP)/QhullFacetList_test.cpp \ + $(TCPP)/QhullFacetSet_test.cpp $(TCPP)/QhullHyperplane_test.cpp $(TCPP)/QhullLinkedList_test.cpp \ + $(TCPP)/QhullPoint_test.cpp $(TCPP)/QhullPoints_test.cpp \ + $(TCPP)/QhullPointSet_test.cpp $(TCPP)/QhullRidge_test.cpp \ + $(TCPP)/QhullSet_test.cpp $(TCPP)/QhullVertex_test.cpp $(TCPP)/QhullVertexSet_test.cpp \ + $(TCPP)/RboxPoints_test.cpp $(TCPP)/UsingLibQhull_test.cpp + + +TXTFILES= Announce.txt REGISTER.txt COPYING.txt README.txt src/Changes.txt +DOCFILES= html/rbox.txt html/qhull.txt +FILES= Makefile src/rbox/rbox.c src/user_eg/user_eg.c src/user_eg2/user_eg2.c eg/q_test eg/q_egtest eg/q_eg +HTMFILES= html/qhull.man html/rbox.man $(L)/qh-code.htm $(L)/qh-optg.htm $(L)/qh-optt.htm \ + html/index.htm html/qh-quick.htm html/qh-impre.htm html/qh-eg.htm \ + html/qh-optc.htm html/qh-opto.htm html/qh-optf.htm html/qh-optp.htm html/qh-optq.htm \ + html/qh-c.htm html/qh-faq.htm html/qhull.htm html/qconvex.htm html/qdelaun.htm \ + html/qh-geom.htm html/qh-globa.htm html/qh-io.htm html/qh-mem.htm html/qh-merge.htm \ + html/qh-poly.htm html/qh-qhull.htm html/qh-set.htm html/qh-stat.htm html/qh-user.htm \ + html/qconvex.htm html/qdelau_f.htm html/qdelaun.htm html/qhalf.htm html/qvoronoi.htm \ + html/qvoron_f.htm html/rbox.htm + +all: bin/rbox bin/qconvex bin/qdelaunay bin/qhalf bin/qvoronoi bin/qhull qtest \ + bin/user_eg bin/user_eg2 bin/user_eg3 + +qhull/unix.o: $(L)/libqhull.h $(L)/user.h $(L)/mem.h +qconvex/qconvex.o: $(L)/libqhull.h $(L)/user.h $(L)/mem.h +qdelanay/qdelaun.o: $(L)/libqhull.h $(L)/user.h $(L)/mem.h +qhalf/qhalf.o: $(L)/libqhull.h $(L)/user.h $(L)/mem.h +qvoronoi/qvoronoi.o: $(L)/libqhull.h $(L)/user.h $(L)/mem.h +$(L)/libqhull.o: $(LIBQHULL_HDRS) +$(L)/geom.o: $(LIBQHULL_HDRS) +$(L)/geom2.o: $(LIBQHULL_HDRS) +$(L)/global.o: $(LIBQHULL_HDRS) +$(L)/io.o: $(LIBQHULL_HDRS) +$(L)/mem.o: $(L)/mem.h +$(L)/merge.o: $(LIBQHULL_HDRS) +$(L)/poly.o: $(LIBQHULL_HDRS) +$(L)/poly2.o: $(LIBQHULL_HDRS) +$(L)/random.o: $(L)/libqhull.h $(L)/random.h +$(L)/rboxlib.o: $(L)/libqhull.h $(L)/random.h $(L)/user.h +$(L)/qset.o: $(L)/qset.h $(L)/mem.h +$(L)/stat.o: $(LIBQHULL_HDRS) +$(L)/user.o: $(LIBQHULL_HDRS) +$(L)/usermem.o: $(L)/libqhull.h $(L)/user.h +$(L)/userprintf.o: $(L)/libqhull.h $(L)/user.h +$(LP)/libqhull.o: $(LIBQHULL_HDRS) +$(LP)/geom.o: $(LIBQHULL_HDRS) +$(LP)/geom2.o: $(LIBQHULL_HDRS) +$(LP)/global.o: $(LIBQHULL_HDRS) +$(LP)/io.o: $(LIBQHULL_HDRS) +$(LP)/mem.o: $(L)/mem.h +$(LP)/merge.o: $(LIBQHULL_HDRS) +$(LP)/poly.o: $(LIBQHULL_HDRS) +$(LP)/poly2.o: $(LIBQHULL_HDRS) +$(LP)/random.o: $(L)/libqhull.h $(L)/random.h +$(LP)/rboxlib.o: $(L)/libqhull.h $(L)/random.h $(L)/user.h +$(LP)/qset.o: $(L)/qset.h $(L)/mem.h +$(LP)/stat.o: $(LIBQHULL_HDRS) +$(LP)/user.o: $(LIBQHULL_HDRS) +src/road/RoadError.o: src/road/RoadError.h src/road/RoadLogEvent.h +src/road/RoadLogEvent.o: src/road/RoadError.h +$(LCPP)/Coordinates.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/PointCoordinates.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/Qhull.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullFacet.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullFacetList.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullFacetSet.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullHyperplane.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullPoint.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullPoints.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullPointSet.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullQh.o: $(LIBQHULL_HDRS) +$(LCPP)/QhullRidge.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullSet.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullStat.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullVertex.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/QhullVertexSet.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/RboxPoints.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) +$(LCPP)/UsingLibQhull.o: $(LIBQHULLCPP_HDRS) $(LIBQHULL_HDRS) + +.c.o: + $(CC) -c $(CC_OPTS1) -o $@ $< + +.cpp.o: + $(CXX) -c $(CXX_OPTS1) -o $@ $< + +$(LP)/libqhull.o: $(L)/libqhull.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/geom.o: $(L)/geom.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/geom2.o: $(L)/geom2.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/global.o: $(L)/global.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/io.o: $(L)/io.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/mem.o: $(L)/mem.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/merge.o: $(L)/merge.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/poly.o: $(L)/poly.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/poly2.o: $(L)/poly2.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/random.o: $(L)/random.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/rboxlib.o: $(L)/rboxlib.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/qset.o: $(L)/qset.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/stat.o: $(L)/stat.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/user.o: $(L)/user.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/usermem.o: $(L)/usermem.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< +$(LP)/userprintf.o: $(L)/userprintf.c + $(CC) -c -Dqh_QHpointer $(CC_OPTS1) -o $@ $< + + +clean: + rm -f src/libqhull/*.o src/libqhullcpp/*.o src/libqhullp/*.o src/qconvex/*.o \ + src/qdelaunay/*.o src/qhalf/*.o src/qvoronoi/*.o src/qhull/*.o src/rbox/*.o \ + src/road/*.o src/user_eg/*.o src/user_eg2/*.o src/user_eg3/*.o + +cleanall: clean + rm -f bin/qconvex bin/qdelaunay bin/qhalf bin/qvoronoi bin/qhull bin/*.exe \ + rm -f bin/libqhull.a bin/libqhullcpp.a bin/libqhullp.a \ + bin/user_eg bin/user_eg2 bin/user_eg3 + +doc: + $(PRINTMAN) $(TXTFILES) $(DOCFILES) + +install: + cp bin/qconvex $(BINDIR)/qconvex + cp bin/qdelaunay $(BINDIR)/qdelaunay + cp bin/qhalf $(BINDIR)/qhalf + cp bin/qhull $(BINDIR)/qhull + cp bin/qvoronoi $(BINDIR)/qvoronoi + cp bin/rbox $(BINDIR)/rbox + cp html/qhull.man $(MANDIR)/qhull.1 + cp html/rbox.man $(MANDIR)/rbox.1 + +new: cleanall all + +printall: doc printh printc printf + +printh: + $(PRINTC) $(LIBQHULL_HDRS) + $(PRINTC) $(LIBQHULLCPP_HDRS) + +printc: + $(PRINTC) $(CFILES) + $(PRINTC) $(CXXFILES) + $(PRINTC) $(TESTFILES) + +printf: + $(PRINTC) $(FILES) + + +bin/libqhull.a: $(LIBQHULL_OBJS) + @echo If 'ar' fails, try 'make qhullx' + ar -rs bin/libqhull.a $(LIBQHULL_OBJS) + #If 'ar -rs' fails try using 'ar -r' with 'ranlib' + #ranlib bin/libqhull.a + +bin/libqhullp.a: $(LIBQHULLP_OBJS) + ar -rs bin/libqhullp.a $(LIBQHULLP_OBJS) + #ranlib bin/libqhullp.a + +bin/libqhullcpp.a: $(LIBQHULLCPP_OBJS) + ar -rs bin/libqhullcpp.a $(LIBQHULLCPP_OBJS) + #ranlib bin/libqhullp.a + +# don't use ../qconvex. Does not work on Red Hat Linux +bin/qconvex: src/qconvex/qconvex.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/qdelaunay: src/qdelaunay/qdelaun.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/qhalf: src/qhalf/qhalf.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/qvoronoi: src/qvoronoi/qvoronoi.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/qhull: src/qhull/unix.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + -chmod +x eg/q_test eg/q_eg eg/q_egtest + +bin/rbox: src/rbox/rbox.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/user_eg: src/user_eg/user_eg.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/user_eg2: src/user_eg2/user_eg2.o bin/libqhull.a + $(CC) -o $@ $< $(CC_OPTS2) -Lbin -lqhull -lm + +bin/user_eg3: src/user_eg3/user_eg3.o bin/libqhullp.a bin/libqhullcpp.a + $(CXX) -o $@ $< $(CXX_OPTS2) -Lbin -lqhullcpp -lqhullp -lm + +# compile qhull without using bin/libqhull.a +qhullx: src/qconvex/qconvex.o src/qdelaunay/qdelaun.o src/qhalf/qhalf.o \ + src/qvoronoi/qvoronoi.o src/qhull/unix.o src/rbox/rbox.o $(LIBQHULL_OBJS) + $(CC) -o bin/qconvex $(CC_OPTS2) -lm $(LIBQHULL_OBJS) src/qconvex/qconvex.o + $(CC) -o bin/qdelaunay $(CC_OPTS2) -lm $(LIBQHULL_OBJS) src/qdelaunay/qdelaun.o + $(CC) -o bin/qhalf $(CC_OPTS2) -lm $(LIBQHULL_OBJS) src/qhalf/qhalf.o + $(CC) -o bin/qvoronoi $(CC_OPTS2) -lm $(LIBQHULL_OBJS) src/qvoronoi/qvoronoi.o + $(CC) -o bin/qhull $(CC_OPTS2) -lm $(LIBQHULL_OBJS) src/qhull/unix.o + $(CC) -o bin/rbox $(CC_OPTS2) -lm $(LIBQHULL_OBJS) src/rbox/rbox.o + +qtest: + -bin/rbox D4 | bin/qhull + +test: + -eg/q_eg + -eg/q_egtest + -eg/q_test + +# end of Makefile diff --git a/eg/q_eg b/eg/q_eg index 05061c26eb1abdf617904149bfc74c71f3c97a74..1eef80612fa5372fddff58063b99ab816f721f52 100755 --- a/eg/q_eg +++ b/eg/q_eg @@ -1,6 +1,12 @@ #! /bin/sh # writes examples to eg/ # see html/qh_eg.htm +if [ -d bin ]; then + PATH=bin:$PATH +else + echo Run eg/q_eg from the Qhull directory + exit +fi set -v rbox c D3 | qconvex s G >eg/eg.01.cube rbox c d G2.0 | qconvex s G >eg/eg.02.diamond.cube diff --git a/eg/q_egtest b/eg/q_egtest index e944694bf481dcf47b4169184506e6ef87392eb0..04b7a03c98698f74e782d8669d6c22f77014cd95 100755 --- a/eg/q_egtest +++ b/eg/q_egtest @@ -1,5 +1,11 @@ #! /bin/sh # writes examples to eg/ +if [ -d bin ]; then + PATH=bin:$PATH +else + echo Run eg/q_egtest from the Qhull directory + exit +fi set -v rbox d D3 | qconvex s Gnrv Tc Tv >eg/eg.t01.spheres.3 rbox d D2 | qconvex s Gnv Tc Tv >eg/eg.t02.spheres.2 diff --git a/eg/q_test b/eg/q_test index 1019d2f12c89103a720abf5eaabfaaa9acfecad2..9bdcda4e85919cf81769a84bcd2142e63133c9e8 100755 --- a/eg/q_test +++ b/eg/q_test @@ -1,6 +1,12 @@ #!/bin/sh # # NOTE: all tests duplicated in q_test.bat +if [ -d bin ]; then + PATH=bin:$PATH +else + echo Run eg/q_test from the Qhull directory + exit +fi set -v echo === errors if 'user_eg' and 'user_eg2' not found === echo === check user_eg ${d:-`date`} ===================== diff --git a/src/Changes.txt b/src/Changes.txt index 09c8f46a4b505aa9212632c4dd8834f12bfd0ce7..050949d38e94580321dbb9f97abf7d7078be130f 100644 --- a/src/Changes.txt +++ b/src/Changes.txt @@ -30,10 +30,7 @@ To do - Add a CMake build for everying - Add an Autotools build for everything - Update debian build - - Change the Qt build for shadow directory - Fix use of strncat. The limits are wrong - - Fix warnings reported by gcc 4.4 - - Remove -frtti from gcc build - Is -fno-strict-aliasing always used, but not always the default? - Qhull-go.bat does not work in Windows 7 @@ -54,6 +51,20 @@ Links on build systems ------------ + +gitorious.org/qhull 2011/03/25 + - Moved src/libqhull/Makefile.txt to Makefile + - Makefile: Added libqhullp, libqhullcpp, user_eg3, qhulltest + - Build: Removed -frtti from gcc build + - Build: Comment out -Werror + - Removed semicolon after extern "C" {...} + - Renamed parameters, locals, and fields to avoid shadowing + +gitorious.org/qhull 2011/03/09 + - Compiles gcc with all warnings except for -Wno-sign-conversion and -Wconversion + - Compiles g++ with all warnings except for -Wshadow and -Wconversion in Qt + - Needed to turn off -Wshadow and -Wconversion warnings due to Qt warnings + gitorious.org/qhull 2011/03/07 - Merged changes from J. Obermayr in gitorious/jobermayrs-qhull:next - Fix strncat limit in rboxlib.c and global.c diff --git a/src/libqhull/Makefile.txt b/src/libqhull/Makefile.txt deleted file mode 100644 index 238a59e55265ebf1b5e17a80e87fabbd3b8d955c..0000000000000000000000000000000000000000 --- a/src/libqhull/Makefile.txt +++ /dev/null @@ -1,196 +0,0 @@ -# Unix Makefile for qhull and rbox -# -# see README.txt -# the Unix distribution contains a configure Makefile -# -# make to produce qhull qconvex qdelaunay qhalf qvoronoi rbox -# make qvoronoi to produce qvoronoi (etc.) -# make qhullx to produce qhull qconvex etc. w/o using libqhull.a -# make doc to print documentation -# make install to copy qhull, rbox, qhull.1, rbox.1 to BINDIR, MANDIR -# make new to rebuild qhull and rbox from source -# -# make printall to print all files -# make user_eg to produce user_eg -# make user_eg2 to produce user_eg2 -# make clean to remove object files and core -# make cleanall to remove all generated files -# -# PRINTMAN -- command for printing manual pages -# PRINTC -- command for printing C files -# BINDIR -- directory where to copy executables -# MANDIR -- directory where to copy manual pages -# CC -- ANSI C or C++ compiler -# CCOPTS1 - options used to compile .c files -# CCOPTS2 -- options used to link .o files -# -# CFILES -- .c files for printing -# HFILES -- .h files for printing -# DFILES -- documentation files -# MFILES -- man pages and html files -# TFILES -- .txt versions of html html files -# FILES -- all other files -# OBJS -- specifies the object files of libqhull.a -# -# Do not replace tabs with spaces. Needed by 'make' for build rules - -BINDIR = /usr/local/bin -MANDIR = /usr/local/man/man1 - -# if you do not have enscript, try a2ps or just use lpr. The files are text. -PRINTMAN = enscript -2rl -PRINTC = enscript -2r -# PRINTMAN = lpr -# PRINTC = lpr - -#for Gnu's gcc compiler -O2 for optimization, -g for debugging, -Wall for check -# -fno-strict-aliasing not needed for gcc 4.4+ (segfault in qset.c) -CC = gcc -CCOPTS1 = -O2 -ansi -fno-strict-aliasing - -# for Sun's cc compiler, -fast or O2 for optimization, -g for debugging, -Xc for ANSI -#CC = cc -#CCOPTS1 = -Xc -v -fast - -# for Silicon Graphics cc compiler, -O2 for optimization, -g for debugging -#CC = cc -#CCOPTS1 = -ansi -O2 - -# for Next cc compiler with fat executable -#CC = cc -#CCOPTS1 = -ansi -O2 -arch m68k -arch i386 -arch hppa - -# for loader, ld -CCOPTS2 = $(CCOPTS1) - -# OBJS ordered by frequency of execution with small files at end. Better locality. -OBJS = rboxlib.o user.o global.o stat.o io.o geom2.o poly2.o merge.o \ - libqhull.o geom.o poly.o qset.o mem.o usermem.o userprintf.o random.o - -# CFILES ordered alphabetically after libqhull.c -CFILES= unix.c libqhull.c geom.c geom2.c global.c io.c mem.c merge.c poly.c \ - poly2.c random.c qset.c stat.c user.c qconvex.c qdelaun.c qhalf.c qvoronoi.c usermem.c userprintf.c rboxlib.c -HFILES= user.h libqhull.h qhull_a.h geom.h io.h mem.h merge.h poly.h random.h qset.h stat.h -TXTFILES= ../Announce.txt ../REGISTER.txt ../COPYING.txt ../README.txt Changes.txt -DOCFILES= ../html/rbox.txt ../html/qhull.txt -FILES= Makefile rbox.c user_eg.c ../eg/q_test ../eg/q_egtest ../eg/q_eg -HTMFILES= ../html/qhull.man ../html/rbox.man qh-code.htm qh-optg.htm qh-optt.htm \ - index.htm qh-quick.htm qh-impre.htm qh-eg.htm \ - qh-optc.htm qh-opto.htm qh-optf.htm qh-optp.htm qh-optq.htm \ - qh-c.htm qh-faq.htm qhull.htm qconvex.htm qdelaun.htm \ - qh-geom.htm qh-globa.htm qh-io.htm qh-mem.htm qh-merge.htm \ - qh-poly.htm qh-qhull.htm qh-set.htm qh-stat.htm qh-user.htm \ - qdelau_f.htm qhalf.htm qvoronoi.htm qvoron_f.htm rbox.htm - -all: rbox qconvex qdelaunay qhalf qvoronoi qhull - -unix.o: libqhull.h user.h mem.h -qconvex.o: libqhull.h user.h mem.h -qdelaun.o: libqhull.h user.h mem.h -qhalf.o: libqhull.h user.h mem.h -qvoronoi.o: libqhull.h user.h mem.h -libqhull.o: $(HFILES) -geom.o: $(HFILES) -geom2.o: $(HFILES) -global.o: $(HFILES) -io.o: $(HFILES) -mem.o: mem.h -merge.o: $(HFILES) -poly.o: $(HFILES) -poly2.o: $(HFILES) -random.o: libqhull.h random.h -qset.o: qset.h mem.h -stat.o: $(HFILES) -user.o: $(HFILES) - -.c.o: - $(CC) -c $(CCOPTS1) $< - -clean: - rm -f *.o ../core qconvex qdelaunay qhalf qvoronoi qhull libqhull.a \ - *.exe - -cleanall: clean - rm -f *~ ../rbox ../qhull ../qhalf ../qconvex ../qdelaunay ../qhalf\ - ../qvoronoi ../user_eg ../user_eg2 ../*.exe >/dev/null - -doc: - $(PRINTMAN) $(TXTFILES) $(DOCFILES) - -install: - cp ../qconvex $(BINDIR)/qconvex - cp ../qdelaunay $(BINDIR)/qdelaunay - cp ../qhalf $(BINDIR)/qhalf - cp ../qhull $(BINDIR)/qhull - cp ../qvoronoi $(BINDIR)/qvoronoi - cp ../rbox $(BINDIR)/rbox - cp ../html/qhull.man $(MANDIR)/qhull.1 - cp ../html/rbox.man $(MANDIR)/rbox.1 - -new: cleanall all - -printall: doc printh printc printf - -printh: - $(PRINTC) $(HFILES) - -printc: - $(PRINTC) $(CFILES) - -printf: - $(PRINTC) $(FILES) - -libqhull.a: $(OBJS) - @echo if 'ar' or 'ranlib' fails, try 'make qhullx' - ar -r libqhull.a $(OBJS) - @echo the next line may need to be removed. - -test -x /bin/ranlib -o -x /usr/bin/ranlib && ranlib libqhull.a - -# don't use ../qconvex. Does not work on Red Hat Linux -qconvex: qconvex.o libqhull.a - $(CC) -o qconvex $(CCOPTS2) qconvex.o -L. -lqhull -lm - cp qconvex .. - -qdelaunay: qdelaun.o libqhull.a - $(CC) -o qdelaunay $(CCOPTS2) qdelaun.o -L. -lqhull -lm - cp qdelaunay .. - -qhalf: qhalf.o libqhull.a - $(CC) -o qhalf $(CCOPTS2) qhalf.o -L. -lqhull -lm - cp qhalf .. - -qvoronoi: qvoronoi.o libqhull.a - $(CC) -o qvoronoi $(CCOPTS2) qvoronoi.o -L. -lqhull -lm - cp qvoronoi .. - -qhull: unix.o libqhull.a - $(CC) -o qhull $(CCOPTS2) unix.o -L. -lqhull -lm - cp qhull .. - -chmod +x ../eg/q_test ../eg/q_eg ../eg/q_egtest - -cd ..; ./rbox D4 | ./qhull - -# compile qhull without using libqhull.a -qhullx: qconvex.o qdelaun.o qhalf.o qvoronoi.o unix.o rbox.o $(OBJS) - $(CC) -o qconvex $(CCOPTS2) qconvex.o $(OBJS) -lm - $(CC) -o qdelaunay $(CCOPTS2) qdelaun.o $(OBJS) -lm - $(CC) -o qhalf $(CCOPTS2) qhalf.o $(OBJS) -lm - $(CC) -o qvoronoi $(CCOPTS2) qvoronoi.o $(OBJS) -lm - $(CC) -o qhull $(CCOPTS2) unix.o $(OBJS) -lm - $(CC) -o rbox $(CCOPTS2) rbox.o $(OBJS) -lm - cp qconvex qdelaunay qhalf qvoronoi qhull rbox .. - -chmod +x ../eg/q_test ../eg/q_eg ../eg/q_egtest - -cd ..; ./rbox D4 | ./qhull - -rbox: rbox.o libqhull.a - $(CC) -o rbox rbox.o -L. -lqhull $(CCOPTS2) -lm - cp rbox .. - -user_eg: user_eg.o libqhull.a - $(CC) -o user_eg $(CCOPTS2) user_eg.o -L. -lqhull -lm - cp user_eg .. - -user_eg2: user_eg2.o libqhull.a - $(CC) -o user_eg2 $(CCOPTS2) user_eg2.o -L. -lqhull -lm - cp user_eg2 .. - -# end of Makefile diff --git a/src/libqhull/libqhull.pro b/src/libqhull/libqhull.pro index e246076f6f2988346b4307175b0a209c5eea4c9e..d2ceb7c2a573a7c16dcf367b834d9bf15deaac4f 100644 --- a/src/libqhull/libqhull.pro +++ b/src/libqhull/libqhull.pro @@ -17,9 +17,11 @@ build_pass:CONFIG(debug, debug|release):{ *g++ { COMPVER = $$system(gcc -v) contains(COMPVER, 4.1)|contains(COMPVER, 4.2)|contains(COMPVER, 4.3) { - QMAKE_CFLAGS += -fno-strict-aliasing # Avoid core dumps in qset.c with -O2 + QMAKE_CFLAGS += -fno-strict-aliasing # Avoids core dumps in qset.c with -O2 } - QMAKE_CFLAGS_WARN_ON += -Werror -Wcast-qual -Wextra -Wshadow -Wwrite-strings + # QMAKE_CFLAGS_WARN_ON += -Werror # Treat warnings as errors + QMAKE_CFLAGS_WARN_ON += -Wcast-qual -Wextra -Wshadow -Wwrite-strings + #QMAKE_CFLAGS_WARN_ON += -Wno-sign-conversion # Many size_t vs. int warnings #QMAKE_CFLAGS_WARN_ON += -Wconversion # No workaround for bit-field conversions } diff --git a/src/libqhullcpp/PointCoordinates.cpp b/src/libqhullcpp/PointCoordinates.cpp index c6fca84c76a0b1372d63479d64a9b800e75ae757..a42daf557d8a44b61f75378c1b0991b6509f34b3 100644 --- a/src/libqhullcpp/PointCoordinates.cpp +++ b/src/libqhullcpp/PointCoordinates.cpp @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2009-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/PointCoordinates.cpp#3 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/PointCoordinates.cpp#4 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -45,30 +45,28 @@ PointCoordinates(int pointDimension) } PointCoordinates:: -PointCoordinates(const std::string &comment) +PointCoordinates(const std::string &aComment) : QhullPoints() , point_coordinates() -, point_comment() +, point_comment(aComment) { - appendComment(comment); makeValid(); } PointCoordinates:: -PointCoordinates(int pointDimension, const std::string &comment) +PointCoordinates(int pointDimension, const std::string &aComment) : QhullPoints(pointDimension) , point_coordinates() -, point_comment() +, point_comment(aComment) { - appendComment(comment); makeValid(); } PointCoordinates:: -PointCoordinates(int pointDimension, const std::string &comment, int coordinatesCount, const coordT *c) +PointCoordinates(int pointDimension, const std::string &aComment, int coordinatesCount, const coordT *c) : QhullPoints(pointDimension) , point_coordinates() -, point_comment(comment) +, point_comment(aComment) { append(coordinatesCount, c); } @@ -136,16 +134,16 @@ beginCoordinates(int pointIndex) #//Modify void PointCoordinates:: -append(int count, const coordT *c) +append(int coordinatesCount, const coordT *c) { - if(count<=0){ + if(coordinatesCount<=0){ return; } if(includesCoordinates(c)){ throw QhullError(10065, "Qhull error: can not append a subset of PointCoordinates to itself. The coordinates for point %d may move.", indexOf(c, QhullError::NOthrow)); } - reserveCoordinates(count); - std::copy(c, c+count, std::back_inserter(point_coordinates)); + reserveCoordinates(coordinatesCount); + std::copy(c, c+coordinatesCount, std::back_inserter(point_coordinates)); makeValid(); }//append coordT @@ -208,7 +206,7 @@ appendPoints(istream &in) } setDimension(inDimension); reserveCoordinates(inCount*inDimension); - int coordinateCount= 0; + int coordinatesCount= 0; while(!in.eof()){ realT p; in >> p >> ws; @@ -216,17 +214,17 @@ appendPoints(istream &in) in.clear(); string remainder; getline(in, remainder); - throw QhullError(10008, "Qhull error: failed to read coordinate %d of point %d\n %s", coordinateCount % inDimension, coordinateCount/inDimension, 0, remainder.c_str()); + throw QhullError(10008, "Qhull error: failed to read coordinate %d of point %d\n %s", coordinatesCount % inDimension, coordinatesCount/inDimension, 0, remainder.c_str()); }else{ point_coordinates.push_back(p); - coordinateCount++; + coordinatesCount++; } } - if(coordinateCount != inCount*inDimension){ - if(coordinateCount%inDimension==0){ - throw QhullError(10006, "Qhull error: expected %d %d-d PointCoordinates but read %i PointCoordinates", int(inCount), inDimension, 0.0, int(coordinateCount/inDimension)); + if(coordinatesCount != inCount*inDimension){ + if(coordinatesCount%inDimension==0){ + throw QhullError(10006, "Qhull error: expected %d %d-d PointCoordinates but read %i PointCoordinates", int(inCount), inDimension, 0.0, int(coordinatesCount/inDimension)); }else{ - throw QhullError(10012, "Qhull error: expected %d %d-d PointCoordinates but read %i PointCoordinates plus %f extra coordinates", inCount, inDimension, float(coordinateCount%inDimension), coordinateCount/inDimension); + throw QhullError(10012, "Qhull error: expected %d %d-d PointCoordinates but read %i PointCoordinates plus %f extra coordinates", inCount, inDimension, float(coordinatesCount%inDimension), coordinatesCount/inDimension); } } makeValid(); @@ -253,9 +251,9 @@ reserveCoordinates(int newCoordinates) int PointCoordinates:: indexOffset(int i) const { int n= i*dimension(); - int coordinateCount= point_coordinates.count(); - if(i<0 || n>coordinateCount){ - throw QhullError(10061, "Qhull error: point_coordinates is too short (%d) for point %d", coordinateCount, i); + int coordinatesCount= point_coordinates.count(); + if(i<0 || n>coordinatesCount){ + throw QhullError(10061, "Qhull error: point_coordinates is too short (%d) for point %d", coordinatesCount, i); } return n; } diff --git a/src/libqhullcpp/PointCoordinates.h b/src/libqhullcpp/PointCoordinates.h index b8b68472ae9a1ce586471aeb4ea0a115660df3f7..c974f90ae8e7c057f88428e20f46322e94dd273c 100644 --- a/src/libqhullcpp/PointCoordinates.h +++ b/src/libqhullcpp/PointCoordinates.h @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2009-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/PointCoordinates.h#3 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/PointCoordinates.h#4 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -36,9 +36,9 @@ public: #//Construct PointCoordinates(); explicit PointCoordinates(int pointDimension); - explicit PointCoordinates(const std::string &comment); - PointCoordinates(int pointDimension, const std::string &comment); - PointCoordinates(int pointDimension, const std::string &comment, int coordinatesCount, const coordT *c); // may be invalid + explicit PointCoordinates(const std::string &aComment); + PointCoordinates(int pointDimension, const std::string &aComment); + PointCoordinates(int pointDimension, const std::string &aComment, int coordinatesCount, const coordT *c); // may be invalid //! Use append() and appendPoints() for Coordinates and vector<coordT> PointCoordinates(const PointCoordinates &other); PointCoordinates &operator=(const PointCoordinates &other); @@ -89,7 +89,7 @@ public: #//Modify //FIXUP QH11001: Add clear() and other modify operators from Coordinates.h. Include QhullPoint::operator=() - void append(int count, const coordT *c); //! Dimension previously defined + void append(int coordinatesCount, const coordT *c); //! Dimension previously defined void append(const coordT &c) { append(1, &c); } //! Dimension previously defined void append(const QhullPoint &p); //! See convert for std::vector and QList diff --git a/src/libqhullcpp/Qhull.cpp b/src/libqhullcpp/Qhull.cpp index abddd41c6b6d8b52dd0b27e78349e4a23218dfd8..0f478081b4f9bdbc14191c90fa45a297c02bc536 100644 --- a/src/libqhullcpp/Qhull.cpp +++ b/src/libqhullcpp/Qhull.cpp @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2008-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/Qhull.cpp#3 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/Qhull.cpp#4 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -59,7 +59,7 @@ Qhull() }//Qhull Qhull:: -Qhull(const RboxPoints &points, const char *qhullCommand) +Qhull(const RboxPoints &rboxPoints, const char *qhullCommand2) : qhull_qh(0) , qhull_run_id(UsingLibQhull::NOqhRunId) , origin_point() @@ -74,11 +74,11 @@ Qhull(const RboxPoints &points, const char *qhullCommand) , useOutputStream(false) { initializeQhull(); - runQhull(points, qhullCommand); + runQhull(rboxPoints, qhullCommand2); }//Qhull rbox Qhull:: -Qhull(const char *rboxCommand, int pointDimension, int pointCount, const realT *points, const char *qhullCommand) +Qhull(const char *rboxCommand2, int pointDimension, int pointCount, const realT *pointCoordinates, const char *qhullCommand2) : qhull_qh(0) , qhull_run_id(UsingLibQhull::NOqhRunId) , origin_point() @@ -93,7 +93,7 @@ Qhull(const char *rboxCommand, int pointDimension, int pointCount, const realT * , useOutputStream(false) { initializeQhull(); - runQhull(rboxCommand, pointDimension, pointCount, points, qhullCommand); + runQhull(rboxCommand2, pointDimension, pointCount, pointCoordinates, qhullCommand2); }//Qhull points Qhull:: @@ -381,22 +381,22 @@ outputQhull(const char *outputflags) }//outputQhull void Qhull:: -runQhull(const RboxPoints &points, const char *qhullCommand) +runQhull(const RboxPoints &rboxPoints, const char *qhullCommand2) { - runQhull(points.comment().c_str(), points.dimension(), points.count(), &*points.coordinates(), qhullCommand); + runQhull(rboxPoints.comment().c_str(), rboxPoints.dimension(), rboxPoints.count(), &*rboxPoints.coordinates(), qhullCommand2); }//runQhull, RboxPoints //! points is a array of points, input sites ('d' or 'v'), or halfspaces with offset last ('H') //! Derived from qh_new_qhull [user.c] void Qhull:: -runQhull(const char *rboxCommand, int pointDimension, int pointCount, const realT *points, const char *qhullCommand) +runQhull(const char *rboxCommand2, int pointDimension, int pointCount, const realT *rboxPoints, const char *qhullCommand2) { if(run_called){ throw QhullError(10027, "Qhull error: runQhull called twice. Only one call allowed."); } run_called= true; string s("qhull "); - s += qhullCommand; + s += qhullCommand2; char *command= const_cast<char*>(s.c_str()); UsingLibQhull q(this); int exitCode = setjmp(qh errexit); @@ -404,11 +404,11 @@ runQhull(const char *rboxCommand, int pointDimension, int pointCount, const real qh_checkflags(command, s_unsupported_options); qh_initflags(command); *qh rbox_command= '\0'; - strncat( qh rbox_command, rboxCommand, sizeof( qh rbox_command)); + strncat( qh rbox_command, rboxCommand2, sizeof( qh rbox_command)); if(qh DELAUNAY){ qh PROJECTdelaunay= True; // qh_init_B() calls qh_projectinput() } - pointT *newPoints= const_cast<pointT*>(points); + pointT *newPoints= const_cast<pointT*>(rboxPoints); int newDimension= pointDimension; int newIsMalloc= False; if(qh HALFspace){ diff --git a/src/libqhullcpp/Qhull.h b/src/libqhullcpp/Qhull.h index 7045861d14e45d7bddd19ba7b445b87630610ce7..61574a32081008c9542c199bf261bb0a7b5b68cf 100644 --- a/src/libqhullcpp/Qhull.h +++ b/src/libqhullcpp/Qhull.h @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2008-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/Qhull.h#2 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/Qhull.h#3 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -70,8 +70,8 @@ public: #//constructor, assignment, destructor, invariant Qhull(); //! Qhull::runQhull() must be called next - Qhull(const RboxPoints &points, const char *qhullCommand); - Qhull(const char *rboxCommand, int pointDimension, int pointCount, const realT *points, const char *qhullCommand); + Qhull(const RboxPoints &rboxPoints, const char *qhullCommand2); + Qhull(const char *rboxCommand2, int pointDimension, int pointCount, const realT *pointCoordinates, const char *qhullCommand2); // Throws error if other.initialized(). Needed for return by value and parameter passing Qhull(const Qhull &other); // Throws error if initialized() or other.initialized(). Needed for vector<Qhull> @@ -132,8 +132,8 @@ public: #//Modify void outputQhull(); void outputQhull(const char * outputflags); - void runQhull(const RboxPoints &points, const char *qhullCommand); - void runQhull(const char *rboxCommand, int pointDimension, int pointCount, const realT *points, const char *qhullCommand); + void runQhull(const RboxPoints &rboxPoints, const char *qhullCommand2); + void runQhull(const char *rboxCommand2, int pointDimension, int pointCount, const realT *rboxPoints, const char *qhullCommand2); private: #//Helpers diff --git a/src/libqhullcpp/QhullEvent.h b/src/libqhullcpp/QhullEvent.h deleted file mode 100644 index 07bdfa123a8c519fcfa113fdae278812bf21c081..0000000000000000000000000000000000000000 --- a/src/libqhullcpp/QhullEvent.h +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (c) 2008-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/QhullEvent.h#3 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ -** -****************************************************************************/ - -#ifndef QHULLEVENT_H -#define QHULLEVENT_H - -extern "C" { - #include "libqhull/qhull_a.h" -}; - -#include <string> - -namespace orgQhull { - -#//Types - //! QhullEvent -- Circular array of Qhull execution events - class QhullEvent; - -class QhullEvent { - -#//Types - friend class QhullLog; - -#//Constants -public: - enum EventTypes { - LogEvent= 0x0, - CallEvent= 0x1, - ReturnEvent= 0x2 - }; - -private: -#//Fields - unsigned int time_s:24; - unsigned int event_type:2; - unsigned int trace_level:3; - unsigned int unused_bits:3; - const char *event_message; - int int_arg1; - int int_arg2; - const char *cstr_arg3; - - -public: -#//Constructor, destructor - QhullEvent() : time_s(0), event_type(0), trace_level(0), unused_bits(0), event_message(0), int_arg1(0), int_arg2(0), cstr_arg3(0) {}; - QhullEvent(int timeSeconds, EventTypes e, int traceLevel, const char *message, int arg1, int arg2, const char *arg3) : time_s(timeSeconds), event_type(e), trace_level(traceLevel), unused_bits(0), event_message(message), int_arg1(arg1), int_arg2(arg2), cstr_arg3(arg3) {}; - ~QhullEvent() {}; -};//QhullEvent - -inline QhullEvent::EventTypes operator&(QhullEvent::EventTypes a, QhullEvent::EventTypes b) { return static_cast<QhullEvent::EventTypes>(int(a) & int(b)); }; - -#if 0 -error messages start with "Error" -- may be translated -.what is the last error message -messageLength() -on ERROR dump log to FILE -shadow log? -messageCount, maxCount -#endif - -}//namespace orgQhull - -#//Global functions - -#endif // QHULLEVENT_H diff --git a/src/libqhullcpp/QhullLog.cpp b/src/libqhullcpp/QhullLog.cpp deleted file mode 100644 index 4fc2c5c6414cac03ad50c31f12a994cdfeed61d0..0000000000000000000000000000000000000000 --- a/src/libqhullcpp/QhullLog.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** -** -** Copyright (c) 2008-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/QhullLog.cpp#2 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ -** -****************************************************************************/ - -#//! QhullLog -- A recorded event in a circular buffer - -#include "QhullLog.h" - -#include <time.h> - -#ifdef _MSC_VER // Microsoft Visual C++ -- warning level 4 -#endif - -namespace orgQhull { - -#//Class global -std::vector<std::string> a_log; -std::vector<QhullEvent> a_events; -int a_head= 0; -int a_tail= 0; -int a_head_gap= 0; -int a_tail_end= 0; -int a_max_overrun= 0; -int a_call_depth= 0; -int a_min_call_depth= 0; -time_t a_start_time_s= 0; -int a_logging_enabled= 0; - -#//Constructor, destructor, etc. -QhullLog:: -QhullLog(int level, const char *message) -{ - a_call_depth++; - log(QhullEvent::CallEvent, level, message, 0, 0, 0); -} - -QhullLog:: -QhullLog(int level, const char *message, int arg1) -{ - a_call_depth++; - log(QhullEvent::CallEvent, level, message, arg1, 0, 0); -} - -QhullLog:: -QhullLog(int level, const char *message, int arg1, int arg2) -{ - a_call_depth++; - log(QhullEvent::CallEvent, level, message, arg1, arg2, 0); -} - -QhullLog:: -QhullLog(int level, const char *message, int arg1, const char* arg3) -{ - a_call_depth++; - log(QhullEvent::CallEvent, level, message, arg1, 0, arg3); -} - -QhullLog:: -QhullLog(int traceLevel, const char *message, int arg1, int arg2, const char* arg3) -{ - a_call_depth++; - log(QhullEvent::CallEvent, traceLevel, message, arg1, arg2, arg3); -} - -QhullLog:: -~QhullLog() -{ - if(--a_call_depth < a_min_call_depth){ - a_min_call_depth= a_call_depth; - } - if(a_events[a_tail].event_type & QhullEvent::ReturnEvent){ - log(QhullEvent::ReturnEvent, 0, 0, 0, 0, 0); - }else{ - a_events[a_tail++].event_type |= QhullEvent::ReturnEvent; - } -} - -#//GetSet - -#//Modify - -void QhullLog:: -log(int level, const char *message) -{ - log(QhullEvent::LogEvent, level, message, 0, 0, 0); -} - -void QhullLog:: -log(int level, const char *message, int arg1) -{ - log(QhullEvent::LogEvent, level, message, arg1, 0, 0); -} - -void QhullLog:: -log(int level, const char *message, int arg1, int arg2) -{ - log(QhullEvent::LogEvent, level, message, arg1, arg2, 0); -} - -void QhullLog:: -log(int level, const char *message, int arg1, const char* arg3) -{ - log(QhullEvent::LogEvent, level, message, arg1, 0, arg3); -} - - -#//Helper - -void QhullLog:: -cullEvents() -{ - -}//cullEvents - -//! May be called by multiple threads -void QhullLog:: -log(QhullEvent::EventTypes e, int traceLevel, const char *message, int arg1, int arg2, const char* arg3) -{ - traceLevel= traceLevel; // Ignore traceLevel for now - if(a_logging_enabled != 1){ - return; - } - int t= (int)(time(0) - a_start_time_s); // Conversion OK, seconds since starts - a_events[a_tail++]= QhullEvent(t, e, traceLevel, message, arg1, arg2, arg3); - a_call_depth++; - if(a_tail-a_head_gap < a_head || a_tail >= a_tail_end){ - maybeCullEvents(); - } -} - -void QhullLog:: -maybeCullEvents() -{ - if(a_tail>=a_tail_end){ - if(a_tail-a_tail_end > a_max_overrun){ - a_max_overrun= a_tail-a_tail_end; //FIXUP -- race condition, code not in Qhull - } - a_tail= 0; - } - if(a_head<a_head_gap){ - if(a_tail<a_head_gap || a_tail_end-a_tail+a_head < a_head_gap){ - cullEvents(); - } - }else if(a_head>a_tail && a_head-a_tail < a_head_gap){ - cullEvents(); - } -}//maybeCullEvents - - -}//namespace orgQhull - diff --git a/src/libqhullcpp/QhullLog.h b/src/libqhullcpp/QhullLog.h deleted file mode 100644 index 4285a18f008010c351d601a4c4506633c8a39ca6..0000000000000000000000000000000000000000 --- a/src/libqhullcpp/QhullLog.h +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (c) 2008-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/QhullLog.h#2 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ -** -****************************************************************************/ - -#ifndef QHULLLOG_H -#define QHULLLOG_H - -#include "QhullEvent.h" -extern "C" { - #include "../src/qhull_a.h" -}; - -#include <string> -#include <vector> - -namespace orgQhull { - -#//Types - //! QhullLog -- Report errors in Qhull - class QhullLog; - -class QhullLog { - -private: -#//Fields - -public: -#//Constants - -#//Class global - static std::vector<std::string> - a_log; - static std::vector<QhullEvent> - a_events; - static int a_head; //! Head of event queue. Multiple threads may simultaneously increment a_head - static int a_tail; //! Tail of event queue. - - static int a_head_gap; //! Gap between tail and head. - static int a_tail_end; //! End of event queue. Additional elements allocated to avoid buffer overflow - static int a_max_overrun; //! Maximum overrun due to multiple threads (a_head-a_end) - - static int a_call_depth; //! Current call depth - static int a_min_call_depth; //! Minimum call depth since last cull - - static time_t a_start_time_s; //! UTC seconds at start of logging - static int a_logging_enabled; //! True only if '1' - -#//Constructors - QhullLog(int level, const char *message); - QhullLog(int level, const char *message, int arg1); - QhullLog(int level, const char *message, int arg1, int arg2); - QhullLog(int level, const char *message, int arg1, const char *arg3); - QhullLog(int level, const char *message, int arg1, int arg2, const char *arg3); - ~QhullLog(); - -private: - QhullLog() {}; // disabled - -#//Update - void log(int level, const char *message); - void log(int level, const char *message, int arg1); - void log(int level, const char *message, int arg1, const char *arg3); - void log(int level, const char *message, int arg1, int arg2); - void log(int level, const char *message, int arg1, int arg2, const char *arg3); - -#//Helper -private: - void cullEvents(); - void log(QhullEvent::EventTypes t, int level, const char *message, int arg1, int arg2, const char *arg3); - void maybeCullEvents(); - -};//QhullLog - -#if 0 -.what is the last error message -.where is the stack + execution log -messageLength() -on ERROR dump log to FILE -log all the time -shadow log? -elide history RELATIVE level, n-back -messageCount, maxCount -#endif - - -}//namespace orgQhull - -#//Global functions - -std::ostream &operator<<(std::ostream &os, const orgQhull::QhullLog *f); - -#endif // QHULLLOG_H diff --git a/src/libqhullcpp/QhullPoint.cpp b/src/libqhullcpp/QhullPoint.cpp index 8468914b0d24c4aa88d838b6e4c83521e7e2ee1d..d3d1d874c60ddfe785cc249b4491dae222c57a8c 100644 --- a/src/libqhullcpp/QhullPoint.cpp +++ b/src/libqhullcpp/QhullPoint.cpp @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2009-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/QhullPoint.cpp#2 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/QhullPoint.cpp#3 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -28,11 +28,11 @@ id(int qhRunId, int dimension, const coordT *c) if(UsingLibQhull::hasPoints()){ if(qhRunId==UsingLibQhull::NOqhRunId){ const coordT *pointsEnd; - int dimension; - const coordT *points= UsingLibQhull::globalPoints(&dimension, &pointsEnd); + int dim; + const coordT *points= UsingLibQhull::globalPoints(&dim, &pointsEnd); if(c>=points && c<pointsEnd){ int offset= (int)(c-points); // WARN64 - return offset/dimension; + return offset/dim; } }else{ UsingLibQhull q(qhRunId); diff --git a/src/libqhullcpp/QhullPoints.cpp b/src/libqhullcpp/QhullPoints.cpp index 26df71eefb85fa37cd0a7d947dd8fa17ba411410..0f9571fd6ef74f710ffc092c3a64742dd42d85c4 100644 --- a/src/libqhullcpp/QhullPoints.cpp +++ b/src/libqhullcpp/QhullPoints.cpp @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2009-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/QhullPoints.cpp#2 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/QhullPoints.cpp#3 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -118,31 +118,31 @@ count(const QhullPoint &t) const }//count int QhullPoints:: -indexOf(const coordT *coordinates) const +indexOf(const coordT *pointCoordinates) const { - if(!includesCoordinates(coordinates) || dimension()==0){ + if(!includesCoordinates(pointCoordinates) || dimension()==0){ return -1; } - size_t offset= coordinates-point_first; + size_t offset= pointCoordinates-point_first; int idx= (int)(offset/(size_t)dimension()); // int for error reporting int extra= (int)(offset%(size_t)dimension()); if(extra!=0){ - throw QhullError(10066, "Qhull error: coordinates %x are not at point boundary (extra %d at index %d)", extra, idx, 0.0, coordinates); + throw QhullError(10066, "Qhull error: coordinates %x are not at point boundary (extra %d at index %d)", extra, idx, 0.0, pointCoordinates); } return idx; }//indexOf coordT int QhullPoints:: -indexOf(const coordT *coordinates, int noThrow) const +indexOf(const coordT *pointCoordinates, int noThrow) const { size_t extra= 0; if(noThrow){ - if(!includesCoordinates(coordinates)||dimension()==0){ + if(!includesCoordinates(pointCoordinates) || dimension()==0){ return -1; } - extra= (coordinates-point_first)%(size_t)dimension(); + extra= (pointCoordinates-point_first)%(size_t)dimension(); } - return indexOf(coordinates-extra); + return indexOf(pointCoordinates-extra); }//indexOf coordT noThrow int QhullPoints:: diff --git a/src/libqhullcpp/QhullPoints.h b/src/libqhullcpp/QhullPoints.h index 790e2847073f4289ea67845955c6f35ddc35d210..101afc7695b2e3b5c8cb46fdf3e2278e7421676b 100644 --- a/src/libqhullcpp/QhullPoints.h +++ b/src/libqhullcpp/QhullPoints.h @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (c) 2009-2011 C.B. Barber. All rights reserved. -** $Id: //main/2011/qhull/src/libqhullcpp/QhullPoints.h#3 $$Change: 1342 $ -** $DateTime: 2011/03/07 21:55:47 $$Author: bbarber $ +** $Id: //main/2011/qhull/src/libqhullcpp/QhullPoints.h#4 $$Change: 1348 $ +** $DateTime: 2011/03/25 23:54:58 $$Author: bbarber $ ** ****************************************************************************/ @@ -109,8 +109,8 @@ public: #//Search bool contains(const QhullPoint &t) const; int count(const QhullPoint &t) const; - int indexOf(const coordT *coordinates) const; - int indexOf(const coordT *coordinates, int noThrow) const; + int indexOf(const coordT *pointCoordinates) const; + int indexOf(const coordT *pointCoordinates, int noThrow) const; int indexOf(const QhullPoint &t) const; int lastIndexOf(const QhullPoint &t) const; diff --git a/src/libqhullcpp/libqhullcpp.pro b/src/libqhullcpp/libqhullcpp.pro index 6258096217a7bc4d85815ef350bb4850d22d710e..ac2e6b1999050161a9da2be5e0036491e8b1cf58 100644 --- a/src/libqhullcpp/libqhullcpp.pro +++ b/src/libqhullcpp/libqhullcpp.pro @@ -20,10 +20,43 @@ DEFINES += qh_QHpointer INCLUDEPATH += ../../src INCLUDEPATH += $$PWD # for MOC_DIR *g++ { - #QMAKE_CXXFLAGS_WARN_ON += -Wconversion # Qt conversion errors in qbitarray and qpalette QMAKE_CXXFLAGS_WARN_ON += -Werror # Treat warnings as errors - QMAKE_CXXFLAGS_WARN_ON += -Wcast-qual -Wextra -Wwrite-strings + QMAKE_CXXFLAGS_WARN_ON += -Wshadow -Wconversion + QMAKE_CXXFLAGS_WARN_ON += -Wcast-qual -Wextra -Wshadow -Wwrite-strings QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-conversion +QMAKE_CXXFLAGS_WARN_ON += -Waddress +QMAKE_CXXFLAGS_WARN_ON += -Warray-bounds +QMAKE_CXXFLAGS_WARN_ON += -Wc++0x-compat +QMAKE_CXXFLAGS_WARN_ON += -Wchar-subscripts +QMAKE_CXXFLAGS_WARN_ON += -Wclobbered +QMAKE_CXXFLAGS_WARN_ON += -Wcomment +QMAKE_CXXFLAGS_WARN_ON += -Wempty-body +QMAKE_CXXFLAGS_WARN_ON += -Wenum-compare +QMAKE_CXXFLAGS_WARN_ON += -Wformat +QMAKE_CXXFLAGS_WARN_ON += -Wignored-qualifiers +QMAKE_CXXFLAGS_WARN_ON += -Wmain +QMAKE_CXXFLAGS_WARN_ON += -Wmissing-braces +QMAKE_CXXFLAGS_WARN_ON += -Wmissing-field-initializers +QMAKE_CXXFLAGS_WARN_ON += -Wparentheses +QMAKE_CXXFLAGS_WARN_ON += -Wreorder +QMAKE_CXXFLAGS_WARN_ON += -Wreturn-type +QMAKE_CXXFLAGS_WARN_ON += -Wsequence-point +QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare +QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare +QMAKE_CXXFLAGS_WARN_ON += -Wstrict-aliasing +QMAKE_CXXFLAGS_WARN_ON += -Wstrict-overflow=1 +QMAKE_CXXFLAGS_WARN_ON += -Wswitch +QMAKE_CXXFLAGS_WARN_ON += -Wtrigraphs +QMAKE_CXXFLAGS_WARN_ON += -Wtype-limits +QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized +QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized +QMAKE_CXXFLAGS_WARN_ON += -Wunknown-pragmas +QMAKE_CXXFLAGS_WARN_ON += -Wunused-function +QMAKE_CXXFLAGS_WARN_ON += -Wunused-label +QMAKE_CXXFLAGS_WARN_ON += -Wunused-parameter +QMAKE_CXXFLAGS_WARN_ON += -Wunused-value +QMAKE_CXXFLAGS_WARN_ON += -Wunused-variable +QMAKE_CXXFLAGS_WARN_ON += -Wvolatile-register-var } SOURCES += ../road/RoadError.cpp diff --git a/src/qhull-app-c.pri b/src/qhull-app-c.pri index 9bfbb015c65140512c2370c917ce4ea57ebfbfb6..5f09ad74139dd83830d8d5d25404e26d4e3300d3 100644 --- a/src/qhull-app-c.pri +++ b/src/qhull-app-c.pri @@ -14,6 +14,43 @@ build_pass:CONFIG(debug, debug|release){ QMAKE_CFLAGS_WARN_ON += -Werror -Wcast-qual -Wextra -Wshadow -Wwrite-strings QMAKE_CFLAGS_WARN_ON += -Wno-sign-conversion QMAKE_CFLAGS_WARN_ON += -Wconversion +QMAKE_CFLAGS_WARN_ON += -Waddress +QMAKE_CFLAGS_WARN_ON += -Warray-bounds +QMAKE_CFLAGS_WARN_ON += -Wchar-subscripts +QMAKE_CFLAGS_WARN_ON += -Wclobbered +QMAKE_CFLAGS_WARN_ON += -Wcomment +QMAKE_CFLAGS_WARN_ON += -Wempty-body +QMAKE_CFLAGS_WARN_ON += -Wformat +QMAKE_CFLAGS_WARN_ON += -Wignored-qualifiers +QMAKE_CFLAGS_WARN_ON += -Wimplicit-function-declaration +QMAKE_CFLAGS_WARN_ON += -Wimplicit-int +QMAKE_CFLAGS_WARN_ON += -Wmain +QMAKE_CFLAGS_WARN_ON += -Wmissing-braces +QMAKE_CFLAGS_WARN_ON += -Wmissing-field-initializers +QMAKE_CFLAGS_WARN_ON += -Wmissing-parameter-type +QMAKE_CFLAGS_WARN_ON += -Wnonnull +QMAKE_CFLAGS_WARN_ON += -Wold-style-declaration +QMAKE_CFLAGS_WARN_ON += -Woverride-init +QMAKE_CFLAGS_WARN_ON += -Wparentheses +QMAKE_CFLAGS_WARN_ON += -Wpointer-sign +QMAKE_CFLAGS_WARN_ON += -Wreturn-type +QMAKE_CFLAGS_WARN_ON += -Wsequence-point +QMAKE_CFLAGS_WARN_ON += -Wsign-compare +QMAKE_CFLAGS_WARN_ON += -Wsign-compare +QMAKE_CFLAGS_WARN_ON += -Wstrict-aliasing +QMAKE_CFLAGS_WARN_ON += -Wstrict-overflow=1 +QMAKE_CFLAGS_WARN_ON += -Wswitch +QMAKE_CFLAGS_WARN_ON += -Wtrigraphs +QMAKE_CFLAGS_WARN_ON += -Wtype-limits +QMAKE_CFLAGS_WARN_ON += -Wuninitialized +QMAKE_CFLAGS_WARN_ON += -Wuninitialized +QMAKE_CFLAGS_WARN_ON += -Wunknown-pragmas +QMAKE_CFLAGS_WARN_ON += -Wunused-function +QMAKE_CFLAGS_WARN_ON += -Wunused-label +QMAKE_CFLAGS_WARN_ON += -Wunused-parameter +QMAKE_CFLAGS_WARN_ON += -Wunused-value +QMAKE_CFLAGS_WARN_ON += -Wunused-variable +QMAKE_CFLAGS_WARN_ON += -Wvolatile-register-var } win32-msvc* : QMAKE_LFLAGS += /INCREMENTAL:NO diff --git a/src/qhull-app-cpp.pri b/src/qhull-app-cpp.pri index 281c655505359e85ce263d6c2d80cd359b7ae2b6..233e9d6ae64b904a8fb6bfaf49c9f2433d17688c 100644 --- a/src/qhull-app-cpp.pri +++ b/src/qhull-app-cpp.pri @@ -18,6 +18,39 @@ build_pass:CONFIG(debug, debug|release){ QMAKE_CXXFLAGS_WARN_ON += -Werror # Treat warnings as errors QMAKE_CXXFLAGS_WARN_ON += -Wcast-qual -Wextra -Wwrite-strings QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-conversion +QMAKE_CXXFLAGS_WARN_ON += -Waddress +QMAKE_CXXFLAGS_WARN_ON += -Warray-bounds +QMAKE_CXXFLAGS_WARN_ON += -Wc++0x-compat +QMAKE_CXXFLAGS_WARN_ON += -Wchar-subscripts +QMAKE_CXXFLAGS_WARN_ON += -Wclobbered +QMAKE_CXXFLAGS_WARN_ON += -Wcomment +QMAKE_CXXFLAGS_WARN_ON += -Wempty-body +QMAKE_CXXFLAGS_WARN_ON += -Wenum-compare +QMAKE_CXXFLAGS_WARN_ON += -Wformat +QMAKE_CXXFLAGS_WARN_ON += -Wignored-qualifiers +QMAKE_CXXFLAGS_WARN_ON += -Wmain +QMAKE_CXXFLAGS_WARN_ON += -Wmissing-braces +QMAKE_CXXFLAGS_WARN_ON += -Wmissing-field-initializers +QMAKE_CXXFLAGS_WARN_ON += -Wparentheses +QMAKE_CXXFLAGS_WARN_ON += -Wreorder +QMAKE_CXXFLAGS_WARN_ON += -Wreturn-type +QMAKE_CXXFLAGS_WARN_ON += -Wsequence-point +QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare +QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare +QMAKE_CXXFLAGS_WARN_ON += -Wstrict-aliasing +QMAKE_CXXFLAGS_WARN_ON += -Wstrict-overflow=1 +QMAKE_CXXFLAGS_WARN_ON += -Wswitch +QMAKE_CXXFLAGS_WARN_ON += -Wtrigraphs +QMAKE_CXXFLAGS_WARN_ON += -Wtype-limits +QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized +QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized +QMAKE_CXXFLAGS_WARN_ON += -Wunknown-pragmas +QMAKE_CXXFLAGS_WARN_ON += -Wunused-function +QMAKE_CXXFLAGS_WARN_ON += -Wunused-label +QMAKE_CXXFLAGS_WARN_ON += -Wunused-parameter +QMAKE_CXXFLAGS_WARN_ON += -Wunused-value +QMAKE_CXXFLAGS_WARN_ON += -Wunused-variable +QMAKE_CXXFLAGS_WARN_ON += -Wvolatile-register-var } win32-msvc : QMAKE_LFLAGS += /INCREMENTAL:NO