Browse Source

bootstrap: Add infrastructure to detect threading flags

In our loop to detect -std flags, add another layer to detect
threading flags.
Brad King 8 years ago
parent
commit
6e613ff399
1 changed files with 24 additions and 18 deletions
  1. 24 18
      bootstrap

+ 24 - 18
bootstrap

@@ -981,6 +981,8 @@ if [ -z "${CC}" -a -z "${CXX}" ]; then
   cmake_toolchain_detect
 fi
 
+thread_flags=''
+
 #-----------------------------------------------------------------------------
 # Test C compiler
 cmake_c_compiler=
@@ -1014,16 +1016,18 @@ int main(int argc, char* argv[])
 }
 ' > "${TMPFILE}.c"
 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 flag in '' $try_flags; do
-      echo "Checking whether '${compiler} ${cmake_c_flags} ${flag}' works." >> cmake_bootstrap.log 2>&1
-      if cmake_try_run "${compiler}" "${cmake_c_flags} ${flag}" \
-        "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
-        cmake_c_compiler="${compiler}"
-        cmake_c_flags="${cmake_c_flags} ${flag}"
-        break 3
-      fi
+    for std_flag in '' $std_flags; do
+      for thread_flag in '' $thread_flags; do
+        echo "Checking whether '${compiler} ${cmake_c_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1
+        if cmake_try_run "${compiler}" "${cmake_c_flags} ${std_flag} ${thread_flag}" \
+          "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
+          cmake_c_compiler="${compiler}"
+          cmake_c_flags="${cmake_c_flags} ${std_flag} ${thread_flag}"
+          break 3
+        fi
+      done
     done
   done
 done
@@ -1081,16 +1085,18 @@ int main()
 }
 ' > "${TMPFILE}.cxx"
 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 flag in '' $try_flags; do
-      echo "Checking whether '${compiler} ${cmake_cxx_flags} ${flag}' works." >> cmake_bootstrap.log 2>&1
-      if cmake_try_run "${compiler}" "${cmake_cxx_flags} ${flag}" \
-        "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
-        cmake_cxx_compiler="${compiler}"
-        cmake_cxx_flags="${cmake_cxx_flags} ${flag} "
-        break 3
-      fi
+    for std_flag in '' $std_flags; do
+      for thread_flag in '' $thread_flags; do
+        echo "Checking whether '${compiler} ${cmake_cxx_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1
+        if cmake_try_run "${compiler}" "${cmake_cxx_flags} ${std_flag} ${thread_flag}" \
+          "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
+          cmake_cxx_compiler="${compiler}"
+          cmake_cxx_flags="${cmake_cxx_flags} ${std_flag} ${thread_flag} "
+          break 3
+        fi
+      done
     done
   done
 done