@@ -79,49 +79,44 @@ ExternalProject_Add(
7979 -DCMAKE_CXX_FLAGS=${MKLDNN_CXXFLAG}
8080 -DDNNL_BUILD_TESTS=OFF -DDNNL_BUILD_EXAMPLES=OFF
8181 CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH =${MKLDNN_INSTALL_DIR}
82- BUILD_BYPRODUCTS ${MKLDNN_LIB}
8382)
8483
85- ADD_LIBRARY (shared_mkldnn SHARED IMPORTED GLOBAL )
86- SET_PROPERTY (TARGET shared_mkldnn PROPERTY IMPORTED_LOCATION ${MKLDNN_LIB} )
87- ADD_DEPENDENCIES (shared_mkldnn ${MKLDNN_PROJECT} )
8884MESSAGE (STATUS "MKLDNN library: ${MKLDNN_LIB} " )
8985add_definitions (-DPADDLE_WITH_MKLDNN)
90-
91- # generate a static dummy target to track mkldnn dependencies
92- # for cc_library(xxx SRCS xxx.c DEPS mkldnn)
93- generate_dummy_static_lib(LIB_NAME "mkldnn" GENERATOR "mkldnn.cmake" )
94-
95- TARGET_LINK_LIBRARIES (mkldnn ${MKLDNN_LIB} ${MKLML_IOMP_LIB} )
96- ADD_DEPENDENCIES (mkldnn ${MKLDNN_PROJECT} )
97-
9886# copy the real so.0 lib to install dir
9987# it can be directly contained in wheel or capi
10088if (WIN32 )
10189 SET (MKLDNN_SHARED_LIB ${MKLDNN_INSTALL_DIR} /bin/mkldnn.dll)
10290
10391 file (TO_NATIVE_PATH ${MKLDNN_INSTALL_DIR} NATIVE_MKLDNN_INSTALL_DIR)
10492 file (TO_NATIVE_PATH ${MKLDNN_SHARED_LIB} NATIVE_MKLDNN_SHARED_LIB)
105- ADD_CUSTOM_COMMAND ( TARGET ${MKLDNN_PROJECT} POST_BUILD
106- COMMAND (copy ${NATIVE_MKLDNN_INSTALL_DIR} \\bin\\dnnl.dll ${NATIVE_MKLDNN_SHARED_LIB} /Y))
107- add_custom_command ( TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
108- COMMAND dumpbin /exports ${MKLDNN_INSTALL_DIR} /bin/mkldnn.dll > ${MKLDNN_INSTALL_DIR} /bin/exports.txt)
109- add_custom_command ( TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
110- COMMAND echo LIBRARY mkldnn > ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def)
111- add_custom_command ( TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
112- COMMAND echo EXPORTS >> ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def)
113- add_custom_command ( TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
114- COMMAND echo off && (for /f "skip=19 tokens=4" %A in ( ${MKLDNN_INSTALL_DIR} /bin/exports.txt) do echo %A >> ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def) && echo on )
115- add_custom_command ( TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
116- COMMAND lib /def: ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def /out: ${MKLDNN_INSTALL_DIR} /bin/mkldnn.lib /machine:x64 )
93+
94+ ADD_CUSTOM_COMMAND ( OUTPUT ${MKLDNN_LIB}
95+ COMMAND (copy ${NATIVE_MKLDNN_INSTALL_DIR} \\bin\\dnnl.dll ${NATIVE_MKLDNN_SHARED_LIB} /Y)
96+ COMMAND dumpbin /exports ${MKLDNN_INSTALL_DIR} /bin/mkldnn.dll > ${MKLDNN_INSTALL_DIR} /bin/exports.txt
97+ COMMAND echo LIBRARY mkldnn > ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def
98+ COMMAND echo EXPORTS >> ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def
99+ COMMAND echo off && (for /f "skip=19 tokens=4" %A in ( ${MKLDNN_INSTALL_DIR} /bin/exports.txt) do echo %A >> ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def) && echo on
100+ COMMAND lib /def: ${MKLDNN_INSTALL_DIR} /bin/mkldnn.def /out: ${MKLDNN_LIB} /machine:x64
101+ COMMENT "Generate mkldnn.lib manually--->"
102+ DEPENDS ${MKLDNN_PROJECT}
103+ VERBATIM )
104+ ADD_CUSTOM_TARGET (mkldnn_cmd ALL DEPENDS ${MKLDNN_LIB} )
117105else (WIN32 )
118106 SET (MKLDNN_SHARED_LIB ${MKLDNN_INSTALL_DIR} /libmkldnn.so.0)
119107 SET (MKLDNN_SHARED_LIB_1 ${MKLDNN_INSTALL_DIR} /libdnnl.so.1)
120108 SET (MKLDNN_SHARED_LIB_2 ${MKLDNN_INSTALL_DIR} /libdnnl.so.2)
121- ADD_CUSTOM_COMMAND (TARGET ${MKLDNN_PROJECT} POST_BUILD
122- COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB} )
123- ADD_CUSTOM_COMMAND ( TARGET ${MKLDNN_PROJECT} POST_BUILD
124- COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_1} )
125- ADD_CUSTOM_COMMAND ( TARGET ${MKLDNN_PROJECT} POST_BUILD
126- COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_2} )
109+ ADD_CUSTOM_COMMAND (OUTPUT ${MKLDNN_SHARED_LIB_2}
110+ COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB}
111+ COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_1}
112+ COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_2}
113+ DEPENDS ${MKLDNN_PROJECT} )
114+ ADD_CUSTOM_TARGET (mkldnn_cmd ALL DEPENDS ${MKLDNN_SHARED_LIB_2} )
127115endif (WIN32 )
116+
117+ # generate a static dummy target to track mkldnn dependencies
118+ # for cc_library(xxx SRCS xxx.c DEPS mkldnn)
119+ generate_dummy_static_lib(LIB_NAME "mkldnn" GENERATOR "mkldnn.cmake" )
120+
121+ TARGET_LINK_LIBRARIES (mkldnn ${MKLDNN_LIB} ${MKLML_IOMP_LIB} )
122+ ADD_DEPENDENCIES (mkldnn ${MKLDNN_PROJECT} mkldnn_cmd)
0 commit comments