Current building on Linux platform would throw lots of platform specific errors because the build system doesn't distinguish between Linux, Windows and Mac.
- Add a check for Linux platform, windows platforms and Mac platforms.
- Add Variables for the Linux source files, Windows source files, and Mac source files.
Current building on Linux platform would throw lots of platform specific errors because the build system doesn't distinguish between Linux, Windows and Mac.