* 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
* Incorporate Webserver into Trick, so one only has to include HttpServer.sm
* Tweaks in default index.html file
* Rename HTTPServer.sm to WebServer.sm
* Rename http_server to WebServer
* Add --retry to curl invocations in HttpServer makefile.
* Fix #include in VariableServerVariable.hh
* Include cleanup and curl tweaks in the hopes of making Jenkins happy.
* Doh! problem in makefile masked by preinstalled mongoose in usr/local/lib
* DIE Make Bug DIE
* Fix include in WebServer.sm
* WebServer.sm constructor name
* Don't SWIG mongoose.h
* Compile with -std=c++11
* Attempt to fix race condition in makefile
* makefie tweek
* Fix trick library name problem for Centos and Redhat
Added a new configure arugument "--enable-32bit". If enabled,
TRICK_FORCE_32BIT is automatically set for building Trick and for
all sims built. Changed the ARCH and added -m32 in the configure
script if 32bit is enabled. This changes the configure script to
test for 32bit libraries.
Found if --without-x was specified, that automatically caused an
error condition in the configure script. Fixed that and only
tested for X windows headers and libs if X is included. Excluded
a couple of directories from compiling if X is not included.
Didn't seem to be a problem with java.
* Method socket.sendall() expects bytes to be sent, rather than a string
* Python 3 stores text strings as unicode (not ASCII) by default
* Therefore, strings must be explicitly converted to bytes for Python 3 compatibility
* This works for both Python 2 and Python 3 (tested on Python 2.7, Python 3.6, and Python 3.7)
Update documentation
Change TRICK_LIB_BUILD_TYPE to TRICKIFY_BUILD_TYPE
Remove support for linking in arbitrary objects
Conform logging to existing pattern
Added a clock reference that to the FrameLog class that defaults
to the GetTimeOfDay clock. This clock has fast access and is
non intrusive to real-time operations using a different clock.
Added a function to set the clock to something else if desired.
Created a new message class that will copy incoming messages to a
buffer area. The buffer area is pre allocated during simulation
initialization. On a separate thread the buffer area is written
to std::cout.
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.
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.
Reverts the important parts of c909669. Trying to include another
project's build dependencies as part of a sim build doesn't work that
well.
Refs #309
PIPESTATUS is only available in bash. For many of the systems
we use /bin/sh and /bin/bash are the same, but noooo, not on
Ubuntu where it is linked to dash. I set SHELL := /bin/bash
in our makefile now.
Added echos to all compile commands to append to MAKE_out. tee'd
the output of the compile command so that it will go to both the MAKE_out
file and the screen.
Like gcc, swig supports all those -M options. Use them to automatically
manage *_py.cpp dependencies.
Add dependency generation to trickify.mk as well.
CURDIR is used to produce absolute paths in S_source.d, which allows it
to be included from external makefiles. It is specifically intended to
be included from a Trickified project's user-facing makefile. That is,
the one the user is intended to include in a sim's S_overrides.mk. This
allows the project to automatically build their Trickified object as
part of a simulation build, but only when necessary as specified by the
dependencies.
Refs #309
Trick uses dlsym to dynamically load symbols at run time. At link time,
it cannot be known which symbols will be needed. When presented with a
library, the linker will only link in symbols that are known to be
needed. Therefore, the use of -whole-archive (Linux) or -force_load
(Mac) is necessary when linking a Trickified library into a sim.
We can simplify this by partially linking into an object instead of
creating a library. The linker will link all symbols in an object
regardless of whether or not they are known to be needed.
Refs #309
Moved makefile assignment of S_MAIN out of MAkefile.common to simulation
makefile. The definition in Makefile.common was causing trouble for
autotesting because it changes TRICK_HOST_CPU.
A different approach. Instead of trying to limit the number of times
S_overrides.mk is included, combine the makefiles so only one
call to make is made.
We've agreed that the long-term solution is to refactor the makefiles so
we don't use recursive make. Until then, continue double including
S_overrides.mk so that the $(S_MAIN) target is available in
S_overrides.mk. Resolve#360 by having Trickified libraries use
target-specific variables (ironically, on $(S_MAIN)) to avoid
duplication of the -whole-archive option.
Like other TRICK_SYSTEM variables, users should not modify this.
This renders TRICK_LDFLAGS and TRICK_USER_LINK_LIBS redundant. While we
would like to eventually remove TRICK_USER_LINK_LIBS, it's not likely to
ever actually happen.
Refs #369
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.
2 problems found. Syncing scheduled threads was not happening at all because the job
was not being rescheduled. Did not want to deal with changing job call times so I
called the new scheuduled_thread_sync routine from advance_sim_time. That's where
it started, it'll be fine.
Also found that I was resetting job complete flags too aggressively. The check to
test if the thread is ready to run was missing. Added that check back in.