[CMake] integrating with installshield

Eric Noulard eric.noulard at gmail.com
Mon Mar 22 13:34:39 EDT 2010


2010/3/22 Tyler Roscoe <tyler at cryptio.net>:
> I have a lot of complaints about Installshield, but I'll spare you the
> whinging and just say that I need to generate Installshield setups at
> the end of our CMake build. I am considering some options and was
> wondering if anyone else has experience with this.
>
> Currently, our build process is driven by a python script. I'm working
> on replacing this python script with a CTest script that also
> communicates with CDash, which is why I'm revisiting the Installshield
> question. The python script calls the Installshield standalone builder
> executable with arguments for the Installshield project file (generated
> separately using the Installshield IDE) and the directory containing the
> results of the CMake build.

[...]

> OPTION 3:
> I could try to add an Installshield generator type to CPack. I suspect
> this is more work than I can/should take on right now,

I would say that if your current process is to:

1) launch some command the "Installshield standalone builder"
2) using "with arguments for the Installshield project file (generated
separately using the Installshield IDE)"
3) on directory containing the results of the CMake build

The OPTION3 must not be that hard to implement.


> plus it wouldn't be as featureful as the other CPack generators,

May be the "full-featureness" is not a good initial objective?

> plus the Installshield folks might cry "licensing foul!".

Why do you mean? Would you be outlaw if you implement CPack
InstallShield generator.

> But maybe if it's easier than I think
> this could be a good solution, and more useful to the community at
> large?

I'm not a big fan of install shield myself but adding more CPack generator
could definitely please many people.

> Any experience with these or other approaches would be appreciated.

I did implement the very first version of CPack RPM generator using
only CMake macros
http://www.cmake.org/Wiki/CMakeUserUseRPMTools

which essentially does some configure_file for generating the input file
(same as your Installshield project file)
for rpmbuild (same as your "Installshield standalone builder")
working on CMake build tree :-)

It was working pretty OK but add to be called by "make rpm_package" and
not "make package".

Then I did implement CPack RPM generator, but I kept most of the logic
inside a CMake macro file: CPackRPM.cmake.
The C++ part  of the generator does basically nothing beside sourcing the
"CPackRPM.cmake".

The initial CPackRPM generator was done in something like 2 days with
the help of responsive CMake developers.

The initial version of CPackRPM generator had even less feature than
the previous macros version. More features are coming from day to day
on spare time and because CMake users seems to use it.

My opinion: may be it's worth trying for Install Shield.


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list