1#!/usr/local/bin/python3.8 2 3# Copyright 2003 Vladimir Prus 4# Distributed under the Boost Software License, Version 1.0. 5# (See accompanying file LICENSE_1_0.txt or copy at 6# http://www.boost.org/LICENSE_1_0.txt) 7 8import BoostBuild 9 10t = BoostBuild.Tester(pass_toolset=0) 11 12t.write("code", """\ 13module a 14{ 15 rule r1 ( ) 16 { 17 ECHO R1 ; 18 } 19 20 local rule l1 ( ) 21 { 22 ECHO A.L1 ; 23 } 24} 25module a2 26{ 27 rule r2 ( ) 28 { 29 ECHO R2 ; 30 } 31} 32IMPORT a2 : r2 : : a2.r2 ; 33 34rule a.l1 ( ) 35{ 36 ECHO L1 ; 37} 38 39module b 40{ 41 IMPORT_MODULE a : b ; 42 rule test 43 { 44 # Call rule visible via IMPORT_MODULE 45 a.r1 ; 46 # Call rule in global scope 47 a2.r2 ; 48 # Call rule in global scope. Doesn't find local rule 49 a.l1 ; 50 # Make l1 visible 51 EXPORT a : l1 ; 52 a.l1 ; 53 } 54} 55 56IMPORT b : test : : test ; 57test ; 58 59module c 60{ 61 rule test 62 { 63 ECHO CTEST ; 64 } 65} 66 67IMPORT_MODULE c : ; 68c.test ; 69 70EXIT : 0 ; 71""") 72 73t.run_build_system(["-fcode"], stdout="""\ 74R1 75R2 76L1 77A.L1 78CTEST 79 80""") 81 82t.cleanup() 83