-
Notifications
You must be signed in to change notification settings - Fork 62
PCTCompile
Compile OpenEdge procedures and classes.
<pct:compile />
Attribute | Description | Default value |
---|---|---|
destDir | Directory where to put compiled code | None |
stopOnError | If set to true, stop compilation as soon as an error occurs. | False |
numThreads | Starts n parallel compilation threads. Don't use multiple threads when compiling classes. | 1 |
multiCompile | Change COMPILER:MULTI-COMPILE attribute. |
False |
minSize | Boolean value of MIN-SIZE option. |
False |
MD5 | Boolean value of GENERATE-MD5 option. |
False |
streamIO | Boolean value of STREAM-IO option. |
False |
v6Frame | Boolean value of V6FRAME option. |
False |
useUnderline |
USE-UNDERLINE option of V6FRAME
|
False |
useRevVideo |
USE-REVVIDEO option of V6FRAME
|
False |
runList | True to generate a .run file for each compiled file, which summarizes RUN statements |
False |
listing | Boolean value of LISTING option. Generated file name is identical to source file name, and is stored in xrefDir
|
False |
listingSource | Generates listing file from preprocessed source code (value preprocessor ) or from standard source code (empty value or not defined). |
False |
preprocess | Boolean value of PREPROCESS attribute. Generated file name appends .preprocess to source file name, and is stored in preprocessDir . |
False |
preprocessDir | Target directory where preprocessed files are written. | <destDir>/.pct |
debugListing | Boolean value of DEBUG-LIST option. Generated file name appends .dbg to file name, and is stored in debugListingDir . |
False |
debugListingDir | Target directory where debug listing files are written. | destDir/.pct |
flattenDebugListing | Flattens directory structure for debug listing files | True |
stringXref | Boolean value of STRING-XREF option. Generated file name appends .strxref to source file name. |
False |
appendStringXref | Appends STRING-XREF to a single file. |
False |
keepXref | Keeps the generated XREF file for each file. Generated file name replaces extension of source file name with .xref . |
False |
noParse | Always recompile, and skip XREF generation as well as .crc and .inc files. | False |
xrefDir | Target directory where PCT files (CRC, includes, preprocess, listing) will be created. | <destDir>/.pct |
xmlXref | Generates XREF in XML format. | False. |
forceCompile | Always compile everything. | False. |
xcode | Compiles using XCODE option. Disables XREF and LISTING options. | False. |
xcodeKey | Sets specific key for encrypted procedures. Deprecated: use XCodeSessionKey attribute in PCTRun | None |
languages | Comma-separated list of language segments to include in the compiled r-code. LANGUAGES option of the COMPILE statement |
None |
textGrowth |
TEXT-SEG-GROWTH option of the COMPILE statement. |
None |
relativePaths | Use relative paths instead of absolute paths for propath and filesets. Every fileset dir has to be in propath. | False |
progPerc | Show progression percentage every x percent. |
0 (not displayed) |
displayFiles | 1 will display files to be recompiled (and reason). 2 will display all files. 0 doesn't display anything | 0 (no display) |
requireFullKeywords | Strict-mode compiler option (11.7+). Output redirected to .warnings files in .pct directory |
False |
requireFullNames | Strict-mode compiler option (11.7+). Output redirected to .warnings files in .pct directory |
False |
requireFieldQualifiers | Strict-mode compiler option (11.7+). Output redirected to .warnings files in .pct directory |
False |
requireReturnValues | Strict-mode compiler option (12.2+). Output redirected to .warnings files in .pct directory |
False |
outputType | comma separated list of outputs. Available values: console output to console; json write the errors and warnings of source files to <destDir>/.pct/project-result.json , not supported on multi-threaded environment. |
console |
callbackClass | Callback class (implementation of rssw.pct.AbstractCompileCallback) | None |
† Only one of those attributes is mandatory ‡ Mandatory attribute
PCTCompile inherits attributes from PCT and PCTRun.
Files to be compiled
Adds a custom mapper
<PCTCompile destDir="build" dlcHome="${env.DLC}">
<fileset dir="src">
<include name="**/*.p"/>
<exclude name="test/**"/>
</fileset>
<propath>
<pathelement path="src/include"/>
</propath>
</PCTCompile>
Compiles every .p in src directory (and subdirs) except those from src/test, with PROPATH set to src/include, and put .r in build directory.
<PCTCompile destDir="build" dlcHome="${DLC}" relativePaths="true">
<fileset dir="custom" />
<fileset dir="main">
<present present="srconly" targetdir="custom" />
</fileset>
<propath>
<pathelement location="custom" />
<pathelement location="main" />
</propath>
</PCTCompile>
Compiles every file in custom and main directory, but skipping files in main where a file with same name is present in custom. Documentation on <present>
selector can be found here.
Consider the following file in src/foo/bar/test.p :
MESSAGE '{&FILE-NAME}' { foo/test.i }.
With the following include inc/foo/test.i :
'{&FILE-NAME}'
And this build file :
<path id="compilation.propath">
<pathelement path="src;inc" />
</path>
<PCTCompile destDir="build1" dlcHome="${DLC}" relativePaths="false">
<fileset dir="src" includes="**/*.p" />
<propath refid="compilation.propath" />
</PCTCompile>
<PCTCompile destDir="build1" dlcHome="${DLC}" relativePaths="true">
<fileset dir="src" includes="**/*.p" />
<propath refid="compilation.propath" />
</PCTCompile>
If you execute build1/foo/bar/test.r and then build2/foo/bar/test.r, you'll see :
# Using relativePaths=false
/absolute/path/to/src/foo/bar/test.p /absolute/path/to/inc/foo/test.i
# Using relativePaths=true
src/foo/bar/test.p inc/foo/test.i
With relativePaths=false, if you compile the same code in two different directories, you end up with different rcode (CRC and MD5 won't match). This can also be a problem when using TranMan : it's database contains either absolute or relative paths to file names, and if you have a different name, TranMan won't find the translation.
<typedef resource="types.properties" />
<PCTCompile destDir="build" dlcHome="${env.DLC}">
<fileset dir="src">
<include name="**/*.p"/>
<exclude name="test/**"/>
</fileset>
<propath>
<pathelement path="src/include"/>
</propath>
<chainedmapper>
<flattenmapper />
<rcodemapper /> <!-- Don't forget typedef declaration -->
</chainedmapper>
</PCTCompile>
Compiles every .p in src directory (and subdirs) except those from src/test, with PROPATH set to src/include, and put .r in build directory (removing any subdirectory reference), i.e. src/foo/bar.p
results in build/bar.r
<PCTCompile destDir="build" dlcHome="${env.DLC}">
<fileset dir="src" includes="**/*.p" />
<compositemapper>
<regexpmapper from="^(.*)\.p$$" to="\1renamed.r" />
<regexpmapper from="^(.*)\.t$$" to="triggers/\1.r" />
</compositemapper>
</PCTCompile>
Compiles every .p in src directory (and subdirs), and apply a regexp for resulting file : any .p file results in a .r file appended with renamed, and any .t file results in .r file compiled in triggers directory.
<PCTCompile numThreads="4" destDir="build" dlcHome="${env.DLC}">
<fileset dir="src" includes="**/*.p,**/*.w" />
<DBConnection dbName="sports" dbDir="target/db" readOnly="true" />
</PCTCompile>
Compiles every .p and .w in src directory (and subdirs), with 4 compilation threads, connected to sports database in read-only mode (no need for a database broker).
- QuickStart
- Changelog
- InstallDocumentation
- FAQ
-
Tasks
- PCT
- DlcHome
- PCTRun
- PCTDynRun
- PCTCompile
- PCTWSComp
- PCTCreateDatabase
- Sports2000
- PCTDumpSchema
- PCTDumpSequences
- PCTLoadSchema
- PCTIncrementalDump
- PCTBinaryDump
- PCTBinaryLoad
- PCTDumpData
- PCTLoadData
- PCTSchemaDoc
- PCTLibrary
- PCTProxygen
- PCTXCode
- ProgressVersion
- PCTVersion
- ClassDocumentation
- HtmlDocumentation
- XMLDocumentation
- JsonDocumentation
- ABLDuck
- OEUnit
- ABLUnit
- RestGen
- AssemblyCatalog
- Types