psi46/pxar — pull request #85 by mverzocc (2014-03-08 02:49:33+00:00)
Title: Changes4win32

This is a very extensive set of changes, required to make pXar work on Windows. In addition I am fixing all
the compilation warnings that I found compiling on Windows that did not appear on Linux. Most of those compilation warnings are probably new because Windows decides to treat 0.5 (for example) as a double and this creates casting issues. Probably on Linux 0.5 is a float. But in some cases doing 0.5*(bin1+bin2)
when bin1 and bin2 are integers and the result is an integer is not good coding, that should be (bin1+bin2)/2..... The commits indicate clearly which are the ones that are due to warnings that appear when compiling on Windows.

The list of changes is given below (apart from the ones for the compilation warnings)
1) main/CMakeLists.txt - use pXarW32 as name of the executable on Windows (CMake isn't case sensitive and cannot handle having the same name for library and executable)
2) all classes that should end in shared libraries need to be declared as DLLEXPORT. There is a new include file pxardllexport.h (in core/utils, this requires searching for include files also in this directory).
This include file is included explicitly when necessary, otherwise inclusion of api.h or PixGui.h will pull it in.
3) stdint.h cannot be used when running ROOTCINT (add protection and some typedefs) (ROOTCINT is not compatible with C99 extensions, stdint.h is one of them)
4) datatype __signed is not used anywhere (remove it)
5) cannot use OUT as ofstream object. The Windows preprocessor changes OUT to a blank space, Use OutputFile
6) add libMinuit and libGui on Windows (libMinuit already added on Linux, libGui is default on Linux but not on Windows)
7) unistd.h cannot be used on Windows
8) disabled warnings C4275 and C4800 during compilation. The first one occurs because many classes declared DLLEXPORT inherit from ROOT classes that are not declared DLLEXPORT, the second one occurs inside ROOT header files and during ROOTCINT

This should close issue #53. I have already closed issue #78