@@ -38,13 +38,41 @@ target_compile_options(main
38
38
$< $< CXX_COMPILER_ID:MSVC> :/W4>
39
39
)
40
40
41
- #Default to C++14 -- no effect on C code (emscripten is limited to C++14 for now)
42
- target_compile_features (main PUBLIC cxx_std_14 )
41
+ #Default to C++17 -- no effect on C code
42
+ target_compile_features (main PUBLIC cxx_std_17 )
43
43
44
44
#Special: handle emscripten for running in web browser
45
45
if ("${CMAKE_SYSTEM_NAME} " MATCHES "Emscripten" )
46
+
47
+ #Ensure Release builds have full optimization enabled
48
+ string (REPLACE "O2" "O3" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} " )
49
+ string (REPLACE "O2" "O3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} " )
50
+
51
+ string (REPLACE "O2" "O3" CMAKE_C_FLAGS_RELWITHDEBINFO
52
+ "${CMAKE_C_FLAGS_RELWITHDEBINFO} " )
53
+ string (REPLACE "O2" "O3" CMAKE_CXX_FLAGS_RELWITHDEBINFO
54
+ "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} " )
55
+
56
+ string (REPLACE "O2" "O3" CMAKE_EXE_LINKER_FLAGS_RELEASE
57
+ "${CMAKE_EXE_LINKER_FLAGS_RELEASE} " )
58
+ string (REPLACE "O2" "O3" CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} " )
59
+
60
+ string (REPLACE "O2" "O3" CMAKE_SHARED_LINKER_FLAGS_RELEASE
61
+ "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} " )
62
+ string (REPLACE "O2" "O3" CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
63
+ "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} " )
64
+
65
+ string (REPLACE "O2" "O3" CMAKE_MODULE_LINKER_FLAGS_RELEASE
66
+ "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} " )
67
+ string (REPLACE "O2" "O3" CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
68
+ "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} " )
69
+
70
+ #Emscripten supports C++17, but upstream doesn't have the configuration added
71
+ #TODO: make pull request upstream to Emscripten.cmake to add this
72
+ set (CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17" )
73
+
46
74
set (CMAKE_EXECUTABLE_SUFFIX ".html" )
47
- set (ECXXFLAGS "-s USE_SDL=2 -s USE_SDL_TTF=2 -s WASM=1 -s EXIT_RUNTIME=1 --preload-file iosevka-regular.ttf" )
75
+ set (ECXXFLAGS "-s USE_SDL=2 -s USE_SDL_TTF=2 -s EXIT_RUNTIME=1 --preload-file iosevka-regular.ttf --preload-file sky.bmp --preload-file floor.bmp " )
48
76
set_target_properties (main PROPERTIES LINK_FLAGS "${ECXXFLAGS} --emrun" )
49
77
set_target_properties (main PROPERTIES COMPILE_FLAGS "${ECXXFLAGS} " )
50
78
else ()
0 commit comments