FreeRDP/FreeRDP — pull request #763 by awakecoding (2012-10-09 17:43:44+00:00)
Title: Major Refactoring + Static Channel System

Major CMake improvements:
automatic generation of a static entry table for channels
loading of static channels from clients (link to libfreerdp-channels-client for now)
Cleanup of header include structure for channels

Major Refactoring:
Partially remove memory utils
Cleanup of header template for consistency
Switching from FreeRDP types to WinPR types

Certain channels have been designated as "permanently built-in". This means they will no longer be available as separate plugins, with the advantage of being able to export a richer API to clients. This will allow us to get rid of the event system that allowed communication between the plugins and the clients.

Other channels such as smartcard should always remain compilable as plugins because they bring dependencies such as PCSC and often need to be package separately in distributions. For local development of for builds where separate packaging is not required, all channels built by default as plugins can be statically built-in with the STATIC_CHANNELS option.

This architectural improvement follows discussions and suggestions with community members during a meeting at the last RemoteFX summit.