Merge branch 'master' into geometry.hpp

This commit is contained in:
artemp 2017-03-30 08:21:27 +01:00
commit c28bf77d5d
10 changed files with 69 additions and 37 deletions

1
.gitmodules vendored
View file

@ -14,4 +14,3 @@
path = deps/mapbox/geometry path = deps/mapbox/geometry
url = https://github.com/mapbox/geometry.hpp.git url = https://github.com/mapbox/geometry.hpp.git
branch = master branch = master

View file

@ -1,7 +1,5 @@
OS := $(shell uname -s) OS := $(shell uname -s)
PYTHON = python
ifeq ($(JOBS),) ifeq ($(JOBS),)
JOBS:=1 JOBS:=1
endif endif
@ -21,11 +19,6 @@ release:
test-release: test-release:
./scripts/test_release.sh ./scripts/test_release.sh
python:
if [ ! -d ./bindings/python ]; then git clone git@github.com:mapnik/python-mapnik.git --recursive ./bindings/python; else (cd bindings/python && git pull && git submodule update --init); fi;
make
python bindings/python/test/visual.py -q
src/json/libmapnik-json.a: src/json/libmapnik-json.a:
# we first build memory intensive files with -j$(HEAVY_JOBS) # we first build memory intensive files with -j$(HEAVY_JOBS)
$(PYTHON) scons/scons.py -j$(HEAVY_JOBS) \ $(PYTHON) scons/scons.py -j$(HEAVY_JOBS) \
@ -96,13 +89,6 @@ bench:
demo: demo:
cd demo/c++; ./rundemo `mapnik-config --prefix` cd demo/c++; ./rundemo `mapnik-config --prefix`
pep8:
# https://gist.github.com/1903033
# gsed on osx
@pep8 -r --select=W293 -q --filename=*.py `pwd`/tests/ | xargs gsed -i 's/^[ \r\t]*$$//'
@pep8 -r --select=W391 -q --filename=*.py `pwd`/tests/ | xargs gsed -i -e :a -e '/^\n*$$/{$$d;N;ba' -e '}'
@pep8 -r --select=W391 -q --filename=*.py `pwd`/tests/ | xargs ged -i '/./,/^$$/!d'
# note: pass --gen-suppressions=yes to create new suppression entries # note: pass --gen-suppressions=yes to create new suppression entries
grind: grind:
@source localize.sh && \ @source localize.sh && \

View file

