Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen And push them to qmk.fm/compiled * Make autogen copy extension agnostic This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards * Handle the AUTOGEN in :bin target to properly handle edge cases Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all. This removes the hex and replaces it with a bin, if a bin is normally generated. * Revert hex target to original copy command * Check hex and bin separately in compile push script Since I don't know how to script this, well * Simplify push to compiled folder * Further simplify compiled push script * Move AUTOGEN parsing to a more sane location to prevent tech debt Thanks to skully! * Remove AUTOGEN completely, as it's not needed This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder. This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.daktil_manuform
parent
c5e10b7203
commit
d3f7910e68
|
@ -20,7 +20,7 @@ before_script:
|
|||
- avr-gcc --version
|
||||
script:
|
||||
- git rev-parse --short HEAD
|
||||
- make test:all AUTOGEN=false
|
||||
- make test:all
|
||||
- bash util/travis_build.sh
|
||||
- bash util/travis_docs.sh
|
||||
addons:
|
||||
|
|
|
@ -48,9 +48,6 @@ FORMAT = ihex
|
|||
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
||||
OPT = s
|
||||
|
||||
AUTOGEN ?= false
|
||||
|
||||
|
||||
# Compiler flag to set the C Standard level.
|
||||
# c89 = "ANSI" C
|
||||
# gnu89 = c89 plus GCC extensions
|
||||
|
@ -142,7 +139,7 @@ CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
|
|||
# files -- see avr-libc docs [FIXME: not yet described there]
|
||||
# -listing-cont-lines: Sets the maximum number of continuation lines of hex
|
||||
# dump that will be displayed for a given single line of source input.
|
||||
ASFLAGS += $(ADEFS)
|
||||
ASFLAGS += $(ADEFS)
|
||||
ifndef SKIP_DEBUG_INFO
|
||||
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
|
||||
else
|
||||
|
@ -260,10 +257,6 @@ gccversion :
|
|||
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(HEX) $< $@)
|
||||
@$(BUILD_CMD)
|
||||
@if $(AUTOGEN); then \
|
||||
$(SILENT) || printf "Copying $(TARGET).hex to keymaps/$(KEYMAP)/$(TARGET).hex\n"; \
|
||||
$(COPY) $@ $(KEYMAP_PATH)/$(TARGET).hex; \
|
||||
fi
|
||||
|
||||
%.eep: %.elf
|
||||
@$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
|
||||
|
@ -297,7 +290,7 @@ BEGIN = gccversion sizebefore
|
|||
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS))
|
||||
@$(BUILD_CMD)
|
||||
|
||||
|
||||
|
||||
define GEN_OBJRULE
|
||||
$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
|
||||
|
@ -371,7 +364,7 @@ DEPS = $(patsubst %.o,%.d,$(patsubst %.a,%.o,$(OBJ)))
|
|||
.PRECIOUS: $(DEPS)
|
||||
# Empty rule to force recompilation if the .d file is missing
|
||||
$(DEPS):
|
||||
|
||||
|
||||
|
||||
$(foreach OUTPUT,$(OUTPUTS),$(eval $(call GEN_OBJRULE,$(OUTPUT))))
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
|
||||
TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
|
||||
TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
|
||||
MAKE_ALL="make all:default AUTOGEN=\"true\""
|
||||
MAKE_ALL="make all:default"
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
||||
exit_code=0
|
||||
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
||||
if [ $? -eq 128 ]; then
|
||||
|
@ -30,15 +30,15 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
|||
KEYMAP_ONLY=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/'${KB}'/keymaps/)' | wc -l)
|
||||
if [[ $KEYMAP_ONLY -gt 0 ]]; then
|
||||
echo "Making all keymaps for $KB"
|
||||
make ${KB}:all AUTOGEN=true
|
||||
make ${KB}:all
|
||||
: $((exit_code = $exit_code + $?))
|
||||
else
|
||||
MKM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
|
||||
for KM in $MKM ; do
|
||||
echo "Making $KM for $KB"
|
||||
make ${KB}:${KM} AUTOGEN=true
|
||||
echo "Making $KM for $KB"
|
||||
make ${KB}:${KM}
|
||||
: $((exit_code = $exit_code + $?))
|
||||
done
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
|
|
@ -69,10 +69,9 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
|||
# rm -f compiled/*.hex
|
||||
|
||||
# ignore errors here
|
||||
for file in ../qmk_firmware/keyboards/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
|
||||
for file in ../qmk_firmware/keyboards/*/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
|
||||
for file in ../qmk_firmware/keyboards/*/*/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
|
||||
for file in ../qmk_firmware/keyboards/*/*/*/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
|
||||
# In theory, this is more flexible, and will allow for additional expansion of additional types of files and other names
|
||||
mv -t compiled ../qmk_firmware/*_default.*(hex|bin) || true
|
||||
|
||||
bash _util/generate_keyboard_page.sh
|
||||
git add -A
|
||||
git commit -m "generated from qmk/qmk_firmware@${rev}"
|
||||
|
|
Loading…
Reference in New Issue