Purpose

SystemRequirementsCheck is a convenience macro supporting application builders. It checks for resources needed by an application.

It is designed to replace script components which perform resource checks.

This includes checks for

  • operating systems (Windows, Linux, macOS)
  • 32/64 bitness
  • the compiler the application is built with (vc, gcc, clang)
  • OpenGL version
  • Debug/Release mode
  • number of cores, virtual and physical processors as well as cpu type and vendor ids
  • existance, readability, writability and sufficient capacity in directories or disks
  • and main, GPU and texture memory sizes

The amounts of available resources as well as many useful other settings (e.g. application directories) are displayed as fields to simplify their usage in application networks.

A human readable report is generated which can easily be logged as ML error with a notify field.

Windows

Default Panel

../../../Projects/SystemRequirementCheck/Modules/mhelp/Images/Screenshots/SystemRequirementsCheck._default.png

Parameter Fields

Visible Fields

Operating System

name: operatingSystem, type: String, persistent: no

Shows the operating system on which the application runs.

Allowed On Windows

name: allowedOnWindows, type: Bool, default: TRUE

If enabled then it is okay that this application runs on a Windows operating system.

Allowed On Mac OS

name: allowedOnMacOS, type: Bool, default: TRUE

If enabled then it is okay that this application runs on a macOS operating system.

Allowed On Linux

name: allowedOnLinux, type: Bool, default: TRUE

If enabled then it is okay that this application runs on a Linux operating system.

Allowed On Any System

name: allowedOnAnySystem, type: Bool, default: FALSE

If enabled then it is okay that this application runs on any operating system.

Bitness

name: bitness, type: String, default: 32

Shows the main word width in bits of the operating system.

Allowed on 32 bit

name: allowedOn32Bit, type: Bool, default: TRUE

If enabled then it is okay that this application runs on a 32 bit operating system.

Allowed on 64 bit

name: allowedOn64Bit, type: Bool, default: TRUE

If enabled then it is okay that this application runs on a 64 bit operating system.

Compiler

name: compiler, type: String, persistent: no

Shows the compiler which was used to build this application.

Allowed On GCC

name: allowedOnGCC, type: Bool, default: TRUE

If enabled then it is okay that a gcc compiler has built this application.

Allowed On Clang

name: allowedOnClang, type: Bool, default: TRUE

If enabled then it is okay that a clang compiler has built this application.

Allowed On VC

name: allowedOnVC, type: Bool, default: TRUE

If enabled then it is okay that a VisualStudio compiler has built this application.

Compile Mode

name: compileMode, type: String, persistent: no

Displays in which mode the application was compiled, for example ‘Debug’ or ‘Release’.

Allowed On Debug

name: allowedOnDebug, type: Bool, default: TRUE

If enabled then it is okay that this application runs in debug mode.

Allowed On Release

name: allowedOnRelease, type: Bool, default: TRUE

If enabled then it is okay that this application runs in release mode.

Open GLVersion

name: openGLVersion, type: String, persistent: no

Shows the identification string of the OpenGL version.

Required Open GLVersion Expression

name: requiredOpenGLVersionExpression, type: String, default: .*

A regular expression which must match the OpenGL version.

Open GLVendor

name: openGLVendor, type: String, persistent: no

Shows the identification string of the OpenGL vendor.

Required Open GLVendor Expression

name: requiredOpenGLVendorExpression, type: String, default: .*

A regular expression which must match the OpenGL vendor.

Number Of Cores

name: numberOfCores, type: Integer, persistent: no

Shows the number of available cpu cores.

Required Number Of Cores

name: requiredNumberOfCores, type: Integer, default: 1, minimum: 1

The number of required cpu cores.

Number Of Physical Processors

name: numberOfPhysicalProcessors, type: Integer, persistent: no

Shows the number of available physical processors.

Required Number Of Physical Processors

name: requiredNumberOfPhysicalProcessors, type: Integer, default: 1, minimum: 1

The number of required physical processors.

