Code Monkey home page Code Monkey logo

mcpp's Introduction

mcpp

This is a fork of mcpp. mcpp is a C/C++ preprocessor used by the Ice Slice compilers.

This fork consists of a simplified version of mcpp 2.7.2 plus various fixes, tailored to the Slice compilers requirements. Its build system creates only a static library and no command-line preprocessor. The configure script was replaced by a custom config.h suitable for Windows, macOS and Linux builds. Tests and other optional files were removed.

The resulting static library is later used when creating the Ice Slice shared library or statically-linked Slice compilers such as slice2js.

Build Instructions

Linux and macOS

Simply type:

  make

This creates a static library libmcpp.a. Depending on your platform, the library is created in the following directory:

  • lib64 - Linux system with a /usr/lib64 directory
  • lib - Linux system without a /usr/lib64 directory, macOS

Windows with Visual Studio

Open a Visual Studio Command Prompt, and type:

  MSbuild msbuild\mcpp.vcxproj

This creates a static library mcpp.lib for Release configurations and mcppd.lib for Debug configurations. You can select a specific Configuration (Debug or Release) and Platform (Win32 or x64) as shown below:

  MSbuild msbuild\mcpp.vcxproj /p:Configuration=Release /p:Platform=x64

mcpp's People

Contributors

bentoi avatar bernardnormier avatar externl avatar newhook avatar pepone avatar wmanth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mcpp's Issues

how mcpp support sourcemap

I'm a beginner in this.
I know that mcpp handle include&macro&define but how to maintain the relationship of original source code and the proceed code?
does mcpp have such support?
(ignore if it's meaningless.

Clarify Licensing

Files by Kiyoshi Matsui appear to still be under the MIT License, but files such as Makefile simply state:

#
# Copyright (c) ZeroC, Inc. All rights reserved.
#

Can I assume these files are also licensed under the MIT license? RSVP.

[BUG]A Potential Bug of Use of Uninitialized Variable

Hello,I found a potential bugs of Use of Uninitialized Variable in source code of mcpp,would you help me check if this bugs is true?thanks for your patience and effort.

==============================================================================

step 1 :
In file mcpp/mbchar.c , function mb_read_utf8 line 160:
bytes is defined here but uninitialized.

step 2 :
In file mcpp/mbchar.c , function mb_read_utf8 line 160:
An uninitialized value reaches here

step 3 :
In file mcpp/mbchar.c , function mb_read_utf8 line 166 :
Select the false branch at this point ((char_type[ c1 & UCHARMAX] & U2_1) == U2_1 is false) (namely, all if-branch is false)

step 4 :
In file mcpp/mbchar.c , function mb_read_utf8 line 170:
bytes is used in the arithmetic operation but bytes is not initialized

==============================================================================

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.