diff --git a/buildtools/FindIPP.cmake b/buildtools/FindIPP.cmake new file mode 100644 index 000000000..b192932e3 --- /dev/null +++ b/buildtools/FindIPP.cmake @@ -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 ) \ No newline at end of file diff --git a/buildtools/gt.cmake b/buildtools/gt.cmake index ed25c8bb9..13146b809 100644 --- a/buildtools/gt.cmake +++ b/buildtools/gt.cmake @@ -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)