Tested the name of the header file right when a class is starting processing. If
the class is in a file that is in an ICG_EXCLUDE directory, we quit processing
right there.
refs #251
ICG dies on a strdup if the the input file is empty. Added a check for
an empty input file name. We exit with an error message if there is
no input file given.
refs #229
It's been a while since we tested 15.x on the mac. The makefile
for ICG needed updating to what is essentially in 16. Added the
one change required for clang 3.8. Updated the version to 15.2.0
in trick_ver.txt. Finally removed the check for libclang.a. The
more recent clang releases are delivering libclang.dylib and I'm
too lazy to make big changes in the configure script to search
for it. The header file check should be enough.
refs #228
Interesting case. I found that we should process the canonical type names where
we were not before. This resolves all typedefs and should be be more
accurate in the future. When we process the canonical type we need to ignore
the processing of the non-canonical type. We set a flag after
the canonical type is processed to ignore any type that is processed after.
refs #198
We pull file names out of the clang infrastructure to match where
classes are defined. We use the file name to pull comments and find
and process Trick header comments. Up to now clang gave us the realpath
of files and when we looked up comments we already had the realpath and
everything worked. In clang 3.6 in some places we are not getting the
realpath anymore which confuses ICG. Added code to get the realpath of
any file name we use throughout the code.
refs #167
Conflicts:
trick_source/codegen/Interface_Code_Gen/CommentSaver.cpp
trick_source/codegen/Interface_Code_Gen/FieldVisitor.cpp
We already parse the string character by character escaping newlines, tabs, and
other special characters. In the case of these quotation marks, we replace them
with the ASCII single and double quotes.
refs #134
I think I ran into this before. The offsetof calls that use
fully qualified fields in classes is not compilable using clang
on the Mac. So I've decided to only conditionally compile this
code for non Apple platforms. So this fix will work in Linux,
but not on Macs. We'll have to revisit this and see if we
can make it work for both.
refers to #31
When a field is processed in a class it is added to a list. This list
will contain the fields from base classes the current class inherits
from. We check the list of fields we inherited, if we find that the
current field overloads the name of an inherited field we adjust the
inherited field's name to be shown as the fully qualified name in io_src
code.
Fixes#31
Found that my check for embedded classes was also catching some typedef structures.
This was causing some io_src code not to be generated. Changed the test so that
we can differentiate between embedded classes and the typedefs.
This change fixes#10 and fixes#23.
Changed all header file once include variables to follow the same naming
convention and not start with any underscores. Also deleted old
incorrect copyright notices. Also removed $Id: tags from all files.
Fixes#14. Fixes#22.
The calling argument to setASTConsumer changed between clang 3.5
and 3.6. Changed the code to create a std::unique_ptr that the
call now requires and call setASTConsumer with the unique pointer.
Fixes#15