Copy link to clipboard
Copied
I am trying to build a simple plugin using a cross-platform toolchain (CMake + vcpkg) so I can bring in third party dependencies, and build them on macOS and Windows.
Unfortunately, it doesn't load, and no log messages indicate why.
Debugging steps:
0. Analyse DLL (.prmp) using modern Dependency Walker;
1. Ensure both static builds and shared builds work successfully
2. Remove all custom compiler things which could cause issues (rewrote everything but the ExportController itself in C89… including with the stricted compiler flags);
3. Use same compiler flags as MSVC (reverse engineered from your example project);
4. Refactor approach so everything but the ExportController is runnable without Premiere Pro, so that testing (& other use-cases) can happen independently (also tested on Linux);
5. Running with debug symbols the Premiere Pro executable from Visual Studio, clicking through, and nothing relevant appears in the "File->Export" menu once my project is opened;
6. Checked "%AppData%\Adobe\Premiere Pro\15.0\Plugin Loading.log" which shows:
Loading from root path: C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore
Scanning for the following file types: *.prmp, *.prm, *.dll, *.aex, *.8bf
Begin PluginNameList::AddFolder C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore 11793.9
PluginNameList::AddFilePath - added "C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\common.dll" 11794.1
PluginNameList::AddFilePath - added "C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\pp-plugin.prmp" 11794.2
PluginNameList::AddFilePath - added "C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\versions.dll" 11794.2
PluginNameList::AddFilePath - added "C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\zlibd1.dll" 11794.3
Finished PluginNameList::AddFolder C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore 11794.3
Scanning C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore and sub-directories
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\common.dll
The registry tells us to cache so the plugin will be loaded from the cache.
The plugin is marked as Ignore, so it will not be loaded.
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\pp-plugin.prmp
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\versions.dll
The registry tells us to cache so the plugin will be loaded from the cache.
The plugin is marked as Ignore, so it will not be loaded.
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\zlibd1.dll
The registry tells us to cache so the plugin will be loaded from the cache.
The plugin is marked as Ignore, so it will not be loaded.
Finally, I cut it down to the bare bones and open-sourced it—to help others and—so you can replicate the setup (e.g., to run it on a debug build of Premiere Pro that isn't public):
https://github.com/SamuelMarks/premiere-pro-cmake-plugin
(then copy the built files to your plugin dir, e.g., by running this from your build directory: `md C:\PROGRA~1\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp && fd -edll -x cmd /c "copy {} C:\PROGRA~1\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp"`)
Can you please tell me what I'm doing wrong?
Thanks
As we've discussed before, starting from a working DevStudio sample project, then adding dependencies as needed (and testing after each add), is the right approach.
While it may/should be possible to cobble something together using cmake, doing so is not a supported development path.
[The fact that it's marked as "Ignore" suggests that, in previous launches, PPro has tried and failed to load that .dll]
Copy link to clipboard
Copied
As we've discussed before, starting from a working DevStudio sample project, then adding dependencies as needed (and testing after each add), is the right approach.
While it may/should be possible to cobble something together using cmake, doing so is not a supported development path.
[The fact that it's marked as "Ignore" suggests that, in previous launches, PPro has tried and failed to load that .dll]
Copy link to clipboard
Copied
Yes, but the plugin I wrote is not marked as ignore, only the shared libraries it depends upon:
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\samplepp\pp-plugin.prmp
Can you take a look at my build pipeline? - It's open-source and I expect it to be very useful to others that are trying to get started with cross-platform third-party dependent development with Premiere Pro.
Copy link to clipboard
Copied
> Can you take a look at my build pipeline?
Sorry, I have zero experience with CMake.
I've been supporting Premiere (before it was Pro) and AE plug-in partners since 1996; I don't know of any partner being unable to use the provided sample projects, to develop their plug-ins. You're welcome to continue your CMake-based experimentation, but we cannot assist you in those experiments.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now