The reason for getting displayed always the
Compiler Options dialog is three missing
Settings in the configuration file:
Target,
Working Directory and
Command Line Arguments
It can be read in help of UEStudio on help page
[Settings] Compiler Section that these three keys must exist in group
[Settings]. Well, there must exist in real only
Target and there must be entered something for this setting in
Compiler Options dialog as otherwise it is not possible to create the
makefile with file name
ProjectName.mak in configured directory for
Debug or
Release build.
I read about
Papyrus Compiler and I think, the best solution for this specific compiler would be creating
- a user or project tool for compilation of active file in debug mode and
- one more user or project tool for compilation in release mode and
- one more user or project tool to run the file compiled from active file and
- perhaps one or two more user or project tools to compile all *.psc in directory of active file in release or debug mode.
There is no real need for a compiler configuration as there are not multiple source code files which need to be first compiled one after the other and finally linked together to an executable or dynamic linked library. But I have created nevertheless a configuration file which should work although not tested with really using the compiler and one or more .psc files added to active UEStudio project.
Code: Select all
# --------- Papyrus compiler configuration ---------
# --- general --------------------------------------
# $P - project name
# $Pp - path to project directory
# $Pn - project name
# --- compile --------------------------------------
# $I - input full name
# $Ip - input path
# $In - input name
# $Ie - input extension
# $O - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R - release/debug setting for compiler
# --- build ----------------------------------------
# $T - target full name
# $Tp - target path
# $Tn - target name
# $Te - target extension
# $O - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R - release/debug setting for linker
[Settings]
Target =
Category&01 = COMPILER CONFIGURATION
Skyrim Path = C:\skyrim
Compiler Options =
Final = no|yes
Flags File = TESV_Papyrus_Flags.flg
Optimize = no|yes
Quiet = no|yes
Release = no|yes
Category&02 = RUN CONFIGURATION
Working Directory = .
Command Line Arguments =
[SettingsInfo]
Target = Name of the project or anything else as not really used.
Skyrim Path = Define Skyrim directory path containing the folder 'Papyrus compiler' with the executable 'PapyrusCompiler.exe'.
Compiler Options = Papyrus compiler options on not using below options to configure the compiler options. Select value 'no' for compiler options defined here.
Final = This parameter tells the compiler to remove all 'BetaOnly' function calls from the script, optimizing it and reducing its size slightly. It is always used on release builds.
Flags File = This parameter specifies the flag (.flg) file to use for processing flag reference in the scripts. You'll almost always want this to be Institute_Papyrus_Flags.flg.
Optimize = This parameter tells the compiler to perform basic optimizations on the script. It is always used on release builds.
Quiet = Forces the compiler to be silent, only printing out any errors encountered. The options affects debug and release builds on having selected 'yes'.
Release = This parameter tells the compiler to remove all 'DebugOnly' function calls from the script, optimizing it and reducing its size slightly depending on how many you use. It is always used on release builds.
Working Directory = Provides a space for you to specify the directory in which executing occurs. If you do not specify a directory, executing occurs in the directory where the executable is located.
Command Line Arguments = Provides a space for you to the file name of the PEX file to execute (required) and additional command-line arguments (optional) to pass to the program at startup.
[SettingsReps]
Final = no=|yes=-final
Flags File = @-f="%s"
Optimize = no=|yes=-optimize
Quiet = no=|yes=-quiet
Release = no=|yes=-release
[Variables]
Compiler = PapyrusCompiler.exe
ImportDirectory = $(Skyrim Path)\data\source\scripts
OutputDirectory = $(Skyrim Path)\data\scripts
OptionsDebug = $(Final) $(Optimize) $(Release) $(Quiet)
OptionsRelase = -final -release -optimize $(Quiet)
OptionsGeneral = $(Compiler Options) -i="$(ImportDirectory)" -o="$(OutputDirectory)" $(Flags File)
[Environment]
PATH = $(Skyrim Path)\Papyrus compiler;%PATH%
[General]
TargetExt = .pex
ReleaseOut = Release
DebugOut = Debug
UseFullPaths = 1
UseDosNames = 0
RemoveDot = 0
ConvertBS = 0
[MakeCommands]
run = Execute Script
makef=Show Makefile
[FileGroups]
FGS = .psc;
[GroupFormats]
FGS0 = %s
FGS = + %s
[Build]
Out = $Tn
Depends = $FGS
ReleaseFlag = $(OptionsRelase)
DebugFlag = $(OptionsDebug)
Cmd0 = echo Compiled into folder: $(OutputDirectory)
Cmd1 = echo($FGS
[.PSC]
Out = $In$Te
ReleaseFlag = $(OptionsRelase)
DebugFlag = $(OptionsDebug)
Cmd0 = $(Compiler) "$I" $R $(OptionsGeneral)
[Execute Script]
Title = Execute script
Cmd0 = $(OutputDirectory)\$(Command Line Arguments)
Depends = $(OutputDirectory)\$In.pex
ShowWindow = 1
DisplayConsole = 1
[Show Makefile]
Title=Show makefile
Cmd0=uestudio.exe $(UESMAKEFILE)
ShowWindow=1
DisplayConsole=0
It is unusual to have import and output directory coded in the compiler configuration file which I named
Papyrus Executable in folder
Papyrus Compiler which I created in directory
configs in program files directory of UEStudio. It would be better in my opinion to use
Target to specify the output directory and let a user of this configuration file type the import directory in the compiler options dialog. However, I applied your configuration with some tweaks.
The make command
Execute script as defined in section
[Execute Script] works only with this unusual configuration if
Command line arguments in
Compiler Options dialog window starts with the name of one of the *.psc files in UEStudio project with file extension
.pex appended and optionally additional arguments. I think, it is better here to define a project tool to run the *.pex file according to active *.psc file instead of using make command
Execute script which requires modification of *.pex file name in
Compiler Options dialog window before execution on testing a different *.pex file created from one of the *.psc files of current project.