Merge branch 'bugfix/cmake_mconf_build' into 'master'

cmake: Fix some bugs building mconf-idf from scratch

See merge request espressif/esp-idf!5413
This commit is contained in:
Angus Gratton 2019-07-04 13:38:20 +08:00
commit 533c080bc1
2 changed files with 13 additions and 4 deletions

View file

@ -39,23 +39,30 @@ function(__kconfig_init)
# Use the existing Makefile to build mconf (out of tree) when needed
#
set(MCONF ${CMAKE_BINARY_DIR}/kconfig_bin/mconf-idf)
set(src_path ${idf_path}/tools/kconfig)
# note: we preemptively remove any build files from the src dir
# as we're building out of tree, but don't want build system to
# #include any from there that were previously build with/for make
externalproject_add(mconf-idf
SOURCE_DIR ${idf_path}/tools/kconfig
SOURCE_DIR ${src_path}
CONFIGURE_COMMAND ""
BINARY_DIR "kconfig_bin"
BUILD_COMMAND make -f ${idf_path}/tools/kconfig/Makefile mconf-idf
BUILD_COMMAND rm -f ${src_path}/zconf.lex.c ${src_path}/zconf.hash.c
COMMAND make -f ${src_path}/Makefile mconf-idf
BUILD_BYPRODUCTS ${MCONF}
INSTALL_COMMAND ""
EXCLUDE_FROM_ALL 1
)
file(GLOB mconf_srcfiles ${idf_path}/tools/kconfig/*.c)
file(GLOB mconf_srcfiles ${src_path}/*.c)
list(REMOVE_ITEM mconf_srcfiles "${src_path}/zconf.lex.c" "${src_path}/zconf.hash.c")
externalproject_add_stepdependencies(mconf-idf build
${mconf_srcfiles}
${idf_path}/tools/kconfig/Makefile
${src_path}/Makefile
${CMAKE_CURRENT_LIST_FILE})
unset(mconf_srcfiles)
unset(src_path)
set(menuconfig_depends DEPENDS mconf-idf)
endif()

View file

@ -167,6 +167,8 @@ check-lxdialog := $(SRCDIR)/lxdialog/check-lxdialog.sh
CFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
-DLOCALE -MMD
CFLAGS += -I "." -I "${SRCDIR}"
%.o: $(SRCDIR)/%.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@