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.
This commit is contained in:
parent
c5e10b7203
commit
d3f7910e68
4 changed files with 13 additions and 21 deletions
|
@ -20,7 +20,7 @@ before_script:
|
||||||
- avr-gcc --version
|
- avr-gcc --version
|
||||||
script:
|
script:
|
||||||
- git rev-parse --short HEAD
|
- git rev-parse --short HEAD
|
||||||
- make test:all AUTOGEN=false
|
- make test:all
|
||||||
- bash util/travis_build.sh
|
- bash util/travis_build.sh
|
||||||
- bash util/travis_docs.sh
|
- bash util/travis_docs.sh
|
||||||
addons:
|
addons:
|
||||||
|
|
|
@ -48,9 +48,6 @@ FORMAT = ihex
|
||||||
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
||||||
OPT = s
|
OPT = s
|
||||||
|
|
||||||
AUTOGEN ?= false
|
|
||||||
|
|
||||||
|
|
||||||
# Compiler flag to set the C Standard level.
|
# Compiler flag to set the C Standard level.
|
||||||
# c89 = "ANSI" C
|
# c89 = "ANSI" C
|
||||||
# gnu89 = c89 plus GCC extensions
|
# gnu89 = c89 plus GCC extensions
|
||||||
|
@ -142,7 +139,7 @@ CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
|
||||||
# files -- see avr-libc docs [FIXME: not yet described there]
|
# files -- see avr-libc docs [FIXME: not yet described there]
|
||||||
# -listing-cont-lines: Sets the maximum number of continuation lines of hex
|
# -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.
|
# dump that will be displayed for a given single line of source input.
|
||||||
ASFLAGS += $(ADEFS)
|
ASFLAGS += $(ADEFS)
|
||||||
ifndef SKIP_DEBUG_INFO
|
ifndef SKIP_DEBUG_INFO
|
||||||
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
|
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
|
||||||
else
|
else
|
||||||
|
@ -260,10 +257,6 @@ gccversion :
|
||||||
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
|
||||||
$(eval CMD=$(HEX) $< $@)
|
$(eval CMD=$(HEX) $< $@)
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
@if $(AUTOGEN); then \
|
|
||||||
$(SILENT) || printf "Copying $(TARGET).hex to keymaps/$(KEYMAP)/$(TARGET).hex\n"; \
|
|
||||||
$(COPY) $@ $(KEYMAP_PATH)/$(TARGET).hex; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
%.eep: %.elf
|
%.eep: %.elf
|
||||||
@$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
|
||||||
|
@ -297,7 +290,7 @@ BEGIN = gccversion sizebefore
|
||||||
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS))
|
$(eval CMD=$(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS))
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
|
|
||||||
define GEN_OBJRULE
|
define GEN_OBJRULE
|
||||||
$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
|
$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
|
||||||
|
@ -371,7 +364,7 @@ DEPS = $(patsubst %.o,%.d,$(patsubst %.a,%.o,$(OBJ)))
|
||||||
.PRECIOUS: $(DEPS)
|
.PRECIOUS: $(DEPS)
|
||||||
# Empty rule to force recompilation if the .d file is missing
|
# Empty rule to force recompilation if the .d file is missing
|
||||||
$(DEPS):
|
$(DEPS):
|
||||||
|
|
||||||
|
|
||||||
$(foreach OUTPUT,$(OUTPUTS),$(eval $(call GEN_OBJRULE,$(OUTPUT))))
|
$(foreach OUTPUT,$(OUTPUTS),$(eval $(call GEN_OBJRULE,$(OUTPUT))))
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
|
TRAVIS_COMMIT_MESSAGE="${TRAVIS_COMMIT_MESSAGE:-none}"
|
||||||
TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
|
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
|
exit_code=0
|
||||||
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
||||||
if [ $? -eq 128 ]; then
|
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)
|
KEYMAP_ONLY=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/'${KB}'/keymaps/)' | wc -l)
|
||||||
if [[ $KEYMAP_ONLY -gt 0 ]]; then
|
if [[ $KEYMAP_ONLY -gt 0 ]]; then
|
||||||
echo "Making all keymaps for $KB"
|
echo "Making all keymaps for $KB"
|
||||||
make ${KB}:all AUTOGEN=true
|
make ${KB}:all
|
||||||
: $((exit_code = $exit_code + $?))
|
: $((exit_code = $exit_code + $?))
|
||||||
else
|
else
|
||||||
MKM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
|
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
|
for KM in $MKM ; do
|
||||||
echo "Making $KM for $KB"
|
echo "Making $KM for $KB"
|
||||||
make ${KB}:${KM} AUTOGEN=true
|
make ${KB}:${KM}
|
||||||
: $((exit_code = $exit_code + $?))
|
: $((exit_code = $exit_code + $?))
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -69,10 +69,9 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
||||||
# rm -f compiled/*.hex
|
# rm -f compiled/*.hex
|
||||||
|
|
||||||
# ignore errors here
|
# ignore errors here
|
||||||
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
|
||||||
for file in ../qmk_firmware/keyboards/*/*/keymaps/*/*_default.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
|
mv -t compiled ../qmk_firmware/*_default.*(hex|bin) || true
|
||||||
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
|
|
||||||
bash _util/generate_keyboard_page.sh
|
bash _util/generate_keyboard_page.sh
|
||||||
git add -A
|
git add -A
|
||||||
git commit -m "generated from qmk/qmk_firmware@${rev}"
|
git commit -m "generated from qmk/qmk_firmware@${rev}"
|
||||||
|
|
Loading…
Reference in a new issue