I have a software with back end in C/C++ and front end in Java. It has dependencies such as gdal.
I have to package this entire software as a windows msi installer t
This is a big topic. It is essentially everything about deployment, and is hence impossible to answer. However, a couple of pointers:
1)
Pick a deployment tool (terse).
2)
Determine what runtime prerequisites you need for your application.
3)
Add the files for your own solution and install to a folder specific to your company and product %ProgramFiles%\MyCompany\MyApp\MyVersion
.4)
Test on all applicable platforms making sure to involve as many testers as possible (who are told and shown what to test). Use virtuals for clean testing.You will probably need one installer for your back-end components and another setup for the client installation.
I don't know what else to say. There is a lot to deployment beyond what many expect. It can get very complicated quickly (section "The Complexity of Deployment").