- Make the other target I know of (run-simulator-tests) build
gtest/gmock so that the build isn't broken for that target.
- "make clean" in googletest as part of the "clean" target in
kaleidoscope-builder.
Signed-off-by: Eric Paniagua <epaniagua@google.com>
- Caveat: This won't work out of the box until virtual/platform.txt is
updated in the bundle repo to force the appropriate include and linker
paths.
- arduino-builder fails if it can't find a library for any included
header. fake-gtest is a library designed to fake out this detection
mechanism.
- Add a gtest test that exercises the simulator. This is
hello-simulator_test.h. It has to be a .h or else arduino-builder will
fail to compile it with one excuse or another.
- Add run-simulator-googletest "target" to the build system. It will
take care of running cmake and building googletest and googlemock. Of
course, this requires that cmake be installed on your system.
Signed-off-by: Eric Paniagua <epaniagua@google.com>
This will build a Docker image with all dependencies installed, then run the
simulator tests within it, using the current bundle as a volume.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
In order to be able to access the devices as the at-seat user, without having to
fiddle with distro-specific permissions and groups, we need to tag it both
`uaccess` and `seat`, and have the rule sorted before the one that applies
permissions based on these tags. As such, the file had to be renamed as well.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
When building Kaleidoscope, the compiled object files are linked together into a
static archive. This static archive has a very simple structure, and only stores
filenames, not paths, not even relative ones. As such, we can't have files with
the same name, because they will conflict, and one will override the other.
To avoid this situation, this script will find all cpp source files (we don't
need to care about header-only things, those do not result in an object file),
and will comb through them to find conflicting filenames.
If a conflict is found, it will print all files that share the name, and will
exit with an error at the end. It does not exit at the first duplicate, but will
find and print all of them.
If no conflict is found, the script just prints its status message and exits
with zero.
This addresses the bulk of #850.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
for some reason, this line shows up on stderr anytime I (or the
find-device-port script) run `system_profiler SPUSBDataType`
2020-02-24 23:19:14.656 system_profiler[23932:4118769] SPUSBDevice:
IOCreatePlugInInterfaceForService failed 0xe00002be
I got annoyed enough to suppress it, so I could see the other output
that I actually care about.
This adds some quotes to various paths used in Kaleidoscope's build system.
This fixes builds on msys2 that failed due to whitespaces in system paths.
Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
Many build systems allow C and C++ compilers to be specified
via environment variables C and CXX.
This commit enables this for kaleidoscope-builder.
Furtheron, on unixoid systems virtual builds are possible through a
command line similar to
CXX=<path to C++ compiler> C=<path to C compiler> ARCH=virtual make
Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
This commit induces the following changes:
bin/kaleidoscope-builder
* ccache dummy compiler and executables are now generated in a way
that allows using the same CCACHE_WRAPPER_PATH for virtual and
non-virtual builds
* virtual builds are now triggered by either specifying the full FQBN with x86
as architecture or by defining ARCH=x86
etc/kaleidoscope-builder.conf
* COMPILER_PREFIX and COMPILER_PATH are now determined (if not predefined)
based on ARCH or FQBN
Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>