Number Of Virtual Processors

name: numberOfVirtualProcessors, type: Integer, persistent: no

Shows the number of available virtual processors.

Required Number Of Virtual Processors

name: requiredNumberOfVirtualProcessors, type: Integer, default: 1, minimum: 1

The number of required virtual processors.

Cpu Vendor Id

name: cpuVendorId, type: String, persistent: no

Shows the identification string of the CPU vendor.

Required Cpu Vendor Id Expression

name: requiredCpuVendorIdExpression, type: String, default: .*

A regular expression which must match the identification string of the CPU vendor.

Cpu Model Id

name: cpuModelId, type: String, persistent: no

Shows the identification string of the CPU model.

Required Cpu Model Id Expression

name: requiredCpuModelIdExpression, type: String, default: .*

A regular expression which must match the identification string of the CPU model.

Directory1

name: directory1, type: String

Directory which must exist, be rewritable and where at least ‘Min Mio. Free Bytes 1’ must be available (or empty for no checks).

Min Mio. Free Bytes 1

name: minRequiredDiskSpace1InMioBytes, type: Integer, default: 0, minimum: 0

The number of free mio. bytes needed in directory1 (or 0 for no check).

Directory2

name: directory2, type: String

Directory which must exist, be rewritable and where at least ‘Min Mio. Free Bytes 2’ must be available (or empty for no checks).

Min Mio. Free Bytes 2

name: minRequiredDiskSpace2InMioBytes, type: Integer, default: 0, minimum: 0

The number of free mio. bytes needed in directory2 (or 0 for no check).

Directory3

name: directory3, type: String

Directory which must exist, be rewritable and where at least ‘Min Mio. Free Bytes 3’ must be available (or empty for no checks).

Min Mio. Free Bytes 3

name: minRequiredDiskSpace3InMioBytes, type: Integer, default: 0, minimum: 0

The number of free mio. bytes needed in directory3 (or 0 for no check).

Physical System Memory

name: physicalSystemMemory, type: Integer, persistent: no

Shows the amount of available physical system memory in MB.

Required Physical System Memory

name: requiredPhysicalSystemMemory, type: Integer, default: 4096, minimum: 1

The amount of required physical system memory in MB.

Gpu Memory

name: gpuMemory, type: Integer, persistent: no

Shows the amount of available gpu memory in MB.

Required GPUMemory

name: requiredGPUMemory, type: Integer, default: 1024, minimum: 1

The amount of required gpu memory in MB.

Texture Memory

name: textureMemory, type: Integer, persistent: no

Shows the amount of available texture memory in MB.

Required Texture Memory

name: requiredTextureMemory, type: Integer, default: 1024, minimum: 1

The amount of required texture memory in MB.

Common MeVis App Data Dir

name: commonMeVisAppDataDir, type: String, persistent: no

Shows MLABFileManager.getCommonMeVisAppDataDir().

Home Dir

name: homeDir, type: String, persistent: no

Shows MLABFileManager.getHomeDir().

Local Application Caches Directory

name: localApplicationCachesDirectory, type: String, persistent: no

Shows MLABFileManager.getLocalApplicationCachesDirectory().

Local Application Support Directory

name: localApplicationSupportDirectory, type: String, persistent: no

Shows MLABFileManager.getLocalApplicationSupportDirectory().

User Application Caches Directory

name: userApplicationCachesDirectory, type: String, persistent: no

Shows MLABFileManager.userApplicationCachesDirectory().

User Application Support Directory

name: userApplicationSupportDirectory, type: String, persistent: no

Shows MLABFileManager.getUserApplicationSupportDirectory().

Test Passed

name: testPassed, type: Bool, persistent: no

Enabled if all system resources are sufficient or disabled otherwise.

Log check failures as ML error

name: logCheckFailures, type: Trigger

If the report contains any messages about missing resources and this button is triggered then an ML error is logged with the content of the report.

Report

name: report, type: String, persistent: no

Shows a human readable result of all performed checks.