You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

cnnl.cmake 3.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. find_library(
  2. CNNL_LIBRARY
  3. NAMES libcnnl.so
  4. PATHS ${ALTER_LD_LIBRARY_PATHS} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX}
  5. HINTS ${ALTER_LIBRARY_PATHS}
  6. PATH_SUFFIXES lib lib64
  7. DOC "CNNL library.")
  8. if(CNNL_LIBRARY STREQUAL "CNNL_LIBRARY-NOTFOUND")
  9. message(FATAL_ERROR "Can not find CNNL Library")
  10. endif()
  11. get_filename_component(__found_cnnl_root "${CNNL_LIBRARY}/../.." REALPATH)
  12. find_path(
  13. CNNL_INCLUDE_DIR
  14. NAMES cnnl.h
  15. HINTS "$ENV{NEUWARE_HOME}/include" ${__found_cnnl_root}
  16. PATH_SUFFIXES include
  17. DOC "Path to CNNL include directory.")
  18. if(CNNL_INCLUDE_DIR STREQUAL "CNNL_INCLUDE_DIR-NOTFOUND")
  19. message(FATAL_ERROR "Can not find CNNL Library")
  20. endif()
  21. file(STRINGS "${CNNL_INCLUDE_DIR}/cnnl.h" CNNL_MAJOR
  22. REGEX "^#define CNNL_MAJOR [0-9]+.*$")
  23. file(STRINGS "${CNNL_INCLUDE_DIR}/cnnl.h" CNNL_MINOR
  24. REGEX "^#define CNNL_MINOR [0-9]+.*$")
  25. file(STRINGS "${CNNL_INCLUDE_DIR}/cnnl.h" CNNL_PATCH
  26. REGEX "^#define CNNL_PATCHLEVEL [0-9]+.*$")
  27. string(REGEX REPLACE "^#define CNNL_MAJOR ([0-9]+).*$" "\\1" CNNL_VERSION_MAJOR
  28. "${CNNL_MAJOR}")
  29. string(REGEX REPLACE "^#define CNNL_MINOR ([0-9]+).*$" "\\1" CNNL_VERSION_MINOR
  30. "${CNNL_MINOR}")
  31. string(REGEX REPLACE "^#define CNNL_PATCHLEVEL ([0-9]+).*$" "\\1" CNNL_VERSION_PATCH
  32. "${CNNL_PATCH}")
  33. set(CNNL_VERSION_STRING
  34. "${CNNL_VERSION_MAJOR}.${CNNL_VERSION_MINOR}.${CNNL_VERSION_PATCH}")
  35. add_library(libcnnl SHARED IMPORTED)
  36. set_target_properties(
  37. libcnnl PROPERTIES IMPORTED_LOCATION ${CNNL_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES
  38. ${CNNL_INCLUDE_DIR})
  39. message(
  40. STATUS "Found CNNL: ${__found_cnnl_root} (found version: ${CNNL_VERSION_STRING})")
  41. find_library(
  42. CNNL_EXTRA_LIBRARY
  43. NAMES libcnnl_extra.so
  44. PATHS ${ALTER_LD_LIBRARY_PATHS} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX}
  45. HINTS ${ALTER_LIBRARY_PATHS}
  46. PATH_SUFFIXES lib lib64
  47. DOC "CNNL_EXTRA library.")
  48. if(CNNL_EXTRA_LIBRARY STREQUAL "CNNL_EXTRA_LIBRARY-NOTFOUND")
  49. message(FATAL_ERROR "Can not find CNNL_EXTRA Library")
  50. endif()
  51. get_filename_component(__found_cnnl_extra_root "${CNNL_EXTRA_LIBRARY}/../.." REALPATH)
  52. find_path(
  53. CNNL_EXTRA_INCLUDE_DIR
  54. NAMES cnnl_extra.h
  55. HINTS "$ENV{NEUWARE_HOME}/include" ${__found_cnnl_extra_root}
  56. PATH_SUFFIXES include
  57. DOC "Path to CNNL_EXTRA include directory.")
  58. if(CNNL_EXTRA_INCLUDE_DIR STREQUAL "CNNL_EXTRA_INCLUDE_DIR-NOTFOUND")
  59. message(FATAL_ERROR "Can not find CNNL_EXTRA Library")
  60. endif()
  61. file(STRINGS "${CNNL_EXTRA_INCLUDE_DIR}/cnnl_extra.h" CNNL_EXTRA_MAJOR
  62. REGEX "^#define CNNL_EXTRA_MAJOR [0-9]+.*$")
  63. file(STRINGS "${CNNL_EXTRA_INCLUDE_DIR}/cnnl_extra.h" CNNL_EXTRA_MINOR
  64. REGEX "^#define CNNL_EXTRA_MINOR [0-9]+.*$")
  65. file(STRINGS "${CNNL_EXTRA_INCLUDE_DIR}/cnnl_extra.h" CNNL_EXTRA_PATCH
  66. REGEX "^#define CNNL_EXTRA_PATCHLEVEL [0-9]+.*$")
  67. string(REGEX REPLACE "^#define CNNL_EXTRA_MAJOR ([0-9]+).*$" "\\1"
  68. CNNL_EXTRA_VERSION_MAJOR "${CNNL_EXTRA_MAJOR}")
  69. string(REGEX REPLACE "^#define CNNL_EXTRA_MINOR ([0-9]+).*$" "\\1"
  70. CNNL_EXTRA_VERSION_MINOR "${CNNL_EXTRA_MINOR}")
  71. string(REGEX REPLACE "^#define CNNL_EXTRA_PATCHLEVEL ([0-9]+).*$" "\\1"
  72. CNNL_EXTRA_VERSION_PATCH "${CNNL_EXTRA_PATCH}")
  73. set(CNNL_EXTRA_VERSION_STRING
  74. "${CNNL_EXTRA_VERSION_MAJOR}.${CNNL_EXTRA_VERSION_MINOR}.${CNNL_EXTRA_VERSION_PATCH}"
  75. )
  76. add_library(libcnnl_extra SHARED IMPORTED)
  77. set_target_properties(
  78. libcnnl_extra PROPERTIES IMPORTED_LOCATION ${CNNL_EXTRA_LIBRARY}
  79. INTERFACE_INCLUDE_DIRECTORIES ${CNNL_EXTRA_INCLUDE_DIR})
  80. message(
  81. STATUS
  82. "Found CNNL_EXTRA: ${__found_cnnl_extra_root} (found version: ${CNNL_EXTRA_VERSION_STRING})"
  83. )