libhvConfig.cmake 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. include(SelectLibraryConfigurations)
  2. find_path(libhv_INCLUDE_DIRS hv/hv.h)
  3. message("libhv_INCLUDE_DIRS: " ${libhv_INCLUDE_DIRS})
  4. find_library(libhv_LIBRARY_RELEASE NAMES hv PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH)
  5. find_library(libhv_LIBRARY_DEBUG NAMES hv PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH)
  6. select_library_configurations(libhv)
  7. if(NOT libhv_LIBRARY)
  8. set(libhv_FOUND FALSE)
  9. set(LIBHV_FOUND FALSE)
  10. return()
  11. endif()
  12. if(WIN32)
  13. find_file(libhv_LIBRARY_RELEASE_DLL NAMES hv.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../bin" NO_DEFAULT_PATH)
  14. find_file(libhv_LIBRARY_DEBUG_DLL NAMES hv.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/bin" NO_DEFAULT_PATH)
  15. endif()
  16. # Manage Release Windows shared
  17. if(EXISTS "${libhv_LIBRARY_RELEASE_DLL}")
  18. add_library(libhv SHARED IMPORTED)
  19. set_target_properties(libhv PROPERTIES
  20. IMPORTED_CONFIGURATIONS Release
  21. IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE_DLL}"
  22. IMPORTED_IMPLIB_RELEASE "${libhv_LIBRARY_RELEASE}"
  23. INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
  24. )
  25. endif()
  26. # Manage Debug Windows shared
  27. if(EXISTS "${libhv_LIBRARY_DEBUG_DLL}")
  28. if(EXISTS "${libhv_LIBRARY_RELEASE_DLL}")
  29. #message("Debug mode")
  30. set_target_properties(libhv PROPERTIES
  31. IMPORTED_CONFIGURATIONS "Release;Debug"
  32. IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE_DLL}"
  33. IMPORTED_IMPLIB_RELEASE "${libhv_LIBRARY_RELEASE}"
  34. IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG_DLL}"
  35. IMPORTED_IMPLIB_DEBUG "${libhv_LIBRARY_DEBUG}"
  36. INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
  37. )
  38. else()
  39. add_library(libhv SHARED IMPORTED)
  40. set_target_properties(libhv PROPERTIES
  41. IMPORTED_CONFIGURATIONS Debug
  42. IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG_DLL}"
  43. IMPORTED_IMPLIB_DEBUG "${libhv_LIBRARY_DEBUG}"
  44. INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
  45. )
  46. endif()
  47. endif()
  48. # Manage Release Windows static and Linux shared/static
  49. if((NOT EXISTS "${libhv_LIBRARY_RELEASE_DLL}") AND (EXISTS "${libhv_LIBRARY_RELEASE}"))
  50. add_library(libhv UNKNOWN IMPORTED)
  51. set_target_properties(libhv PROPERTIES
  52. IMPORTED_CONFIGURATIONS Release
  53. IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE}"
  54. INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
  55. )
  56. endif()
  57. # Manage Debug Windows static and Linux shared/static
  58. if((NOT EXISTS "${libhv_LIBRARY_DEBUG_DLL}") AND (EXISTS "${libhv_LIBRARY_DEBUG}"))
  59. if(EXISTS "${libhv_LIBRARY_RELEASE}")
  60. set_target_properties(libhv PROPERTIES
  61. IMPORTED_CONFIGURATIONS "Release;Debug"
  62. IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE}"
  63. IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG}"
  64. INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
  65. )
  66. else()
  67. add_library(libhv UNKNOWN IMPORTED)
  68. set_target_properties(libhv PROPERTIES
  69. IMPORTED_CONFIGURATIONS Debug
  70. IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG}"
  71. INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
  72. )
  73. endif()
  74. endif()
  75. set(libhv_FOUND TRUE)
  76. set(LIBHV_FOUND TRUE)