Compiz fails to build the grid plugin due to 2 different standards being used. The grid plugin uses std=c++0x, while the compiz core does not. The problem being explicit instantiation of templates which breaks the ABI for any plugin that uses the std=c++0x standard.
CMakeFiles/grid.dir/src/grid.cpp.o: In function `GridScreen::GridScreen(CompScreen*)':
/home/bschaefer/src/compiz/plugins/grid/src/grid.cpp:1076: undefined reference to `std::vector<CompOption, std::allocator<CompOption> >::push_back(CompOption&&)'
CMakeFiles/grid.dir/__/__/generated/grid_options.cpp.o: In function `GridOptions::GridOptions(bool)':
/home/bschaefer/src/compiz/build/generated/grid_options.cpp:19: undefined reference to `std::vector<CompOption, std::allocator<CompOption> >::vector(unsigned int)'
collect2: error: ld returned 1 exit status
I'll handle the Unity issue in a separate bug.