Git fork

Makefile: use common template for GIT-BUILD-OPTIONS

The "GIT-BUILD-OPTIONS" file is generated by our build systems to
propagate built-in features and paths to our tests. The generation is
done ad-hoc, where both our Makefile and the CMake build instructions
simply echo a bunch of strings into the file. This makes it very hard to
figure out what variables are expected to exist and what format they
have, and the written variables can easily get out of sync between build
systems.

Introduce a new "GIT-BUILD-OPTIONS.in" template to address this issue.
This has multiple advantages:

- It demonstrates which built options exist in the first place.

- It can serve as a spot to document the build options.

- Some build systems complain when not all variables could be
substituted, alerting us of mismatches. Others don't, but if we
forgot to substitute such variables we now have a bogus string that
will likely cause our tests to fail, if they have any meaning in the
first place.

Backfill values that we didn't yet set in our CMake build instructions.
While at it, remove the `SUPPORTS_SIMPLE_IPC` variable that we only set
up in CMake as it isn't used anywhere.

This change requires us to adapt the setup of TEST_OUTPUT_DIRECTORY in
"test-lib.sh" such that it does not get overwritten after sourcing when
it has been set up via the environment. This is the only instance I
could find where we rely on ordering on variables.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Patrick Steinhardt and committed by
Junio C Hamano
4638e880 e66fd72e

