summaryrefslogtreecommitdiff
path: root/jam-files/boost-build/tools/pch.jam
diff options
context:
space:
mode:
authorChris Dyer <cdyer@cs.cmu.edu>2012-10-11 14:06:32 -0400
committerChris Dyer <cdyer@cs.cmu.edu>2012-10-11 14:06:32 -0400
commit9339c80d465545aec5a6dccfef7c83ca715bf11f (patch)
tree64c56d558331edad1db3832018c80e799551c39a /jam-files/boost-build/tools/pch.jam
parent438dac41810b7c69fa10203ac5130d20efa2da9f (diff)
parentafd7da3b2338661657ad0c4e9eec681e014d37bf (diff)
Merge branch 'master' of https://github.com/redpony/cdec
Diffstat (limited to 'jam-files/boost-build/tools/pch.jam')
-rw-r--r--jam-files/boost-build/tools/pch.jam95
1 files changed, 0 insertions, 95 deletions
diff --git a/jam-files/boost-build/tools/pch.jam b/jam-files/boost-build/tools/pch.jam
deleted file mode 100644
index 0c6e98fa..00000000
--- a/jam-files/boost-build/tools/pch.jam
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 2005 Reece H. Dunn.
-# Copyright 2006 Ilya Sokolov
-#
-# Use, modification and distribution is subject to the Boost Software
-# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
-# http://www.boost.org/LICENSE_1_0.txt)
-
-##### Using Precompiled Headers (Quick Guide) #####
-#
-# Make precompiled mypch.hpp:
-#
-# import pch ;
-#
-# cpp-pch mypch
-# : # sources
-# mypch.hpp
-# : # requiremnts
-# <toolset>msvc:<source>mypch.cpp
-# ;
-#
-# Add cpp-pch to sources:
-#
-# exe hello
-# : main.cpp hello.cpp mypch
-# ;
-
-import "class" : new ;
-import type ;
-import feature ;
-import generators ;
-
-type.register PCH : pch ;
-
-type.register C_PCH : : PCH ;
-type.register CPP_PCH : : PCH ;
-
-# Control precompiled header (PCH) generation.
-feature.feature pch :
- on
- off
- : propagated ;
-
-
-feature.feature pch-header : : free dependency ;
-feature.feature pch-file : : free dependency ;
-
-# Base PCH generator. The 'run' method has the logic to prevent this generator
-# from being run unless it's being used for a top-level PCH target.
-class pch-generator : generator
-{
- import property-set ;
-
- rule action-class ( )
- {
- return compile-action ;
- }
-
- rule run ( project name ? : property-set : sources + )
- {
- if ! $(name)
- {
- # Unless this generator is invoked as the top-most generator for a
- # main target, fail. This allows using 'H' type as input type for
- # this generator, while preventing Boost.Build to try this generator
- # when not explicitly asked for.
- #
- # One bad example is msvc, where pch generator produces both PCH
- # target and OBJ target, so if there's any header generated (like by
- # bison, or by msidl), we'd try to use pch generator to get OBJ from
- # that H, which is completely wrong. By restricting this generator
- # only to pch main target, such problem is solved.
- }
- else
- {
- local r = [ run-pch $(project) $(name)
- : [ $(property-set).add-raw <define>BOOST_BUILD_PCH_ENABLED ]
- : $(sources) ] ;
- return [ generators.add-usage-requirements $(r)
- : <define>BOOST_BUILD_PCH_ENABLED ] ;
- }
- }
-
- # This rule must be overridden by the derived classes.
- rule run-pch ( project name ? : property-set : sources + )
- {
- }
-}
-
-
-# NOTE: requirements are empty, default pch generator can be applied when
-# pch=off.
-generators.register
- [ new dummy-generator pch.default-c-pch-generator : : C_PCH ] ;
-generators.register
- [ new dummy-generator pch.default-cpp-pch-generator : : CPP_PCH ] ;