# Boost Build v2 Jamroot for Polygon unit 
#
#  Copyright 2010 Intel Corporation
#
# Use, modification and distribution is subject to the Boost Software License,
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

project 
    : requirements
        <warnings>all
        <toolset>intel:<warnings>on
        <toolset>gcc:<cxxflags>"-pedantic -Wall -Wstrict-aliasing -fstrict-aliasing -Wno-long-long"
        <toolset>msvc:<cxxflags>/W4
        <include>../..
        <include>.
    ;


