| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 0309806 commit 954d3f4
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1117,18 +1117,20 @@ def try_check_compiler(cc, lang): | |||
| 1117 | 1117 | ||
| 1118 | 1118 | with proc: | |
| 1119 | 1119 | proc.stdin.write(b'__clang__ __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ ' | |
| 1120 | - b'__clang_major__ __clang_minor__ __clang_patchlevel__') | ||
| 1120 | + b'__clang_major__ __clang_minor__ __clang_patchlevel__ ' | ||
| 1121 | + b'__APPLE__') | ||
| 1121 | 1122 | ||
| 1122 | 1123 | if sys.platform == 'zos': | |
| 1123 | - values = (to_utf8(proc.communicate()[0]).split('\n')[-2].split() + ['0'] * 7)[0:7] | ||
| 1124 | + values = (to_utf8(proc.communicate()[0]).split('\n')[-2].split() + ['0'] * 7)[0:8] | ||
| 1124 | 1125 | else: | |
| 1125 | - values = (to_utf8(proc.communicate()[0]).split() + ['0'] * 7)[0:7] | ||
| 1126 | + values = (to_utf8(proc.communicate()[0]).split() + ['0'] * 7)[0:8] | ||
| 1126 | 1127 | ||
| 1127 | 1128 | is_clang = values[0] == '1' | |
| 1128 | 1129 | gcc_version = tuple(map(int, values[1:1+3])) | |
| 1129 | 1130 | clang_version = tuple(map(int, values[4:4+3])) if is_clang else None | |
| 1131 | + is_apple = values[7] == '1' | ||
| 1130 | 1132 | ||
| 1131 | - return (True, is_clang, clang_version, gcc_version) | ||
| 1133 | + return (True, is_clang, clang_version, gcc_version, is_apple) | ||
| 1132 | 1134 | ||
| 1133 | 1135 | ||
| 1134 | 1136 | # | |
@@ -1292,18 +1294,18 @@ def check_compiler(o): | |||
| 1292 | 1294 | o['variables']['openssl_no_asm'] = 1 | |
| 1293 | 1295 | return | |
| 1294 | 1296 | ||
| 1295 | - ok, is_clang, clang_version, gcc_version = try_check_compiler(CXX, 'c++') | ||
| 1297 | + ok, is_clang, clang_version, gcc_version, is_apple = try_check_compiler(CXX, 'c++') | ||
| 1296 | 1298 | o['variables']['clang'] = B(is_clang) | |
| 1297 | 1299 | version_str = ".".join(map(str, clang_version if is_clang else gcc_version)) | |
| 1298 | - print_verbose(f"Detected {'clang ' if is_clang else ''}C++ compiler (CXX={CXX}) version: {version_str}") | ||
| 1300 | + print_verbose(f"Detected {'Apple ' if is_apple else ''}{'clang ' if is_clang else ''}C++ compiler (CXX={CXX}) version: {version_str}") | ||
| 1299 | 1301 | if not ok: | |
| 1300 | 1302 | warn(f'failed to autodetect C++ compiler version (CXX={CXX})') | |
| 1301 | - elif clang_version < (19, 1, 0) if is_clang else gcc_version < (12, 2, 0): | ||
| 1302 | - warn(f'C++ compiler (CXX={CXX}, {version_str}) too old, need g++ 12.2.0 or clang++ 19.1.0') | ||
| 1303 | + elif (is_apple and clang_version < (17, 0, 0) or not is_apple and clang_version < (19, 1, 0)) if is_clang else gcc_version < (12, 2, 0): | ||
| 1304 | + warn(f'C++ compiler (CXX={CXX}, {version_str}) too old, need g++ 12.2.0, clang++ 19.1.0, or Apple clang++ 17.0.0') | ||
| 1303 | 1305 | ||
| 1304 | - ok, is_clang, clang_version, gcc_version = try_check_compiler(CC, 'c') | ||
| 1306 | + ok, is_clang, clang_version, gcc_version, is_apple = try_check_compiler(CC, 'c') | ||
| 1305 | 1307 | version_str = ".".join(map(str, clang_version if is_clang else gcc_version)) | |
| 1306 | - print_verbose(f"Detected {'clang ' if is_clang else ''}C compiler (CC={CC}) version: {version_str}") | ||
| 1308 | + print_verbose(f"Detected {'Apple ' if is_apple else ''}{'clang ' if is_clang else ''}C compiler (CC={CC}) version: {version_str}") | ||
| 1307 | 1309 | if not ok: | |
| 1308 | 1310 | warn(f'failed to autodetect C compiler version (CC={CC})') | |
| 1309 | 1311 | elif not is_clang and gcc_version < (4, 2, 0): | |
@@ -1481,7 +1483,7 @@ def configure_zos(o): | |||
| 1481 | 1483 | ||
| 1482 | 1484 | def clang_version_ge(version_checked): | |
| 1483 | 1485 | for compiler in [(CC, 'c'), (CXX, 'c++')]: | |
| 1484 | - _, is_clang, clang_version, _1 = ( | ||
| 1486 | + _, is_clang, clang_version, _1, _2 = ( | ||
| 1485 | 1487 | try_check_compiler(compiler[0], compiler[1]) | |
| 1486 | 1488 | ) | |
| 1487 | 1489 | if is_clang and clang_version >= version_checked: | |
@@ -1490,7 +1492,7 @@ def clang_version_ge(version_checked): | |||
| 1490 | 1492 | ||
| 1491 | 1493 | def gcc_version_ge(version_checked): | |
| 1492 | 1494 | for compiler in [(CC, 'c'), (CXX, 'c++')]: | |
| 1493 | - _, is_clang, _1, gcc_version = ( | ||
| 1495 | + _, is_clang, _1, gcc_version, _2 = ( | ||
| 1494 | 1496 | try_check_compiler(compiler[0], compiler[1]) | |
| 1495 | 1497 | ) | |
| 1496 | 1498 | if is_clang or gcc_version < version_checked: | |
| Back | FazBrowse Home | New Git URL |
0 commit comments