moz.build (2917B)
1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- 2 # vim: set filetype=python: 3 # This Source Code Form is subject to the terms of the Mozilla Public 4 # License, v. 2.0. If a copy of the MPL was not distributed with this 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 7 include("../js-compileflags.mozbuild") 8 include("../js-config.mozbuild") 9 include("../js-cxxflags.mozbuild") 10 11 FINAL_LIBRARY = "js" 12 13 with Files("*"): 14 BUG_COMPONENT = ("Core", "JavaScript: WebAssembly") 15 16 LOCAL_INCLUDES += [ 17 "!..", 18 "..", 19 "/third_party/gemmology", 20 "/third_party/xsimd/include", 21 ] 22 23 if CONFIG["INTEL_ARCHITECTURE"]: 24 DEFINES["USE_SSE2"] = True 25 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineSSE2.cpp"] 26 SOURCES["/third_party/gemmology/kernels/GemmologyEngineSSE2.cpp"].flags += CONFIG[ 27 "SSE2_FLAGS" 28 ] 29 if CONFIG["SSSE3_FLAGS"]: 30 DEFINES["USE_SSSE3"] = True 31 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineSSSE3.cpp"] 32 SOURCES[ 33 "/third_party/gemmology/kernels/GemmologyEngineSSSE3.cpp" 34 ].flags += CONFIG["SSSE3_FLAGS"] 35 if CONFIG["AVX2_FLAGS"]: 36 DEFINES["USE_AVX2"] = True 37 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX2.cpp"] 38 SOURCES[ 39 "/third_party/gemmology/kernels/GemmologyEngineAVX2.cpp" 40 ].flags += CONFIG["AVX2_FLAGS"] 41 if CONFIG["AVXVNNI_FLAGS"]: 42 DEFINES["USE_AVXVNNI"] = True 43 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVXVNNI.cpp"] 44 SOURCES[ 45 "/third_party/gemmology/kernels/GemmologyEngineAVXVNNI.cpp" 46 ].flags += CONFIG["AVXVNNI_FLAGS"] 47 if CONFIG["AVX512BW_FLAGS"]: 48 DEFINES["USE_AVX512BW"] = True 49 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX512BW.cpp"] 50 SOURCES[ 51 "/third_party/gemmology/kernels/GemmologyEngineAVX512BW.cpp" 52 ].flags += CONFIG["AVX512BW_FLAGS"] 53 if CONFIG["AVX512VNNI_FLAGS"]: 54 DEFINES["USE_AVX512VNNI"] = True 55 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX512VNNI.cpp"] 56 SOURCES[ 57 "/third_party/gemmology/kernels/GemmologyEngineAVX512VNNI.cpp" 58 ].flags += CONFIG["AVX512VNNI_FLAGS"] 59 60 61 if CONFIG["TARGET_CPU"] == "aarch64": 62 DEFINES["USE_NEON"] = True 63 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineNeon64.cpp"] 64 SOURCES["/third_party/gemmology/kernels/GemmologyEngineNeon64.cpp"].flags += CONFIG[ 65 "NEON_FLAGS" 66 ] 67 68 DEFINES["USE_NEON_I8MM"] = True 69 SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineNeon64I8mm.cpp"] 70 SOURCES[ 71 "/third_party/gemmology/kernels/GemmologyEngineNeon64I8mm.cpp" 72 ].flags += CONFIG["NEON_I8MM_FLAGS"] 73 74 SOURCES += [ 75 "IntegerGemmIntrinsic.cpp", 76 ] 77 78 # We allow warnings for third-party code that can be updated from upstream. 79 AllowCompilerWarnings()