Omc Run Options - openmpp/openmpp.github.io GitHub Wiki
Home > Model Development Topics > OpenM++ compiler arguments and options
This topic documents the arguments and options of the OpenM++ compiler (omc). These arguments and options are normally used indirectly by build system components shipped with OpenM++ for the supported development environments.
- Model Code
- File-based Parameter Values: Representing parameter values in files
- ini File Format
There are a number of options which control model compilation and publishing. The most frequently used are:
- model name
- input directory containing model .ompp or .mpp source files
- input directory with model parameters (a.k.a. "scenario" .dat files or parameters .csv files)
- input scenario name
The OpenM++ compiler (omc) gets run options in the following order:
- as command line arguments
- from options ini-file
- use default values
Following options are supported by omc command line:
-
-Omc.ModelName
name/of/model/executable, e.g. RiskPaths -
-Omc.ScenarioName
name/of/base/scenario, e.g. Base, it can be list of names -
-Omc.InputDir
input/dir/to/find/source/files -
-Omc.OutputDir
output/dir/to/place/model/cpp_and_h_and_sql/files -
-Omc.UseDir
use/dir/with/ompp/files -
-Omc.ParamDir
input/dir/to/find/parameter/files/for/scenario, it can be list of directories -
-Omc.FixedDir
input/dir/to/find/fixed/parameter/files/ -
-Omc.SqlDir
input sql/script/dir to create model SQLite database -
-Omc.SqliteDir
output directory to create model SQLite database -
-Omc.SqlPublishTo
create sql scripts to publish inSQLite,MySQL,PostgreSQL,MSSQL,Oracle,DB2
, default:SQLite
-
-Omc.CodePage
code page for converting source files, e.g. windows-1252 -
-Omc.MessageLanguage
language to display output messages, default: user environment settings -
-Omc.MessageFnc
localized message functions, default:LT,logMsg,logFormatted,WriteLogEntry,WarningMsg,ModelExit
-
-Omc.ModelDoc
generate human-readable model documentation (User Edition), default: false -
-Omc.InDocDir
input/dir/to/find/authored/model/documentation/files/ -
-Omc.OutDocDir
output directory to create model documentation files, e.g.:ompp/bin/doc
-
-Omc.NoLineDirectives
suppress #line directives in generated C++, default: false -
-Omc.NoMetadata
suppress production of model metadata (model cannot be run), default: false -
-Omc.TraceScanning
detailed tracing from scanner, default: false -
-Omc.TraceParsing
detailed tracing from parser, default: false -
-OpenM.IniFile
some/optional/omc.ini
Or you can use short form of command line arguments:
-
-m
short form of-Omc.ModelName
-
-s
short form of-Omc.ScenarioName
-
-i
short form of-Omc.InputDir
-
-o
short form of-Omc.OutputDir
-
-u
short form of-Omc.UseDir
-
-p
short form of-Omc.ParamDir
-
-f
short form of-Omc.FixedDir
-
-d
short form of-Omc.InDocDir
-
-ini
short form of-OpenM.IniFile
Each option has a unique key string associated with it, i.e.: Omc.InputDir
.
You can use this key to specify either as a command line argument or in an ini-file Section.Key entry. For example:
omc.exe -m RiskPaths -Omc.InputDir ../code -ini my-omc.ini
would compile model RiskPaths
source files: ../code/*.ompp
and ../../code/*.mpp
with some other options specified through my-omc.ini file.
Omc do compile model source *.ompp and *.mpp files and create model.sqlite database with parameter values from *.odat, *.dat, *.csv, *.tsv and *.md files:
omc.exe -m RiskPaths -i ../code -s Default -p ../parameters/Default
Command above will read *.odat, *.dat, *.csv, *.tsv and *.md files from ../parameters/Default
directory and create RiskPaths.sqlite
database with Default
input set of parameters (Default
scenario).
It is possible to create multiple input sets of parameters (multiple scenarios) when you are building the model:
omc.exe -m RiskPaths -i ../code -s Default,Other -p ../parameters/Default,../parameters/other/dir
Above command will create two input sets of parameters:
- scenario
Default
from *.dat, *.odat, *.csv, *.tsv and *.md files in../parameters/Default
directory - scenario
Other
from *.csv, *.tsv and *.md files in../parameters/other/dir
Please note that the second or subsequent scenario directory (if present) can contain only CSV or TSV and Markdown files and not .dat or .odat files.
For more information on specifying parameter values using .csv or .tsv files, please see the topic File-based Parameter Values.
For more information on specifying parameter values using .dat or .odat files, please refer to Modgen documentation.
To specify name of ini-file you can use -ini
or -OpenM.IniFile
command line option. Please see OpenM++ ini-file format to find out more.
Example of omc ini-file:
;
; This is an example of omc.ini options file
;
;
; Omc-specific options
;
[Omc]
;
; model name, it must be specified either on command line or here
; no default value
;
; ModelName = NewCaseBased
;
; name of default set of input parameters (a.k.a. base scenario data)
; it can be multiple names separated by comma or semicolon
;
; default = Default
;
; ScenarioName = Default
; ScenarioName = Default,Other,Test
;
; input directory to get source .ompp or .mpp files to compile
; default = current directory
;
; InputDir = ./code
;
; output directory to place generated .cpp and .h files for the model
; default = current directory
;
; OutputDir = ./src
;
; use directory to resolve 'use' statements
; default = directory/of/omc.exe/../use/
;
; UseDir = ../../use
;
; parameter directory to get source .dat or .csv files to publish a scenario
; it can be multiple directories separated by comma or semicolon
;
; default = Default
;
; ParamDir = ../parameters/Default
; ParamDir = ../parameters/Default,../parameters/Other/dir,../parameters/some/Test
;
; fixed directory to get source .dat files with fixed parameter values
; default = Fixed
;
; FixedDir = ../parameters/Fixed
;
; directory where common sql scripts located (used to create SQLite database)
; default = directory/of/omc.exe/../sql/
;
; SqlDir = ../../sql
;
; output directory to create model.sqlite database
; default: value of OutputDir (see above)
;
; SqliteDir = ./src
;
; database providers comma-separated list
; supported providers: SQLite,MySQL,PostgreSQL,MSSQL,Oracle,DB2
; default: SQLite
;
; SqlPublishTo = SQLite
;
; code page for converting source files into utf-8
; default on Linux: utf-8 (no conversion)
; default on Windows: current user code page, e.g.: windows-1252
;
; CodePage = windows-1252
; language to display output messages
; default: Windows Control Panel or Linux LANG
;
; messageLang = en-CA
;
; localized message functions
; first argument of the Function("const char * message",...) translated into other language
; by lookup in omc.message.ini where "message" = "translated message"
; default: LT,logMsg,logFormatted,WriteLogEntry,WarningMsg,ModelExit
;
; MessageFnc = LT,logMsg,logFormatted,WriteLogEntry,WarningMsg,ModelExit
; suppress #line directives in generated cpp files
; default: false
;
; NoLineDirectives = false
; dsuppress production of model metadata (model cannot be run)
; default: false
;
; NoMetadata = false
; detailed tracing from scanner
; default: false
;
; TraceScanning = false
; detailed tracing from parser
; default: false
;
; TraceParsing = false
; if true then generate model documentation
; default: false
;
; ModelDoc = false
; input directory to find authored model documentation files
; default: ../doc
;
; InDocDir = ../doc
; output directory to create model documentation files
; default: $(TARGET_DIR)/doc
;
; OutDocDir = ompp/bin/doc
;
; Common openM++ run options supported by omc
;
[OpenM]
;
; log settings:
; log can be enabled/disabled for 3 independent streams:
; console - cout stream
; "last run" file - log file with specified name, truncated on every compiler run
; "stamped" file - log file with unique name, created for every compiler run
;
; "stamped" name produced from "last run" name by adding time-stamp and pid-stamp, i.e.:
; omc.log => omc.2012_08_17_16_04_59_148.1234.log
;
LogToConsole = true ; log to console
LogNoMsgTime = true ; if true then do not prefix log messages with date-time
; LogToFile = false ; log to file
; LogToStampedFile = false ; log to "stamped" file
; LogUseTimeStamp = false ; use time-stamp in log "stamped" file name
; LogUsePidStamp = false ; use pid-stamp in log "stamped" file name
; LogFilePath = omc.log ; log file path, default = current/dir/omc.log
; LogSql = false ; debug only: log sql statements (reserved, but not used by omc)