option(STORM_COMPILE_WITH_CCACHE"Compile using CCache [if found]"ON)
option(STORM_COMPILE_WITH_CCACHE"Compile using CCache [if found]"ON)
mark_as_advanced(STORM_COMPILE_WITH_CCACHE)
mark_as_advanced(STORM_COMPILE_WITH_CCACHE)
option(STORM_LOG_DISABLE_DEBUG"Disable log and trace message support"OFF)
option(STORM_LOG_DISABLE_DEBUG"Disable log and trace message support"OFF)
option(STORM_USE_CLN_EA"Sets whether CLN or GMP numbers should be used for exact arithmetic."OFF)
option(STORM_USE_CLN_RF"Sets whether CLN or GMP numbers should be used for rational functions."ON)
option(STORM_USE_CLN_EA"Sets whether CLN instead of GMP numbers should be used for exact arithmetic."OFF)
export_option(STORM_USE_CLN_EA)
option(STORM_USE_CLN_RF"Sets whether CLN instead of GMP numbers should be used for rational functions."ON)
export_option(STORM_USE_CLN_RF)
option(BUILD_SHARED_LIBS"Build the Storm library dynamically"OFF)
option(BUILD_SHARED_LIBS"Build the Storm library dynamically"OFF)
set(BOOST_ROOT""CACHESTRING"A hint to the root directory of Boost (optional).")
set(BOOST_ROOT""CACHESTRING"A hint to the root directory of Boost (optional).")
set(GUROBI_ROOT""CACHESTRING"A hint to the root directory of Gurobi (optional).")
set(GUROBI_ROOT""CACHESTRING"A hint to the root directory of Gurobi (optional).")
@ -397,6 +399,8 @@ else()
endif()
endif()
message(STATUS"Storm - version is ${STORM_VERSION_MAJOR}.${STORM_VERSION_MINOR}.${STORM_VERSION_PATCH} (${STORM_VERSION_COMMITS_AHEAD} commits ahead of tag), building from git: ${STORM_VERSION_GIT_HASH} (dirty: ${STORM_VERSION_DIRTY}).")
message(STATUS"Storm - version is ${STORM_VERSION_MAJOR}.${STORM_VERSION_MINOR}.${STORM_VERSION_PATCH} (${STORM_VERSION_COMMITS_AHEAD} commits ahead of tag), building from git: ${STORM_VERSION_GIT_HASH} (dirty: ${STORM_VERSION_DIRTY}).")
throwstorm::exceptions::WrongFormatException("Error while creating sparse matrix from JANI model: found deadlock state and fixing deadlocks was explicitly disabled.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Error while creating sparse matrix from JANI model: found deadlock state and fixing deadlocks was explicitly disabled.");
// Skip on purpose; Error is produced in the generated code to provide better diagnostics.
//STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error while creating sparse matrix from JANI model: found deadlock state and fixing deadlocks was explicitly disabled.");
STORM_LOG_THROW(this->hasDefaultValue,storm::exceptions::IllegalFunctionCallException,"Unable to set value from default value, because the argument has none.");
STORM_LOG_THROW(this->hasDefaultValue,storm::exceptions::IllegalFunctionCallException,"Unable to set value from default value, because the argument "<<name<<"has none.");
STORM_LOG_THROW(result,storm::exceptions::IllegalArgumentValueException,"Unable to assign default value to argument, because it was rejected.");
STORM_LOG_THROW(result,storm::exceptions::IllegalArgumentValueException,"Unable to assign default value to argument"<<name<<", because it was rejected.");
default:STORM_LOG_THROW(false,storm::exceptions::IllegalFunctionCallException,"Unable to retrieve argument value as unsigned integer.");break;
default:STORM_LOG_THROW(false,storm::exceptions::IllegalFunctionCallException,"Unable to retrieve argument value for "<<name<<"as unsigned integer.");break;
this->addOption(storm::settings::OptionBuilder(moduleName,prismCompatibilityOptionName,false,"Enables PRISM compatibility. This may be necessary to process some PRISM models.").setShortName(prismCompatibilityOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,prismCompatibilityOptionName,false,"Enables PRISM compatibility. This may be necessary to process some PRISM models.").setShortName(prismCompatibilityOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,"","If given, the loaded model will be written to the specified file in the dot format.")
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,"","If given, the loaded model will be written to the specified file in the dot format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportJaniDotOptionName,"","If given, the loaded jani model will be written to the specified file in the dot format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportExplicitOptionName,"","If given, the loaded model will be written to the specified file in the drn format.")
this->addOption(storm::settings::OptionBuilder(moduleName,exportExplicitOptionName,"","If given, the loaded model will be written to the specified file in the drn format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","the name of the file to which the model is to be writen.").build()).build());
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","the name of the file to which the model is to be writen.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,explicitOptionName,false,"Parses the model given in an explicit (sparse) representation.").setShortName(explicitOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,explicitOptionName,false,"Parses the model given in an explicit (sparse) representation.").setShortName(explicitOptionShortName)
@ -65,6 +69,7 @@ namespace storm {
this->addOption(storm::settings::OptionBuilder(moduleName,prismToJaniOptionName,false,"If set, the input PRISM model is transformed to JANI.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,prismToJaniOptionName,false,"If set, the input PRISM model is transformed to JANI.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,jitOptionName,false,"If set, the model is built using the JIT model builder.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,jitOptionName,false,"If set, the model is built using the JIT model builder.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,fullModelBuildOptionName,false,"If set, include all rewards and labels.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,fullModelBuildOptionName,false,"If set, include all rewards and labels.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,buildChoiceLabelOptionName,false,"If set, include choice labels").build());
this->addOption(storm::settings::OptionBuilder(moduleName,noBuildOptionName,false,"If set, do not build the model.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,noBuildOptionName,false,"If set, do not build the model.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,propertyOptionName,false,"Specifies the properties to be checked on the model.").setShortName(propertyOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,propertyOptionName,false,"Specifies the properties to be checked on the model.").setShortName(propertyOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("property or filename","The formula or the file containing the formulas.").build())
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("property or filename","The formula or the file containing the formulas.").build())
// Ensure that not two explicit input models were given.
// Ensure that not two explicit input models were given.
STORM_LOG_THROW(!isExplicitSet()||!isExplicitDRNSet(),storm::exceptions::InvalidSettingsException,"Explicit model ");
STORM_LOG_THROW(!isExplicitSet()||!isExplicitDRNSet(),storm::exceptions::InvalidSettingsException,"Explicit model ");
STORM_LOG_THROW(!isExportJaniDotSet()||isJaniInputSet(),storm::exceptions::InvalidSettingsException,"Jani-to-dot export is only available for jani models");
// Ensure that the model was given either symbolically or explicitly.
// Ensure that the model was given either symbolically or explicitly.
STORM_LOG_THROW(!isJaniInputSet()||!isPrismInputSet()||!isExplicitSet()||!isExplicitDRNSet(),storm::exceptions::InvalidSettingsException,"The model may be either given in an explicit or a symbolic format (PRISM or JANI), but not both.");
STORM_LOG_THROW(!isJaniInputSet()||!isPrismInputSet()||!isExplicitSet()||!isExplicitDRNSet(),storm::exceptions::InvalidSettingsException,"The model may be either given in an explicit or a symbolic format (PRISM or JANI), but not both.");