Skip to content

Commit 64a49a4

Browse files
committed
add support for cpp20 to more targets.
1 parent 707eec6 commit 64a49a4

10 files changed

Lines changed: 53 additions & 28 deletions

toolchain/android-toolchain-clang.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262

6363
<!-- Options -->
6464
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
65+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
6566
<flag value="-flto" if="HXCPP_OPTIMIZE_LINK" unless="debug"/>
6667
<flag value="-fvisibility=hidden"/>
6768
<flag value="-ffunction-sections"/>

toolchain/appletvos-toolchain.xml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<xml>
22

3-
43
<echo value="Using tvOS SDK ${TVOS_VER}" if="VERBOSE"/>
54

5+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
6+
67
<set name="ARCH" value ="-64" if="HXCPP_ARM64" />
78

89
<set name="HXCPP_USE_LIBTOOL" value="1" />
@@ -25,9 +26,15 @@
2526
<pchflag value="-x" />
2627
<pchflag value="c++-header" />
2728
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
28-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11" />
29+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
30+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
31+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
32+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
2933
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
30-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11" />
34+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
35+
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
36+
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
37+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
3138
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
3239
<flag value="-O2" unless="debug"/>
3340
<flag value="-arch"/>
@@ -72,9 +79,9 @@
7279
<exe name="xcrun --sdk appletvos${TVOS_VER} g++" if="HXCPP_GCC" />
7380
<exe name="xcrun --sdk appletvos${TVOS_VER} clang++" />
7481
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
75-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11" />
82+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
7683
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
77-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11" />
84+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
7885
<flag value="-dynamiclib"/>
7986
<flag value="-arch"/>
8087
<flag value="arm64" if="HXCPP_ARM64" />

toolchain/appletvsim-toolchain.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
<echo value="Using tvOS SDK ${TVOS_VER}" if="VERBOSE"/>
44

5+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
6+
57
<set name="ARCH" value ="-64" if="HXCPP_M64" />
68

79
<set name="HXCPP_USE_LIBTOOL" value="1" />
@@ -23,9 +25,15 @@
2325
<pchflag value="-x" />
2426
<pchflag value="c++-header" />
2527
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
26-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11" />
28+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
29+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
30+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
31+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
2732
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
28-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11" />
33+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
34+
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
35+
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
36+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
2937
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
3038
<flag value="-O2" unless="debug"/>
3139
<flag value="-fmessage-length=0"/>
@@ -79,9 +87,9 @@
7987
<exe name="xcrun --sdk appletvsimulator${TVOS_VER} g++" if="HXCPP_GCC" />
8088
<exe name="xcrun --sdk appletvsimulator${TVOS_VER} clang++" />
8189
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
82-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11" />
90+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
8391
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
84-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11" />
92+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
8593
<flag value="-dynamiclib"/>
8694
<flag value="-arch"/>
8795
<flag value="i386" unless="HXCPP_M64"/>

toolchain/finish-setup.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@
7676
<set name="haxelink" value="dll" if="dll_import"/>
7777
<set name="haxelink" value="dll" if="dll_link"/>
7878

79-
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11 || HXCPP_CPP17" if="iphoneos"/>
80-
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11 || HXCPP_CPP17" if="iphonesim"/>
79+
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" if="iphoneos"/>
80+
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" if="iphonesim"/>
8181
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11" if="appletvos"/>
8282
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11" if="appletvsim"/>
8383

toolchain/iphoneos-toolchain.xml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<echo value="Using iOS SDK ${IPHONE_VER}" if="VERBOSE"/>
55

6-
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17" />
6+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
77

88
<set name="ARCH" value ="-v7" if="HXCPP_ARMV7" />
99
<set name="ARCH" value ="-v7s" if="HXCPP_ARMV7S" />
@@ -17,6 +17,7 @@
1717
<set name="FORCE_LIBGCC" value="1" if="HXCPP_IOS_STDCPP" unless="HXCPP_GCC" />
1818
<set name="OBJGCC" value="-c11" if="HXCPP_CPP11" />
1919
<set name="OBJGCC" value="-c17" if="HXCPP_CPP17" />
20+
<set name="OBJGCC" value="-c20" if="HXCPP_CPP20" />
2021
<set name="OBJGCC" value="-gcc" if="HXCPP_GCC" />
2122
<set name="OBJDBG" value="-dbg" if="debug" />
2223

@@ -33,13 +34,15 @@
3334
<pchflag value="c++-header" />
3435

3536
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
36-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
37+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
3738
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
3839
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
40+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
3941
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
40-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
42+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
4143
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
4244
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
45+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
4346

