@@ -40,30 +40,30 @@ include_directories(
4040 deps/pybind11/include
4141 mlmodel/src
4242 ${PYTHON_INCLUDE_DIRS}
43- )
43+ )
4444
4545set (CMAKE_CXX_FLAGS " \
46- ${CMAKE_CXX_FLAGS} \
47- --std=c++14 \
46+ ${CMAKE_CXX_FLAGS} \
47+ --std=c++14 \
4848" )
4949
5050if (APPLE )
5151 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc " )
5252endif ()
5353
5454set (CMAKE_EXE_LINKER_FLAGS " \
55- ${CMAKE_EXE_LINKER_FLAGS} \
56- --std=c++14 \
55+ ${CMAKE_EXE_LINKER_FLAGS} \
56+ --std=c++14 \
5757" )
5858set (CMAKE_MODULE_LINKER_FLAGS " \
59- ${CMAKE_MODULE_LINKER_FLAGS} \
60- --std=c++14 \
59+ ${CMAKE_MODULE_LINKER_FLAGS} \
60+ --std=c++14 \
6161" )
6262set (CMAKE_SHARED_LINKER_FLAGS " \
63- ${CMAKE_SHARED_LINKER_FLAGS} \
64- --std=c++14 \
63+ ${CMAKE_SHARED_LINKER_FLAGS} \
64+ --std=c++14 \
6565" )
66-
66+
6767add_library (caffeconverter
6868 SHARED
6969 caffeconverter/CaffeConverterLib.cpp
@@ -99,17 +99,17 @@ add_library(caffeconverter
9999 caffeconverter/Caffe/Reshape.cpp
100100 deps/caffe/src/caffe/proto/caffe.pb.cc
101101 deps/caffe/src/caffe/util/upgrade_proto.cpp
102- )
102+ )
103103
104104target_compile_definitions (caffeconverter
105105 PRIVATE
106106 CPU_ONLY=1
107- )
107+ )
108108
109109target_link_libraries (caffeconverter
110110 mlmodel
111111 libprotobuf
112- )
112+ )
113113
114114if (APPLE )
115115 # Allow Python to be found at runtime instead of compile/link time
@@ -119,21 +119,27 @@ endif()
119119
120120file (COPY ${CMAKE_SOURCE_DIR} /README.rst DESTINATION ${CMAKE_BINARY_DIR} )
121121file (COPY ${CMAKE_SOURCE_DIR} /coremltools/__init__.py
122- DESTINATION ${CMAKE_BINARY_DIR} /coremltools)
122+ DESTINATION ${CMAKE_BINARY_DIR} /coremltools)
123123file (COPY ${CMAKE_SOURCE_DIR} /coremltools/__main__.py
124- DESTINATION ${CMAKE_BINARY_DIR} /coremltools)
124+ DESTINATION ${CMAKE_BINARY_DIR} /coremltools)
125125set (copy_dirs _deps _scripts converters graph_visualization models proto)
126126foreach (cdir IN ITEMS ${copy_dirs} )
127127 file (COPY ${CMAKE_SOURCE_DIR} /coremltools/${cdir}
128- DESTINATION ${CMAKE_BINARY_DIR} /coremltools)
128+ DESTINATION ${CMAKE_BINARY_DIR} /coremltools)
129129endforeach ()
130130
131+ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
132+ set (_additional_caffeconverter_command COMMAND strip -x ${PROJECT_SOURCE_DIR} /coremltools/libcaffeconverter.so)
133+ endif ()
134+
131135add_custom_command (
132136 TARGET caffeconverter
133137 POST_BUILD
134138 COMMAND cp $<TARGET_FILE:caffeconverter> ${PROJECT_SOURCE_DIR} /coremltools/libcaffeconverter.so
139+ ${_additional_caffeconverter_command}
135140)
136141
142+
137143find_library (CORE_VIDEO CoreVideo)
138144find_library (CORE_ML CoreML)
139145find_library (FOUNDATION Foundation)
@@ -171,16 +177,33 @@ if (APPLE AND CORE_VIDEO AND CORE_ML AND FOUNDATION)
171177 ${PYTHON_LIBRARIES}
172178 )
173179
174- if (APPLE )
175- # Allow Python to be found at runtime instead of compile/link time
176- # This is apparently the default on Linux
177- set_target_properties (coremlpython PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
180+ if (APPLE )
181+ set (osx_export_file ${CMAKE_SOURCE_DIR} /coremlpython/exported_symbols_osx.ver)
182+ set_property (TARGET coremlpython APPEND PROPERTY LINK_DEPENDS "${osx_export_file} " )
183+ set_property (TARGET coremlpython APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-exported_symbols_list,${osx_export_file} " )
184+
185+ # Allow Python to be found at runtime instead of compile/link time
186+ # This is apparently the default on Linux
187+ set_property (TARGET coremlpython APPEND_STRING PROPERTY LINK_FLAGS "-undefined dynamic_lookup" )
188+
189+ else ()
190+ set (linux_export_file coremlpython/exported_symbols_linux.ver)
191+ set_property (TARGET coremlpython APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script=${linux_export_file} " )
192+ endif ()
193+
194+ set_property (TARGET coremlpython APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-dead_strip" )
195+
196+ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
197+ set (_additional_libcoremlpython_command
198+ COMMAND strip -x ${PROJECT_SOURCE_DIR} /coremltools/libcoremlpython.so
199+ )
178200 endif ()
179201
180202 add_custom_command (
181203 TARGET coremlpython
182204 POST_BUILD
183205 COMMAND cp $<TARGET_FILE:coremlpython> ${PROJECT_SOURCE_DIR} /coremltools/libcoremlpython.so
206+ ${_additional_libcoremlpython_command}
184207 )
185208
186209else ()
0 commit comments