Skip to content

Commit fe2651e

Browse files
MAJigsaw77Raltyro
authored andcommitted
add support for cpp20 to more targets.
# Conflicts: # toolchain/android-toolchain-clang.xml # toolchain/appletvos-toolchain.xml # toolchain/appletvsim-toolchain.xml # toolchain/finish-setup.xml # toolchain/iphoneos-toolchain.xml # toolchain/iphonesim-toolchain.xml # toolchain/linux-toolchain.xml # toolchain/mingw-toolchain.xml # toolchain/watchos-toolchain.xml # toolchain/watchsimulator-toolchain.xml
1 parent 3d12ac5 commit fe2651e

10 files changed

+93
-1
lines changed

toolchain/android-toolchain-clang.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@
6161
<flag value="-DHXCPP_ANDROID_PLATFORM=${HXCPP_ANDROID_PLATFORM}" />
6262

6363
<!-- Options -->
64+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
65+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
6466
<flag value="-flto" if="HXCPP_OPTIMIZE_LINK" unless="debug"/>
6567
<flag value="-fvisibility=hidden"/>
6668
<flag value="-ffunction-sections"/>

toolchain/appletvos-toolchain.xml

Lines changed: 16 additions & 1 deletion
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" />
@@ -22,6 +23,16 @@
2223
<!-- <cppflag value="-fvisibility-inlines-hidden"/> -->
2324
<pchflag value="-x" />
2425
<pchflag value="c++-header" />
26+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
27+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
28+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
29+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
30+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
31+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
32+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
33+
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
34+
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
35+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
2536
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
2637
<flag value="-O2" unless="debug"/>
2738
<flag value="-arch"/>
@@ -65,6 +76,10 @@
6576
<linker id="dll" exe="g++" >
6677
<exe name="xcrun --sdk appletvos${TVOS_VER} g++" if="HXCPP_GCC" />
6778
<exe name="xcrun --sdk appletvos${TVOS_VER} clang++" />
79+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
80+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
81+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
82+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
6883
<flag value="-dynamiclib"/>
6984
<flag value="-arch"/>
7085
<flag value="arm64" if="HXCPP_ARM64" />

toolchain/appletvsim-toolchain.xml

Lines changed: 16 additions & 0 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" />
@@ -20,6 +22,16 @@
2022
<!-- <cppflag value="-fvisibility-inlines-hidden"/> -->
2123
<pchflag value="-x" />
2224
<pchflag value="c++-header" />
25+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
26+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
27+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
28+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
29+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
30+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
31+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
32+
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
33+
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
34+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
2335
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
2436
<flag value="-O2" unless="debug"/>
2537
<flag value="-fmessage-length=0"/>
@@ -72,6 +84,10 @@
7284
<linker id="dll" exe="g++" >
7385
<exe name="xcrun --sdk appletvsimulator${TVOS_VER} g++" if="HXCPP_GCC" />
7486
<exe name="xcrun --sdk appletvsimulator${TVOS_VER} clang++" />
87+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
88+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
89+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
90+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
7591
<flag value="-dynamiclib"/>
7692
<flag value="-arch"/>
7793
<flag value="i386" unless="HXCPP_M64"/>

toolchain/finish-setup.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@
7979
<set name="haxelink" value="dll" if="dll_import"/>
8080
<set name="haxelink" value="dll" if="dll_link"/>
8181

82+
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" if="iphoneos"/>
83+
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" if="iphonesim"/>
84+
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11" if="appletvos"/>
85+
<set name="HXCPP_IOS_STDCPP" value="1" unless="HXCPP_CPP11" if="appletvsim"/>
86+
8287
<set name="DESTDIR" value="bin" />
8388
<set name="DESTDIR" value="lib" if="static_link" unless="HXCPP_IOS_STDCPP"/>
8489
<set name="NDLLDIR" value="ndll" />

toolchain/iphoneos-toolchain.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +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 || HXCPP_CPP20" />
67

78
<set name="ARCH" value ="-v7" if="HXCPP_ARMV7" />
89
<set name="ARCH" value ="-v7s" if="HXCPP_ARMV7S" />
@@ -13,6 +14,10 @@
1314
<include name="toolchain/gcc-toolchain.xml"/>
1415
<!--<path name="${DEVELOPER_DIR}/Platforms/iPhoneOS.platform/Developer/usr/bin" />-->
1516

17+
<set name="FORCE_LIBGCC" value="1" if="HXCPP_IOS_STDCPP" unless="HXCPP_GCC" />
18+
<set name="OBJGCC" value="-c11" if="HXCPP_CPP11" />
19+
<set name="OBJGCC" value="-c17" if="HXCPP_CPP17" />
20+
<set name="OBJGCC" value="-c20" if="HXCPP_CPP20" />
1621
<set name="OBJGCC" value="-gcc" if="HXCPP_GCC" />
1722
<set name="OBJDBG" value="-dbg" if="debug" />
1823

