CMakeLists.txt 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. cmake_minimum_required (VERSION 3.14)
  2. project (ZXingWasm)
  3. include (${CMAKE_CURRENT_SOURCE_DIR}/../../zxing.cmake)
  4. zxing_add_package_stb()
  5. set (CMAKE_CXX_STANDARD 20)
  6. option (ZXING_WRITERS "Build with writer support (encoders)" ON)
  7. option (ZXING_READERS "Build with reader support (decoders)" ON)
  8. set (ZXING_EMSCRIPTEN_ENVIRONMENT "web" CACHE STRING "Optimize build for given emscripten runtime environment (web/node/shell/worker)")
  9. # provide backward compatibility for deprecated BUILD_... options
  10. if (DEFINED BUILD_READERS)
  11. set (ZXING_READERS ${BUILD_READERS})
  12. endif()
  13. if (DEFINED BUILD_WRITERS)
  14. set (ZXING_WRITERS ${BUILD_WRITERS})
  15. endif()
  16. if (DEFINED BUILD_EMSCRIPTEN_ENVIRONMENT)
  17. set (ZXING_EMSCRIPTEN_ENVIRONMENT ${BUILD_EMSCRIPTEN_ENVIRONMENT})
  18. endif()
  19. if (NOT CMAKE_BUILD_TYPE)
  20. set (CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
  21. endif()
  22. add_definitions ("-s DISABLE_EXCEPTION_CATCHING=0")
  23. add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/../../core ${CMAKE_BINARY_DIR}/ZXing)
  24. set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --bind -s ENVIRONMENT=${ZXING_EMSCRIPTEN_ENVIRONMENT} -s DISABLE_EXCEPTION_CATCHING=0 -s FILESYSTEM=0 -s MODULARIZE=1 -s EXPORT_NAME=ZXing -s EXPORTED_FUNCTIONS=\"['_malloc', '_free']\" -s ALLOW_MEMORY_GROWTH=1")
  25. if (ZXING_READERS AND ZXING_WRITERS)
  26. add_executable (zxing BarcodeReader.cpp BarcodeWriter.cpp)
  27. target_link_libraries (zxing ZXing::ZXing stb::stb)
  28. endif()
  29. if (ZXING_READERS)
  30. configure_file(demo_cam_reader.html demo_cam_reader.html COPYONLY)
  31. configure_file(demo_reader.html demo_reader.html COPYONLY)
  32. add_executable (zxing_reader BarcodeReader.cpp)
  33. target_link_libraries (zxing_reader ZXing::ZXing stb::stb)
  34. endif()
  35. if (ZXING_WRITERS)
  36. configure_file(demo_writer.html demo_writer.html COPYONLY)
  37. add_executable (zxing_writer BarcodeWriter.cpp )
  38. target_link_libraries (zxing_writer ZXing::ZXing stb::stb)
  39. endif()