Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
Mace
提交
91e37ff1
Mace
项目概览
慢慢CG
/
Mace
与 Fork 源项目一致
Fork自
Xiaomi / Mace
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mace
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
91e37ff1
编写于
5月 15, 2019
作者:
L
Liangliang He
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enhance Darwin linking flags
上级
9d25993b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
118 deletion
+32
-118
CMakeLists.txt
CMakeLists.txt
+17
-15
tools/cmake-build-standalone-lib.sh
tools/cmake-build-standalone-lib.sh
+15
-103
未找到文件。
CMakeLists.txt
浏览文件 @
91e37ff1
...
@@ -21,13 +21,15 @@ message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
...
@@ -21,13 +21,15 @@ message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
# TODO enable sanitizer
# TODO enable sanitizer
set
(
MACE_CC_FLAGS
"
${
MACE_CC_FLAGS
}
-fPIC"
)
set
(
MACE_CC_FLAGS
"
${
MACE_CC_FLAGS
}
-fPIC"
)
if
(
MACE_ENABLE_OPT_SIZE
)
if
(
MACE_ENABLE_OPT_SIZE
)
if
(
NOT APPLE
)
if
(
APPLE
)
set
(
MACE_LINKER_FLAGS
"
${
MACE_LINKER_FLAGS
}
-Wl,-dead_strip -Wl,-dead_strip_dylibs"
)
else
(
APPLE
)
set
(
MACE_LINKER_FLAGS
"
${
MACE_LINKER_FLAGS
}
-Wl,--strip-all -Wl,--gc-sections"
)
set
(
MACE_LINKER_FLAGS
"
${
MACE_LINKER_FLAGS
}
-Wl,--strip-all -Wl,--gc-sections"
)
set
(
MACE_CC_FLAGS
"
${
MACE_CC_FLAGS
}
-ffunction-sections -fdata-sections"
)
set
(
MACE_CC_FLAGS
"
${
MACE_CC_FLAGS
}
-ffunction-sections -fdata-sections"
)
endif
()
endif
(
APPLE
)
set
(
MACE_CC_FLAGS
"
${
MACE_CC_FLAGS
}
-fvisibility=hidden -fvisibility-inlines-hidden"
)
set
(
MACE_CC_FLAGS
"
${
MACE_CC_FLAGS
}
-fvisibility=hidden -fvisibility-inlines-hidden"
)
set
(
MACE_CODE_CC_FLAGS
"
${
MACE_CODE_CC_FLAGS
}
-fno-rtti -fno-exceptions -DGOOGLE_PROTOBUF_NO_RTTI -DPROTOBUF_USE_EXCEPTIONS=0"
)
set
(
MACE_CODE_CC_FLAGS
"
${
MACE_CODE_CC_FLAGS
}
-fno-rtti -fno-exceptions -DGOOGLE_PROTOBUF_NO_RTTI -DPROTOBUF_USE_EXCEPTIONS=0"
)
endif
()
endif
(
MACE_ENABLE_OPT_SIZE
)
# flags apply only to mace code (third_party excluded)
# flags apply only to mace code (third_party excluded)
set
(
MACE_CODE_CC_FLAGS
"
${
MACE_CODE_CC_FLAGS
}
-Wall -Werror"
)
set
(
MACE_CODE_CC_FLAGS
"
${
MACE_CODE_CC_FLAGS
}
-Wall -Werror"
)
...
@@ -36,7 +38,7 @@ set(MACE_CODE_CC_FLAGS "${MACE_CODE_CC_FLAGS} -std=c++11 -D_GLIBCXX_USE_C99_MATH
...
@@ -36,7 +38,7 @@ set(MACE_CODE_CC_FLAGS "${MACE_CODE_CC_FLAGS} -std=c++11 -D_GLIBCXX_USE_C99_MATH
if
(
IOS
)
if
(
IOS
)
# TODO correct the code
# TODO correct the code
set
(
MACE_CODE_CC_FLAGS
"
${
MACE_CODE_CC_FLAGS
}
-Wno-error=shorten-64-to-32"
)
set
(
MACE_CODE_CC_FLAGS
"
${
MACE_CODE_CC_FLAGS
}
-Wno-error=shorten-64-to-32"
)
endif
()
endif
(
IOS
)
if
(
MACE_ENABLE_NEON
)
if
(
MACE_ENABLE_NEON
)
add_definitions
(
-DMACE_ENABLE_NEON
)
add_definitions
(
-DMACE_ENABLE_NEON
)
...
@@ -44,26 +46,26 @@ if(MACE_ENABLE_NEON)
...
@@ -44,26 +46,26 @@ if(MACE_ENABLE_NEON)
# Enable NEON fp16 support
# Enable NEON fp16 support
string
(
REPLACE
"-mfpu=neon "
"-mfpu=neon-fp16 "
CMAKE_CXX_FLAGS
${
CMAKE_CXX_FLAGS
}
)
string
(
REPLACE
"-mfpu=neon "
"-mfpu=neon-fp16 "
CMAKE_CXX_FLAGS
${
CMAKE_CXX_FLAGS
}
)
endif
(
ANDROID_ABI STREQUAL
"armeabi-v7a"
)
endif
(
ANDROID_ABI STREQUAL
"armeabi-v7a"
)
endif
()
endif
(
MACE_ENABLE_NEON
)
if
(
MACE_ENABLE_QUANTIZE
)
if
(
MACE_ENABLE_QUANTIZE
)
add_definitions
(
-DMACE_ENABLE_QUANTIZE
)
add_definitions
(
-DMACE_ENABLE_QUANTIZE
)
add_definitions
(
-DGEMMLOWP_USE_MACE_THREAD_POOL
)
add_definitions
(
-DGEMMLOWP_USE_MACE_THREAD_POOL
)
add_definitions
(
-DMACE_DEPTHWISE_U8_USE_MULTI_THREAD
)
add_definitions
(
-DMACE_DEPTHWISE_U8_USE_MULTI_THREAD
)
endif
()
endif
(
MACE_ENABLE_QUANTIZE
)
if
(
MACE_ENABLE_OPENCL
)
if
(
MACE_ENABLE_OPENCL
)
if
(
IOS
)
if
(
IOS
)
message
(
FATAL_ERROR
"OpenCL is not supported for iOS"
)
message
(
FATAL_ERROR
"OpenCL is not supported for iOS"
)
endif
()
endif
(
IOS
)
add_definitions
(
-DMACE_ENABLE_OPENCL
)
add_definitions
(
-DMACE_ENABLE_OPENCL
)
endif
()
endif
(
MACE_ENABLE_OPENCL
)
if
(
MACE_ENABLE_CUDA
)
if
(
MACE_ENABLE_CUDA
)
# new CUDA support requires 3.8 for Linux/Mac, and 3.9 for Windows
# new CUDA support requires 3.8 for Linux/Mac, and 3.9 for Windows
cmake_minimum_required
(
VERSION 3.8 FATAL_ERROR
)
cmake_minimum_required
(
VERSION 3.8 FATAL_ERROR
)
enable_language
(
CUDA
)
enable_language
(
CUDA
)
endif
()
endif
(
MACE_ENABLE_CUDA
)
if
((
MACE_ENABLE_HEXAGON_DSP OR MACE_ENABLE_HEXAGON_HTA
))
if
((
MACE_ENABLE_HEXAGON_DSP OR MACE_ENABLE_HEXAGON_HTA
))
if
(
ANDROID_ABI STREQUAL
"arm64-v8a"
)
if
(
ANDROID_ABI STREQUAL
"arm64-v8a"
)
...
@@ -78,24 +80,24 @@ if(MACE_ENABLE_HEXAGON_DSP)
...
@@ -78,24 +80,24 @@ if(MACE_ENABLE_HEXAGON_DSP)
endif
(
NOT ANDROID
)
endif
(
NOT ANDROID
)
# TODO => -DMACE_ENABLE_HEXAGON_DSP
# TODO => -DMACE_ENABLE_HEXAGON_DSP
add_definitions
(
-DMACE_ENABLE_HEXAGON
)
add_definitions
(
-DMACE_ENABLE_HEXAGON
)
endif
()
endif
(
MACE_ENABLE_HEXAGON_DSP
)
if
(
MACE_ENABLE_HEXAGON_HTA
)
if
(
MACE_ENABLE_HEXAGON_HTA
)
if
(
NOT ANDROID
)
if
(
NOT ANDROID
)
message
(
FATAL_ERROR
"Hexagon HTA is only supported on Android"
)
message
(
FATAL_ERROR
"Hexagon HTA is only supported on Android"
)
endif
(
NOT ANDROID
)
endif
(
NOT ANDROID
)
add_definitions
(
-DMACE_ENABLE_HEXAGON_HTA
)
add_definitions
(
-DMACE_ENABLE_HEXAGON_HTA
)
endif
()
endif
(
MACE_ENABLE_HEXAGON_HTA
)
if
(
MACE_ENABLE_OBFUSCATE
)
if
(
MACE_ENABLE_OBFUSCATE
)
add_definitions
(
-DMACE_OBFUSCATE_LITERALS
)
add_definitions
(
-DMACE_OBFUSCATE_LITERALS
)
endif
()
endif
(
MACE_ENABLE_OBFUSCATE
)
if
(
NOT MSVC
)
if
(
NOT MSVC
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
${
MACE_CODE_CC_FLAGS
}
${
MACE_CC_FLAGS
}
"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
${
MACE_CODE_CC_FLAGS
}
${
MACE_CC_FLAGS
}
"
)
set
(
CMAKE_SHARED_LINKER_FLAGS
"
${
CMAKE_SHARED_LINKER_FLAGS
}
${
MACE_LINKER_FLAGS
}
"
)
set
(
CMAKE_SHARED_LINKER_FLAGS
"
${
CMAKE_SHARED_LINKER_FLAGS
}
${
MACE_LINKER_FLAGS
}
"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
${
MACE_LINKER_FLAGS
}
"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
${
MACE_LINKER_FLAGS
}
"
)
endif
()
endif
(
NOT MSVC
)
include
(
${
PROJECT_SOURCE_DIR
}
/third_party/third_party.cmake
)
include
(
${
PROJECT_SOURCE_DIR
}
/third_party/third_party.cmake
)
...
@@ -108,8 +110,8 @@ add_subdirectory(mace)
...
@@ -108,8 +110,8 @@ add_subdirectory(mace)
if
(
MACE_ENABLE_EXAMPLES
)
if
(
MACE_ENABLE_EXAMPLES
)
add_subdirectory
(
examples
)
add_subdirectory
(
examples
)
endif
()
endif
(
MACE_ENABLE_EXAMPLES
)
if
(
MACE_ENABLE_TESTS OR MACE_ENABLE_BENCHMARKS
)
if
(
MACE_ENABLE_TESTS OR MACE_ENABLE_BENCHMARKS
)
add_subdirectory
(
test
)
add_subdirectory
(
test
)
endif
()
endif
(
MACE_ENABLE_TESTS OR MACE_ENABLE_BENCHMARKS
)
tools/cmake-build-standalone-lib.sh
浏览文件 @
91e37ff1
#!/
bin/ba
sh
#!/
usr/bin/env
sh
set
-e
set
-e
LIB_DIR
=
builds/lib
# build for local host
INCLUDE_DIR
=
builds/include/mace/public
sh tools/cmake-build-host.sh
mkdir
-p
$LIB_DIR
# Nuild for Android arm64-v8a with NEON
mkdir
-p
$INCLUDE_DIR
sh tools/cmake-build-android-arm64-v8a-cpu.sh
#
copy include headers
#
Build for Android arm64-v8a with NEON, Quantize, OpenCL, Hexagon HTA, Hexagon DSP
cp
mace/public/
*
.h
$INCLUDE_DIR
/
sh tools/cmake-build-android-arm64-v8a-full.sh
# make directories
# Nuild for Android armeabi-v7a with NEON
rm
-rf
$LIB_DIR
/armeabi-v7a
sh tools/cmake-build-android-armeabi-v7a-cpu.sh
mkdir
-p
$LIB_DIR
/armeabi-v7a/cpu_gpu_dsp
mkdir
-p
$LIB_DIR
/armeabi-v7a/cpu_gpu
rm
-rf
$LIB_DIR
/arm64-v8a
# Build for Android armeabi-v7a with NEON, Quantize, OpenCL, Hexagon HTA, Hexagon DSP
mkdir
-p
$LIB_DIR
/arm64-v8a/cpu_gpu_dsp
sh tools/cmake-build-android-armeabi-v7a-full.sh
mkdir
-p
$LIB_DIR
/arm64-v8a/cpu_gpu
mkdir
-p
$LIB_DIR
/arm64-v8a/cpu_gpu_apu
rm
-rf
$LIB_DIR
/linux-x86-64
# Build for arm-linux-gnueabihf with NEON, Quantize, OpenCL
mkdir
-p
$LIB_DIR
/linux-x86-64
sh tools/cmake-build-arm-linux-gnueabihf-full.sh
rm
-rf
$LIB_DIR
/arm_linux_gnueabihf
# Build for aarch64-linux-gnu with NEON, Quantize, OpenCL
mkdir
-p
$LIB_DIR
/arm_linux_gnueabihf/cpu_gpu
sh tools/cmake-build-aarch64-linux-gnu-full.sh
rm
-rf
$LIB_DIR
/aarch64_linux_gnu
mkdir
-p
$LIB_DIR
/aarch64_linux_gnu/cpu_gpu
# build shared libraries
echo
"build shared lib for armeabi-v7a + cpu_gpu_dsp"
bazel build
--config
android
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
hexagon
=
true
--define
quantize
=
true
--cpu
=
armeabi-v7a
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/armeabi-v7a/cpu_gpu_dsp/
cp
third_party/nnlib/armeabi-v7a/
*
so
$LIB_DIR
/armeabi-v7a/cpu_gpu_dsp/
echo
"build shared lib for arm64-v8a + cpu_gpu_dsp"
bazel build
--config
android
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
hexagon
=
true
--define
quantize
=
true
--cpu
=
arm64-v8a
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/arm64-v8a/cpu_gpu_dsp/
cp
third_party/nnlib/arm64-v8a/
*
so
$LIB_DIR
/arm64-v8a/cpu_gpu_dsp/
echo
"build shared lib for armeabi-v7a + cpu_gpu"
bazel build
--config
android
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
--cpu
=
armeabi-v7a
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/armeabi-v7a/cpu_gpu/
echo
"build shared lib for arm64-v8a + cpu_gpu"
bazel build
--config
android
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
--cpu
=
arm64-v8a
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/arm64-v8a/cpu_gpu/
echo
"build shared lib for arm64-v8a + cpu_gpu_apu"
bazel build
--config
android
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
apu
=
true
--define
quantize
=
true
--cpu
=
arm64-v8a
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/arm64-v8a/cpu_gpu_apu/
cp
third_party/apu/libapu-frontend.so
$LIB_DIR
/arm64-v8a/cpu_gpu_apu/
echo
"build shared lib for arm_linux_gnueabihf + cpu_gpu"
bazel build
--config
arm_linux_gnueabihf
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/arm_linux_gnueabihf/cpu_gpu/
echo
"build shared lib for aarch64_linux_gnu + cpu_gpu"
bazel build
--config
aarch64_linux_gnu
--config
optimization mace/libmace:libmace_dynamic
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/aarch64_linux_gnu/cpu_gpu/
if
[[
"
$OSTYPE
"
!=
"darwin"
*
]]
;
then
echo
"build shared lib for linux-x86-64"
bazel build mace/libmace:libmace_dynamic
--config
optimization
--define
quantize
=
true
--define
openmp
=
false
cp
bazel-bin/mace/libmace/libmace.so
$LIB_DIR
/linux-x86-64/
fi
# build static libraries
echo
"build static lib for armeabi-v7a + cpu_gpu_dsp"
bazel build
--config
android
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
hexagon
=
true
--define
quantize
=
true
--cpu
=
armeabi-v7a
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/armeabi-v7a/cpu_gpu_dsp/
cp
third_party/nnlib/armeabi-v7a/
*
so
$LIB_DIR
/armeabi-v7a/cpu_gpu_dsp/
echo
"build static lib for arm64-v8a + cpu_gpu_dsp"
bazel build
--config
android
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
hexagon
=
true
--define
quantize
=
true
--cpu
=
arm64-v8a
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/arm64-v8a/cpu_gpu_dsp/
cp
third_party/nnlib/arm64-v8a/
*
so
$LIB_DIR
/arm64-v8a/cpu_gpu_dsp/
echo
"build static lib for armeabi-v7a + cpu_gpu"
bazel build
--config
android
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
--cpu
=
armeabi-v7a
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/armeabi-v7a/cpu_gpu/
echo
"build static lib for arm64-v8a + cpu_gpu"
bazel build
--config
android
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
--cpu
=
arm64-v8a
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/arm64-v8a/cpu_gpu/
echo
"build static lib for arm64-v8a + cpu_gpu_apu"
bazel build
--config
android
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
apu
=
true
--define
quantize
=
true
--cpu
=
arm64-v8a
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/arm64-v8a/cpu_gpu_apu/
cp
third_party/apu/libapu-frontend.so
$LIB_DIR
/arm64-v8a/cpu_gpu_apu/
echo
"build static lib for arm_linux_gnueabihf + cpu_gpu"
bazel build
--config
arm_linux_gnueabihf
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/arm_linux_gnueabihf/cpu_gpu/
echo
"build static lib for aarch64_linux_gnu + cpu_gpu"
bazel build
--config
aarch64_linux_gnu
--config
optimization mace/libmace:libmace_static
--config
symbol_hidden
--define
neon
=
true
--define
openmp
=
false
--define
opencl
=
true
--define
quantize
=
true
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/aarch64_linux_gnu/cpu_gpu/
if
[[
"
$OSTYPE
"
!=
"darwin"
*
]]
;
then
echo
"build static lib for linux-x86-64"
bazel build mace/libmace:libmace_static
--config
optimization
--define
quantize
=
true
--define
openmp
=
false
cp
bazel-genfiles/mace/libmace/libmace.a
$LIB_DIR
/linux-x86-64/
fi
echo
"LIB PATH:
$LIB_DIR
"
echo
"INCLUDE FILE PATH:
$INCLUDE_DIR
"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录