@ -46,6 +46,7 @@ BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(mapnik::geometry::line_string)
BOOST_GEOMETRY_REGISTER_RING_TEMPLATED(mapnik::geometry::linear_ring) BOOST_GEOMETRY_REGISTER_RING_TEMPLATED(mapnik::geometry::linear_ring)
// needed by box2d<T> // needed by box2d<T>
BOOST_GEOMETRY_REGISTER_POINT_2D(mapnik::coord2d, double, boost::geometry::cs::cartesian, x, y) BOOST_GEOMETRY_REGISTER_POINT_2D(mapnik::coord2d, double, boost::geometry::cs::cartesian, x, y)
BOOST_GEOMETRY_REGISTER_POINT_2D(mapnik::coord2f, float, boost::geometry::cs::cartesian, x, y)
namespace mapnik { namespace mapnik {
@ -137,6 +138,53 @@ struct indexed_access<mapnik::box2d<double>, max_corner, 1>
static inline void set(mapnik::box2d<double> &b , ct const& value) { b.set_maxy(value); } static inline void set(mapnik::box2d<double> &b , ct const& value) { b.set_maxy(value); }
}; };
<<<<<<< HEAD:include/mapnik/geometry/boost_adapters.hpp
=======
// box2d<float>
template<> struct tag<mapnik::box2d<float> > { using type = box_tag; };
template<> struct point_type<mapnik::box2d<float> > { using type = mapnik::coord2f; };
template <>
struct indexed_access<mapnik::box2d<float>, min_corner, 0>
{
using ct = coordinate_type<mapnik::coord2f>::type;
static inline ct get(mapnik::box2d<float> const& b) { return b.minx();}
static inline void set(mapnik::box2d<float> &b, ct const& value) { b.set_minx(value); }
};
template <>
struct indexed_access<mapnik::box2d<float>, min_corner, 1>
{
using ct = coordinate_type<mapnik::coord2f>::type;
static inline ct get(mapnik::box2d<float> const& b) { return b.miny();}
static inline void set(mapnik::box2d<float> &b, ct const& value) { b.set_miny(value); }
};
template <>
struct indexed_access<mapnik::box2d<float>, max_corner, 0>
{
using ct = coordinate_type<mapnik::coord2f>::type;
static inline ct get(mapnik::box2d<float> const& b) { return b.maxx();}
static inline void set(mapnik::box2d<float> &b, ct const& value) { b.set_maxx(value); }
};
template <>
struct indexed_access<mapnik::box2d<float>, max_corner, 1>
{
using ct = coordinate_type<mapnik::coord2f>::type;
static inline ct get(mapnik::box2d<float> const& b) { return b.maxy();}
static inline void set(mapnik::box2d<float> &b , ct const& value) { b.set_maxy(value); }
};
// mapnik::geometry::line_string
template<typename CoordinateType>
struct tag<mapnik::geometry::line_string<CoordinateType> >
{
using type = linestring_tag;
};
// mapnik::geometry::polygon
>>>>>>> master:include/mapnik/geometry/boost_adapters.hpp
template<typename CoordinateType> template<typename CoordinateType>
struct tag<mapnik::geometry::polygon<CoordinateType> > struct tag<mapnik::geometry::polygon<CoordinateType> >
{ {

View file

@ -20,14 +20,11 @@
* *
*****************************************************************************/ *****************************************************************************/
// mapnik <mapnik/geometry_reprojection.hpp> // mapnik
#include <mapnik/geometry/reprojection.hpp>
#include <mapnik/geometry.hpp> #include <mapnik/geometry.hpp>
namespace mapnik { namespace mapnik { namespace geometry { namespace detail {
namespace geometry {
namespace detail {
//template <typename T> //template <typename T>
geometry_empty reproject_internal(geometry_empty const&, proj_transform const&, unsigned int &) geometry_empty reproject_internal(geometry_empty const&, proj_transform const&, unsigned int &)
@ -388,5 +385,4 @@ bool reproject(T & geom, projection const& source, projection const& dest)
} }
} // end geometry ns } // end geometry ns
} // end mapnik ns } // end mapnik ns

View file

@ -24,7 +24,6 @@
#include <mapnik/json/geometry_generator_grammar.hpp> #include <mapnik/json/geometry_generator_grammar.hpp>
#include <mapnik/geometry/fusion_adapted.hpp> #include <mapnik/geometry/fusion_adapted.hpp>
namespace mapnik { namespace json { namespace mapnik { namespace json {
namespace karma = boost::spirit::karma; namespace karma = boost::spirit::karma;

View file

@ -80,7 +80,6 @@ x3::rule<class geometries, mapnik::geometry::geometry_collection<double> > const
auto const point_text_def = '(' > double_ > double_ > ')'; auto const point_text_def = '(' > double_ > double_ > ')';
auto const positions_def = lit('(') > (double_ > double_) % lit(',') > lit(')'); auto const positions_def = lit('(') > (double_ > double_) % lit(',') > lit(')');
//auto const polygon_rings_def = '(' > positions[set_exterior] > *(lit(',') > positions[add_hole]) > ')';
auto const polygon_rings_def = '(' > positions[add_ring] % lit(',') > ')'; auto const polygon_rings_def = '(' > positions[add_ring] % lit(',') > ')';
auto const points_def = (lit('(') >> ((point_text_def % ',') > lit(')'))) | positions_def ; auto const points_def = (lit('(') >> ((point_text_def % ',') > lit(')'))) | positions_def ;
auto const lines_def = lit('(') > (positions_def % lit(',')) > lit(')'); auto const lines_def = lit('(') > (positions_def % lit(',')) > lit(')');

View file

@ -38,7 +38,7 @@ plugin_env['LIBS'] = []
plugin_env.Append(LIBS=env['PLUGINS']['gdal']['lib']) plugin_env.Append(LIBS=env['PLUGINS']['gdal']['lib'])
if env['RUNTIME_LINK'] == 'static': if env['RUNTIME_LINK'] == 'static':
cmd = 'gdal-config --dep-libs' cmd = '%s --dep-libs' % plugin_env['GDAL_CONFIG']
plugin_env.ParseConfig(cmd) plugin_env.ParseConfig(cmd)
# Link Library to Dependencies # Link Library to Dependencies

View file

@ -42,7 +42,7 @@ plugin_env['LIBS'] = []
plugin_env.Append(LIBS=env['PLUGINS']['ogr']['lib']) plugin_env.Append(LIBS=env['PLUGINS']['ogr']['lib'])
if env['RUNTIME_LINK'] == 'static': if env['RUNTIME_LINK'] == 'static':
cmd = 'gdal-config --dep-libs' cmd = '%s --dep-libs' % plugin_env['GDAL_CONFIG']
plugin_env.ParseConfig(cmd) plugin_env.ParseConfig(cmd)
# Link Library to Dependencies # Link Library to Dependencies

View file

@ -26,7 +26,7 @@ function add() {
CXX=${CXX:-clang++} CXX=${CXX:-clang++}
function compile() { function compile() {
${CXX} -o ${app} ${cpp} -Wpadded -I./ -isystem ./mason_packages/.link/include `mapnik-config --all-flags` -Ideps -Lsrc -Ideps/agg/include -Iinclude ${CXX} -o ${app} ${cpp} -Wpadded -I./ -I./deps/mapbox/variant/include -isystem ./mason_packages/.link/include -std=c++11 -Ideps -Lsrc -Ideps/agg/include -Iinclude
} }
if [[ ${1:-unset} == "unset" ]] || [[ ${2:-unset} == "unset" ]] || [[ $@ == '-h' ]] || [[ $@ == '--help' ]]; then if [[ ${1:-unset} == "unset" ]] || [[ ${2:-unset} == "unset" ]] || [[ $@ == '-h' ]] || [[ $@ == '--help' ]]; then

View file

@ -39,6 +39,20 @@ source = Split(
program_env['CXXFLAGS'] = copy(env['LIBMAPNIK_CXXFLAGS']) program_env['CXXFLAGS'] = copy(env['LIBMAPNIK_CXXFLAGS'])
program_env['LINKFLAGS'] = copy(env['LIBMAPNIK_LINKFLAGS']) program_env['LINKFLAGS'] = copy(env['LIBMAPNIK_LINKFLAGS'])
program_env.Append(CPPDEFINES = env['LIBMAPNIK_DEFINES']) program_env.Append(CPPDEFINES = env['LIBMAPNIK_DEFINES'])
program_env['LIBS'] = []
if env['RUNTIME_LINK'] == 'static':
# pkg-config is more reliable than pg_config across platforms
cmd = 'pkg-config libpq --libs --static'
try:
program_env.ParseConfig(cmd)
except OSError, e:
program_env.Append(LIBS='pq')
else:
program_env.Append(LIBS='pq')
# Link Library to Dependencies
libraries = copy(program_env['LIBS'])
if env['HAS_CAIRO']: if env['HAS_CAIRO']:
program_env.PrependUnique(CPPPATH=env['CAIRO_CPPPATHS']) program_env.PrependUnique(CPPPATH=env['CAIRO_CPPPATHS'])
@ -46,9 +60,8 @@ if env['HAS_CAIRO']:
program_env.PrependUnique(CPPPATH=['#plugins/input/postgis']) program_env.PrependUnique(CPPPATH=['#plugins/input/postgis'])
libraries = []
boost_program_options = 'boost_program_options%s' % env['BOOST_APPEND'] boost_program_options = 'boost_program_options%s' % env['BOOST_APPEND']
libraries.extend([boost_program_options,'sqlite3','pq',env['MAPNIK_NAME'],'icuuc']) libraries.extend([boost_program_options,'sqlite3',env['MAPNIK_NAME'],'icuuc'])
if env.get('BOOST_LIB_VERSION_FROM_HEADER'): if env.get('BOOST_LIB_VERSION_FROM_HEADER'):
boost_version_from_header = int(env['BOOST_LIB_VERSION_FROM_HEADER'].split('_')[1]) boost_version_from_header = int(env['BOOST_LIB_VERSION_FROM_HEADER'].split('_')[1])
@ -59,14 +72,6 @@ if env.get('BOOST_LIB_VERSION_FROM_HEADER'):
if env['SQLITE_LINKFLAGS']: if env['SQLITE_LINKFLAGS']:
program_env.Append(LINKFLAGS=env['SQLITE_LINKFLAGS']) program_env.Append(LINKFLAGS=env['SQLITE_LINKFLAGS'])
if env['RUNTIME_LINK'] == 'static':
if env['PLATFORM'] == 'Darwin':
libraries.extend(['ldap', 'pam', 'ssl', 'crypto', 'krb5'])
else:
# TODO - parse back into libraries variable
program_env.ParseConfig('pg_config --libs')
libraries.append('dl')
pgsql2sqlite = program_env.Program('pgsql2sqlite', source, LIBS=libraries) pgsql2sqlite = program_env.Program('pgsql2sqlite', source, LIBS=libraries)
Depends(pgsql2sqlite, env.subst('../../src/%s' % env['MAPNIK_LIB_NAME'])) Depends(pgsql2sqlite, env.subst('../../src/%s' % env['MAPNIK_LIB_NAME']))