Pointwise Plugin SDK
Building a CAE Plugin

<prev | main page

For these instructions to be valid, you must have followed the steps in Create a Plugin Project.

Building on Microsoft Windows Using Visual Studio

  • Open the .../PluginSDK/PluginSDK_vs2015.sln solution file.
  • Add the plugin project's .vcxproj file created by mkplugin to the solution if needed. For example, the plugins's .vcxproj file will be similar to .../PluginSDK/src/plugins/CaeUnsMyExporter/CaeUnsMyExporter.vcxproj or .../PluginSDK/src/plugins/GrdpMyImporter/GrdpMyImporter.vcxproj.
  • Set the build type to Debug or Release.
  • Build the solution (menu Build/Build Solution).

Fidelity Pointwise is compiled using Visual Studio 2017. To avoid compatability issues, plugins should also be compiled with the same version of Visual Studio. Using other compilers is untested and unsupported.

Building on Unix and Mac OSX Using gmake

  • Change the working directory to the .../PluginSDK folder.
  • run gmake machine=M BUILD=Release to build plugins for release.
  • run gmake machine=M BUILD=Debug or gmake machine=M to build plugins for debug (the default).

In the commands above, M represents one of the supported platforms. At this time, M is one of:

  • linux_x86_64 - 64-bit linux-based OS
  • macosx - Mac OSX

If you want, gmake will use environment variables to control the build. Run gmake BUILD=help to see build usage information.

Building on Mac OSX Using XCode

At this time, there is no "quick" way to build the plugins on OSX using xcode. If you want to use XCode, you will need to manually create a project to build the plugins.

General Build Information

On all platforms, the binary files generated during a build are created in the locations listed below. These folders are emptied by the "clean" build targets.

  • .../PluginSDK/src/<platform>/<build>/ - Object file (.o, .obj) location.
  • .../PluginSDK/dist/<platform>/ - The release plugin file (.dll, .so, dylib) location.
  • .../PluginSDK/dist/<platform>/debug/ - The debug plugin file (.dll, .so, dylib) location.

To facilitate the development of plugins, the SDK build system supports two environment variables.

  • PW_RUNTIME_ROOT
  • PWI_PLUGINS_SEARCH_PATH.

The PW_RUNTIME_ROOT environment variable

If your user account has write permissions in the Fidelity Pointwise installation that you will use for testing your plugin, you should define the PW_RUNTIME_ROOT environment variable.

PW_RUNTIME_ROOT identifies the root path to your Fidelity Pointwise installation. Defining PW_RUNTIME_ROOT allows the build system to automatically copy your new plugins to the Fidelity Pointwise installation for testing. The plugin is only copied if the build is successful.

The PW_RUNTIME_ROOT path should refer to the folder that contains the Fidelity Pointwise installation's plugins folder. Typical PW_RUNTIME_ROOT paths would be similar to the following examples.

  • win64 - c:/Program Files (x86)/Pointwise/win64/
  • linux_x86_64 - /home/<username>/Pointwise/Pointwise<version>/linux_x86_64/
  • macosx - /home/<username>/Pointwise/Pointwise<version>/macosx/Pointwise.app/Contents/

On linux_x86_64 and macosx platforms, you can use make install_validate to test the PW_RUNTIME_ROOT setting.

The PWI_PLUGINS_SEARCH_PATH environment variable

If you cannot use the PW_RUNTIME_ROOT environment variable, you can set the PWI_PLUGINS_SEARCH_PATH environment variable. PWI_PLUGINS_SEARCH_PATH controls the locations that Fidelity Pointwise uses to load plugins.

PWI_PLUGINS_SEARCH_PATH is a delimited list of folder ids and paths. At startup, these paths are searched in the order specified. Any plugins found are loaded. If there are any loading conflicts, the first plugin found will be loaded. Any subsequent, conflicting plugins will be ignored.

  • PWI_PLUGINS_SEARCH_PATH=[{@FolderId|Folder}{Delimiter}]...

where,

  • FolderId - One of the standard folder ids preceeded by the @ char. Typically, the PrivatePlugins or PublicPlugins folder id is used. However, any valid folder id will be accepted. Use @ by itself or @AppPlugins to include the plugins shipped with PW. (@ is shorthand for @AppPlugins). Invalid folder ids are silently ignored. To see the full list of valid folder ids run the Ctrl-0/Show Installation Info tool from within Fidelity Pointwise.
  • Folder - An explicit folder path. Invalid paths are silently ignored.
  • Delimiter - The character used to delimit multiple paths. On win64, use the semicolon (;) as the delimiter. On linux_x86_64 and macosx, use the colon (:) as the delimiter.

Example plugin search path settings (win64):

  • @PublicPlugins;@PrivatePlugins;@AppPlugins
    • Load plugins from the PublicPlugins folder, followed by the PrivatePlugins folder, and finally, the AppPlugins folder.
  • @PublicPlugins;@PrivatePlugins;@
    • Same as previous example except for using the shorthand @AppPlugins id.
  • h:/path/to/plugins;@;c:/another/path/to/plugins
    • Load plugins from the h:/path/to/plugins folder, followed by plugins from the AppPlugins folder, and finally, plugins from the c:/another/path/to/plugins folder.

Example plugin search path settings (linux_x86_64, macosx):

  • @PublicPlugins:@PrivatePlugins:@AppPlugins
    • Load plugins from the PublicPlugins folder, followed by the PrivatePlugins folder, and finally, the AppPlugins folder.
  • @PublicPlugins:@PrivatePlugins:@
    • Same as previous example except for using the shorthand @AppPlugins id.
  • /path/to/plugins:@:/another/path/to/plugins
    • Load plugins from the /path/to/plugins folder, followed by plugins from the AppPlugins folder, and finally, plugins from the /another/path/to/plugins folder.

By default, Fidelity Pointwise only loads plugins from the AppPlugins folder (equivalent to PWI_PLUGINS_SEARCH_PATH=@).

<prev | main page