mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 23:33:05 +04:00
Merge pull request #28902 from Kumataro:fix28901
js: fix Emscripten version detection and macro usage
This commit is contained in:
@@ -20,6 +20,16 @@
|
||||
#include <emscripten/version.h>
|
||||
#endif
|
||||
|
||||
// Emscripten v5.0.1
|
||||
// Emscripten has changed its version macros from lowercase (EMSCRIPTEN_major) to uppercase (EMSCRIPTEN_MAJOR) and deprecated the old ones.
|
||||
//
|
||||
// See https://github.com/opencv/opencv/issues/28901
|
||||
#if !defined(__EMSCRIPTEN_MAJOR__) && defined(__EMSCRIPTEN_major__)
|
||||
# define __EMSCRIPTEN_MAJOR__ __EMSCRIPTEN_major__
|
||||
# define __EMSCRIPTEN_MINOR__ __EMSCRIPTEN_minor__
|
||||
# define __EMSCRIPTEN_TINY__ __EMSCRIPTEN_tiny__
|
||||
#endif
|
||||
|
||||
#define CV_SIMD128 1
|
||||
#define CV_SIMD128_64F 0 // Now all implementation of f64 use fallback, so disable it.
|
||||
#define CV_SIMD128_FP16 0
|
||||
@@ -31,7 +41,7 @@ namespace cv
|
||||
|
||||
CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN
|
||||
|
||||
#if (__EMSCRIPTEN_major__ * 1000000 + __EMSCRIPTEN_minor__ * 1000 + __EMSCRIPTEN_tiny__) < (1038046)
|
||||
#if (__EMSCRIPTEN_MAJOR__ * 1000000 + __EMSCRIPTEN_MINOR__ * 1000 + __EMSCRIPTEN_TINY__) < (1038046)
|
||||
// handle renames: https://github.com/emscripten-core/emscripten/pull/9440 (https://github.com/emscripten-core/emscripten/commit/755d5b46cb84d0aa120c10981b11d05646c29673)
|
||||
#define wasm_i32x4_trunc_saturate_f32x4 wasm_trunc_saturate_i32x4_f32x4
|
||||
#define wasm_u32x4_trunc_saturate_f32x4 wasm_trunc_saturate_u32x4_f32x4
|
||||
@@ -1271,7 +1281,7 @@ OPENCV_HAL_IMPL_WASM_BIN_FUNC(v_uint8x16, v_sub_wrap, wasm_i8x16_sub)
|
||||
OPENCV_HAL_IMPL_WASM_BIN_FUNC(v_int8x16, v_sub_wrap, wasm_i8x16_sub)
|
||||
OPENCV_HAL_IMPL_WASM_BIN_FUNC(v_uint16x8, v_sub_wrap, wasm_i16x8_sub)
|
||||
OPENCV_HAL_IMPL_WASM_BIN_FUNC(v_int16x8, v_sub_wrap, wasm_i16x8_sub)
|
||||
#if (__EMSCRIPTEN_major__ * 1000000 + __EMSCRIPTEN_minor__ * 1000 + __EMSCRIPTEN_tiny__) >= (1039012)
|
||||
#if (__EMSCRIPTEN_MAJOR__ * 1000000 + __EMSCRIPTEN_MINOR__ * 1000 + __EMSCRIPTEN_TINY__) >= (1039012)
|
||||
// details: https://github.com/opencv/opencv/issues/18097 ( https://github.com/emscripten-core/emscripten/issues/12018 )
|
||||
// 1.39.12: https://github.com/emscripten-core/emscripten/commit/cd801d0f110facfd694212a3c8b2ed2ffcd630e2
|
||||
inline v_uint8x16 v_mul_wrap(const v_uint8x16& a, const v_uint8x16& b)
|
||||
|
||||
@@ -45,17 +45,17 @@ set(EMSCRIPTEN_VERSION_PATH "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h")
|
||||
if(NOT EXISTS "${EMSCRIPTEN_VERSION_PATH}")
|
||||
message(STATUS "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h is missing")
|
||||
else()
|
||||
file(STRINGS "${EMSCRIPTEN_VERSION_PATH}" EMSCRIPTEN_VERSION_CONTENTS REGEX "^#define[ \t]+__EMSCRIPTEN_[a-z]+__[ \t][0-9]+")
|
||||
file(STRINGS "${EMSCRIPTEN_VERSION_PATH}" EMSCRIPTEN_VERSION_CONTENTS REGEX "^#define[ \t]+__EMSCRIPTEN_[a-zA-Z]+__[ \t][0-9]+")
|
||||
if(NOT EMSCRIPTEN_VERSION_CONTENTS)
|
||||
message(STATUS "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h is exists, but is not readable")
|
||||
else()
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_major__[ \t]+([0-9]+)")
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_[mM][aA][jJ][oO][rR]__[ \t]+([0-9]+)")
|
||||
set(EMSCRIPTEN_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_minor__[ \t]+([0-9]+)")
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_[mM][iI][nN][oO][rR]__[ \t]+([0-9]+)")
|
||||
set(EMSCRIPTEN_VERSION_MINOR "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_tiny__[ \t]+([0-9]+)")
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_[tT][iI][nN][yY]__[ \t]+([0-9]+)")
|
||||
set(EMSCRIPTEN_VERSION_TINY "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user