@@ -28,6 +33,17 @@
2833
<pchflag value="-x" />
2934
<pchflag value="c++-header" />
3035

36+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
37+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
38+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
39+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
40+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
41+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
42+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
43+
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
44+
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
45+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
46+
3147
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
3248
<flag value="-O2" unless="debug"/>
3349
<flag value="-arch"/>
@@ -82,6 +98,10 @@
8298
<exe name="xcrun --sdk iphoneos${IPHONE_VER} g++" if="HXCPP_GCC" />
8399
<exe name="xcrun --sdk iphoneos${IPHONE_VER} clang++" />
84100
<flag value="-Wl,-cache_path_lto,/tmp" if="HXCPP_OPTIMIZE_LINK_INCREMENTAL" unless="debug"/>
101+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
102+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
103+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
104+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
85105
<flag value="-dynamiclib"/>
86106
<flag value="-arch"/>
87107
<flag value="armv6" if="HXCPP_ARMV6" />

toolchain/iphonesim-toolchain.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
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 || HXCPP_CPP20" />
6+
57
<set name="ARCH" value ="-64" if="HXCPP_M64" />
68

79
<set name="HXCPP_USE_LIBTOOL" value="1" />
@@ -21,6 +23,17 @@
2123
<pchflag value="-x" />
2224
<pchflag value="c++-header" />
2325

26+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
27+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
28+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
29+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
30+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
31+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
32+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
33+
<mmflag value="-std=c++11" if="HXCPP_CPP11" />
34+
<mmflag value="-std=c++17" if="HXCPP_CPP17" />
35+
<mmflag value="-std=c++20" if="HXCPP_CPP20" />
36+
2437
<flag value="-g" if="HXCPP_DEBUG_LINK"/>
2538
<flag value="-O2" unless="debug"/>
2639
<flag value="-fmessage-length=0"/>
@@ -79,6 +92,10 @@
7992
<linker id="dll" exe="g++" >
8093
<exe name="xcrun --sdk iphonesimulator${IPHONE_VER} g++" if="HXCPP_GCC" />
8194
<exe name="xcrun --sdk iphonesimulator${IPHONE_VER} clang++" />
95+
<cppflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
96+
<cppflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
97+
<mmflag value="-stdlib=libstdc++" if="FORCE_LIBGCC" />
98+
<mmflag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
8299
<flag value="-dynamiclib"/>
83100
<flag value="-arch"/>
84101
<flag value="i386" unless="HXCPP_M64 || HXCPP_ARM64"/>

toolchain/linux-toolchain.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
</section>
2727
</section>
2828

29+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
30+
2931
<include name="toolchain/gcc-toolchain.xml"/>
3032
<set name="noM32" value="1" if="HXCPP_NO_M32" />
3133
<set name="noM32" value="1" if="HXCPP_M64" />

toolchain/mingw-toolchain.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
<unset name="USE_PRECOMPILED_HEADERS"/>
2929

30+
<set name="HXCPP_CPP11" value="1" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
31+
3032
<set name="SUBSYSTEMWINDOWS" value="1" if="no_console" unless="HXCPP_DEBUGGER" />
3133

3234
<compiler id="mingw" exe="gcc">
@@ -41,6 +43,9 @@
4143
<include name="toolchain/common-defines.xml" />
4244
<flag value="-DHX_WINDOWS"/>
4345
<flag value="-DHXCPP_BIG_ENDIAN" if="HXCPP_BIG_ENDIAN"/>
46+
<cppflag value="-std=c++11" if="HXCPP_CPP11" />
47+
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
48+
<cppflag value="-std=c++20" if="HXCPP_CPP20" />
4449
<flag value="-m32" unless="HXCPP_M64"/>
4550
<flag value="-m64" if="HXCPP_M64"/>
4651
<flag value="-DHXCPP_M64" if="HXCPP_M64"/>

toolchain/watchos-toolchain.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +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" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
1011
<set name="OBJDBG" value="-dbg" if="debug" />
1112

1213
<compiler id="WatchOS" exe="clang" >
@@ -24,6 +25,10 @@
2425
<pchflag value="-x" />
2526
<pchflag value="c++-header" />
2627

28+
<flag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
29+
<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" />
2732
<flag value="-g" />
2833

2934
<flag value="-isysroot"/>

toolchain/watchsimulator-toolchain.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +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" unless="HXCPP_NO_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
1011
<set name="OBJDBG" value="-dbg" if="debug" />
1112

1213
<compiler id="WatchSimulator" exe="clang" >
@@ -24,6 +25,10 @@
2425
<pchflag value="-x" />
2526
<pchflag value="c++-header" />
2627

28+
<flag value="-stdlib=libc++" if="HXCPP_CPP11 || HXCPP_CPP17 || HXCPP_CPP20" />
29+
<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" />
2732
<flag value="-g" />
2833

2934
<flag value="-isysroot"/>

0 commit comments

Comments
 (0)