~ruther/qmk_firmware

d3f7910e680379edd80f8fbe76dd756f7f35c0f3 — Drashna Jaelre 6 years ago c5e10b7
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.
4 files changed, 13 insertions(+), 21 deletions(-)

M .travis.yml
M tmk_core/rules.mk
M util/travis_build.sh
M util/travis_compiled_push.sh
M .travis.yml => .travis.yml +1 -1
@@ 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:

M tmk_core/rules.mk => tmk_core/rules.mk +3 -10
@@ 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))))


M util/travis_build.sh => util/travis_build.sh +6 -6
@@ 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

M util/travis_compiled_push.sh => util/travis_compiled_push.sh +3 -4
@@ 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}"