@@ -41,15 +41,20 @@ elseif (WIN32)
4141endif ()
4242
4343if (MKLDNN_INCLUDE_DIR AND MKLDNN_LIB_DIR)
44- if (NOT LINUX)
44+ if (NOT LINUX AND NOT WIN32 )
4545 message (FATAL_ERROR "Unsupported platform for prebuilt mkl-dnn!" )
4646 endif ()
4747 if (NOT MKLML_LIB_DIR)
4848 set (MKLML_LIB_DIR ${MKLDNN_LIB_DIR} )
4949 endif ()
5050
51- add_library (libmkldnn SHARED IMPORTED )
52- set_property (TARGET libmkldnn PROPERTY IMPORTED_LOCATION ${MKLDNN_LIB_DIR} /${MKLDNN_LIB} )
51+ if (WIN32 )
52+ add_library (libmkldnn STATIC IMPORTED )
53+ set_property (TARGET libmkldnn PROPERTY IMPORTED_LOCATION ${MKLDNN_LIB_DIR} /${MKLDNN_IMPORT_LIB} )
54+ else ()
55+ add_library (libmkldnn SHARED IMPORTED )
56+ set_property (TARGET libmkldnn PROPERTY IMPORTED_LOCATION ${MKLDNN_LIB_DIR} /${MKLDNN_LIB} )
57+ endif ()
5358 target_include_directories (libmkldnn SYSTEM INTERFACE ${MKLDNN_INCLUDE_DIR} )
5459
5560 install (FILES ${MKLDNN_LIB_DIR} /${MKLDNN_LIB} ${MKLML_LIB_DIR} /${MKLML_LIB} ${MKLML_LIB_DIR} /${OMP_LIB} DESTINATION ${NGRAPH_INSTALL_LIB} )
@@ -105,15 +110,15 @@ set(MKL_SOURCE_DIR ${source_dir})
105110ExternalProject_Add_Step(
106111 ext_mkl
107112 CopyMKL
108- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${MKLML_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}
113+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${MKLML_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY} / ${MKLML_LIB}
109114 COMMENT "Copy mklml runtime libraries to ngraph build directory."
110115 DEPENDEES download
111116 )
112117
113118ExternalProject_Add_Step(
114119 ext_mkl
115120 CopyOMP
116- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${OMP_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}
121+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${OMP_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY} / ${OMP_LIB}
117122 COMMENT "Copy OpenMP runtime libraries to ngraph build directory."
118123 DEPENDEES download
119124 )
@@ -122,15 +127,15 @@ if(WIN32)
122127 ExternalProject_Add_Step(
123128 ext_mkl
124129 CopyMKLIMP
125- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${MKLML_IMPLIB} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY}
130+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${MKLML_IMPLIB} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY} / ${MKLML_IMPLIB}
126131 COMMENT "Copy mklml runtime libraries to ngraph build directory."
127132 DEPENDEES download
128133 )
129134
130135 ExternalProject_Add_Step(
131136 ext_mkl
132137 CopyOMPIMP
133- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${OMP_IMPLIB} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY}
138+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MKL_SOURCE_DIR} /lib/${OMP_IMPLIB} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY} / ${OMP_IMPLIB}
134139 COMMENT "Copy OpenMP runtime libraries to ngraph build directory."
135140 DEPENDEES download
136141 )
@@ -153,6 +158,9 @@ set(MKLDNN_GIT_TAG ${NGRAPH_MKLDNN_GIT_TAG})
153158set (MKLDNN_PATCH_FILE mkldnn.patch)
154159set (MKLDNN_LIBS ${EXTERNAL_PROJECTS_ROOT} /mkldnn/lib/${MKLDNN_LIB} )
155160
161+ # Revert prior changes to make incremental build work.
162+ set (MKLDNN_PATCH_REVERT_COMMAND cd ${EXTERNAL_PROJECTS_ROOT} /mkldnn/src && git reset HEAD --hard)
163+
156164if (WIN32 )
157165 ExternalProject_Add(
158166 ext_mkldnn
@@ -162,14 +170,8 @@ if (WIN32)
162170 GIT_TAG ${MKLDNN_GIT_TAG}
163171 UPDATE_COMMAND ""
164172 CONFIGURE_COMMAND
165- # Patch gets mad if it applied for a second time so:
166- # --forward tells patch to ignore if it has already been applied
167- # --reject-file tells patch to not right a reject file
168- # || exit 0 changes the exit code for the PATCH_COMMAND to zero so it is not an error
169- # I don't like it, but it works
170- PATCH_COMMAND patch -p1 --forward --reject-file=- -i ${CMAKE_SOURCE_DIR} /cmake/${MKLDNN_PATCH_FILE} || exit 0
171- # Uncomment below with any in-flight MKL-DNN patches
172- # PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/third-party/patches/mkldnn-cmake-openmp.patch
173+ PATCH_COMMAND ${MKLDNN_PATCH_REVERT_COMMAND}
174+ COMMAND git apply --ignore -space-change --ignore -whitespace ${CMAKE_SOURCE_DIR} /cmake/${MKLDNN_PATCH_FILE}
173175 CMAKE_GENERATOR ${CMAKE_GENERATOR}
174176 CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM}
175177 CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
@@ -198,14 +200,8 @@ else()
198200 GIT_TAG ${MKLDNN_GIT_TAG}
199201 UPDATE_COMMAND ""
200202 CONFIGURE_COMMAND
201- # Patch gets mad if it applied for a second time so:
202- # --forward tells patch to ignore if it has already been applied
203- # --reject-file tells patch to not right a reject file
204- # || exit 0 changes the exit code for the PATCH_COMMAND to zero so it is not an error
205- # I don't like it, but it works
206- PATCH_COMMAND patch -p1 --forward --reject-file=- -i ${CMAKE_SOURCE_DIR} /cmake/${MKLDNN_PATCH_FILE} || exit 0
207- # Uncomment below with any in-flight MKL-DNN patches
208- # PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/third-party/patches/mkldnn-cmake-openmp.patch
203+ PATCH_COMMAND ${MKLDNN_PATCH_REVERT_COMMAND}
204+ COMMAND git apply ${CMAKE_SOURCE_DIR} /cmake/${MKLDNN_PATCH_FILE}
209205 CMAKE_GENERATOR ${CMAKE_GENERATOR}
210206 CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM}
211207 CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
@@ -228,19 +224,27 @@ else()
228224 )
229225endif ()
230226
231- ExternalProject_Add_Step(
232- ext_mkldnn
233- CopyMKLDNN
234- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${EXTERNAL_PROJECTS_ROOT} /mkldnn/${CMAKE_INSTALL_LIBDIR} /${MKLDNN_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}
235- COMMENT "Copy mkldnn runtime libraries to ngraph build directory."
236- DEPENDEES install
237- )
238-
239227if (WIN32 )
228+ ExternalProject_Add_Step(
229+ ext_mkldnn
230+ CopyMKLDNN
231+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${EXTERNAL_PROJECTS_ROOT} /mkldnn/bin/${MKLDNN_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY} /${MKLDNN_LIB}
232+ COMMENT "Copy mkldnn runtime libraries to ngraph build directory."
233+ DEPENDEES install
234+ )
235+
240236 ExternalProject_Add_Step(
241237 ext_mkldnn
242238 CopyMKLDNNIMP
243- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${EXTERNAL_PROJECTS_ROOT} /mkldnn/${CMAKE_INSTALL_LIBDIR} /${MKLDNN_IMPLIB} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY}
239+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${EXTERNAL_PROJECTS_ROOT} /mkldnn/lib/${MKLDNN_IMPLIB} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY} /${MKLDNN_IMPLIB}
240+ COMMENT "Copy mkldnn runtime libraries to ngraph build directory."
241+ DEPENDEES install
242+ )
243+ else ()
244+ ExternalProject_Add_Step(
245+ ext_mkldnn
246+ CopyMKLDNN
247+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${EXTERNAL_PROJECTS_ROOT} /mkldnn/${CMAKE_INSTALL_LIBDIR} /${MKLDNN_LIB} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY} /${MKLDNN_LIB}
244248 COMMENT "Copy mkldnn runtime libraries to ngraph build directory."
245249 DEPENDEES install
246250 )
0 commit comments