Have you considered having a superbuild and using
ExternalProject_Add to build the dependencies?
http://www.cmake.org/cmake/help/v3.1/module/ExternalProject.html
Excellent examples of using ExternalProject for a superbuild live in
the OpenChemistry and Slicer projects.
How can I wrap cache variables from CMake scripts? Let's say I have a CMake
project, it depends on any third part library (says SFML or SDL), that
project expose a plenty of CACHE variables so that configuring them for
each build manually is a pain.
How can I configure from MY project THOSE