- ParaView Guide, Chapters 18, 19 and 21
- Within the ParaView source
- Examples/Plugins/ – starter examples
Thanks Mathieu for your guidance. I have successfully built the MyElevationFilter plugin example, and I guess the next step is to click “Build Solution” to generate .dll file?
I always build with Ninja-build on windows so I’m not sure.
If you’ve successfully built the example, then you already should have a loadable .dll file in the build dir.
That’s the problem, I did build the example but found the .dll file nowhere. I’m wondering if I had missed any procedures.
make sure that you have enabled the plugin in cmake-gui
Yes. Is it because this filter is included in VTK(I’m able to load it in ParaView client by loading the Elevation.xml in paraview source) and so it need not to generate a .dll?
Yes, but it should still generate a loadable dll as well.
Ok, maybe this isn’t a paraview issue, I will look into that.
Hello Mathieu, I think the problem got fixed, however not in an elegant way. The solution is to manually set cmake var BUILD_SHARED_LIBS to ON in the top level CMakeLists.txt. Like this:
Then the build project will generate .dll file correctly as I wish. The keynote turn out to be that once a Plugin gets built as a solo project, instead of part of the ParaView project, this cmake var will be disabled somehow(it doesn’t appear on CMake GUI variables lists anyway). Maybe there is another way for paraview to fix this, but this just works.
And I found another topic quite similar to mine——Build a plugin from examples.
Indeed, and that is the case with all the plugin example in ParaView.
I remember talking about that with @ben.boeckel and this solution was the one that was considered ok at the time.
That’s just the default behavior of CMake projects.
BUILD_SHARED_LIBS is the variable controlling it, CMake sets up no default for it, and that means it is “off” and you get static by default.
ParaView can’t fix this because
find_package(anything) should not be making these decisions for consumers.
That makes sense, cmake var BUILD_SHARED_LIBS is not exclusive to paraview, users should be in control of it.