Skip to content

Commit f938957

Browse files
committed
update emscripten interface
- adopt to changes in emscripten-core/emscripten#5892 - set the version to C++11 - update the interface itself
1 parent f8d8864 commit f938957

4 files changed

Lines changed: 54 additions & 23 deletions

File tree

emscripten/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ include(CheckSymbolExists)
3030
include(CheckCXXSymbolExists)
3131
include(CheckTypeSize)
3232

33+
3334
#
3435
# Determine config
3536
#
@@ -100,7 +101,7 @@ endif()
100101
if( NOT CMAKE_BUILD_TYPE )
101102
set( CMAKE_BUILD_TYPE Release )
102103
endif()
103-
set( FALLBACK_VERSION "Uncrustify-0.64_f" )
104+
set( FALLBACK_VERSION "Uncrustify-0.66.1_f" )
104105

105106
find_package(PythonInterp REQUIRED)
106107
execute_process(
@@ -142,6 +143,9 @@ ADD_EXECUTABLE(${project_name} ${unc_infiles} ${unc_projdir}/src/token_enum.h)
142143
SET(unc_compile_flags "--bind -O3")
143144
SET_TARGET_PROPERTIES(${project_name}
144145
PROPERTIES
146+
CXX_STANDARD 11
147+
CXX_STANDARD_REQUIRED YES
148+
CXX_EXTENSIONS NO
145149
COMPILE_FLAGS "${unc_compile_flags}"
146150
LINK_FLAGS "${unc_compile_flags} \
147151
-s TOTAL_MEMORY=67108864 \
@@ -150,6 +154,7 @@ SET_TARGET_PROPERTIES(${project_name}
150154
-s MODULARIZE=1 \
151155
-s EXPORT_NAME=\"'${project_name}'\" \
152156
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
157+
-s 'EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF8ToString\",\"stringToUTF8\",\"lengthBytesUTF8\"]' \
153158
--memory-init-file 0\
154159
--pre-js ${CMAKE_CURRENT_LIST_DIR}/prefix_module.js \
155160
--post-js ${CMAKE_CURRENT_LIST_DIR}/postfix_module.js \

emscripten/build.sh

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,33 @@
1-
#!/bin/sh
1+
#!/bin/sh
2+
# script to build without cmake,
3+
# manually generate header files usually created by CMake,
4+
# past those inside Uncrustifys 'src' dir
5+
# run this script in the 'emscripten' dir
6+
27
sh_dir="$(dirname "$(readlink -f "$0")")"
38
outTmp="temp.bak"
49
out="libUncrustify.js"
510

611
#https://github.com/kripken/emscripten/blob/master/src/settings.js
7-
8-
em++ -O3 \
9-
${COMMENT# initialy increase memory for big input files } \
10-
-s TOTAL_MEMORY=67108864 \
11-
${COMMENT# let the memory grow dynamically if even more is needed } \
12-
-s ALLOW_MEMORY_GROWTH=1 \
13-
-s VERBOSE=1 \
14-
-s MODULARIZE=1 \
15-
-s EXPORT_NAME="'libUncrustify'" \
16-
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
17-
-s ALLOW_MEMORY_GROWTH=1 \
18-
--bind \
19-
--pre-js prefix_module.js \
20-
--post-js postfix_module.js \
21-
${COMMENT# TODO: handle async ajax load to enable this } \
22-
--memory-init-file 0 \
23-
-o $out \
24-
../src/*.cpp \
25-
&& cat "./prefix_file" "$out" "./postfix_file" > "$outTmp" \
26-
&& mv "$outTmp" "$out" \
27-
&& ./test/run.sh "$sh_dir/libUncrustify.js" "$sh_dir/test"
12+
13+
em++ -O3 \
14+
${COMMENT# initialy increase memory for big input files } \
15+
-s TOTAL_MEMORY=67108864 \
16+
${COMMENT# let the memory grow dynamically if even more is needed } \
17+
-s ALLOW_MEMORY_GROWTH=1 \
18+
-s VERBOSE=1 \
19+
-s MODULARIZE=1 \
20+
-s EXPORT_NAME="'libUncrustify'" \
21+
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
22+
-s ALLOW_MEMORY_GROWTH=1 \
23+
-s "EXTRA_EXPORTED_RUNTIME_METHODS=['UTF8ToString', 'stringToUTF8', 'lengthBytesUTF8']" \
24+
--bind \
25+
--pre-js prefix_module.js \
26+
--post-js postfix_module.js \
27+
${COMMENT# TODO: handle async ajax load to enable this } \
28+
--memory-init-file 0 \
29+
-o $out \
30+
../src/*.cpp \
31+
&& cat "./prefix_file" "$out" "./postfix_file" > "$outTmp" \
32+
&& mv "$outTmp" "$out" \
33+
&& ./test/run_tests.py "$sh_dir/libUncrustify.js" "$sh_dir/test"

emscripten/libUncrustify.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ declare namespace LibUncrustify
325325
UO_indent_square_nl : EmscriptenEnumTypeObject;
326326
UO_indent_preserve_sql : EmscriptenEnumTypeObject;
327327
UO_indent_align_assign : EmscriptenEnumTypeObject;
328+
UO_indent_align_paren : EmscriptenEnumTypeObject;
328329
UO_indent_oc_block : EmscriptenEnumTypeObject;
329330
UO_indent_oc_block_msg : EmscriptenEnumTypeObject;
330331
UO_indent_oc_msg_colon : EmscriptenEnumTypeObject;
@@ -340,6 +341,8 @@ declare namespace LibUncrustify
340341
UO_indent_cpp_lambda_body : EmscriptenEnumTypeObject;
341342
UO_indent_using_block : EmscriptenEnumTypeObject;
342343
UO_indent_ternary_operator : EmscriptenEnumTypeObject;
344+
UO_indent_off_after_return_new : EmscriptenEnumTypeObject;
345+
UO_indent_single_after_return : EmscriptenEnumTypeObject;
343346
UO_indent_ignore_asm_block : EmscriptenEnumTypeObject;
344347
UO_nl_collapse_empty_body : EmscriptenEnumTypeObject;
345348
UO_nl_assign_leave_one_liners : EmscriptenEnumTypeObject;
@@ -358,6 +361,7 @@ declare namespace LibUncrustify
358361
UO_nl_end_of_file_min : EmscriptenEnumTypeObject;
359362
UO_nl_assign_brace : EmscriptenEnumTypeObject;
360363
UO_nl_assign_square : EmscriptenEnumTypeObject;
364+
UO_nl_tsquare_brace : EmscriptenEnumTypeObject;
361365
UO_nl_after_square_assign : EmscriptenEnumTypeObject;
362366
UO_nl_func_var_def_blk : EmscriptenEnumTypeObject;
363367
UO_nl_typedef_blk_start : EmscriptenEnumTypeObject;
@@ -856,6 +860,7 @@ declare namespace LibUncrustify
856860
CT_TYPE_CAST : EmscriptenEnumTypeObject;
857861
CT_TYPENAME : EmscriptenEnumTypeObject;
858862
CT_TEMPLATE : EmscriptenEnumTypeObject;
863+
CT_WHERE_SPEC : EmscriptenEnumTypeObject;
859864
CT_ASSIGN : EmscriptenEnumTypeObject;
860865
CT_ASSIGN_NL : EmscriptenEnumTypeObject;
861866
CT_SASSIGN : EmscriptenEnumTypeObject;
@@ -901,12 +906,14 @@ declare namespace LibUncrustify
901906
CT_CONSTR_COLON : EmscriptenEnumTypeObject;
902907
CT_D_ARRAY_COLON : EmscriptenEnumTypeObject;
903908
CT_COND_COLON : EmscriptenEnumTypeObject;
909+
CT_WHERE_COLON : EmscriptenEnumTypeObject;
904910
CT_QUESTION : EmscriptenEnumTypeObject;
905911
CT_COMMA : EmscriptenEnumTypeObject;
906912
CT_ASM : EmscriptenEnumTypeObject;
907913
CT_ATTRIBUTE : EmscriptenEnumTypeObject;
908914
CT_CATCH : EmscriptenEnumTypeObject;
909915
CT_WHEN : EmscriptenEnumTypeObject;
916+
CT_WHERE : EmscriptenEnumTypeObject;
910917
CT_CLASS : EmscriptenEnumTypeObject;
911918
CT_DELETE : EmscriptenEnumTypeObject;
912919
CT_EXPORT : EmscriptenEnumTypeObject;
@@ -980,6 +987,7 @@ declare namespace LibUncrustify
980987
CT_MACRO : EmscriptenEnumTypeObject;
981988
CT_QUALIFIER : EmscriptenEnumTypeObject;
982989
CT_EXTERN : EmscriptenEnumTypeObject;
990+
CT_DECLSPEC : EmscriptenEnumTypeObject;
983991
CT_ALIGN : EmscriptenEnumTypeObject;
984992
CT_TYPE : EmscriptenEnumTypeObject;
985993
CT_PTR_TYPE : EmscriptenEnumTypeObject;
@@ -1075,6 +1083,8 @@ declare namespace LibUncrustify
10751083
CT_ANNOTATION : EmscriptenEnumTypeObject;
10761084
CT_FOR_COLON : EmscriptenEnumTypeObject;
10771085
CT_DOUBLE_BRACE : EmscriptenEnumTypeObject;
1086+
CT_CNG_HASINC : EmscriptenEnumTypeObject;
1087+
CT_CNG_HASINCN : EmscriptenEnumTypeObject;
10781088
CT_Q_EMIT : EmscriptenEnumTypeObject;
10791089
CT_Q_FOREACH : EmscriptenEnumTypeObject;
10801090
CT_Q_FOREVER : EmscriptenEnumTypeObject;

src/uncrustify_emscripten.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,7 @@ EMSCRIPTEN_BINDINGS(MainModule)
906906
.value(STRINGIFY(UO_indent_square_nl), UO_indent_square_nl)
907907
.value(STRINGIFY(UO_indent_preserve_sql), UO_indent_preserve_sql)
908908
.value(STRINGIFY(UO_indent_align_assign), UO_indent_align_assign)
909+
.value(STRINGIFY(UO_indent_align_paren), UO_indent_align_paren)
909910
.value(STRINGIFY(UO_indent_oc_block), UO_indent_oc_block)
910911
.value(STRINGIFY(UO_indent_oc_block_msg), UO_indent_oc_block_msg)
911912
.value(STRINGIFY(UO_indent_oc_msg_colon), UO_indent_oc_msg_colon)
@@ -921,6 +922,8 @@ EMSCRIPTEN_BINDINGS(MainModule)
921922
.value(STRINGIFY(UO_indent_cpp_lambda_body), UO_indent_cpp_lambda_body)
922923
.value(STRINGIFY(UO_indent_using_block), UO_indent_using_block)
923924
.value(STRINGIFY(UO_indent_ternary_operator), UO_indent_ternary_operator)
925+
.value(STRINGIFY(UO_indent_off_after_return_new), UO_indent_off_after_return_new)
926+
.value(STRINGIFY(UO_indent_single_after_return), UO_indent_single_after_return)
924927
.value(STRINGIFY(UO_indent_ignore_asm_block), UO_indent_ignore_asm_block)
925928
.value(STRINGIFY(UO_nl_collapse_empty_body), UO_nl_collapse_empty_body)
926929
.value(STRINGIFY(UO_nl_assign_leave_one_liners), UO_nl_assign_leave_one_liners)
@@ -939,6 +942,7 @@ EMSCRIPTEN_BINDINGS(MainModule)
939942
.value(STRINGIFY(UO_nl_end_of_file_min), UO_nl_end_of_file_min)
940943
.value(STRINGIFY(UO_nl_assign_brace), UO_nl_assign_brace)
941944
.value(STRINGIFY(UO_nl_assign_square), UO_nl_assign_square)
945+
.value(STRINGIFY(UO_nl_tsquare_brace), UO_nl_tsquare_brace)
942946
.value(STRINGIFY(UO_nl_after_square_assign), UO_nl_after_square_assign)
943947
.value(STRINGIFY(UO_nl_func_var_def_blk), UO_nl_func_var_def_blk)
944948
.value(STRINGIFY(UO_nl_typedef_blk_start), UO_nl_typedef_blk_start)
@@ -1429,6 +1433,7 @@ EMSCRIPTEN_BINDINGS(MainModule)
14291433
.value(STRINGIFY(CT_TYPE_CAST), CT_TYPE_CAST)
14301434
.value(STRINGIFY(CT_TYPENAME), CT_TYPENAME)
14311435
.value(STRINGIFY(CT_TEMPLATE), CT_TEMPLATE)
1436+
.value(STRINGIFY(CT_WHERE_SPEC), CT_WHERE_SPEC)
14321437
.value(STRINGIFY(CT_ASSIGN), CT_ASSIGN)
14331438
.value(STRINGIFY(CT_ASSIGN_NL), CT_ASSIGN_NL)
14341439
.value(STRINGIFY(CT_SASSIGN), CT_SASSIGN)
@@ -1474,12 +1479,14 @@ EMSCRIPTEN_BINDINGS(MainModule)
14741479
.value(STRINGIFY(CT_CONSTR_COLON), CT_CONSTR_COLON)
14751480
.value(STRINGIFY(CT_D_ARRAY_COLON), CT_D_ARRAY_COLON)
14761481
.value(STRINGIFY(CT_COND_COLON), CT_COND_COLON)
1482+
.value(STRINGIFY(CT_WHERE_COLON), CT_WHERE_COLON)
14771483
.value(STRINGIFY(CT_QUESTION), CT_QUESTION)
14781484
.value(STRINGIFY(CT_COMMA), CT_COMMA)
14791485
.value(STRINGIFY(CT_ASM), CT_ASM)
14801486
.value(STRINGIFY(CT_ATTRIBUTE), CT_ATTRIBUTE)
14811487
.value(STRINGIFY(CT_CATCH), CT_CATCH)
14821488
.value(STRINGIFY(CT_WHEN), CT_WHEN)
1489+
.value(STRINGIFY(CT_WHERE), CT_WHERE)
14831490
.value(STRINGIFY(CT_CLASS), CT_CLASS)
14841491
.value(STRINGIFY(CT_DELETE), CT_DELETE)
14851492
.value(STRINGIFY(CT_EXPORT), CT_EXPORT)
@@ -1553,6 +1560,7 @@ EMSCRIPTEN_BINDINGS(MainModule)
15531560
.value(STRINGIFY(CT_MACRO), CT_MACRO)
15541561
.value(STRINGIFY(CT_QUALIFIER), CT_QUALIFIER)
15551562
.value(STRINGIFY(CT_EXTERN), CT_EXTERN)
1563+
.value(STRINGIFY(CT_DECLSPEC), CT_DECLSPEC)
15561564
.value(STRINGIFY(CT_ALIGN), CT_ALIGN)
15571565
.value(STRINGIFY(CT_TYPE), CT_TYPE)
15581566
.value(STRINGIFY(CT_PTR_TYPE), CT_PTR_TYPE)
@@ -1648,6 +1656,8 @@ EMSCRIPTEN_BINDINGS(MainModule)
16481656
.value(STRINGIFY(CT_ANNOTATION), CT_ANNOTATION)
16491657
.value(STRINGIFY(CT_FOR_COLON), CT_FOR_COLON)
16501658
.value(STRINGIFY(CT_DOUBLE_BRACE), CT_DOUBLE_BRACE)
1659+
.value(STRINGIFY(CT_CNG_HASINC), CT_CNG_HASINC)
1660+
.value(STRINGIFY(CT_CNG_HASINCN), CT_CNG_HASINCN)
16511661
.value(STRINGIFY(CT_Q_EMIT), CT_Q_EMIT)
16521662
.value(STRINGIFY(CT_Q_FOREACH), CT_Q_FOREACH)
16531663
.value(STRINGIFY(CT_Q_FOREVER), CT_Q_FOREVER)

0 commit comments

Comments
 (0)