+136 -95
+36
GIT-BUILD-OPTIONS.in
··· 1 + SHELL_PATH=@SHELL_PATH@ 2 + TEST_SHELL_PATH=@TEST_SHELL_PATH@ 3 + PERL_PATH=@PERL_PATH@ 4 + DIFF=@DIFF@ 5 + PYTHON_PATH=@PYTHON_PATH@ 6 + TAR=@TAR@ 7 + NO_CURL=@NO_CURL@ 8 + NO_ICONV=@NO_ICONV@ 9 + NO_EXPAT=@NO_EXPAT@ 10 + USE_LIBPCRE2=@USE_LIBPCRE2@ 11 + NO_PERL=@NO_PERL@ 12 + NO_PTHREADS=@NO_PTHREADS@ 13 + NO_PYTHON=@NO_PYTHON@ 14 + NO_REGEX=@NO_REGEX@ 15 + NO_UNIX_SOCKETS=@NO_UNIX_SOCKETS@ 16 + PAGER_ENV=@PAGER_ENV@ 17 + SANITIZE_LEAK=@SANITIZE_LEAK@ 18 + SANITIZE_ADDRESS=@SANITIZE_ADDRESS@ 19 + X=@X@ 20 + FSMONITOR_DAEMON_BACKEND=@FSMONITOR_DAEMON_BACKEND@ 21 + FSMONITOR_OS_SETTINGS=@FSMONITOR_OS_SETTINGS@ 22 + TEST_OUTPUT_DIRECTORY=@TEST_OUTPUT_DIRECTORY@ 23 + GIT_TEST_OPTS=@GIT_TEST_OPTS@ 24 + GIT_TEST_CMP=@GIT_TEST_CMP@ 25 + GIT_TEST_CMP_USE_COPIED_CONTEXT=@GIT_TEST_CMP_USE_COPIED_CONTEXT@ 26 + GIT_TEST_UTF8_LOCALE=@GIT_TEST_UTF8_LOCALE@ 27 + NO_GETTEXT=@NO_GETTEXT@ 28 + GIT_PERF_REPEAT_COUNT=@GIT_PERF_REPEAT_COUNT@ 29 + GIT_PERF_REPO=@GIT_PERF_REPO@ 30 + GIT_PERF_LARGE_REPO=@GIT_PERF_LARGE_REPO@ 31 + GIT_PERF_MAKE_OPTS=@GIT_PERF_MAKE_OPTS@ 32 + GIT_PERF_MAKE_COMMAND=@GIT_PERF_MAKE_COMMAND@ 33 + GIT_INTEROP_MAKE_OPTS=@GIT_INTEROP_MAKE_OPTS@ 34 + GIT_TEST_INDEX_VERSION=@GIT_TEST_INDEX_VERSION@ 35 + GIT_TEST_PERL_FATAL_WARNINGS=@GIT_TEST_PERL_FATAL_WARNINGS@ 36 + RUNTIME_PREFIX=@RUNTIME_PREFIX@
+45 -70
Makefile
··· 3160 3160 echo "$$FLAGS" >GIT-LDFLAGS; \ 3161 3161 fi 3162 3162 3163 + ifdef RUNTIME_PREFIX 3164 + RUNTIME_PREFIX_OPTION = true 3165 + else 3166 + RUNTIME_PREFIX_OPTION = false 3167 + endif 3168 + 3163 3169 # We need to apply sq twice, once to protect from the shell 3164 3170 # that runs GIT-BUILD-OPTIONS, and then again to protect it 3165 3171 # and the first level quoting from the shell that runs "echo". 3166 3172 GIT-BUILD-OPTIONS: FORCE 3167 - @echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@+ 3168 - @echo TEST_SHELL_PATH=\''$(subst ','\'',$(TEST_SHELL_PATH_SQ))'\' >>$@+ 3169 - @echo PERL_PATH=\''$(subst ','\'',$(PERL_PATH_SQ))'\' >>$@+ 3170 - @echo DIFF=\''$(subst ','\'',$(subst ','\'',$(DIFF)))'\' >>$@+ 3171 - @echo PYTHON_PATH=\''$(subst ','\'',$(PYTHON_PATH_SQ))'\' >>$@+ 3172 - @echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@+ 3173 - @echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@+ 3174 - @echo NO_ICONV=\''$(subst ','\'',$(subst ','\'',$(NO_ICONV)))'\' >>$@+ 3175 - @echo NO_EXPAT=\''$(subst ','\'',$(subst ','\'',$(NO_EXPAT)))'\' >>$@+ 3176 - @echo USE_LIBPCRE2=\''$(subst ','\'',$(subst ','\'',$(USE_LIBPCRE2)))'\' >>$@+ 3177 - @echo NO_PERL=\''$(subst ','\'',$(subst ','\'',$(NO_PERL)))'\' >>$@+ 3178 - @echo NO_PTHREADS=\''$(subst ','\'',$(subst ','\'',$(NO_PTHREADS)))'\' >>$@+ 3179 - @echo NO_PYTHON=\''$(subst ','\'',$(subst ','\'',$(NO_PYTHON)))'\' >>$@+ 3180 - @echo NO_REGEX=\''$(subst ','\'',$(subst ','\'',$(NO_REGEX)))'\' >>$@+ 3181 - @echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@+ 3182 - @echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+ 3183 - @echo SANITIZE_LEAK=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_LEAK)))'\' >>$@+ 3184 - @echo SANITIZE_ADDRESS=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_ADDRESS)))'\' >>$@+ 3185 - @echo X=\'$(X)\' >>$@+ 3186 - ifdef FSMONITOR_DAEMON_BACKEND 3187 - @echo FSMONITOR_DAEMON_BACKEND=\''$(subst ','\'',$(subst ','\'',$(FSMONITOR_DAEMON_BACKEND)))'\' >>$@+ 3188 - endif 3189 - ifdef FSMONITOR_OS_SETTINGS 3190 - @echo FSMONITOR_OS_SETTINGS=\''$(subst ','\'',$(subst ','\'',$(FSMONITOR_OS_SETTINGS)))'\' >>$@+ 3191 - endif 3192 - ifdef TEST_OUTPUT_DIRECTORY 3193 - @echo TEST_OUTPUT_DIRECTORY=\''$(subst ','\'',$(subst ','\'',$(TEST_OUTPUT_DIRECTORY)))'\' >>$@+ 3194 - endif 3195 - ifdef GIT_TEST_OPTS 3196 - @echo GIT_TEST_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_OPTS)))'\' >>$@+ 3197 - endif 3198 - ifdef GIT_TEST_CMP 3199 - @echo GIT_TEST_CMP=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_CMP)))'\' >>$@+ 3200 - endif 3201 - ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT 3202 - @echo GIT_TEST_CMP_USE_COPIED_CONTEXT=YesPlease >>$@+ 3203 - endif 3204 - ifdef GIT_TEST_UTF8_LOCALE 3205 - @echo GIT_TEST_UTF8_LOCALE=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_UTF8_LOCALE)))'\' >>$@+ 3206 - endif 3207 - @echo NO_GETTEXT=\''$(subst ','\'',$(subst ','\'',$(NO_GETTEXT)))'\' >>$@+ 3208 - ifdef GIT_PERF_REPEAT_COUNT 3209 - @echo GIT_PERF_REPEAT_COUNT=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_REPEAT_COUNT)))'\' >>$@+ 3210 - endif 3211 - ifdef GIT_PERF_REPO 3212 - @echo GIT_PERF_REPO=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_REPO)))'\' >>$@+ 3213 - endif 3214 - ifdef GIT_PERF_LARGE_REPO 3215 - @echo GIT_PERF_LARGE_REPO=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_LARGE_REPO)))'\' >>$@+ 3216 - endif 3217 - ifdef GIT_PERF_MAKE_OPTS 3218 - @echo GIT_PERF_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_OPTS)))'\' >>$@+ 3219 - endif 3220 - ifdef GIT_PERF_MAKE_COMMAND 3221 - @echo GIT_PERF_MAKE_COMMAND=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_COMMAND)))'\' >>$@+ 3222 - endif 3223 - ifdef GIT_INTEROP_MAKE_OPTS 3224 - @echo GIT_INTEROP_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_INTEROP_MAKE_OPTS)))'\' >>$@+ 3225 - endif 3226 - ifdef GIT_TEST_INDEX_VERSION 3227 - @echo GIT_TEST_INDEX_VERSION=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_INDEX_VERSION)))'\' >>$@+ 3228 - endif 3229 - ifdef GIT_TEST_PERL_FATAL_WARNINGS 3230 - @echo GIT_TEST_PERL_FATAL_WARNINGS=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_PERL_FATAL_WARNINGS)))'\' >>$@+ 3231 - endif 3232 - ifdef RUNTIME_PREFIX 3233 - @echo RUNTIME_PREFIX=\'true\' >>$@+ 3234 - else 3235 - @echo RUNTIME_PREFIX=\'false\' >>$@+ 3236 - endif 3173 + @sed \ 3174 + -e "s|@SHELL_PATH@|\'$(SHELL_PATH_SQ)\'|" \ 3175 + -e "s|@TEST_SHELL_PATH@|\'$(TEST_SHELL_PATH_SQ)\'|" \ 3176 + -e "s|@PERL_PATH@|\'$(PERL_PATH_SQ)\'|" \ 3177 + -e "s|@DIFF@|\'$(DIFF)\'|" \ 3178 + -e "s|@PYTHON_PATH@|\'$(PYTHON_PATH_SQ)\'|" \ 3179 + -e "s|@TAR@|\'$(TAR)\'|" \ 3180 + -e "s|@NO_CURL@|\'$(NO_CURL)\'|" \ 3181 + -e "s|@NO_ICONV@|\'$(NO_ICONV)\'|" \ 3182 + -e "s|@NO_EXPAT@|\'$(NO_EXPAT)\'|" \ 3183 + -e "s|@USE_LIBPCRE2@|\'$(USE_LIBPCRE2)\'|" \ 3184 + -e "s|@NO_PERL@|\'$(NO_PERL)\'|" \ 3185 + -e "s|@NO_PTHREADS@|\'$(NO_PTHREADS)\'|" \ 3186 + -e "s|@NO_PYTHON@|\'$(NO_PYTHON)\'|" \ 3187 + -e "s|@NO_REGEX@|\'$(NO_REGEX)\'|" \ 3188 + -e "s|@NO_UNIX_SOCKETS@|\'$(NO_UNIX_SOCKETS)\'|" \ 3189 + -e "s|@PAGER_ENV@|\'$(PAGER_ENV)\'|" \ 3190 + -e "s|@SANITIZE_LEAK@|\'$(SANITIZE_LEAK)\'|" \ 3191 + -e "s|@SANITIZE_ADDRESS@|\'$(SANITIZE_ADDRESS)\'|" \ 3192 + -e "s|@X@|\'$(X)\'|" \ 3193 + -e "s|@FSMONITOR_DAEMON_BACKEND@|\'$(FSMONITOR_DAEMON_BACKEND)\'|" \ 3194 + -e "s|@FSMONITOR_OS_SETTINGS@|\'$(FSMONITOR_OS_SETTINGS)\'|" \ 3195 + -e "s|@TEST_OUTPUT_DIRECTORY@|\'$(TEST_OUTPUT_DIRECTORY)\'|" \ 3196 + -e "s|@GIT_TEST_OPTS@|\'$(GIT_TEST_OPTS)\'|" \ 3197 + -e "s|@GIT_TEST_CMP@|\'$(GIT_TEST_CMP)\'|" \ 3198 + -e "s|@GIT_TEST_CMP_USE_COPIED_CONTEXT@|\'$(GIT_TEST_CMP_USE_COPIED_CONTEXT)\'|" \ 3199 + -e "s|@GIT_TEST_UTF8_LOCALE@|\'$(GIT_TEST_UTF8_LOCALE)\'|" \ 3200 + -e "s|@NO_GETTEXT@|\'$(NO_GETTEXT)\'|" \ 3201 + -e "s|@GIT_PERF_REPEAT_COUNT@|\'$(GIT_PERF_REPEAT_COUNT)\'|" \ 3202 + -e "s|@GIT_PERF_REPO@|\'$(GIT_PERF_REPO)\'|" \ 3203 + -e "s|@GIT_PERF_LARGE_REPO@|\'$(GIT_PERF_LARGE_REPO)\'|" \ 3204 + -e "s|@GIT_PERF_MAKE_OPTS@|\'$(GIT_PERF_MAKE_OPTS)\'|" \ 3205 + -e "s|@GIT_PERF_MAKE_COMMAND@|\'$(GIT_PERF_MAKE_COMMAND)\'|" \ 3206 + -e "s|@GIT_INTEROP_MAKE_OPTS@|\'$(GIT_INTEROP_MAKE_OPTS)\'|" \ 3207 + -e "s|@GIT_TEST_INDEX_VERSION@|\'$(GIT_TEST_INDEX_VERSION)\'|" \ 3208 + -e "s|@GIT_TEST_PERL_FATAL_WARNINGS@|\'$(GIT_TEST_PERL_FATAL_WARNINGS)\'|" \ 3209 + -e "s|@RUNTIME_PREFIX@|\'$(RUNTIME_PREFIX_OPTION)\'|" \ 3210 + GIT-BUILD-OPTIONS.in >$@+ 3211 + @if grep -q '^[A-Z][A-Z_]*=@.*@$$' $@+; then echo "Unsubstituted build options in $@" >&2 && exit 1; fi 3237 3212 @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi 3238 3213 @if test -f GIT-BUILD-DIR; then rm GIT-BUILD-DIR; fi 3239 3214
+39 -19
contrib/buildsystems/CMakeLists.txt
··· 1125 1125 set(NO_PYTHON 1) 1126 1126 endif() 1127 1127 1128 - file(WRITE ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "SHELL_PATH='${SHELL_PATH}'\n") 1129 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "TEST_SHELL_PATH='${TEST_SHELL_PATH}'\n") 1130 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PERL_PATH='${PERL_PATH}'\n") 1131 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "DIFF='${DIFF}'\n") 1132 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PYTHON_PATH='${PYTHON_PATH}'\n") 1133 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "TAR='${TAR}'\n") 1134 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_CURL='${NO_CURL}'\n") 1135 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_ICONV='${NO_ICONV}'\n") 1136 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_EXPAT='${NO_EXPAT}'\n") 1137 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PERL='${NO_PERL}'\n") 1138 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PTHREADS='${NO_PTHREADS}'\n") 1139 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_UNIX_SOCKETS='${NO_UNIX_SOCKETS}'\n") 1140 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PAGER_ENV='${PAGER_ENV}'\n") 1141 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "X='${EXE_EXTENSION}'\n") 1142 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_GETTEXT='${NO_GETTEXT}'\n") 1143 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "RUNTIME_PREFIX='${RUNTIME_PREFIX}'\n") 1144 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PYTHON='${NO_PYTHON}'\n") 1145 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "SUPPORTS_SIMPLE_IPC='${SUPPORTS_SIMPLE_IPC}'\n") 1128 + file(STRINGS ${CMAKE_SOURCE_DIR}/GIT-BUILD-OPTIONS.in git_build_options NEWLINE_CONSUME) 1129 + string(REPLACE "@SHELL_PATH@" "'${SHELL_PATH}'" git_build_options "${git_build_options}") 1130 + string(REPLACE "@TEST_SHELL_PATH@" "'${TEST_SHELL_PATH}'" git_build_options "${git_build_options}") 1131 + string(REPLACE "@PERL_PATH@" "'${PERL_PATH}'" git_build_options "${git_build_options}") 1132 + string(REPLACE "@DIFF@" "'${DIFF}'" git_build_options "${git_build_options}") 1133 + string(REPLACE "@PYTHON_PATH@" "'${PYTHON_PATH}'" git_build_options "${git_build_options}") 1134 + string(REPLACE "@TAR@" "'${TAR}'" git_build_options "${git_build_options}") 1135 + string(REPLACE "@NO_CURL@" "${NO_CURL}" git_build_options "${git_build_options}") 1136 + string(REPLACE "@NO_ICONV@" "${NO_ICONV}" git_build_options "${git_build_options}") 1137 + string(REPLACE "@NO_EXPAT@" "${NO_EXPAT}" git_build_options "${git_build_options}") 1138 + string(REPLACE "@USE_LIBPCRE2@" "" git_build_options "${git_build_options}") 1139 + string(REPLACE "@NO_PERL@" "${NO_PERL}" git_build_options "${git_build_options}") 1140 + string(REPLACE "@NO_PTHREADS@" "${NO_PTHREADS}" git_build_options "${git_build_options}") 1141 + string(REPLACE "@NO_PYTHON@" "${NO_PYTHON}" git_build_options "${git_build_options}") 1142 + string(REPLACE "@NO_REGEX@" "" git_build_options "${git_build_options}") 1143 + string(REPLACE "@NO_UNIX_SOCKETS@" "${NO_UNIX_SOCKETS}" git_build_options "${git_build_options}") 1144 + string(REPLACE "@PAGER_ENV@" "'${PAGER_ENV}'" git_build_options "${git_build_options}") 1145 + string(REPLACE "@SANITIZE_LEAK@" "" git_build_options "${git_build_options}") 1146 + string(REPLACE "@SANITIZE_ADDRESS@" "" git_build_options "${git_build_options}") 1147 + string(REPLACE "@X@" "${EXE_EXTENSION}" git_build_options "${git_build_options}") 1148 + string(REPLACE "@FSMONITOR_DAEMON_BACKEND@" "win32" git_build_options "${git_build_options}") 1149 + string(REPLACE "@FSMONITOR_OS_SETTINGS@" "win32" git_build_options "${git_build_options}") 1150 + string(REPLACE "@TEST_OUTPUT_DIRECTORY@" "" git_build_options "${git_build_options}") 1151 + string(REPLACE "@GIT_TEST_OPTS@" "" git_build_options "${git_build_options}") 1152 + string(REPLACE "@GIT_TEST_CMP@" "" git_build_options "${git_build_options}") 1153 + string(REPLACE "@GIT_TEST_CMP_USE_COPIED_CONTEXT@" "" git_build_options "${git_build_options}") 1154 + string(REPLACE "@GIT_TEST_UTF8_LOCALE@" "" git_build_options "${git_build_options}") 1155 + string(REPLACE "@NO_GETTEXT@" "${NO_GETTEXT}" git_build_options "${git_build_options}") 1156 + string(REPLACE "@GIT_PERF_REPEAT_COUNT@" "" git_build_options "${git_build_options}") 1157 + string(REPLACE "@GIT_PERF_REPO@" "" git_build_options "${git_build_options}") 1158 + string(REPLACE "@GIT_PERF_LARGE_REPO@" "" git_build_options "${git_build_options}") 1159 + string(REPLACE "@GIT_PERF_MAKE_OPTS@" "" git_build_options "${git_build_options}") 1160 + string(REPLACE "@GIT_PERF_MAKE_COMMAND@" "" git_build_options "${git_build_options}") 1161 + string(REPLACE "@GIT_INTEROP_MAKE_OPTS@" "" git_build_options "${git_build_options}") 1162 + string(REPLACE "@GIT_TEST_INDEX_VERSION@" "" git_build_options "${git_build_options}") 1163 + string(REPLACE "@GIT_TEST_PERL_FATAL_WARNINGS@" "" git_build_options "${git_build_options}") 1164 + string(REPLACE "@RUNTIME_PREFIX@" "'${RUNTIME_PREFIX}'" git_build_options "${git_build_options}") 1146 1165 if(USE_VCPKG) 1147 - file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PATH=\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\"\n") 1166 + string(APPEND git_build_options "PATH=\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\"\n") 1148 1167 endif() 1168 + file(WRITE ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS ${git_build_options}) 1149 1169 1150 1170 #Make the tests work when building out of the source tree 1151 1171 get_filename_component(CACHE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../CMakeCache.txt ABSOLUTE)
+16 -6
t/test-lib.sh
··· 35 35 # needing to exist. 36 36 TEST_DIRECTORY=$(cd "$TEST_DIRECTORY" && pwd) || exit 1 37 37 fi 38 - if test -z "$TEST_OUTPUT_DIRECTORY" 39 - then 40 - # Similarly, override this to store the test-results subdir 41 - # elsewhere 42 - TEST_OUTPUT_DIRECTORY=$TEST_DIRECTORY 43 - fi 44 38 GIT_BUILD_DIR="${TEST_DIRECTORY%/t}" 45 39 if test "$TEST_DIRECTORY" = "$GIT_BUILD_DIR" 46 40 then ··· 92 86 prepend_var UBSAN_OPTIONS : $GIT_SAN_OPTIONS 93 87 export UBSAN_OPTIONS 94 88 89 + # The TEST_OUTPUT_DIRECTORY will be overwritten via GIT-BUILD-OPTIONS. So in 90 + # case the caller has manually set up this variable via the environment we must 91 + # make sure to not overwrite that value, and thus we save it into 92 + # TEST_OUTPUT_DIRECTORY_OVERRIDE here. 93 + if test -n "$TEST_OUTPUT_DIRECTORY" && test -z "$TEST_OUTPUT_DIRECTORY_OVERRIDE" 94 + then 95 + TEST_OUTPUT_DIRECTORY_OVERRIDE=$TEST_OUTPUT_DIRECTORY 96 + fi 97 + 95 98 if test ! -f "$GIT_BUILD_DIR"/GIT-BUILD-OPTIONS 96 99 then 97 100 echo >&2 'error: GIT-BUILD-OPTIONS missing (has Git been built?).' ··· 99 102 fi 100 103 . "$GIT_BUILD_DIR"/GIT-BUILD-OPTIONS 101 104 export PERL_PATH SHELL_PATH 105 + 106 + if test -z "$TEST_OUTPUT_DIRECTORY" 107 + then 108 + # Similarly, override this to store the test-results subdir 109 + # elsewhere 110 + TEST_OUTPUT_DIRECTORY=$TEST_DIRECTORY 111 + fi 102 112 103 113 # In t0000, we need to override test directories of nested testcases. In case 104 114 # the developer has TEST_OUTPUT_DIRECTORY part of his build options, then we'd