Is there a perfomance reason the configuration does not always do this:
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
Even if static libraries are built, they may be needed to in turn build shared libraries, which will fail without position independent code. I recently encountered this and had to change CMakeLists.txt.