[libc++] Prevent stale site configuration headers

If we define cmake macros that require a site config, and then undefine
all such macros, a stale site config header will be left behind.
Explicitly delete any generate site config if we don't need one to avoid
this.

Differential Revision: https://reviews.llvm.org/D36720

llvm-svn: 313284
This commit is contained in:
Shoaib Meenai 2017-09-14 18:23:43 +00:00
parent 2cda290ec8
commit 87fc45800a
1 changed files with 7 additions and 1 deletions

View File

@ -615,9 +615,10 @@ if (DEFINED WIN32 AND LIBCXX_ENABLE_STATIC AND NOT LIBCXX_ENABLE_SHARED)
config_define(ON _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
set(site_config_path "${LIBCXX_BINARY_DIR}/__config_site")
if (LIBCXX_NEEDS_SITE_CONFIG)
configure_file("include/__config_site.in"
"${LIBCXX_BINARY_DIR}/__config_site"
"${site_config_path}"
@ONLY)
# Provide the config definitions by included the generated __config_site
@ -627,6 +628,11 @@ if (LIBCXX_NEEDS_SITE_CONFIG)
else()
add_compile_flags("-include ${LIBCXX_BINARY_DIR}/__config_site")
endif()
else()
if (EXISTS "${site_config_path}")
message(STATUS "Removing stale site configuration ${site_config_path}")
file(REMOVE "${site_config_path}")
endif()
endif()
#===============================================================================