I\'m not talking about making portable code. This is more a question of distribution. I have a medium-sized project. It has several dependencies on common libraries (eg opens
Use autotools, most users are familiar with them (i.e. they know to run ./configure && make && make install)
For Linux/Unix/Cygwin, do not provide installers... source tar.gz is more then fine. In any case each Linux distribution has its own packaging rules and most of them know to to use autoconf builds, users may have 32 or 64 bit systems or even run over PPC or Sparc - so don't bother.
Maybe it worth to create one deb or rpm for most popular systems but not more then that..
For Windows (native, not cygwin) provide binaries. Installation of Migw+auto is quite painful and windows users are generally more "next->next->next" users then "wget/tar/configure/make/make-install" users" Provide zip or some installer there are some FOSS installers out there.
Remember poor Windows users by default do not have zlib or openssl... So you'll need to ship them with your package.
About CMake...
If you targeting mostly Windows platform or you are willing to support MSVC then probably you should consider it. Otherwise, autotools provide good distribution and build alternative.