Skip to content

Commit db75f67

Browse files
committed
build: fix external builds and OpenMP linkage
1 parent fef6e73 commit db75f67

4 files changed

Lines changed: 19 additions & 6 deletions

File tree

app/Accuracy/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ target_compile_definitions(ACCLib PUBLIC IMAGE1_PATH="${ITLABAI_TEST_DATA_DIR}/l
1818

1919
add_executable(Accuracy_Check accuracy_check.cpp)
2020
target_link_libraries(Accuracy_Check PRIVATE ACCLib OpenCV::opencv_world)
21+
itlabai_link_externals(Accuracy_Check openmp)
2122
itlabai_target_defaults(Accuracy_Check)

app/Graph/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ target_link_libraries(Graph_Build PRIVATE BuildGraph)
2525
itlabai_target_defaults(Graph_Build)
2626

2727
add_executable(ACC acc_check.cpp)
28-
target_link_libraries(ACC PRIVATE BuildGraph OpenCV::opencv_world Kokkos_imported TBB_unified)
28+
target_link_libraries(ACC PRIVATE BuildGraph OpenCV::opencv_world)
2929
itlabai_target_defaults(ACC)
3030

3131
add_executable(onnx_subgraphs onnx_subgraphs.cpp)

cmake/ProjectDefaults.cmake

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@ function(itlabai_link_externals target_name)
4141
endif()
4242
endforeach()
4343
if(ext STREQUAL "openmp" AND OpenMP_FOUND)
44-
if(DEFINED OpenMP_CXX_FLAGS)
44+
# Ensure both compile and link stages pick up OpenMP flags.
45+
if(DEFINED OpenMP_CXX_FLAGS AND NOT OpenMP_CXX_FLAGS STREQUAL "")
4546
string(REPLACE " " ";" _omp_flags "${OpenMP_CXX_FLAGS}")
4647
target_compile_options(${target_name} ${_scope} ${_omp_flags})
48+
target_link_options(${target_name} ${_scope} ${_omp_flags})
4749
endif()
48-
if(DEFINED OpenMP_EXE_LINKER_FLAGS)
50+
if(DEFINED OpenMP_EXE_LINKER_FLAGS AND NOT OpenMP_EXE_LINKER_FLAGS STREQUAL "")
4951
string(REPLACE " " ";" _omp_lflags "${OpenMP_EXE_LINKER_FLAGS}")
5052
target_link_options(${target_name} ${_scope} ${_omp_lflags})
5153
endif()

cmake/deps/onednn.cmake

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ if(NOT dnnl_FOUND)
1616
set(_onednn_depends tbb_external)
1717
endif()
1818

19+
set(_onednn_byproducts "")
20+
if(MSVC)
21+
list(APPEND _onednn_byproducts
22+
${ONEDNN_INSTALL_DIR}/lib/dnnl.lib
23+
${ONEDNN_INSTALL_DIR}/bin/dnnl.dll
24+
)
25+
else()
26+
list(APPEND _onednn_byproducts
27+
${ONEDNN_INSTALL_DIR}/lib/libdnnl${CMAKE_SHARED_LIBRARY_SUFFIX}
28+
)
29+
endif()
30+
1931
ExternalProject_Add(onednn_external
2032
SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/oneDNN"
2133
BINARY_DIR "${ONEDNN_BUILD_DIR}"
@@ -36,9 +48,7 @@ if(NOT dnnl_FOUND)
3648
-DBUILD_SHARED_LIBS=ON
3749
${ITLABAI_EXTERNAL_TOOLCHAIN_ARGS}
3850
${ITLABAI_EXTERNAL_WARNING_ARGS}
39-
BUILD_BYPRODUCTS
40-
${ONEDNN_INSTALL_DIR}/lib/dnnl.lib
41-
${ONEDNN_INSTALL_DIR}/bin/dnnl.dll
51+
BUILD_BYPRODUCTS ${_onednn_byproducts}
4252
)
4353
add_dependencies(itlabai_external onednn_external)
4454

0 commit comments

Comments
 (0)