Adding gt_use_ipp()

release/4.3a0
Richard Roberts 2009-12-01 14:58:43 +00:00
parent 42a644c0ef
commit e05746cf74
2 changed files with 174 additions and 4 deletions

153
buildtools/FindIPP.cmake Normal file
View File

@ -0,0 +1,153 @@
# Copyright (C) 2004-2009, Robotics Equipment Corporation GmbH
# http://svn.openrobotino.org/trunk/tools/cmake/FindIPP.cmake
IF( NOT IPP_FOUND )
FILE(GLOB IPP_INCLUDE_PATHS_0 "$ENV{ProgramFiles}/Intel/IPP/*.*/ia32/include")
FILE(GLOB IPP_INCLUDE_PATHS_1 "/opt/intel/ipp/*.*/ia32/include")
FILE(GLOB IPP_INCLUDE_PATHS_2 "/usr/local/intel/ipp/*.*/ia32/include")
FILE(GLOB IPP_LIBRARY_PATHS_0 "$ENV{ProgramFiles}/Intel/IPP/*.*/ia32/lib")
FILE(GLOB IPP_LIBRARY_PATHS_1 "$ENV{ProgramFiles}/Intel/IPP/*.*/ia32/stublib")
FILE(GLOB IPP_LIBRARY_PATHS_2 "/opt/intel/ipp/*.*/ia32/lib")
FILE(GLOB IPP_LIBRARY_PATHS_3 "/opt/intel/ipp/*.*/ia32/sharedlib")
FILE(GLOB IPP_LIBRARY_PATHS_4 "/usr/local/intel/ipp/*.*/ia32/lib")
FILE(GLOB IPP_LIBRARY_PATHS_5 "/usr/local/intel/ipp/*.*/ia32/sharedlib")
SET(
IPP_INCLUDE_PATHS
${IPP_INCLUDE_PATHS_0}
${IPP_INCLUDE_PATHS_1}
${IPP_INCLUDE_PATHS_2}
)
SET(
IPP_LIBRARY_PATHS
${IPP_LIBRARY_PATHS_0}
${IPP_LIBRARY_PATHS_1}
${IPP_LIBRARY_PATHS_2}
${IPP_LIBRARY_PATHS_3}
${IPP_LIBRARY_PATHS_4}
${IPP_LIBRARY_PATHS_5}
)
FIND_PATH(
IPP_INCLUDE_DIR
ippi.h
${IPP_INCLUDE_PATHS}
)
FIND_LIBRARY( IPP_IPPCORELMERGED NAMES ippcorel ippcore PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPACEMERGED NAMES ippacemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPACMERGED NAMES ippacmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCCEMERGED NAMES ippccemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCCMERGED NAMES ippccmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCHEMERGED NAMES ippchemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCHMERGED NAMES ippchmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCVEMERGED NAMES ippcvemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCVMERGED NAMES ippcvmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPDCEMERGED NAMES ippdcemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPDCMERGED NAMES ippdcmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPIEMERGED NAMES ippiemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPIMERGED NAMES ippimerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPJEMERGED NAMES ippjemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPJMERGED NAMES ippjmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPMEMERGED NAMES ippmemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPMMERGED NAMES ippmmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSCEMERGED NAMES ippscemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSCMERGED NAMES ippscmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSEMERGED NAMES ippsemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSMERGED NAMES ippsmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSREMERGED NAMES ippsremerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSRMERGED NAMES ippsrmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPVCEMERGED NAMES ippvcemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPVCMERGED NAMES ippvcmerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPVMEMERGED NAMES ippvmemerged PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPVMMERGED NAMES ippvmmerged PATHS ${IPP_LIBRARY_PATHS} )
SET(
IPP_MERGED_LIBRARIES
${IPP_IPPACEMERGED}
${IPP_IPPACMERGED}
${IPP_IPPCVEMERGED}
${IPP_IPPCVMERGED}
${IPP_IPPMEMERGED}
${IPP_IPPMMERGED}
${IPP_IPPDCEMERGED}
${IPP_IPPDCMERGED}
${IPP_IPPVCEMERGED}
${IPP_IPPVCMERGED}
${IPP_IPPCCEMERGED}
${IPP_IPPCCMERGED}
${IPP_IPPCHEMERGED}
${IPP_IPPCHMERGED}
${IPP_IPPVMEMERGED}
${IPP_IPPVMMERGED}
${IPP_IPPJEMERGED}
${IPP_IPPJMERGED}
${IPP_IPPSREMERGED}
${IPP_IPPSRMERGED}
${IPP_IPPSCEMERGED}
${IPP_IPPSCMERGED}
${IPP_IPPIEMERGED}
${IPP_IPPIMERGED}
${IPP_IPPSEMERGED}
${IPP_IPPSMERGED}
${IPP_IPPCORELMERGED}
)
FIND_LIBRARY( IPP_IPPACSHARED NAMES ippac PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCCSHARED NAMES ippcc PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCHSHARED NAMES ippch PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCORELSHARED NAMES ippcore PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPCVSHARED NAMES ippcv PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPDCSHARED NAMES ippdc PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPISHARED NAMES ippi PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPJSHARED NAMES ippj PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPMSHARED NAMES ippm PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSSHARED NAMES ipps PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSCSHARED NAMES ippsc PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPSRSHARED NAMES ippsr PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPVCSHARED NAMES ippvc PATHS ${IPP_LIBRARY_PATHS} )
FIND_LIBRARY( IPP_IPPVMSHARED NAMES ippvm PATHS ${IPP_LIBRARY_PATHS} )
SET(
IPP_SHARED_LIBRARIES
${IPP_IPPACSHARED}
${IPP_IPPCCSHARED}
${IPP_IPPCHSHARED}
${IPP_IPPCORELSHARED}
${IPP_IPPCVSHARED}
${IPP_IPPDCSHARED}
${IPP_IPPISHARED}
${IPP_IPPJSHARED}
${IPP_IPPMSHARED}
${IPP_IPPSSHARED}
${IPP_IPPSCSHARED}
${IPP_IPPSRSHARED}
${IPP_IPPVCSHARED}
${IPP_IPPVMSHARED}
)
SET( IPP_FOUND 0 )
IF( EXISTS "${IPP_INCLUDE_DIR}" )
SET( IPP_FOUND 1 )
ADD_DEFINITIONS( -DHAVE_IPP )
INCLUDE_DIRECTORIES(
${IPP_INCLUDE_DIR}
)
ENDIF( EXISTS "${IPP_INCLUDE_DIR}" )
ENDIF( NOT IPP_FOUND )

