CppEvents - event/delegate (signal/slot) mechanism implementation for C++ http://code.google.com/p/cpp-events/ Library is written in C++03 and does not use C++0x features. For generating variadic templates custom preprocessor was written. It was named MCS, that stands for Monkey Coding Script;) The MCS executable is an interpreter for the custom scripting language specially designed for generating plain text files. Script files are named by appending '.mcs' suffix to the name of the output file, e.g. script file named 'ArgList.hpp.mcs' is used for generating source file 'ArgList.hpp'. This distribution contains both MCS script files and generated C++ source files, so you do not need to build the MCS executable if you are not going to edit library sources. The MCS executable is built using GNU Bison (version 2.4.1) and Flex (version 2.5.35). Bison version 2.3.1 and Flex version 2.5.4 do not work, other version were not tested. Windows executable for Bison was used from the GnuWin32 project, and the one for Flex - from the Cygwin project. Files that were generated by Bison and Flex are also included into this distribution. Google C++ Testing Framework is required for building unit test suit. If framework is not be found then building unit test suilt is skipped. Elsewise Test suit is built and executed as a part of the building process. It is strongly recommended to install the Framework, build and run test suit on your system. > Note! In default distribution of Google C++ Testing Framework project files > for MSVS are configured for linking against static runtime library. This > should be reverted to the DLL versions. Distribution also contains set of execution speed tests that include tests for CppEvents, Boost.Signals, LigSigC++, SigSlot, Qt and C#. These tests are built if dependency library is found. C# test is not included in CMake build files, but can be built using native MSVS project. Please note that C# test runs very quickly, but hangs for a very long time when it comes to garbage collection. Library uses CMake as a distribution build system but native MSVS 2005 project files are included in the distribution as well. Project files are separated from sources and located in the 'build' subdirectory. Subdirectory 'build/cmake' contains input files for CMake. Subdirectory 'build/cmake.out' is a storage for files generated by CMake and is originally empty. In order to build library and tests with CMake change your working directory to 'build/cmake.out' and run 'cmake ../cmake' command. Directory 'build/cmake.out' will contain project files for your native build system. Subdirectory 'build/msvs2005' contains native project files for MSVS. These are origianl IDE files used for development. They expect that all dependecies are available and do not run unit tests automatically. After building the library, add path to the 'src' subdirectory to the list of the system include directories and path to the 'lib' subdirectory to the list of the library directories. The MCS interpreter is not built automatically when building the library and should be built separately if needed. This is done so because Bison and Flex are likely to be the source of problems when building the interpreter. I don't want this to break the entire building process. Separate tree of project files for building interpreter is located in subdirectory 'tools/mcs/build'. Use it as described above. Resulting executable should be located in the directory 'tools/mcs/bin/Release' or 'tools/mcs/bin'. I hope this library will be useful to you. If you have any comments, questions, ideas or propositions please e-mail me. All feedback will be much appreciated. Nickolas V. Pohilets (pohilets@gmail.com)