123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- # ---------------------------------
- # Finds ITPP toolkit
- #
- # Sets ITPP_FOUND
- # Sets ITPP_LIBRARIES
- # Sets ITPP_LIBRARY_DIRS
- # Sets ITPP_LDFLAGS
- # Sets ITPP_LDFLAGS_OTHERS
- # Sets ITPP_INCLUDE_DIRS
- # Sets ITPP_CFLAGS
- # Sets ITPP_CFLAGS_OTHERS
- #
- # Adds library to target
- # Adds include path
- # ---------------------------------
-
- GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyITPP)
-
- IF(WIN32)
- FIND_PATH(PATH_ITPP include/itpp/itbase.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES itpp)
- IF(PATH_ITPP)
- SET(ITPP_FOUND TRUE)
- SET(ITPP_INCLUDE_DIRS ${PATH_ITPP}/include)
-
- # Currently the different versions we package for different VS have a bit different lib names...
- STRING(REGEX MATCH "vc100.*" MSVC_VER100 ${MSVC_SERVICE_PACK})
- STRING(REGEX MATCH "vc120.*" MSVC_VER120 ${MSVC_SERVICE_PACK})
-
- IF(MSVC_VER100)
- SET(ITPP_LIBRARIES libblas.a libfftw3-3 liblapack.a libgcc.a libg2c.a)
- SET(ITPP_LIBRARIES_RELEASE itpp)
- SET(ITPP_LIBRARIES_DEBUG itppd)
- ENDIF(MSVC_VER100)
- IF(MSVC_VER120)
- IF("${PLATFORM_TARGET}" STREQUAL "x64")
- SET(ITPP_LIBRARIES libfftw3-3_win64)
- SET(ITPP_LIBRARIES_RELEASE blas_win64_MT lapack_win64_MT itpp)
- SET(ITPP_LIBRARIES_DEBUG blas_win64_MT lapack_win64_MT itpp) # we dont have a good 64bit debug build, just use release
- ELSE()
- SET(ITPP_LIBRARIES libfftw3-3_win32)
- SET(ITPP_LIBRARIES_RELEASE blas_win32_MT lapack_win32_MT itpp)
- SET(ITPP_LIBRARIES_DEBUG blas_win32_MTd lapack_win32_MTd itppd)
- ENDIF()
- ENDIF(MSVC_VER120)
-
- SET(ITPP_LIBRARY_DIRS ${PATH_ITPP}/lib )
- ENDIF(PATH_ITPP)
-
- ENDIF(WIN32)
-
- IF(UNIX)
- INCLUDE("FindThirdPartyPkgConfig")
- FIND_PATH(PATH_ITPP include/itpp PATHS ${LIST_DEPENDENCIES_PATH})
-
- IF(PATH_ITPP)
- FIND_LIBRARY(ITPP_LIBRARY itpp PATHS ${PATH_ITPP}/lib)
- SET(ITPP_FOUND TRUE)
- SET(ITPP_INCLUDE_DIRS ${PATH_ITPP}/include/)
- GET_FILENAME_COMPONENT(ITPP_LIBRARY_DIRS ${ITPP_LIBRARY} DIRECTORY)
- SET(ITPP_LIBRARIES_RELEASE libitpp.so)
- ELSE()
- pkg_check_modules(ITPP itpp)
- ENDIF()
- ENDIF(UNIX)
-
- IF(ITPP_FOUND)
- OV_PRINT(OV_PRINTED " Found it++...")
- SET(ITPP_LOADING_FAILURE FALSE)
- INCLUDE_DIRECTORIES(${ITPP_INCLUDE_DIRS})
- ADD_DEFINITIONS(${ITPP_CFLAGS})
- ADD_DEFINITIONS(${ITPP_CFLAGS_OTHERS})
- # LINK_DIRECTORIES(${ITPP_LIBRARY_DIRS})
- FOREACH(ITPP_LIB ${ITPP_LIBRARIES})
- SET(ITPP_LIB1 "ITPP_LIB1-NOTFOUND")
- FIND_LIBRARY(ITPP_LIB1 NAMES ${ITPP_LIB} PATHS ${ITPP_LIBRARY_DIRS} ${ITPP_LIBDIR} NO_DEFAULT_PATH)
- IF(ITPP_LIB1)
- OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ITPP_LIB1}")
- TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ITPP_LIB1})
- IF(WIN32)
- INSTALL(FILES "${ITPP_LIBRARY_DIRS}/../bin/${ITPP_LIB}.dll" DESTINATION "${DIST_BINDIR}")
- ENDIF()
- ELSE()
- OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ITPP_LIB}")
- SET(ITPP_LOADING_FAILURE TRUE)
- ENDIF()
- ENDFOREACH()
- FOREACH(ITPP_LIB ${ITPP_LIBRARIES_RELEASE})
- SET(ITPP_LIB1 "ITPP_LIB1-RELEASE-NOTFOUND")
- FIND_LIBRARY(ITPP_LIB1 NAMES ${ITPP_LIB} PATHS ${ITPP_LIBRARY_DIRS} ${ITPP_LIBDIR} NO_DEFAULT_PATH)
- IF(ITPP_LIB1)
- OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ITPP_LIB1}")
- TARGET_LINK_LIBRARIES(${PROJECT_NAME} optimized ${ITPP_LIB1})
- IF(WIN32)
- INSTALL(FILES "${ITPP_LIBRARY_DIRS}/../bin/${ITPP_LIB}.dll" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Release)
- ENDIF()
- ELSE()
- OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ITPP_LIB}")
- SET(ITPP_LOADING_FAILURE TRUE)
- ENDIF()
- ENDFOREACH()
- FOREACH(ITPP_LIB ${ITPP_LIBRARIES_DEBUG})
- SET(ITPP_LIB1 "ITPP_LIB1-DEBUG-NOTFOUND")
- FIND_LIBRARY(ITPP_LIB1 NAMES ${ITPP_LIB} PATHS ${ITPP_LIBRARY_DIRS} ${ITPP_LIBDIR} NO_DEFAULT_PATH)
- IF(ITPP_LIB1)
- OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${ITPP_LIB1}")
- TARGET_LINK_LIBRARIES(${PROJECT_NAME} debug ${ITPP_LIB1})
- IF(WIN32)
- INSTALL(FILES "${ITPP_LIBRARY_DIRS}/../bin/${ITPP_LIB}.dll" DESTINATION "${DIST_BINDIR}" CONFIGURATIONS Debug)
- ENDIF()
- ELSE()
- OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${ITPP_LIB}")
- SET(ITPP_LOADING_FAILURE TRUE)
- ENDIF()
- ENDFOREACH()
-
- # We only add ITPP if everything was found
- IF(NOT ITPP_LOADING_FAILURE)
- ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyITPP)
- ENDIF()
-
- ELSE(ITPP_FOUND)
- OV_PRINT(OV_PRINTED " FAILED to find it++...")
- ENDIF()
-
- SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyITPP "Yes")
|