123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <!--
- Use this file to faciliate easy per-project building.
-
- Simply create a build.properties file in your project directory,
- for example ./projects/bookstore/build.properties, that contains
- any needed (i.e. to override) values for that project.
-
- Call this build script and specify the name of the project and
- (optionally) the name of the target you wish to execute (default is
- 'main' target) of build-propel.xml.
- Normal use:
- $> phing -Dproject=bookstore
-
- Specific target:
- $> phing -Dproject=bookstore -Dtarget=insert-sql
- -->
- <project name="propel-project-builder" default="main">
- <!-- in case ${project.dir} was specified on command line, we set the project.dir
- property here. If it wasn't set, then this will be bogus, but it will
- be overridden by the "set-project-dir" target. -->
- <resolvepath propertyName="propel.project.dir" file="${project.dir}" dir="${application.startdir}"/>
- <!-- set a default target if none provided -->
- <property name="target" value="main"/>
- <!-- Set a default name for the build.properties file.
- This allows for overriding the name of the build.properties file; however,
- Propel still expects to find the file in the ${propel.project.dir}.
- -->
- <property name="build.properties" value="build.properties"/>
-
- <target name="check-buildprops-exists">
- <available file="${propel.project.dir}/${build.properties}" property="projBuildPopertiesExists"/>
- </target>
- <target name="check-buildprops" unless="projBuildPopertiesExists" depends="check-buildprops-exists">
- <echo message="====================================================="/>
- <echo message="Could not open ${build.properties} file:"/>
- <echo message=" ${propel.project.dir}/${build.properties}"/>
- <echo message=" "/>
- <echo message="Make sure that '${propel.project.dir}' is a valid path"/>
- <echo message="and that it contains a ${build.properties} file."/>
- <echo message="====================================================="/>
-
- <fail message="Missing configuration file (see description above)."/>
- </target>
- <target name="check-project-or-dir-set">
- <condition property="projectOrDirSet">
- <or>
- <isset property="project"/>
- <isset property="project.dir"/>
- </or>
- </condition>
- </target>
- <target name="check-buildprops-for-propel-gen" if="using.propel-gen" unless="projBuildPopertiesExists" depends="check-buildprops-exists">
- <echo message="=========================================================="/>
- <echo message="Could not open ${build.properties} file:"/>
- <echo message=" ${propel.project.dir}/${build.properties}"/>
- <echo message=" "/>
- <echo message="Project directory not specified or invalid. You must "/>
- <echo message="specify the path to your project directory and your "/>
- <echo message="project directory must contain your ${build.properties} "/>
- <echo message="and schema.xml files. "/>
- <echo message=" "/>
- <echo message="Usage: "/>
- <echo message=" "/>
- <echo message="$> propel-gen /path/to/projectdir [target]"/>
- <echo message=" "/>
- <echo message="=========================================================="/>
- <fail message="No project directory specified."/>
- </target>
- <target name="check-project-set" unless="projectOrDirSet" depends="check-project-or-dir-set">
- <echo message="====================================================="/>
- <echo message="Project not specified. You must enter a project name. "/>
- <echo message="In the future you can enter it on the command line: "/>
- <echo message=" "/>
- <echo message="-Dproject=bookstore"/>
- <echo message=" "/>
- <echo message="This will attempt to find your project directory in"/>
- <echo message="the default directory (./projects/bookstore)."/>
- <echo message=" "/>
- <echo message="You can also avoid this message and specicfy a custom "/>
- <echo message="directory, using the project.dir property:"/>
- <echo message=" "/>
- <echo message="-Dproject.dir=/path/to/bookstore"/>
- <echo message="====================================================="/>
- <input propertyname="project" promptChar=":">Project name</input>
- <property name="propel.project" value="${project}" override="true"/>
- </target>
- <target name="set-project-dir" unless="project.dir" depends="check-project-set">
- <echo>No project.dir was specified, using default path: ./projects/${project}</echo>
- <property name="propel.project.dir" value="./projects/${project}" override="true"/>
- </target>
- <target name="configure" depends="set-project-dir,check-buildprops-for-propel-gen,check-buildprops">
- <if>
- <isset property="additional.properties"/>
- <then>
- <echo>Processing additional properties file: ${additional.properties}</echo>
- <resolvepath propertyName="additional.properties.resolved" file="${additional.properties}" dir="${application.startdir}"/>
- <property file="${additional.properties.resolved}"/>
- </then>
- </if>
- <echo msg="Loading project-specific props from ${propel.project.dir}/${build.properties}"/>
- <property file="${propel.project.dir}/${build.properties}"/>
- </target>
- <target name="main" depends="configure" description="The main target. Includes project-specific build.properties and calls the build-propel.xml script">
- <phing phingfile="./build-propel.xml" target="${target}"/>
-
- </target>
- <!--
- Convenience mappings to build-propel.xml main targets
-
- This makes it possible to use this buildfile w/o needing to specify
- target as a property, e.g.:
-
- $> phing -Dproject=bookstore insert-sql
-
- The main reason for this is just consistency w/ old build-propel.xml file
- (primarily for documentation & user confusion avoidance reasons). There are relatively
- few & infrequently changing main targets of build-propel.xml, so it's a non-
- issue as far as maintenance is concerned.
- -->
- <target name="convert-conf" depends="configure">
- <phing phingfile="build-propel.xml" target="convert-conf"/>
- </target>
- <target name="create-db" depends="configure">
- <phing phingfile="build-propel.xml" target="create-db"/>
- </target>
- <target name="reverse" depends="configure">
- <phing phingfile="build-propel.xml" target="reverse"/>
- </target>
- <target name="datadtd" depends="configure">
- <phing phingfile="build-propel.xml" target="datadtd"/>
- </target>
- <target name="datadump" depends="configure">
- <phing phingfile="build-propel.xml" target="datadump"/>
- </target>
- <target name="datasql" depends="configure">
- <phing phingfile="build-propel.xml" target="datasql"/>
- </target>
- <target name="insert-sql" depends="configure">
- <phing phingfile="build-propel.xml" target="insert-sql"/>
- </target>
- <target name="om" depends="configure">
- <phing phingfile="build-propel.xml" target="om"/>
- </target>
- <target name="new-om" depends="configure">
- <phing phingfile="build-propel.xml" target="new-om"/>
- </target>
- <target name="sql" depends="configure">
- <phing phingfile="build-propel.xml" target="sql"/>
- </target>
- <target name="old-sql" depends="configure">
- <phing phingfile="build-propel.xml" target="old-sql"/>
- </target>
- <target name="graphviz" depends="configure">
- <phing phingfile="build-propel.xml" target="graphviz"/>
- </target>
- </project>
|