1if(TARGET_AOS_ARM) 2 set(CMAKE_C_COMPILER "$ENV{CC}") 3 set(CMAKE_SYSTEM_PROCESSOR "aarch64") 4endif() 5 6if(ENABLE_GITEE) 7 set(REQ_URL "https://gitee.com/mirrors/libjpeg-turbo/repository/archive/2.0.4.tar.gz") 8 set(SHA256 "7777c3c19762940cff42b3ba4d7cd5c52d1671b39a79532050c85efb99079064") 9else() 10 set(REQ_URL "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.4.tar.gz") 11 set(SHA256 "7777c3c19762940cff42b3ba4d7cd5c52d1671b39a79532050c85efb99079064") 12endif() 13 14if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 15 set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \ 16 -O2") 17else() 18 if(MSVC) 19 set(jpeg_turbo_CFLAGS "-O2") 20 else() 21 set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 -O2") 22 if(TARGET_AOS_ARM) 23 set(jpeg_turbo_CFLAGS "${jpeg_turbo_CFLAGS} -march=armv8.2-a -mtune=cortex-a72") 24 set(jpeg_turbo_CFLAGS "${jpeg_turbo_CFLAGS} -Wno-uninitialized -march=armv8.2-a -mtune=cortex-a72") 25 else() 26 set(jpeg_turbo_CFLAGS "${jpeg_turbo_CFLAGS} -Wno-maybe-uninitialized") 27 endif() 28 endif() 29endif() 30 31set(jpeg_turbo_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack,-s") 32 33 34set(jpeg_turbo_USE_STATIC_LIBS ON) 35set(JPEG_TURBO_PATCHE ${CMAKE_SOURCE_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001) 36set(CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=TRUE -DWITH_SIMD=ON) 37set(CVE_2020_35538 ${CMAKE_SOURCE_DIR}/third_party/patch/jpeg_turbo/CVE-2020-35538.patch) 38set(CVE_2021_46822 ${CMAKE_SOURCE_DIR}/third_party/patch/jpeg_turbo/CVE-2021-46822.patch) 39if(BUILD_LITE) 40 set(jpeg_turbo_USE_STATIC_LIBS OFF) 41 set(JPEG_TURBO_PATCHE ${TOP_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001) 42 set(CVE_2020_35538 ${TOP_DIR}/third_party/patch/jpeg_turbo/CVE-2020-35538.patch) 43 set(CVE_2021_46822 ${TOP_DIR}/third_party/patch/jpeg_turbo/CVE-2021-46822.patch) 44 if(ANDROID_NDK) # compile android on x86_64 env 45 if(PLATFORM_ARM64) 46 set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake 47 -DANDROID_NATIVE_API_LEVEL=19 48 -DANDROID_NDK=$ENV{ANDROID_NDK} 49 -DANDROID_ABI=arm64-v8a 50 -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang 51 -DANDROID_STL=c++_shared -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) 52 endif() 53 if(PLATFORM_ARM32) 54 set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake 55 -DANDROID_NATIVE_API_LEVEL=19 56 -DANDROID_NDK=$ENV{ANDROID_NDK} 57 -DANDROID_ABI=armeabi-v7a 58 -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang 59 -DANDROID_STL=c++_shared -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) 60 endif() 61 elseif(TARGET_AOS_ARM) 62 set(CMAKE_OPTION ${CMAKE_OPTION} -DCMAKE_C_COMPILER=${C_COMPILER} 63 -DCMAKE_CXX_COMPILER=${CXX_COMPILER} 64 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) 65 endif() 66endif() 67 68mindspore_add_pkg(jpeg_turbo 69 VER 2.0.4 70 LIBS jpeg turbojpeg 71 URL ${REQ_URL} 72 SHA256 ${SHA256} 73 CMAKE_OPTION ${CMAKE_OPTION} 74 PATCHES ${JPEG_TURBO_PATCHE} 75 PATCHES ${CVE_2020_35538} 76 PATCHES ${CVE_2021_46822} 77 ) 78include_directories(${jpeg_turbo_INC}) 79add_library(mindspore::jpeg_turbo ALIAS jpeg_turbo::jpeg) 80add_library(mindspore::turbojpeg ALIAS jpeg_turbo::turbojpeg) 81