Commit Graph

30 Commits

Author SHA1 Message Date
Alex Lin
a48b39bfc1
Make ICG compatible with clang/llvm 15 #1449 (#1450)
Made a couple of changes in ICG source code to handle clang API differences.  Encapsulated
differences in ifdefs.  Added libclangSupport to ICG link line.
2023-02-07 12:46:34 -06:00
Scott Fennell
1315db14a4
1201 icg nocomment file and dir (#1202)
* #1201 make icg_nocomment variable work with files as well as dirs

closes #1201
2021-11-16 19:03:35 -06:00
Scott Fennell
4a9d9482ef
1194 trick system icg exclude (#1195)
* Fix ICG errors while processing system header files closes #1189

Found an InitPreprocessor call and am using it.  Not sure which version
of clang it was added, just using for the version I'm on (10) and above.
Also found some GCC defines that are used during normal compilation.
Added these to our list of defines during ICG.  This clears up all of
the errors I've been seeing.

* Fix ICG errors while processing system header files #1189

OK, found the flag that activates the ATOMIC defines I was previously
hardcoding.

* #1194 add trick-system-icg-exclude

Co-authored-by: Alex Lin <alexander.s.lin@nasa.gov>
2021-10-12 12:02:03 -05:00
Alex Lin
9f9fd7ca20
Fix ICG errors while processing system header files #1189 (#1190)
* Fix ICG errors while processing system header files #1189

Found an InitPreprocessor call and am using it.  Not sure which version
of clang it was added, just using for the version I'm on (10) and above.
Also found some GCC defines that are used during normal compilation.
Added these to our list of defines during ICG.  This clears up all of
the errors I've been seeing.

* Fix ICG errors while processing system header files #1189

OK, found the flag that activates the ATOMIC defines I was previously
hardcoding.
2021-10-12 11:30:49 -05:00
Derek Bankieris
10b16d9f31 Check paths against TRICK_HOME in HeaderSearchDirs
Closes #1115
2021-03-02 12:43:10 -06:00
Scott Fennell
6618d09c15
issue 1065 llvm 11 support (#1066)
* # 1065 all LLVM::StrRefs need to use str() to convert to std::string now

* #1065 retain backwards compatibility for llvm 3.4.2 (RHEL 7)

closes #1065

Co-authored-by: Scott Fennell <sfennell@Scotts-MacBook-Pro.local>
2020-10-21 22:33:53 -05:00
Alex Lin
83338c4957 cmake scripts do not work for CentOS7 #914
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.
2019-11-22 08:12:54 -06:00
Alex Lin
60a1a0558f Oops, didn't put the #endif in the right place 2019-11-19 10:59:28 -06:00
Alex Lin
ce0cdc9636
Cmake merge (#901)
* 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
2019-11-19 09:01:16 -06:00
Derek Bankieris
67decaed24 Add support for -isystem
Closes #407
2019-06-20 10:12:33 -05:00
Alex Lin
497f11f132
Make TRICK_CXX variable to specify c++ compiler #767 (#815)
Changed all references of TRICK_CPPC to TRICK_CXX.  Added a
warning message that TRICK_CPPC has been deprecated.
2019-06-18 11:00:08 -05:00
Derek Bankieris
1dbeb3e2d4 Fix io code for classes with excluded parents
Check the return value of CXXRecordVisitor::TraverseCXXRecordDecl and
don't add information from excluded parents.
Add a parameter to PrintAttributes::isHeaderExcluded to toggle exlusion
of TRICK_EXT_LIB_DIRS paths. When traversing a CXX record, we don't
actually want to skip these paths since their io code should exist in
the Trickified library.
Fix memory leak.

Refs #435
2017-05-24 10:51:27 -05:00
Derek Bankieris
b53c52ac33 Separate ICG & SWIG exclusion constructs
Refs #392
2017-03-27 15:19:43 -05:00
Alex Lin
ba47c2048c Detect when TRICK_ICG is used in header files and compensate for it. #375
Created a hook for the clang preprocessor.  The hook does 2 things.  It
keeps track to which header files we have entered and exited.  Second it
searches for the use of TRICK_ICG.  If we find an instance of TRICK_ICG we
mark all of the included files from this point up the chain as requiring
compensation.  To compensate for using TRICK_ICG we write out the older
offset statements to get the location of variables in classes/structures.
2017-01-11 15:02:21 -06:00
Alex Lin
f1cbacd646 ICG exclude of class member variables now defines incorrect memory offsets in io_src #311
This changes back the default behavior to not use offsetof in io_src code.
Added a flag to ICG, -c or --compat15, to globally generate offsetof statements.
Added an ENV variable that can be used to generate offsetof statements by file or directory.
Added in a warning if classes parsed at ICG time are different in size than at runtime.
2016-10-21 13:13:43 -05:00
Derek Bankieris
f161ddb18c Made everything about Trick's build process better 2016-10-06 13:54:06 -05:00
Alex Lin
f7d1ff6376 ICG fails to compile on Mac when using clang/llvm 3.8.1. #271
Modified the makefile to define LIBCLANG_MAJOR, LIBCLANG_MINOR, and
LIBCLANG_PATCHLEVEL based on the llvm-config executable in the llvm
directory pointed to by the configuration.  These new variable names
are independent of the __clang_major__, etc. variables we were defining
only in Linux.  Using these names, we can reduce the clang version
checks to a single consistent set of version numbers.  We don't have
to deal with the different version numbers assigned by Apple.
2016-07-25 14:57:07 -05:00
Alex Lin
c9e3bc77da er7_util header files not being installed
Added a makefile install rule to copy the header files out of
er7_utils to the install directory.  Adjusted ICG to ignore
Trick header files if they are installed.

refs #246
2016-06-20 13:40:45 -05:00
John M. Penn
af8548ce6a Exclude /sw (Fink directories from being processed by ICG. Refs#248 2016-06-10 14:52:19 -05:00
Alex Lin
6eef449a1c Don't process header files installed by Homebrew
Added /usr/local/Cellar to ICG's list of system header locations.

refs #181
2016-02-11 09:33:53 -06:00
Alex Lin
71dab9ed45 Introduce Open Dynamics Engine examples
I want Trick to parse and understand ODE header files.  The ODE header files
include some typedef constructs ICG was skipping.  Added code to handle the
typedefs we did not handle before.  Also made a small change the way
TRICK_ICG_EXCLDUE and TRICK_EXCLUDE are used so that they support excluding
individual files as well as directories.
2016-01-29 09:27:41 -06:00
Alex Lin
d744eba557 Split CP up into components that can be called individually
Added a new TRICK_EXT_LIB_DIRS variable that allows users to
tell Trick about external libraries, rather than trying to
use TRICK_EXCLUDE. Added back getting multiple library dependency
sections from source files.

refs #86
2015-07-22 10:54:00 -05:00
Alex Lin
5848d80bc4 Create a separate directory for simulation compiliation.
Made some adjustments for sims larger than the ball sim.
Make some changes to handle library packages such as JEOD.  Also
removed some dead code.
2015-07-08 10:33:56 -05:00
Alex Lin
3577e72bce trick-ICG fails when using clang < 3.4
The clang path created uses the patchlevel which prior to 3.4 was not used by
clang.  This resulted in a bad being created and eventually an llvm assertion
error.  Added a compiler ifdef so that the patchlevel is not used before 3.4

refs #65
2015-06-15 11:38:21 -05:00
Alex Lin
8193b5de7b Standardize directory names
Tried using clang/llvm from ubuntu distribution.  Needed to change the include directory for compiling ICG. Also found that
the clang include files can be in a linked directory.  Used realpath to make sure we have the absolute path.

refs #63
2015-06-12 16:59:00 -05:00
Alex Lin
eed8837478 Standardize directory names
RedHat systems use a libexec directory, MacOSX and Ubuntu use lib.  Changed our scripts and makefiles to handle both.

refs #63
2015-06-12 15:24:36 -05:00
Alex Lin
c5d0b2a872 /usr/lib64/llvm/clang/3.4.2 not found
Modified the makefile for ICG to be able to use clang from yum, fink, and manual installs.  Removed the requirement for copying the clang friendly header files into Trick.  However Trick will be expecting the clang header files to be in it's search path.

refs #40
2015-06-09 08:44:44 -05:00
Alex Lin
60e3983344 Standardize directory names
Moved the io_src code created by sim_services to sim_servivces/include.  Also found some makefiles that needed to be changed to refer to the makefiles in their new locations.

refs #63
2015-06-09 08:44:44 -05:00
Alex Lin
19025d77ad Standardize directory names
Reorganized.  Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory.  Created a libexec directory that holds all of the executables that users don't need to execute directly.  Changed all of the executables remaining in bin to start with "trick-".  In the sim_services directories changed all source files to find the Trick headers in their new location.  Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level.  Moved the makefiles, docs, man, and other architecture independent files into a top level share directory.  Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on.

refs #63
2015-06-09 08:44:42 -05:00
Alex Lin
f0c594f841 Initial commit of everything. 2015-02-26 09:02:31 -06:00