Commit 85c26bef by Florent Castelli Committed by Copybara-Service

Avoid installing options.h with the other headers

This install is conflicting with the manual one done after.
It causes spurious recompilations for users as the original file
is copied and then overwritten with each install.

Fixes #1769

PiperOrigin-RevId: 692919849
Change-Id: I2fb9c68f6e547212425d5b5ae7205bbf19b46bf4
parent 4b4f41e9
...@@ -214,11 +214,13 @@ if(ABSL_ENABLE_INSTALL) ...@@ -214,11 +214,13 @@ if(ABSL_ENABLE_INSTALL)
) )
endif() # absl_VERSION endif() # absl_VERSION
# Install the headers except for "options.h" which is installed separately.
install(DIRECTORY absl install(DIRECTORY absl
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING FILES_MATCHING
PATTERN "*.inc" PATTERN "*.inc"
PATTERN "*.h" PATTERN "*.h"
PATTERN "options.h" EXCLUDE
PATTERN "copts" EXCLUDE PATTERN "copts" EXCLUDE
PATTERN "testdata" EXCLUDE PATTERN "testdata" EXCLUDE
) )
...@@ -258,7 +260,21 @@ if(ABSL_ENABLE_INSTALL) ...@@ -258,7 +260,21 @@ if(ABSL_ENABLE_INSTALL)
ABSL_INTERNAL_OPTIONS_H_PINNED ABSL_INTERNAL_OPTIONS_H_PINNED
"${ABSL_INTERNAL_OPTIONS_H_CONTENTS}") "${ABSL_INTERNAL_OPTIONS_H_CONTENTS}")
# If the file already exists, check if it matches the new contents.
# This avoids writing the file if it is already up-to-date when the CMake
# generation is triggered and triggering unnecessary rebuilds.
set(ABSL_INTERNAL_OPTIONS_H_PINNED_NEEDS_UPDATE TRUE)
if (EXISTS "${CMAKE_BINARY_DIR}/options-pinned.h")
file(READ "${CMAKE_BINARY_DIR}/options-pinned.h" ABSL_INTERNAL_OPTIONS_PINNED_H_CONTENTS)
if ("${ABSL_INTERNAL_OPTIONS_H_PINNED}" STREQUAL "${ABSL_INTERNAL_OPTIONS_PINNED_H_CONTENTS}")
set(ABSL_INTERNAL_OPTIONS_H_PINNED_NEEDS_UPDATE FALSE)
endif()
endif()
# If the file needs an update, generate it.
if (ABSL_INTERNAL_OPTIONS_H_PINNED_NEEDS_UPDATE)
file(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/options-pinned.h" CONTENT "${ABSL_INTERNAL_OPTIONS_H_PINNED}") file(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/options-pinned.h" CONTENT "${ABSL_INTERNAL_OPTIONS_H_PINNED}")
endif()
install(FILES "${CMAKE_BINARY_DIR}/options-pinned.h" install(FILES "${CMAKE_BINARY_DIR}/options-pinned.h"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/absl/base DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/absl/base
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment