Commit 6e613ff3 authored by Brad King's avatar Brad King
Browse files

bootstrap: Add infrastructure to detect threading flags

In our loop to detect -std flags, add another layer to detect
threading flags.
parent 8b5ae1c1
...@@ -981,6 +981,8 @@ if [ -z "${CC}" -a -z "${CXX}" ]; then ...@@ -981,6 +981,8 @@ if [ -z "${CC}" -a -z "${CXX}" ]; then
cmake_toolchain_detect cmake_toolchain_detect
fi fi
thread_flags=''
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Test C compiler # Test C compiler
cmake_c_compiler= cmake_c_compiler=
...@@ -1014,16 +1016,18 @@ int main(int argc, char* argv[]) ...@@ -1014,16 +1016,18 @@ int main(int argc, char* argv[])
} }
' > "${TMPFILE}.c" ' > "${TMPFILE}.c"
for std in 11 99 90; do for std in 11 99 90; do
try_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" C \"${std}\"`" std_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" C \"${std}\"`"
for compiler in ${cmake_c_compilers}; do for compiler in ${cmake_c_compilers}; do
for flag in '' $try_flags; do for std_flag in '' $std_flags; do
echo "Checking whether '${compiler} ${cmake_c_flags} ${flag}' works." >> cmake_bootstrap.log 2>&1 for thread_flag in '' $thread_flags; do
if cmake_try_run "${compiler}" "${cmake_c_flags} ${flag}" \ echo "Checking whether '${compiler} ${cmake_c_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1
"${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then if cmake_try_run "${compiler}" "${cmake_c_flags} ${std_flag} ${thread_flag}" \
cmake_c_compiler="${compiler}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
cmake_c_flags="${cmake_c_flags} ${flag}" cmake_c_compiler="${compiler}"
break 3 cmake_c_flags="${cmake_c_flags} ${std_flag} ${thread_flag}"
fi break 3
fi
done
done done
done done
done done
...@@ -1081,16 +1085,18 @@ int main() ...@@ -1081,16 +1085,18 @@ int main()
} }
' > "${TMPFILE}.cxx" ' > "${TMPFILE}.cxx"
for std in 17 14 11; do for std in 17 14 11; do
try_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" CXX \"${std}\"`" std_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" CXX \"${std}\"`"
for compiler in ${cmake_cxx_compilers}; do for compiler in ${cmake_cxx_compilers}; do
for flag in '' $try_flags; do for std_flag in '' $std_flags; do
echo "Checking whether '${compiler} ${cmake_cxx_flags} ${flag}' works." >> cmake_bootstrap.log 2>&1 for thread_flag in '' $thread_flags; do
if cmake_try_run "${compiler}" "${cmake_cxx_flags} ${flag}" \ echo "Checking whether '${compiler} ${cmake_cxx_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1
"${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then if cmake_try_run "${compiler}" "${cmake_cxx_flags} ${std_flag} ${thread_flag}" \
cmake_cxx_compiler="${compiler}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
cmake_cxx_flags="${cmake_cxx_flags} ${flag} " cmake_cxx_compiler="${compiler}"
break 3 cmake_cxx_flags="${cmake_cxx_flags} ${std_flag} ${thread_flag} "
fi break 3
fi
done
done done
done done
done done
......
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