From 7edef74347ed4901c143b2d6960aee5504b87cae Mon Sep 17 00:00:00 2001 From: Renz Christian Bagaporo Date: Tue, 11 Jun 2019 12:06:04 +0800 Subject: [PATCH] cmake: set variables set by project call ESP-IDF overrides project() definition for user convenience. This redefinition lacks setting the variables documented at the project command documentation https://cmake.org/cmake/help/v3.5/command/project.html in the parent scope. This commit sets those variables. Closes https://github.com/espressif/esp-idf/issues/3611. --- tools/cmake/project.cmake | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tools/cmake/project.cmake b/tools/cmake/project.cmake index 754e4a2fd..b048b0d25 100644 --- a/tools/cmake/project.cmake +++ b/tools/cmake/project.cmake @@ -264,6 +264,31 @@ macro(project project_name) function(project) set(project_ARGV ARGV) __project(${${project_ARGV}}) + + # Set the variables that project() normally sets, documented in the + # command's docs. + # + # https://cmake.org/cmake/help/v3.5/command/project.html + # + # There is some nuance when it comes to setting version variables in terms of whether + # CMP0048 is set to OLD or NEW. However, the proper behavior should have bee already handled by the original + # project call, and we're just echoing the values those variables were set to. + set(PROJECT_NAME "${PROJECT_NAME}" PARENT_SCOPE) + set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}" PARENT_SCOPE) + set(PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}" PARENT_SCOPE) + set(PROJECT_VERSION "${PROJECT_VERSION}" PARENT_SCOPE) + set(PROJECT_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" PARENT_SCOPE) + set(PROJECT_VERSION_MINOR "${PROJECT_VERSION_MINOR}" PARENT_SCOPE) + set(PROJECT_VERSION_PATCH "${PROJECT_VERSION_PATCH}" PARENT_SCOPE) + set(PROJECT_VERSION_TWEAK "${PROJECT_VERSION_TWEAK}" PARENT_SCOPE) + + set(${PROJECT_NAME}_BINARY_DIR "${${PROJECT_NAME}_BINARY_DIR}" PARENT_SCOPE) + set(${PROJECT_NAME}_SOURCE_DIR "${${PROJECT_NAME}_SOURCE_DIR}" PARENT_SCOPE) + set(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION}" PARENT_SCOPE) + set(${PROJECT_NAME}_VERSION_MAJOR "${${PROJECT_NAME}_VERSION_MAJOR}" PARENT_SCOPE) + set(${PROJECT_NAME}_VERSION_MINOR "${${PROJECT_NAME}_VERSION_MINOR}" PARENT_SCOPE) + set(${PROJECT_NAME}_VERSION_PATCH "${${PROJECT_NAME}_VERSION_PATCH}" PARENT_SCOPE) + set(${PROJECT_NAME}_VERSION_TWEAK "${${PROJECT_NAME}_VERSION_TWEAK}" PARENT_SCOPE) endfunction() # Prepare the following arguments for the idf_build_process() call using external