libjxl

FORK: libjxl patches used on blog
git clone https://git.neptards.moe/blog/libjxl.git
Log | Files | Refs | Submodules | README | LICENSE

CMakeLists.txt (1951B)


      1 if (NOT JPEGXL_ENABLE_TOOLS OR NOT EMSCRIPTEN)
      2   return()
      3 endif()
      4 
      5 # WASM API facade.
      6 add_executable(jxl_decoder jxl_decoder.cc jxl_decompressor.cc no_png.cc)
      7 add_executable(jxl_decoder_for_test jxl_decoder.cc jxl_decompressor.cc no_png.cc)
      8 target_link_libraries(jxl_decoder jxl_extras-internal jxl_threads)
      9 target_link_libraries(jxl_decoder_for_test jxl_extras-internal jxl_threads)
     10 
     11 set(JXL_C_SYMBOLS
     12   _free
     13   _malloc
     14 )
     15 
     16 set(JXL_DECODER_SYMBOLS
     17   _jxlCreateInstance
     18   _jxlDestroyInstance
     19   _jxlFlush
     20   _jxlProcessInput
     21 )
     22 
     23 set(JXL_DECOMPRESSOR_SYMBOLS
     24   _jxlDecompress
     25   _jxlCleanup
     26 )
     27 
     28 set(JXL_MODULE_SYMBOLS ${JXL_C_SYMBOLS} ${JXL_DECODER_SYMBOLS} ${JXL_DECOMPRESSOR_SYMBOLS})
     29 
     30 list(JOIN JXL_MODULE_SYMBOLS ", " JXL_MODULE_EXPORTS)
     31 
     32 set(JXL_WASM_SITE_LINK_FLAGS " -O3 -s FILESYSTEM=0 --closure 1 -mnontrapping-fptoint")
     33 set(JXL_WASM_TEST_LINK_FLAGS " -O1 -s NODERAWFS=1 ")
     34 
     35 set(JXL_WASM_BASE_LINK_FLAGS "\
     36   -s ALLOW_MEMORY_GROWTH=1 \
     37   -s DISABLE_EXCEPTION_CATCHING=1 \
     38   -s MODULARIZE=1 \
     39 ")
     40 
     41 if (JPEGXL_ENABLE_WASM_TRHEADS)
     42   set(JXL_WASM_BASE_LINK_FLAGS "${JXL_WASM_BASE_LINK_FLAGS} \
     43     -s USE_PTHREADS=1 \
     44     -s PTHREAD_POOL_SIZE=4 \
     45   ")
     46 endif()
     47 
     48 # libpng is used only by "decompressor"
     49 set(JXL_DECODER_LINK_FLAGS "${JXL_WASM_BASE_LINK_FLAGS} \
     50   -s EXPORT_NAME=\"JxlDecoderModule\" \
     51   -s \"EXPORTED_FUNCTIONS=[${JXL_MODULE_EXPORTS}]\" \
     52 ")
     53 
     54 set_target_properties(jxl_decoder PROPERTIES LINK_FLAGS
     55   "${JXL_DECODER_LINK_FLAGS} ${JXL_WASM_SITE_LINK_FLAGS}")
     56 
     57 set_target_properties(jxl_decoder_for_test PROPERTIES LINK_FLAGS
     58   "${JXL_DECODER_LINK_FLAGS} ${JXL_WASM_TEST_LINK_FLAGS}")
     59 
     60 if (BUILD_TESTING)
     61   add_test(
     62     NAME test_wasm_jxl_decoder
     63     COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR}
     64             --no-experimental-fetch
     65             ${CMAKE_CURRENT_SOURCE_DIR}/jxl_decoder_test.js
     66   )
     67   set_tests_properties(test_wasm_jxl_decoder PROPERTIES
     68     ENVIRONMENT NODE_PATH=$<TARGET_FILE_DIR:jxl_decoder_for_test>)
     69 endif()  # BUILD_TESTING