|
|
@@ -1206,15 +1206,18 @@ cmake_c_compiler=
|
|
|
# If CC is set, use that for compiler, otherwise use list of known compilers
|
|
|
if test -n "${cmake_toolchain}"; then
|
|
|
eval cmake_c_compilers="\${cmake_toolchain_${cmake_toolchain}_CC}"
|
|
|
-elif test -n "${CC}"; then
|
|
|
- cmake_c_compilers="${CC}"
|
|
|
else
|
|
|
cmake_c_compilers="${CMAKE_KNOWN_C_COMPILERS}"
|
|
|
fi
|
|
|
|
|
|
-# Check if C compiler works
|
|
|
-TMPFILE=`cmake_tmp_file`
|
|
|
-echo '
|
|
|
+cmake_c_compiler_try_set()
|
|
|
+{
|
|
|
+ test_compiler="$1"
|
|
|
+ test_thread_flags="$2"
|
|
|
+
|
|
|
+ # Check if C compiler works
|
|
|
+ TMPFILE=`cmake_tmp_file`
|
|
|
+ echo '
|
|
|
#ifdef __cplusplus
|
|
|
# error "The CMAKE_C_COMPILER is set to a C++ compiler"
|
|
|
#endif
|
|
|
@@ -1239,23 +1242,34 @@ int main(int argc, char* argv[])
|
|
|
return argc - 1;
|
|
|
}
|
|
|
' > "${TMPFILE}.c"
|
|
|
-for std in 11 99 90; do
|
|
|
- std_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" C \"${std}\"`"
|
|
|
- for compiler in ${cmake_c_compilers}; do
|
|
|
+ for std in 11 99 90; do
|
|
|
+ std_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" C \"${std}\"`"
|
|
|
for std_flag in '' $std_flags; do
|
|
|
- for thread_flag in '' $thread_flags; do
|
|
|
- echo "Checking whether '${compiler} ${cmake_c_flags} ${cmake_ld_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1
|
|
|
- if cmake_try_run "${compiler}" "${cmake_c_flags} ${cmake_ld_flags} ${std_flag} ${thread_flag}" \
|
|
|
+ for thread_flag in '' $test_thread_flags; do
|
|
|
+ echo "Checking whether '${test_compiler} ${cmake_c_flags} ${cmake_ld_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1
|
|
|
+ if cmake_try_run "${test_compiler}" "${cmake_c_flags} ${cmake_ld_flags} ${std_flag} ${thread_flag}" \
|
|
|
"${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
|
|
|
- cmake_c_compiler="${compiler}"
|
|
|
+ cmake_c_compiler="${test_compiler}"
|
|
|
cmake_c_flags="${cmake_c_flags} ${std_flag} ${thread_flag}"
|
|
|
- break 4
|
|
|
+ rm -f "${TMPFILE}.c"
|
|
|
+ return 0
|
|
|
fi
|
|
|
done
|
|
|
done
|
|
|
done
|
|
|
-done
|
|
|
-rm -f "${TMPFILE}.c"
|
|
|
+ rm -f "${TMPFILE}.c"
|
|
|
+ return 1
|
|
|
+}
|
|
|
+
|
|
|
+if test -n "${CC}"; then
|
|
|
+ cmake_c_compiler_try_set "${CC}" "${thread_flags}"
|
|
|
+else
|
|
|
+ for compiler in ${cmake_c_compilers}; do
|
|
|
+ if cmake_c_compiler_try_set "${compiler}" "${thread_flags}"; then
|
|
|
+ break
|
|
|
+ fi
|
|
|
+ done
|
|
|
+fi
|
|
|
|
|
|
if test -z "${cmake_c_compiler}"; then
|
|
|
cmake_error 6 "Cannot find appropriate C compiler on this system.
|