As usual a new LLVM version brings changes. Found that ICG needs
to be built with c++14. Also found a couple of API changes in main.
Enclosed the changes in ifdef statements.
Updated minimum cmake version to 3.1
Added checks in findllvm script to handle old 3.4 LLVM version
Added back include directories needed by old LLVM version in ICG.
* Merging changes from cmake branch to master
* Fixing includes for renamed header files
* still need build rule
* Adding warning for swig code for gcc8+
* Adding CMakeLists.txt for data products
* Cmake merge #901
Making adjustments to get cmake working on the Mac (Mojave)
* Cmake merge #901
Changing string append to list append
Removed checks on dead units conversion messenger. Units conversion
messages cannot be suppressed. Added deprecated messages to the functions
that modified the message printouts.
Yes, it is, it's missing all of them. Any clang/llvm version 3.5 and
above. So it's been broken for a while. We inherit from a
clang class that processes preprocessing statements. If we override
virtual functions of a certain signature, we can inject our code into
the preprocessing process. In this case we're looking for the use
of TRICK_ICG. Clang changed the function signature in version 3.5.
From 3.5 on our functions were never called, so we never would find
TRICK_ICG. I created new signatures for the functions post 3.5 so
they will work again.
The `io` field of `FieldDescription` takes a default value of 15. In
`FieldDescription::parseComment`, it may be updated as specified in the comment
text. There are 4 possible cases:
1) Neither IO attributes nor checkpoint IO attributes are found in the comment
2) IO attributes are found in the comment, but checkpoint IO attributes are not
3) Checkpoint IO attributes are found in the comment, but IO attributes are not
4) Both IO attributes and checkpoint IO attributes are found in the comment
In case 2, the IO attributes are copied into the checkpoint IO attributes by the
statement `io |= (io << 2)`. However, this also erroneously runs in case 1,
causing the default value of 15 to change to 63.
By testing `io_found == true`, this logic occurs only in case 2.
Fixes#568
Added a new environment variable TRICK_ICG_IGNORE_TYPES. Class/struct/enum
types found in this semicolon delimited list will not have attributes written
out.
Found more places where symbolic links cause havoc. Also added back a #define
that was removed in parameter_types.h and added back the messaging routines to
the list swig processes.
Added std::array as an STL type Trick recognizes. We can now create io code
that can save and restore std::arrays like std::vectors and other similar
types. Like other STL types, an std::array cannot be logged or viewed in
trick-tv.