| # Copyright 2003 Dave Abrahams |
| # Copyright 2002, 2003, 2005 Vladimir Prus |
| # Distributed under the Boost Software License, Version 1.0. |
| # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) |
| |
| import type ; |
| import generators ; |
| import os ; |
| import print ; |
| |
| type.register FOO : foo ; |
| |
| generators.register-standard foo.foo : FOO : CPP H ; |
| |
| nl = " |
| " ; |
| |
| rule foo ( targets * : sources * : properties * ) |
| { |
| # On NT, you need an exported symbol in order to have an |
| # import lib generated |
| # We won't really use the symbol defined here, just force |
| # lib creation. |
| if ( [ os.name ] = NT || [ modules.peek : OS ] in CYGWIN ) |
| && <main-target-type>LIB in $(properties) |
| { |
| .decl = "void __declspec(dllexport) foo(){}" ; |
| } |
| |
| print.output $(<[1]) ; |
| print.text $(.decl:E="//")$(nl) ; |
| print.output $(<[2]) ; |
| print.text "#include <z.h>"$(nl) ; |
| } |