Fixed a fatal message when run `git describe`.
idf_check_config_target()
## get PROJECT_VER
-app_get_revision("${CMAKE_SOURCE_DIR}")
+if(NOT BOOTLOADER_BUILD)
+ app_get_revision("${CMAKE_SOURCE_DIR}")
+endif()
# Add some idf-wide definitions
idf_set_global_compile_options()
GET_PROJECT_VER ?=
ifeq ("${PROJECT_VER}", "")
ifeq ("$(wildcard ${PROJECT_PATH}/version.txt)","")
-GET_PROJECT_VER := $(shell cd ${PROJECT_PATH} && git describe --always --tags --dirty || echo "Not found git repo")
-ifeq ("${GET_PROJECT_VER}", "Not found git repo")
-$(info Project do not have git repo, it needs to get PROJECT_VER from `git describe` command.)
-GET_PROJECT_VER := ""
+
+GET_PROJECT_VER := $(shell cd ${PROJECT_PATH} && git describe --always --tags --dirty 2> /dev/null)
+ifeq ("${GET_PROJECT_VER}", "")
+GET_PROJECT_VER := "1"
+$(info Project is not inside a git repository, will not use 'git describe' to determine PROJECT_VER.)
endif
+
else
# read from version.txt
GET_PROJECT_VER := $(shell cat ${PROJECT_PATH}/version.txt)
# If ``PROJECT_VER`` variable set in project Makefile file, its value will be used.
# Else, if the ``$PROJECT_PATH/version.txt`` exists, its contents will be used as ``PROJECT_VER``.
# Else, if the project is located inside a Git repository, the output of git describe will be used.
-# Otherwise, ``PROJECT_VER`` will be empty.
+# Otherwise, ``PROJECT_VER`` will be "1".
ifeq ("${PROJECT_VER}", "")
PROJECT_VER:= $(GET_PROJECT_VER)
* If ``PROJECT_VER`` variable set in project CMakeLists.txt file, its value will be used.
* Else, if the ``$PROJECT_PATH/version.txt`` exists, its contents will be used as ``PROJECT_VER``.
* Else, if the project is located inside a Git repository, the output of git describe will be used.
-* Otherwise, ``PROJECT_VER`` will be empty.
+* Otherwise, ``PROJECT_VER`` will be "1".
If you modify any of these variables inside ``CMakeLists.txt`` then this will not prevent other components from building but it may make your component hard to build and/or debug.
* If ``PROJECT_VER`` variable set in project Makefile file, its value will be used.
* Else, if the ``$PROJECT_PATH/version.txt`` exists, its contents will be used as ``PROJECT_VER``.
* Else, if the project is located inside a Git repository, the output of git describe will be used.
-* Otherwise, ``PROJECT_VER`` will be empty.
+* Otherwise, ``PROJECT_VER`` will be "1".
If you modify any of these variables inside ``component.mk`` then this will not prevent other components from building but it may make your component hard to build and/or debug.
# If PROJECT_VER variable set in project CMakeLists.txt file, its value will be used.
# Else, if the _project_path/version.txt exists, its contents will be used as PROJECT_VER.
# Else, if the project is located inside a Git repository, the output of git describe will be used.
-# Otherwise, PROJECT_VER will be empty.
+# Otherwise, PROJECT_VER will be "1".
function(app_get_revision _project_path)
- git_describe(PROJECT_VER_GIT "${_project_path}")
if(NOT DEFINED PROJECT_VER)
if(EXISTS "${_project_path}/version.txt")
file(STRINGS "${_project_path}/version.txt" PROJECT_VER)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${_project_path}/version.txt")
else()
- set(PROJECT_VER ${PROJECT_VER_GIT})
+ git_describe(PROJECT_VER_GIT "${_project_path}")
+ if(PROJECT_VER_GIT)
+ set(PROJECT_VER ${PROJECT_VER_GIT})
+ else()
+ message(STATUS "Project is not inside a git repository, \
+ will not use 'git describe' to determine PROJECT_VER.")
+ set(PROJECT_VER "1")
+ endif()
endif()
endif()
message(STATUS "Project version: ${PROJECT_VER}")
- git_submodule_check("${_project_path}")
set(PROJECT_VER ${PROJECT_VER} PARENT_SCOPE)
endfunction()