Giter Club home page Giter Club logo

amalgamate's People

Contributors

vinniefalco 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amalgamate's Issues

Makefile?

This is advertised as cross-platform, but there are no build instructions save a Visual Studio project file.

Please add:

  • A makefile that works in Linux and Mac OSX
  • Setup travis CI to show that these builds work

Shrink amalgamations by recognizing amalgamated includes

Currently amalgamations which include both source and header file templates duplicate file material in the source file. The tool should provide facilities for the resulting source amalgamation to include the amalgamated header instead of inlining everything again.

For amalgamations with multiple source files and one amalgamated header (such as JuceAmalgam), including the amalgamated header instead of duplicating the inlined file data will result in considerable space reductions.

Amalgamate includes the same file many times

The description amalgamate displays says: " A file will only be inlined once, with subsequent #include lines for the same file silently ignored, unless the -f option is specified for the file."

However this does not appear to be the case in the following example:
Amalgamate.exe -v Amalgamation.cpp Completed.cpp
Capture

name =

Notice how many of the files are included multiple times. (Such as Vec.h) -P is listed to prevent re-inclusion which was the default I assumed, however that option appears to have no effect. Now re-inclusion is not usually a problem. After all, the include files should traditionally be wrapped in #ifndef, #ifdef...#endif. Unfortunately I instead chose to use #pragma once in all the files instead. This works great when they're all seperate files, but the combination becomes invalid.

Is this a bug or am I using the options wrong?

Is the file duplicated inline?Why can't "#pragma once" be recognized correctly?

Is the file duplicated inline?Why can't "#pragma once" be recognized correctly?

source code

https://gitee.com/masx200/leetcode-treenode-cpp/tree/0136bf26abba93f51c694dd97c5ce20f734b9e55/

Amalgamate.exe -v -w "*.hpp" -p "TreeNode.hpp" export.hpp output.hpp
  Building: C:\Users\Administrator\Documents\GitHub\leetcode-treenode-cpp\output.hpp...
  Processing "export.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "bfsTravelsal.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "TreeNode.hpp"
name = <iostream>
name = <queue>
name = <string>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "freeTreeNode.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "TreeNode.hpp"
name = <iostream>
name = <iostream>
name = <stdio.h>
name = <string>
name = <sstream>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "LeetCodeTreeNodeToString.hpp"
name = <queue>
name = <string>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "TreeNode.hpp"
name = <iostream>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "bfsTravelsal.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining   "TreeNode.hpp"
name = <iostream>
name = <queue>
name = <string>
name = <iostream>
name = <iterator>
name = <regex>
name = <sstream>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "parseLeetCodeBinaryTree.hpp"
name = <queue>
name = <string>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "TreeNode.hpp"
name = <iostream>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "freeTreeNode.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining   "TreeNode.hpp"
name = <iostream>
name = <iostream>
name = <stdio.h>
name = <string>
name = <sstream>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "serializeTreeNode.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "TreeNode.hpp"
name = <iostream>
name = <iostream>
name = <stdio.h>
name = <string>
name = <sstream>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "traversalTreeNode.hpp"
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining  "TreeNode.hpp"
name = <iostream>
name = <iostream>
name = <sstream>
name = <stdio.h>
name = <string>
name = <vector>
JUCE Assertion failure in C:\Users\Administrator\Documents\Amalgamate\juce_core_amalgam.cpp, line 1968
  Inlining "TreeNode.hpp"
name = <iostream>

Documentation

Is there any documentation regarding how to use this project?

How to run this under OSX?

So far, you only provide visual studio build settings. What steps would be necessary to compile this under OSX?

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.