@@ -6,23 +6,73 @@ if simd
66 cargs += [' -msimd128' ]
77endif
88
9+ inc = include_directories (' src' , ' .' )
10+
11+ # Generate config headers similar to CMake
12+ configure_file (input : ' src/jconfig.h.in' , output : ' jconfig.h' , configuration : configuration_data ())
13+ configure_file (input : ' src/jconfigint.h.in' , output : ' jconfigint.h' , configuration : configuration_data ())
14+
15+ jpeg_sources = files (
16+ ' src/jcapimin.c' ,
17+ ' src/wrapper/jcapistd-8.c' ,' src/wrapper/jcapistd-12.c' ,' src/wrapper/jcapistd-16.c' ,
18+ ' src/wrapper/jccoefct-8.c' ,' src/wrapper/jccoefct-12.c' ,
19+ ' src/wrapper/jccolor-8.c' ,' src/wrapper/jccolor-12.c' ,' src/wrapper/jccolor-16.c' ,
20+ ' src/wrapper/jcdctmgr-8.c' ,' src/wrapper/jcdctmgr-12.c' ,
21+ ' src/wrapper/jcdiffct-8.c' ,' src/wrapper/jcdiffct-12.c' ,' src/wrapper/jcdiffct-16.c' ,
22+ ' src/jchuff.c' ,' src/jcicc.c' ,' src/jcinit.c' ,' src/jclhuff.c' ,
23+ ' src/wrapper/jclossls-8.c' ,' src/wrapper/jclossls-12.c' ,' src/wrapper/jclossls-16.c' ,
24+ ' src/wrapper/jcmainct-8.c' ,' src/wrapper/jcmainct-12.c' ,' src/wrapper/jcmainct-16.c' ,
25+ ' src/jcmarker.c' ,' src/jcmaster.c' ,' src/jcomapi.c' ,' src/jcparam.c' ,' src/jcphuff.c' ,
26+ ' src/wrapper/jcprepct-8.c' ,' src/wrapper/jcprepct-12.c' ,' src/wrapper/jcprepct-16.c' ,
27+ ' src/wrapper/jcsample-8.c' ,' src/wrapper/jcsample-12.c' ,' src/wrapper/jcsample-16.c' ,
28+ ' src/jctrans.c' ,' src/jdapimin.c' ,
29+ ' src/wrapper/jdapistd-8.c' ,' src/wrapper/jdapistd-12.c' ,' src/wrapper/jdapistd-16.c' ,
30+ ' src/jdatadst.c' ,' src/jdatasrc.c' ,
31+ ' src/wrapper/jdcoefct-8.c' ,' src/wrapper/jdcoefct-12.c' ,
32+ ' src/wrapper/jdcolor-8.c' ,' src/wrapper/jdcolor-12.c' ,' src/wrapper/jdcolor-16.c' ,
33+ ' src/wrapper/jddctmgr-8.c' ,' src/wrapper/jddctmgr-12.c' ,
34+ ' src/wrapper/jddiffct-8.c' ,' src/wrapper/jddiffct-12.c' ,' src/wrapper/jddiffct-16.c' ,
35+ ' src/jdhuff.c' ,' src/jdicc.c' ,' src/jdinput.c' ,' src/jdlhuff.c' ,
36+ ' src/wrapper/jdlossls-8.c' ,' src/wrapper/jdlossls-12.c' ,' src/wrapper/jdlossls-16.c' ,
37+ ' src/wrapper/jdmainct-8.c' ,' src/wrapper/jdmainct-12.c' ,' src/wrapper/jdmainct-16.c' ,
38+ ' src/jdmarker.c' ,' src/jdmaster.c' ,
39+ ' src/wrapper/jdmerge-8.c' ,' src/wrapper/jdmerge-12.c' ,
40+ ' src/jdphuff.c' ,
41+ ' src/wrapper/jdpostct-8.c' ,' src/wrapper/jdpostct-12.c' ,' src/wrapper/jdpostct-16.c' ,
42+ ' src/wrapper/jdsample-8.c' ,' src/wrapper/jdsample-12.c' ,' src/wrapper/jdsample-16.c' ,
43+ ' src/jdtrans.c' ,' src/jerror.c' ,' src/jfdctflt.c' ,
44+ ' src/wrapper/jfdctfst-8.c' ,' src/wrapper/jfdctfst-12.c' ,
45+ ' src/wrapper/jfdctint-8.c' ,' src/wrapper/jfdctint-12.c' ,
46+ ' src/wrapper/jidctflt-8.c' ,' src/wrapper/jidctflt-12.c' ,
47+ ' src/wrapper/jidctfst-8.c' ,' src/wrapper/jidctfst-12.c' ,
48+ ' src/wrapper/jidctint-8.c' ,' src/wrapper/jidctint-12.c' ,
49+ ' src/wrapper/jidctred-8.c' ,' src/wrapper/jidctred-12.c' ,
50+ ' src/jmemmgr.c' ,' src/jmemnobs.c' ,' src/jpeg_nbits.c' ,
51+ ' src/wrapper/jquant1-8.c' ,' src/wrapper/jquant1-12.c' ,
52+ ' src/wrapper/jquant2-8.c' ,' src/wrapper/jquant2-12.c' ,
53+ ' src/wrapper/jutils-8.c' ,' src/wrapper/jutils-12.c' ,' src/wrapper/jutils-16.c'
54+ )
55+
56+ # MAIN compiles the full library + wrapper
957executable (' libjpeg-main' ,
10- files (' wasm/libjpeg_wasm_module.c' ),
58+ files (' wasm/libjpeg_wasm_module.c' ) + jpeg_sources,
59+ include_directories : inc,
1160 c_args : cargs,
1261 link_args : [
13- ' -sUSE_LIBJPEG=1 ' , ' - sWASM=1' ,' -sMODULARIZE=1' ,' -sEXPORT_ES6=1' ,' -sEXPORT_NAME=LibjpegModule' ,
62+ ' -sWASM=1' ,' -sMODULARIZE=1' ,' -sEXPORT_ES6=1' ,' -sEXPORT_NAME=LibjpegModule' ,
1463 ' -sALLOW_MEMORY_GROWTH=1' ,' -sNO_FILESYSTEM=1' ,' -sEXPORTED_RUNTIME_METHODS=["cwrap","ccall","UTF8ToString"]' ,' -O3' ,' -flto'
1564 ],
1665 install : true ,
1766 install_dir : get_option (' bindir' )
1867)
1968
69+ # SIDE compiles the full library as -sSIDE_MODULE=2 for dlopen
2070shared_module (' libjpeg-side' ,
21- files (' wasm/libjpeg_wasm_side.c' ),
71+ files (' wasm/libjpeg_wasm_side.c' ) + jpeg_sources,
72+ include_directories : inc,
2273 name_prefix : '' ,
2374 c_args : cargs,
2475 link_args : [' -sSIDE_MODULE=2' ,' -fPIC' ,' -O3' ,' -flto' ,' -sEXPORTED_FUNCTIONS=["_libjpeg_wasm_version"]' ],
2576 install : true ,
2677 install_dir : get_option (' libdir' )
2778)
28-
0 commit comments