Jump to content

How to Build VI Packages which supports multiple Target Platforms ?

Recommended Posts

Considering the tools developer having multiple binaries (such as PPLs, Shared Libraries) built for different systems ranging from various LabVIEW versions, bitness (32 and/or 64) & OS.

A single Package may contain all the required resources to support multiple platforms.

But when being installed, only the platform dependent resources actually get installed leaving other resources untouched.


A great example for this kind of package is JKI Design Palette.

It supports LabVIEW versions from 2015 and beyond, even includes support for both 32 & 64 Bit versions.



Tried to replicate it with my package building, but to no avail.

While digging deeper I came across the following detail and came know - this is actually possible with the VIPM package building process,



But I couldn't find myself how to configure the VI Package Builder to do this.


It would be really helpful if there any documentation available to carry out this process with VIPM Package Builder.


Also check this post for PPL forward compatibility reference, 


Link to comment
Share on other sites

Hi @Mohammed Ashiq S,

My reply is going to be in multiple parts, since this is a long discussion and not all of the finer points are well documented.

You're right that VIPM's package format supports what you're trying to do, however the VI Package Builder does not directly expose all the features you'll need.

The good news, is that you can use a combination of pre-/post-build custom actions to do what you need.

One approach is to do the following:

1) Use a post-build custom action to temporarily "unpack" the package file (extract the package's contents to a folder, as it's a ZIP archive)

2) In the unpacked/extracted package folder, add the required multi-platform PPLs to the package and/or modify the package spec file to adjust it to have the desired settings.

3) Repack the package folder into the original package file location, so it can then be double-checked by the package builder and finalized.

Note that there are some tools for doing this (e.g. scattered around this forum), but they have not been officially released as a package.  I would be happy to assist in organizing these, so they are generally available and useful to the community.


  • Like 1
Link to comment
Share on other sites

  • 2 years later...

@Jim Kring Modifying the spec file appears to be prohibited due to a checksum. I don't see anything in your github above that supports this. How can we make the changes you talk about in step 2 above (modify the spec file) please?

(I need to solve the same problem: multiple ppls of differing bitness in one vip, using File Groups to declare their exclusive LabVIEW versioning)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.