Order CMAKE_*_OUTPUT_DIRECTORY and add_* commands
For the "set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)" command to have effect, this command has to be placed before the "add_library()" and "add_executable()" commands. This is not documented and against the declarative nature of cmake commands. Please make the order irrelevant or at least document this behaviour on the CMAKE_*_OUTPUT_DIRECTORY variables.