Configurations

It is possible to build ProtocolFilters project as a dll or a static library, with C or C++ interface. Here is a list of supported project configurations:
- Debug : builds a debug version of dll with C++ interface and lib to link with dll.
- Release : builds a release version of dll with C++ interface and lib to link with dll.
- Debug_c_api : builds a debug version of dll with C interface and lib to link with dll.
- Release_c_api : builds a release version of dll with C interface and lib to link with dll.
- Debug_static_dll : builds a debug version of static library with C++ interface, linking with C runtime dynamically (uses /MDd compiler flag).
- Release_static_dll : builds the release version of static library with C++ interface, linking with C runtime dynamically (uses /MD compiler flag).
- Release_static : builds the release version of static library with C++ interface, linking statically with C runtime (uses /MT compiler flag).

The generated lib files are saved to lib\$(ConfigurationName)\$(PlatformName), and dll files are saved to bin\$(ConfigurationName)\$(PlatformName).

Each configuration links with appropriate builds of OpenSSL libraries via lib files. If SSL filtering (FT_SSL) is not required, it is possible to define a symbol PF_NO_SSL_FILTER in a project configuration to disable linking with OpenSSL.

It is necessary to define the symbol _PF_STATIC_LIB in your project when linking with the static build of the library.

Linux and Mac OS builds always use a static linkage.