4447
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
4548
<flag value="-O2" unless="debug"/>
@@ -96,9 +99,9 @@
9699
<exe name="xcrun --sdk iphoneos${IPHONE_VER} clang++" />
97100
<flag value="-Wl,-cache_path_lto,/tmp" if="HXCPP_OPTIMIZE_LINK_INCREMENTAL" unless="debug"/>
98101
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
99-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
102+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
100103
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
101-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
104+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
102105
<flag value="-dynamiclib"/>
103106
<flag value="-arch"/>
104107
<flag value="armv6" if="HXCPP_ARMV6" />

toolchain/iphonesim-toolchain.xml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<echo value="Using iOS SDK ${IPHONE_VER}" if="VERBOSE"/>
44

5-
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17" />
5+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
66

77
<set name="ARCH" value ="-64" if="HXCPP_M64" />
88

@@ -27,13 +27,15 @@
2727
<pchflag value="c++-header" />
2828

2929
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
30-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
30+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
3131
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
3232
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
33+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
3334
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
34-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
35+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
3536
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
3637
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
38+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
3739

3840
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
3941
<flag value="-O2" unless="debug"/>
@@ -90,9 +92,9 @@
9092
<exe name="xcrun --sdk iphonesimulator${IPHONE_VER} g++" if="HXCPP_GCC" />
9193
<exe name="xcrun --sdk iphonesimulator${IPHONE_VER} clang++" />
9294
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
93-
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
95+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
9496
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
95-
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17" />
97+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
9698
<flag value="-dynamiclib"/>
9799
<flag value="-arch"/>
98100
<flag value="i386" unless="HXCPP_M64"/>

toolchain/linux-toolchain.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
</section>
2727
</section>
2828

29-
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17" />
29+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
3030

3131
<include name="toolchain/gcc-toolchain.xml"/>
3232
<set name="noM32" value="1" if="HXCPP_NO_M32" />

toolchain/mingw-toolchain.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
<unset name="USE_PRECOMPILED_HEADERS"/>
2626

27-
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17" />
27+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
2828

2929
<set name="SUBSYSTEMWINDOWS" value="1" if="no_console" unless="HXCPP_DEBUGGER" />
3030

@@ -42,6 +42,7 @@
4242
<flag value="-DHXCPP_BIG_ENDIAN" if="HXCPP_BIG_ENDIAN"/>
4343
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
4444
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
45+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
4546
<flag value="-m32" unless="HXCPP_M64"/>
4647
<flag value="-m64" if="HXCPP_M64"/>
4748
<flag value="-DHXCPP_M64" if="HXCPP_M64"/>

toolchain/watchos-toolchain.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<include name="toolchain/gcc-toolchain.xml"/>
88
<!--<path name="${DEVELOPER_DIR}/Platforms/WatchOS.platform/Developer/usr/bin" />-->
99

10-
<set name="HXCPP_CPP11" value="1" />
10+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
1111
<set name="OBJDBG" value="-dbg" if="debug" />
1212

1313
<compiler id="WatchOS" exe="clang" >
@@ -25,9 +25,10 @@
2525
<pchflag value="-x" />
2626
<pchflag value="c++-header" />
2727

28-
<flag value="-stdlib=libc++" if="HXCPP_CPP11" />
28+
<flag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
2929
<flag value="-std=c++11" if="HXCPP_CPP11" />
30-
30+
<flag value="-std=c++17" if="HXCPP_CPP17" />
31+
<flag value="-std=c++20" if="HXCPP_CPP20" />
3132
<flag value="-g" />
3233

3334
<flag value="-isysroot"/>

toolchain/watchsimulator-toolchain.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<include name="toolchain/gcc-toolchain.xml"/>
88
<!--<path name="${DEVELOPER_DIR}/Platforms/WatchSimulator.platform/Developer/usr/bin" />-->
99

10-
<set name="HXCPP_CPP11" value="1" />
10+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
1111
<set name="OBJDBG" value="-dbg" if="debug" />
1212

1313
<compiler id="WatchSimulator" exe="clang" >
@@ -25,8 +25,10 @@
2525
<pchflag value="-x" />
2626
<pchflag value="c++-header" />
2727

28-
<flag value="-stdlib=libc++" if="HXCPP_CPP11" />
28+
<flag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
2929
<flag value="-std=c++11" if="HXCPP_CPP11" />
30+
<flag value="-std=c++17" if="HXCPP_CPP17" />
31+
<flag value="-std=c++20" if="HXCPP_CPP20" />
3032
<flag value="-g" />
3133

3234
<flag value="-isysroot"/>

0 commit comments

Comments
 (0)