<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
// // Copyright (c) 2004 // Paul Hamilton; pHamtec P/L // // Permission to use, copy, modify, distribute and sell this software // and its documentation for any purpose is hereby granted without fee, // provided that the above copyright notice appears in all copies and // that both the copyright notice and this permission notice appear in // supporting documentation. No representations are made about the // suitability of this software for any purpose. It is provided "as is" // without express or implied warranty. // // jam_noregister.xml // // 22-Oct-2004 phamilton Created //
-->

<filedef name="jam_noregister">
    <filepath>$(filepath)</filepath>
    <extension>.jam</extension>
    <root>$(root)</root>
    <ignoreobjects>$(ignoreobjects)</ignoreobjects>
    <blocks>
        <import url="$(text_path)/copywrite.xml"/>
        <import url="$(text_path)/author_fullname.xml"/>
        <import url="$(text_path)/company.xml"/>
        <import url="$(text_path)/jam_disclaimer.xml"/>
        <import url="$(text_path)/author_uname.xml"/>
        <text name="jampathvar">
            <content>$(jampathvar)</content>
        </text>
        <text name="library">
            <content>$(library)</content>
        </text>
        <date name="date">
            <format>%e-%b-%Y</format>
        </date>
<!--
block which outputs all object class names (with an _ after them)
-->

        <foreachobject name="allgensources">
            <location>$(root)</location>
            <blocks>
                <stringmember name="classname">
                    <membername>classname</membername>
                </stringmember>
                <text name="object">
                    <conditions>
                        <isinlist>
                            <membername>name</membername>
                            <list>$(ignoreobjects)</list>
                            <fail/>
                        </isinlist>
                    </conditions>
                    <content>\t\(classname)_\n</content>
                </text>
            </blocks>
            <structure>\object</structure>
        </foreachobject>
<!--
block which outputs all object class names for all objects which have public or overridden methods, but have no cpp implementations.
-->

        <foreachobject name="allsources">
            <location>$(root)</location>
            <blocks>
                <stringmember name="classname">
                    <membername>classname</membername>
                </stringmember>
                <text name="object">
                    <conditions>
                        <isinlist>
                            <membername>name</membername>
                            <list>$(ignoreobjects)</list>
                            <fail/>
                        </isinlist>
                        <logical_or>
                            <conditions>
                                <subobjecthasmemberequal>
                                    <compositemember>methods</compositemember>
                                    <membernames>[access,inheritance]</membernames>
                                    <membervalues>[public,concrete]</membervalues>
                                </subobjecthasmemberequal>
                                <subobjecthasmemberequal>
                                    <compositemember>methods</compositemember>
                                    <membernames>[inheritance]</membernames>
                                    <membervalues>[override]</membervalues>
                                </subobjecthasmemberequal>
                            </conditions>
                        </logical_or>
                        <logical_or>
                            <conditions>
                                <subobjecthasany>
                                    <compositemember>methods</compositemember>
                                    <membername>implementations</membername>
                                    <membertype>cppimplementation</membertype>
                                </subobjecthasany>
                                <subobjecthasany>
                                    <compositemember>methods</compositemember>
                                    <membername>implementations</membername>
                                    <membertype>web</membertype>
                                </subobjecthasany>
                            </conditions>
                            <fail/>
                        </logical_or>
                    </conditions>
                    <content>\t\classname\n</content>
                </text>
            </blocks>
            <structure>\object</structure>
        </foreachobject>
        <forlist name="othersources">
            <list>$(othersources)</list>
            <structure>\t\item\n</structure>
        </forlist>
        <forlist name="otherlibs">
            <list>$(otherlibs)</list>
            <structure>#\t\t<lib>\item\n</structure>
        </forlist>
        <forlist name="otherdlls">
            <list>$(otherdlls)</list>
            <structure>#\t\t<dll>\item\n</structure>
        </forlist>
        <text name="extradefs">
            <content>$(extradefs)</content>
        </text>
    </blocks>
    <structure> # # \copywrite # \author_fullname; \company # \jam_disclaimer # # \library.jam # # \date \author_uname Generated by tangle. Edit at your own risk! # CPP_SOURCES = \allgensources \allsources \othersources ; #dll \library : $(\jampathvar)/$(CPP_SOURCES).cpp \otherlibs \otherdlls # : <sysinclude>$(PROJECT_ROOT) <sysinclude>$(BOOST_ROOT) # <darwin><*><inlining>off # <darwin><*><optimization>off # : debug release # ; lib \library : $(\jampathvar)/$(CPP_SOURCES).cpp : <sysinclude>$(PROJECT_ROOT) <sysinclude>$(BOOST_ROOT) <darwin><*><inlining>off <darwin><*><optimization>off \extradefs : debug release ; </structure>
</filedef>