SystemRequirementsCheck

MacroModule

genre

Analysis

author

Wolf Spindler

package

FMEstable/ReleaseMeVis

definition

SystemRequirementsCheck.def

see also

SystemInfo, CoreControl, RuntimeView

keywords

check, verify, analyze, analyse, operating, system, compiler, bitness, memory, requirements, gpu, cpu, ram, cores, needed, texture

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

Field Index

Allowed on 32 bit: Bool

Directory1: String

Physical System Memory: Integer

Allowed on 64 bit: Bool

Directory2: String

Report: String

Allowed On Any System: Bool

Directory3: String

Required Cpu Model Id Expression: String

Allowed On Clang: Bool

Gpu Memory: Integer

Required Cpu Vendor Id Expression: String

Allowed On Debug: Bool

Home Dir: String

Required GPUMemory: Integer

Allowed On GCC: Bool

Local Application Caches Directory: String

Required Number Of Cores: Integer

Allowed On Linux: Bool

Local Application Support Directory: String

Required Number Of Physical Processors: Integer

Allowed On Mac OS: Bool

Log check failures as ML error: Trigger

Required Number Of Virtual Processors: Integer

Allowed On Release: Bool

Min Mio. Free Bytes 1: Integer

Required Open GLVendor Expression: String

Allowed On VC: Bool

Min Mio. Free Bytes 2: Integer

Required Open GLVersion Expression: String

Allowed On Windows: Bool

Min Mio. Free Bytes 3: Integer

Required Physical System Memory: Integer

Bitness: String

Number Of Cores: Integer

Required Texture Memory: Integer

Common MeVis App Data Dir: String

Number Of Physical Processors: Integer

Test Passed: Bool

Compile Mode: String

Number Of Virtual Processors: Integer

Texture Memory: Integer

Compiler: String

Open GLVendor: String

User Application Caches Directory: String

Cpu Model Id: String

Open GLVersion: String

User Application Support Directory: String

Cpu Vendor Id: String

Operating System: String

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.