diff --git a/CMakeLists.txt b/CMakeLists.txt index bac73309a8..d23ed0b1c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -252,36 +252,72 @@ endif() # GmmLib detection if(NOT GMMUMD_LIB_NAME) - if(TARGET gmm_umd) - set(GMMUMD_LIB_NAME "gmm_umd") + if(TARGET gmm_umd) + set(GMMUMD_LIB_NAME "gmm_umd") + else() + if(DEFINED GMM_SOURCE_DIR) + get_filename_component(GMM_SOURCE_DIR "${GMM_SOURCE_DIR}" ABSOLUTE) else() - if(GMM_SOURCE_DIR) - get_filename_component(GMM_SOURCE_DIR "${GMM_SOURCE_DIR}" ABSOLUTE) - else(GMM_SOURCE_DIR) - get_filename_component(GMM_SOURCE_DIR_tmp "${CMAKE_SOURCE_DIR}/../gmmlib" ABSOLUTE) - if(IS_DIRECTORY "${GMM_SOURCE_DIR_tmp}") - set(GMM_SOURCE_DIR "${GMM_SOURCE_DIR_tmp}") - endif() - endif() - if(NOT IS_DIRECTORY "${GMM_SOURCE_DIR}") - message(FATAL_ERROR "GmmLib not found!") - endif() - - message(STATUS "GmmLib source dir is: ${GMM_SOURCE_DIR}") - add_subdirectory("${GMM_SOURCE_DIR}" "${IGDRCL_BUILD_DIR}/gmmlib") - - if(NOT GMMUMD_LIB_NAME) - set(GMMUMD_LIB_NAME "gmm_umd") - endif() + get_filename_component(GMM_SOURCE_DIR_tmp "${CMAKE_SOURCE_DIR}/../gmmlib" ABSOLUTE) + if(IS_DIRECTORY "${GMM_SOURCE_DIR_tmp}") + set(GMM_SOURCE_DIR "${GMM_SOURCE_DIR_tmp}") + endif() endif() -endif() -get_target_property(target_type ${GMMUMD_LIB_NAME} TYPE) -if(target_type STREQUAL "STATIC_LIBRARY") - set(USE_STATIC_GMM TRUE) -endif() + if(UNIX) + find_package(PkgConfig) + if(IS_DIRECTORY "${GMM_SOURCE_DIR}/lib/pkgconfig/") + set(ENV{PKG_CONFIG_PATH} "${GMM_SOURCE_DIR}/lib/pkgconfig/") + endif() + pkg_check_modules(IGDRCL__GMM igdgmm) + if(IS_DIRECTORY "${GMM_SOURCE_DIR}/lib/pkgconfig/") + unset(ENV{PKG_CONFIG_PATH}) + endif() -set(UMKM_SHAREDDATA_INCLUDE_PATHS $) + if(IGDRCL__GMM_FOUND) + if(IS_DIRECTORY "${GMM_SOURCE_DIR}/lib/pkgconfig/") + string(REPLACE "${IGDRCL__GMM_INCLUDEDIR}" "${GMM_SOURCE_DIR}/include/igdgmm" IGDRCL__GMM_INCLUDE_DIRS "${IGDRCL__GMM_INCLUDE_DIRS}") + string(REPLACE "${IGDRCL__GMM_LIBDIR}" "${GMM_SOURCE_DIR}/lib/${BUILD_TYPE_lower}" IGDRCL__GMM_LIBDIR "${IGDRCL__GMM_LIBDIR}") + link_directories(${IGDRCL__GMM_LIBDIR}) + endif() + + set(USE_STATIC_GMM TRUE) + set(GMMUMD_LIB_NAME "gmm_umd") + + set(IGDRCL__GMM_INCLUDE_DIR ${IGDRCL__GMM_INCLUDE_DIRS}) + set(UMKM_SHAREDDATA_INCLUDE_PATHS "${IGDRCL__GMM_INCLUDE_DIR}") + message(STATUS "GmmLib include dirs: ${IGDRCL__GMM_INCLUDE_DIR}") + endif() + endif() + + if(IGDRCL__GMM_FOUND) + # do nothing + elseif(EXISTS "${GMM_SOURCE_DIR}/CMakeLists.txt") + message(STATUS "GmmLib source dir is: ${GMM_SOURCE_DIR}") + add_subdirectory("${GMM_SOURCE_DIR}" "${IGDRCL_BUILD_DIR}/gmmlib") + + if(NOT GMMUMD_LIB_NAME) + set(GMMUMD_LIB_NAME "gmm_umd") + endif() + + get_target_property(target_type ${GMMUMD_LIB_NAME} TYPE) + + if(target_type STREQUAL "STATIC_LIBRARY") + set(USE_STATIC_GMM TRUE) + endif() + set(UMKM_SHAREDDATA_INCLUDE_PATHS $) + else() + message(FATAL_ERROR "GmmLib not found!") + endif() + endif() +else() + get_target_property(target_type ${GMMUMD_LIB_NAME} TYPE) + + if(target_type STREQUAL "STATIC_LIBRARY") + set(USE_STATIC_GMM TRUE) + endif() + set(UMKM_SHAREDDATA_INCLUDE_PATHS $) +endif() set(GMM_LIBRARY_NAME "igdgmm${NEO_BITS}") diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index 08e867d745..60b91620ef 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -138,7 +138,9 @@ if(${GENERATE_EXECUTABLE}) add_library(${NEO_DYNAMIC_LIB_NAME} SHARED ${NEO_DYNAMIC_LIB__TARGET_OBJECTS} ) - add_dependencies(${NEO_DYNAMIC_LIB_NAME} ${GMMUMD_LIB_NAME}) + if(TARGET GMMUMD_LIB_NAME) + add_dependencies(${NEO_DYNAMIC_LIB_NAME} ${GMMUMD_LIB_NAME}) + endif() if(GTPIN_HEADERS_DIR) macro(macro_for_each_gen)