# Copyright 2006 Ilya Sokolov
#
# Distributed under 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)

# pch ##########################################################################

import pch ;

cpp-pch pch
  : # sources
    include/pch.hpp
  : # requirements
    <include>include
  ;
explicit pch ;

# exe ##########################################################################

exe hello_world
  : # sources
    pch
    source/hello_world.cpp
  : # requirements
    <include>include
  : # default build
  : # usage requirements
  ;