View File

@ -37,13 +37,17 @@ string(REPLACE ";" "/" GT_BUILDTOOLS "${GT_BUILDTOOLS}")
message(STATUS "Build tools dir ${GT_BUILDTOOLS}")
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${GT_BUILDTOOLS}")
function(GT_USE_BOOST)
find_package(Boost REQUIRED)
if(ARGN)
find_package(Boost REQUIRED COMPONENTS ${ARGN})
else()
find_package(Boost REQUIRED)
endif()
link_directories(${Boost_LIBRARY_DIRS})
include_directories(${Boost_INCLUDE_DIRS})
link_libraries(${Boost_LIBRARIES})
endfunction(GT_USE_BOOST)
function(GT_USE_QT4)
find_package(Qt4 COMPONENTS QtCore QtGui ${ARGN} REQUIRED)
find_package(Qt4 REQUIRED COMPONENTS QtCore QtGui ${ARGN})
include(${QT_USE_FILE})
link_libraries(${QT_LIBRARIES})
endfunction(GT_USE_QT4)
@ -53,6 +57,12 @@ function(GT_USE_OPENCV)
include_directories(${OpenCV_INCLUDE_DIRS})
link_libraries(${OpenCV_LIBRARIES)
endfunction(GT_USE_OPENCV)
function(GT_USE_IPP)
find_package(IPP REQUIRED)
link_directories(${IPP_LIBRARY_PATHS})
include_directories(${IPP_INCLUDE_PATHS})
link_libraries(${IPP_SHARED_LIBRARIES})
endfunction()
function(GT_USE_GTSAM)
link_libraries("gtsam")
endfunction(GT_USE_GTSAM)
@ -62,7 +72,7 @@ endfunction(GT_USE_EASY2D)
############
### Main target functions, calling one of these will replace the previous main target.
### Main target functions, only call one of these.
# Set the "excluded" sources, i.e. unit tests
function(GT_EXCLUDE)
@ -101,10 +111,17 @@ endfunction(GT_MAIN_SOURCES_HELPER)
# Add headers to be installed
function(GT_INSTALL_HEADERS)
list(GET ARGN 0 arg1)
if(${arg1} STREQUAL "PREFIX")
list(GET ARGN 1 prefix)
list(REMOVE_AT ARGN 0 1)
else(${arg1} STREQUAL "PREFIX")
set(prefix "")
endif(${arg1} STREQUAL "PREFIX")
foreach(srcpat ${ARGN})
# Get the sources matching the specified pattern
file(GLOB srcs RELATIVE "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/${srcpat}")
install(FILES ${srcs} DESTINATION "include/${PROJECT_NAME}")
install(FILES ${srcs} DESTINATION "include/${PROJECT_NAME}/${prefix}")
endforeach(srcpat)
endfunction(GT_INSTALL_HEADERS)