Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit 177570a

Browse files
silee2diyessi
authored andcommitted
Update build script to fix Windows build issues and add some work tow… (#2531)
* Update build script to fix Windows build issues and add some work towards making codegen work on Windows. * Use "git apply" instead of "patch". (#2532) Enable using pre-installed MKLDNN on Window. * Remove commented out lines.
1 parent df9e237 commit 177570a

File tree

11 files changed

+160
-65
lines changed

11 files changed

+160
-65
lines changed

cmake/external_gtest.cmake

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,18 @@ target_include_directories(libgtest SYSTEM INTERFACE
7676
${SOURCE_DIR}/googletest/include
7777
${SOURCE_DIR}/googlemock/include)
7878

79-
target_link_libraries(libgtest INTERFACE
80-
debug ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtestd${CMAKE_STATIC_LIBRARY_SUFFIX}
81-
debug ${GMOCK_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmockd${CMAKE_STATIC_LIBRARY_SUFFIX}
82-
optimized ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
83-
optimized ${GMOCK_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
79+
if(LINUX OR APPLE)
80+
target_link_libraries(libgtest INTERFACE
81+
debug ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtestd${CMAKE_STATIC_LIBRARY_SUFFIX}
82+
debug ${GMOCK_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmockd${CMAKE_STATIC_LIBRARY_SUFFIX}
83+
optimized ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
84+
optimized ${GMOCK_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
85+
elseif(WIN32)
86+
target_link_libraries(libgtest INTERFACE
87+
debug ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtestd${CMAKE_STATIC_LIBRARY_SUFFIX}
88+
debug ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmockd${CMAKE_STATIC_LIBRARY_SUFFIX}
89+
optimized ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
90+
optimized ${GTEST_OUTPUT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
91+
else()
92+
message(FATAL_ERROR "libgtest: Unsupported platform.")
93+
endif()

cmake/external_llvm.cmake

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
include(ExternalProject)
1818

19+
set(NGRAPH_LLVM_VERSION 5.0.2)
20+
1921
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
2022
if (DEFINED NGRAPH_USE_CXX_ABI)
2123
set(COMPILE_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=${NGRAPH_USE_CXX_ABI}")
@@ -25,8 +27,8 @@ endif()
2527
ExternalProject_Add(
2628
ext_clang
2729
PREFIX clang
28-
GIT_REPOSITORY https://github.com/llvm-mirror/clang.git
29-
GIT_TAG 26cac19a0d622afc91cd52a002921074bccc6a27
30+
URL http://releases.llvm.org/${NGRAPH_LLVM_VERSION}/cfe-${NGRAPH_LLVM_VERSION}.src.tar.xz
31+
URL_HASH SHA1=6581765ec52f8a6354ab56a8e55a8cac1aa5e388
3032
CONFIGURE_COMMAND ""
3133
BUILD_COMMAND ""
3234
INSTALL_COMMAND ""
@@ -40,8 +42,8 @@ set(CLANG_SOURCE_DIR ${SOURCE_DIR})
4042
ExternalProject_Add(
4143
ext_openmp
4244
PREFIX openmp
43-
GIT_REPOSITORY https://github.com/llvm-mirror/openmp.git
44-
GIT_TAG 29b515e1e6d26b5b0d32d47d28dcdb4b8a11470d
45+
URL http://releases.llvm.org/${NGRAPH_LLVM_VERSION}/openmp-${NGRAPH_LLVM_VERSION}.src.tar.xz
46+
URL_HASH SHA1=0e78a7646b63e074e31b6a65e15446af0bdf3c07
4547
CONFIGURE_COMMAND ""
4648
BUILD_COMMAND ""
4749
INSTALL_COMMAND ""
@@ -58,26 +60,45 @@ else()
5860
set(LLVM_CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
5961
endif()
6062

63+
if(WIN32)
64+
set(LLVM_DEPENDS ext_clang)
65+
else()
66+
set(LLVM_DEPENDS ext_clang ext_openmp)
67+
set(PASS_LLVM_OPENMP_DIR -DLLVM_EXTERNAL_OPENMP_SOURCE_DIR=${OPENMP_SOURCE_DIR})
68+
endif()
69+
6170
ExternalProject_Add(
6271
ext_llvm
6372
PREFIX llvm
6473
DEPENDS ext_clang ext_openmp
65-
GIT_REPOSITORY https://github.com/llvm-mirror/llvm.git
66-
GIT_TAG da4a2839d80ac52958be0129b871beedfe90136e
74+
URL http://releases.llvm.org/${NGRAPH_LLVM_VERSION}/llvm-${NGRAPH_LLVM_VERSION}.src.tar.xz
75+
URL_HASH SHA1=576d005305335049b89608d897d7ec184d99c6e1
6776
CMAKE_GENERATOR ${CMAKE_GENERATOR}
6877
CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM}
6978
CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
7079
CMAKE_ARGS ${NGRAPH_FORWARD_CMAKE_ARGS}
7180
-DCMAKE_ASM_COMPILER=${LLVM_CMAKE_ASM_COMPILER}
7281
-DCMAKE_CXX_FLAGS=${COMPILE_FLAGS}
7382
-DCMAKE_INSTALL_PREFIX=${EXTERNAL_PROJECTS_ROOT}/llvm
74-
-DLLVM_ENABLE_ASSERTIONS=OFF
83+
-DLLVM_INCLUDE_DOCS=OFF
7584
-DLLVM_INCLUDE_TESTS=OFF
85+
-DLLVM_INCLUDE_GO_TESTS=OFF
7686
-DLLVM_INCLUDE_EXAMPLES=OFF
77-
-DLLVM_BUILD_TOOLS=ON
87+
-DLLVM_INCLUDE_BENCHMARKS=OFF
88+
-DLLVM_BUILD_TOOLS=OFF
89+
-DLLVM_BUILD_UTILS=OFF
90+
-DLLVM_BUILD_RUNTIMES=OFF
91+
-DLLVM_BUILD_RUNTIME=OFF
7892
-DLLVM_TARGETS_TO_BUILD=X86
93+
-DLLVM_ENABLE_BINDINGS=OFF
94+
-DLLVM_ENABLE_TERMINFO=OFF
95+
-DLLVM_ENABLE_ZLIB=OFF
96+
-DLIBOMP_OMPT_SUPPORT=OFF
97+
-DCLANG_BUILD_TOOLS=OFF
98+
-DCLANG_ENABLE_ARCMT=OFF
99+
-DCLANG_ENABLE_STATIC_ANALYZER=OFF
79100
-DLLVM_EXTERNAL_CLANG_SOURCE_DIR=${CLANG_SOURCE_DIR}
80-
-DLLVM_EXTERNAL_OPENMP_SOURCE_DIR=${OPENMP_SOURCE_DIR}
101+
${PASS_LLVM_OPENMP_DIR}
81102
UPDATE_COMMAND ""
82103
EXCLUDE_FROM_ALL TRUE
83104
)
@@ -93,11 +114,7 @@ set(LLVM_LINK_LIBS
93114
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangCodeGen${CMAKE_STATIC_LIBRARY_SUFFIX}
94115
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangParse${CMAKE_STATIC_LIBRARY_SUFFIX}
95116
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangSema${CMAKE_STATIC_LIBRARY_SUFFIX}
96-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangStaticAnalyzerFrontend${CMAKE_STATIC_LIBRARY_SUFFIX}
97-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangStaticAnalyzerCheckers${CMAKE_STATIC_LIBRARY_SUFFIX}
98-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangStaticAnalyzerCore${CMAKE_STATIC_LIBRARY_SUFFIX}
99117
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangAnalysis${CMAKE_STATIC_LIBRARY_SUFFIX}
100-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangARCMigrate${CMAKE_STATIC_LIBRARY_SUFFIX}
101118
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangRewriteFrontend${CMAKE_STATIC_LIBRARY_SUFFIX}
102119
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangEdit${CMAKE_STATIC_LIBRARY_SUFFIX}
103120
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}clangAST${CMAKE_STATIC_LIBRARY_SUFFIX}
@@ -160,10 +177,8 @@ set(LLVM_LINK_LIBS
160177
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}LLVMDemangle${CMAKE_STATIC_LIBRARY_SUFFIX}
161178
)
162179

163-
if(APPLE)
164-
set(LLVM_LINK_LIBS ${LLVM_LINK_LIBS} curses z m)
165-
else()
166-
set(LLVM_LINK_LIBS ${LLVM_LINK_LIBS} tinfo z m)
180+
if(LINUX OR APPLE)
181+
set(LLVM_LINK_LIBS ${LLVM_LINK_LIBS} m)
167182
endif()
168183

169184
add_library(libllvm INTERFACE)

cmake/external_mkldnn.cmake

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,20 @@ elseif (WIN32)
4141
endif()
4242

4343
if(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})
105110
ExternalProject_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

113118
ExternalProject_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})
153158
set(MKLDNN_PATCH_FILE mkldnn.patch)
154159
set(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+
156164
if (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
)
229225
endif()
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-
239227
if(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
)

cmake/external_tbb_prebuilt.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ if (WIN32)
5656
ExternalProject_Add_Step(
5757
ext_tbb
5858
CopyTBB
59-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INSTALL_DIR}/bin/intel64/vc14/${TBB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}
59+
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INSTALL_DIR}/bin/intel64/vc14/${TBB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}/${TBB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}
6060
COMMENT "Move tbb shared libraries to ngraph build directory"
6161
DEPENDEES download
6262
)
6363

6464
ExternalProject_Add_Step(
6565
ext_tbb
6666
CopyTBBIMP
67-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INSTALL_DIR}/lib/intel64/vc14/${TBB_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY}
67+
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INSTALL_DIR}/lib/intel64/vc14/${TBB_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} ${NGRAPH_ARCHIVE_OUTPUT_DIRECTORY}/${TBB_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}
6868
COMMENT "Move tbb libraries to ngraph build directory"
6969
DEPENDEES download
7070
)
@@ -78,7 +78,7 @@ elseif(APPLE)
7878
)
7979

8080
add_custom_command(TARGET ext_tbb POST_BUILD
81-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${TBB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}
81+
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${TBB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${NGRAPH_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${TBB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}
8282
COMMENT "Move tbb libraries to ngraph build directory"
8383
)
8484

src/ngraph/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,15 @@ if (NGRAPH_ONNX_IMPORT_ENABLE)
269269
target_link_libraries(ngraph PRIVATE onnx_import)
270270
endif()
271271

272+
# Build subdirectories for all build types on Windows
273+
if(WIN32)
274+
foreach(BUILD_TYPE Release Debug RelWithDebInfo MinSizeRel)
275+
if(NOT EXISTS ${NGRAPH_BUILD_DIR}/${BUILD_TYPE})
276+
file(MAKE_DIRECTORY ${NGRAPH_BUILD_DIR}/${BUILD_TYPE})
277+
endif()
278+
endforeach()
279+
endif()
280+
272281
#-----------------------------------------------------------------------------------------------
273282
# Installation logic...
274283
#-----------------------------------------------------------------------------------------------

src/ngraph/codegen/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ add_library(codegen SHARED ${SRC})
3131
# LLVM binary builds are typically built without RTTI
3232
# The built-in headers are in a version-specific directory
3333
# This must be kept in sync with the LLVM + Clang version in use
34-
set_source_files_properties(compiler.cpp PROPERTIES COMPILE_FLAGS "-fno-rtti")
34+
if(NOT WIN32)
35+
set_source_files_properties(compiler.cpp PROPERTIES COMPILE_FLAGS "-fno-rtti")
36+
endif()
3537

3638
get_target_property(LLVM_INCLUDE_DIR libllvm INTERFACE_INCLUDE_DIRECTORIES)
3739

src/ngraph/file_util.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,24 @@ void file_util::iterate_files(const string& path,
306306
{
307307
do
308308
{
309-
func(data.cFileName, (data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY));
309+
bool is_dir = data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY;
310+
if (is_dir)
311+
{
312+
if (string(data.cFileName) != "." && string(data.cFileName) != "..")
313+
{
314+
string dir_path = path_join(path, data.cFileName);
315+
if (recurse)
316+
{
317+
iterate_files(dir_path, func, recurse);
318+
}
319+
func(dir_path, true);
320+
}
321+
}
322+
else
323+
{
324+
string file_name = path_join(path, data.cFileName);
325+
func(file_name, false);
326+
}
310327
} while (FindNextFile(hFind, &data));
311328
FindClose(hFind);
312329
}

src/ngraph/runtime/cpu/cpu_external_function.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,8 @@ runtime::cpu::CPU_ExternalFunction::CPU_ExternalFunction(
219219
, m_use_tbb(std::getenv("NGRAPH_CPU_USE_TBB") != nullptr)
220220
#if !defined(NGRAPH_DEX_ONLY)
221221
, m_is_compiled(false)
222-
, m_direct_execution(!std::getenv("NGRAPH_CODEGEN"))
222+
, m_direct_execution((std::getenv("NGRAPH_CODEGEN") == nullptr) ||
223+
(std::string(std::getenv("NGRAPH_CODEGEN")) == "0"))
223224
#else
224225
, m_direct_execution(true)
225226
#endif

src/ngraph/runtime/cpu/pass/cpu_rnn_fusion.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ class CPU_BACKEND_API ngraph::runtime::cpu::pass::RNNFusion
6666
void construct_rnn_lstm_fprop();
6767
};
6868

69-
class ngraph::runtime::cpu::pass::MultiLayerRNNFusion : public ngraph::pass::RecurrentGraphRewrite
69+
class CPU_BACKEND_API ngraph::runtime::cpu::pass::MultiLayerRNNFusion
70+
: public ngraph::pass::RecurrentGraphRewrite
7071
{
7172
public:
7273
MultiLayerRNNFusion()
@@ -79,7 +80,8 @@ class ngraph::runtime::cpu::pass::MultiLayerRNNFusion : public ngraph::pass::Rec
7980
void construct_multi_layer_rnn_fusion_fprop();
8081
};
8182

82-
class ngraph::runtime::cpu::pass::BiDirectionalRnn : public ngraph::pass::GraphRewrite
83+
class CPU_BACKEND_API ngraph::runtime::cpu::pass::BiDirectionalRnn
84+
: public ngraph::pass::GraphRewrite
8385
{
8486
public:
8587
BiDirectionalRnn()

src/resource/main.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ int main(int argc, char** argv)
110110

111111
for (ResourceInfo& path : include_paths)
112112
{
113-
// cout << "path " << path.source_path << " -> " << path.target_path << endl;
114113
vector<string> path_list;
115114
if (path.subdirs.empty())
116115
{
@@ -131,7 +130,7 @@ int main(int argc, char** argv)
131130
string ext = get_file_ext(file);
132131
if (contains(valid_ext, ext))
133132
{
134-
// cout << "add " << path.search_path << ", " << file << endl;
133+
// std::cout << "add " << file << std::endl;
135134
path.files.push_back(file);
136135
}
137136
}

0 commit comments

Comments
 (0)