Skip to content

Commit e333425

Browse files
committed
separate FindIPP.cmake
1 parent 3d9d9e3 commit e333425

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

src/Core/CMakeLists.txt

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -52,40 +52,21 @@ else()
5252
set (OpenMP_EXE_LINKER_FLAGS ${OpenMP_C_FLAGS})
5353
endif()
5454

55-
if (UNIX)
56-
find_library(IPP_CORE libippcore.so)
57-
find_library(IPP_S libipps.so)
58-
find_library(IPP_VM libippvm.so)
59-
find_library(IPP_I libippi.so)
60-
elseif(WIN32)
61-
find_library(IPP_CORE ippcore)
62-
find_library(IPP_S ipps)
63-
find_library(IPP_VM ippvm)
64-
find_library(IPP_I ippi)
65-
endif()
66-
67-
if(IPP_CORE AND IPP_S AND IPP_VM AND IPP_I)
68-
set(USE_IPP TRUE)
69-
message("IPP libraries found")
70-
file(REAL_PATH ${IPP_CORE}/../.. LIB_BASE)
71-
find_file(IPP_INCLUDE ipp.h ${LIB_BASE} PATH_SUFFIXES include include/ipp)
72-
cmake_path(GET IPP_INCLUDE PARENT_PATH IPP_INCLUDE)
73-
else()
74-
set(USE_IPP FALSE)
75-
message("IPP libraries not found, FBP_filtering not in build")
76-
endif()
55+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
56+
find_package(IPP)
7757

78-
if(USE_IPP)
58+
if(IPP_FOUND)
7959
add_library(cilacc SHARED ${CMAKE_CURRENT_SOURCE_DIR}/utilities.cpp
8060
${CMAKE_CURRENT_SOURCE_DIR}/axpby.cpp
8161
${CMAKE_CURRENT_SOURCE_DIR}/FiniteDifferenceLibrary.cpp
8262
${CMAKE_CURRENT_SOURCE_DIR}/FBP_filtering.cpp
8363
${CMAKE_CURRENT_SOURCE_DIR}/Binning.cpp)
8464

8565

86-
target_link_libraries(cilacc ${OpenMP_EXE_LINKER_FLAGS} ${IPP_CORE} ${IPP_S} ${IPP_I} ${IPP_VM})
87-
include_directories(cilacc PUBLIC ${IPP_INCLUDE} ${CMAKE_CURRENT_SOURCE_DIR}/include)
66+
target_link_libraries(cilacc ${OpenMP_EXE_LINKER_FLAGS} ${IPP_LIBRARIES})
67+
include_directories(cilacc PUBLIC ${IPP_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/include)
8868
else()
69+
message(WARNING "IPP libraries not found, FBP_filtering not in build")
8970
add_library(cilacc SHARED ${CMAKE_CURRENT_SOURCE_DIR}/utilities.cpp
9071
${CMAKE_CURRENT_SOURCE_DIR}/axpby.cpp
9172
${CMAKE_CURRENT_SOURCE_DIR}/FiniteDifferenceLibrary.cpp )

src/Core/cmake/FindIPP.cmake

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Inputs (optional): IPP_ROOT
2+
# Outputs: IPP_FOUND, IPP_INCLUDE_DIRS, IPP_LIBRARIES
3+
4+
find_path(IPP_ROOT_DIR include/ipp.h PATHS ${IPP_ROOT} $ENV{IPPROOT} $ENV{CONDA_PREFIX})
5+
find_path(IPP_INCLUDE_DIR ipp.h PATHS ${IPP_ROOT_DIR}/include)
6+
7+
if(APPLE)
8+
set(IPP_PRE "lib")
9+
set(IPP_POST ".a")
10+
elseif(NOT WIN32)
11+
set(IPP_PRE "lib")
12+
set(IPP_POST ".so")
13+
endif()
14+
find_library(IPP_CORE ${IPP_PRE}ippcore${IPP_POST} PATHS ${IPP_ROOT_DIR})
15+
find_library(IPP_S ${IPP_PRE}ipps${IPP_POST} PATHS ${IPP_ROOT_DIR})
16+
find_library(IPP_VM ${IPP_PRE}ippvm${IPP_POST} PATHS ${IPP_ROOT_DIR})
17+
find_library(IPP_I ${IPP_PRE}ippi${IPP_POST} PATHS ${IPP_ROOT_DIR})
18+
19+
if(IPP_INCLUDE_DIR AND IPP_CORE AND IPP_S AND IPP_VM AND IPP_I)
20+
message(STATUS "IPP found in: ${IPP_ROOT_DIR}")
21+
set(IPP_FOUND TRUE)
22+
set(IPP_INCLUDE_DIRS "${IPP_INCLUDE_DIR}")
23+
set(IPP_LIBRARIES "${IPP_CORE};${IPP_S};${IPP_VM};${IPP_I}")
24+
else()
25+
message(STATUS "IPP not found")
26+
set(IPP_NOTFOUND TRUE)
27+
endif()

0 commit comments

Comments
 (0)