Hi, I have followed the following steps to build superbuild:
Install Visual Studio 2019 community with all C++ related tools
Install cmake
Install git bash
Install Ninja
I thought I won’t have to install Qt (which is one of the reason to use Superbuild), but without installing Qt I was getting error that Qt5 Dir and Qt5-cmake not found so then I installed Qt
Install Qt 5.15.2 VS2019 (had to add Qt cmake directory path in cmake Qt_Dir)
then I did:
In my Cmake I don’t find USE_SYSTEM_qt options, did I miss something?
I want to create a binary of my custom application and don’t want my user to install Qt or other dependency. So what should I do.
I cinfigure and generate. After this I run ninja. The build is successful, but when I open paraview app which is in:
C:\Users\msaad\pv-build\superbuild\paraview\build\bin
i get errors. But if I open paraview app in C:\Users\msaad\pv-sup-build\install\bin it works, why are there multiple version?
I did ENABLE_qt5 = ON in cmake_gui (which I opened from VS Native Command x64). But even then it was giving me error that Qt5 Dir and Qt5-cmake not found, so I had to install Qt5 on my system for that.
And even with ENABLE_qt5 I could not see USE_SYSTEM_qt option.
Am I doing something wrong?
Yeah I did that. But then once I build my application binaries and distribute them I don’t want my customers to install Qt and other dependencies (same as when I download Paraview’s binary I don’t have to install anything), how can I do that?
Perfect, thanks!
One more question, I think because I created two different question threads it’s confusing me
So just using the simpleparaview superbuild example is enough to generate our own binaries, but in this thread we are talking about building superbuild ourselves on the machine (which is not needed if our goal to create and distribute binaries of our application) so why should one build superbuild on their machines ?
The superbuild is intended to be used for creating redistributable binaries. For ParaView, we have the superbuild repo.
Then paraview-based applications can reuse most of this. The simple pv is an example of how to do that.
Those projects should be build somewhere to get the binaries: either on a CI or on a local machine. And doing that on a local machine make it easier at first place while work is in progress and debug is needed.
Sorry. I got confused. So what I was saying was that do I not need to build paraview-superbuild on my machine and directly use simple pv example and replace simple-paraview with my application. But it wasn’t making sense
Thank you! So now I would not build paraview-superbuild on my machine and directly use simple-pv example (and it would take care of everything like paraview source code itself etc). Is this correct?
But if this is correct, the only question remains is that would I be able to test my application without building paraview-superbuild on my machine?
To create redistributable binaries: just use a modified version of paraview-based-superbuild-example, this will do all the necessary stuff including download and build paraview itself.
To test and develop a ParaView based application, you need a build version of ParaView, but not necessary from the superbuild. You can just manually install the required dependency and build the ParaView project (see instructions )
So if I use the simple pv example to test it does work but after installation of the binary file of simple pv it creates a bin folder in simpleParaview folder which has all the dll and other paraview files, is there a way to not expose those files to the user.
In short is there a way for user to only access the Application and not the other files?
And secondly, while creating the binary this way, does it link Qt dynamically or statically?
To avoid the whole dll list, you should build in static.
But note I’m not sure that you can have Qt statically, because to do that you will need to rebuild Qt and as we stated before, it is not supported in our superbuild on windows.
That makes sense, and yes I would also want to dynamically link Qt.
But I can also see vtk dll files, and it also builds the complete paraview application. Why is complete paraview app also generated?
Hi, So I am trying to create a redistributable binary for my custom application.
What are the steps I should follow to create the redistributable binaries?
The way I am doing it is to clone the Super Build Example and then make changes to it. For now I am trying to build clone 1 example instead of simple-paraview example given in super build example.
And then make the following changes:
In projects/unix I changed the file name to clone1.bunble.cmake
set the default projects: set(superbuild_defaultclone1 ON)
In versions.cmake changed the superbuild_set_version name from simpleparaview to clone1, also changed the URL and URL_MD5
Change the file names.
But right at the end of the build I get this error:
CMake Error at CMakeLists.txt:78 (message):
Failed to find the VTK CMake directory. Did you forget to initialize the
submodule? (git submodule update --init --recursive)
-- Configuring incomplete, errors occurred!
CMake Error at C:/Users/msaad/build_clone/pvsb/superbuild/sb-clone1-configure.cmake:47 (message):
Failed with exit code 1
ninja: build stopped: subcommand failed.