Skip to content

Commit

Permalink
strip after compilation (#32145)
Browse files Browse the repository at this point in the history
  • Loading branch information
Avin0323 authored Apr 22, 2021
1 parent 73d0b0e commit e727820
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ option(WITH_SW "Compile PaddlePaddle with sw support" OFF)
option(WITH_MIPS "Compile PaddlePaddle with mips support" OFF)
option(WITH_MUSL "Compile with musl libc instead of gblic" OFF)
option(WITH_UNITY_BUILD "Compile with UnityBuild mode" OFF)
option(WITH_STRIP "Strip so files of Whl packages" OFF)

# PY_VERSION
if(NOT PY_VERSION)
Expand Down Expand Up @@ -362,6 +363,13 @@ else()
message(WARNING "On inference mode, will take place some specific optimization. Turn on the ON_INFER flag when building inference_lib only.")
endif()

if(WITH_STRIP)
find_program(STRIP_PATH strip)
if(NOT STRIP_PATH OR NOT LINUX)
set(WITH_STRIP OFF CACHE STRING "Command strip is only used on Linux when it exists." FORCE)
endif()
endif()

add_subdirectory(paddle)
if(WITH_PYTHON)
add_subdirectory(python)
Expand Down
5 changes: 5 additions & 0 deletions paddle/fluid/inference/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,8 @@ if(NOT APPLE AND NOT WIN32)
DEPENDS paddle_inference_shared)
add_custom_target(check_symbol ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/.check_symbol")
endif()

if(LINUX AND WITH_STRIP)
add_custom_command(TARGET paddle_inference_shared POST_BUILD
COMMAND ${STRIP_PATH} $<TARGET_FILE:paddle_inference_shared>)
endif()
6 changes: 6 additions & 0 deletions python/setup.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,12 @@ else:
with open("@PADDLE_BINARY_DIR@/python/paddle/README.rst", "r")as f:
long_description = unicode(f.read(), 'UTF-8')

# strip *.so to reduce package size
if '${WITH_STRIP}' == 'ON':
command = 'find ${PADDLE_BINARY_DIR}/python/paddle -name "*.so" | xargs -i strip {}'
if os.system(command) != 0:
raise Exception("strip *.so failed, command: %s" % command)

with redirect_stdout():
setup(name='${PACKAGE_NAME}',
version='${PADDLE_VERSION}',
Expand Down

0 comments on commit e727820

Please sign in to comment.