Selaa lähdekoodia

Create libhvConfig.cmake

test environment: 
* Windows 10 64 bit 21H2 19044.1586
* cmake 3.22.1
* vcpkg 2021-12-09-724cea8b33cbf06c645f5095fa29773697da9761
* Visual Studio Enterprise 2022 Release -amd64
---
Compilation of 64-bit applications on the Windows platform is successful. As for the compilation results of other platforms, other help is required.
endingly 3 vuotta sitten
vanhempi
commit
d72b53512c
1 muutettua tiedostoa jossa 87 lisäystä ja 0 poistoa
  1. 87 0
      cmake/libhvConfig.cmake

+ 87 - 0
cmake/libhvConfig.cmake

@@ -0,0 +1,87 @@
+
+include(SelectLibraryConfigurations)
+
+find_path(libhv_INCLUDE_DIRS hv/hv.h)
+message("libhv_INCLUDE_DIRS: " ${libhv_INCLUDE_DIRS})
+
+find_library(libhv_LIBRARY_RELEASE NAMES hv PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH)
+
+find_library(libhv_LIBRARY_DEBUG NAMES hv PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH)
+select_library_configurations(libhv)
+
+if(NOT libhv_LIBRARY)
+  set(libhv_FOUND FALSE)
+  set(LIBHV_FOUND FALSE)
+  return()
+endif()
+
+if(WIN32)
+  find_file(libhv_LIBRARY_RELEASE_DLL NAMES hv.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../bin" NO_DEFAULT_PATH)
+  find_file(libhv_LIBRARY_DEBUG_DLL NAMES hv.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/bin" NO_DEFAULT_PATH)
+endif()
+
+# Manage Release Windows shared
+if(EXISTS "${libhv_LIBRARY_RELEASE_DLL}")
+  add_library(libhv SHARED IMPORTED)
+  set_target_properties(libhv PROPERTIES
+    IMPORTED_CONFIGURATIONS Release
+    IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE_DLL}"
+    IMPORTED_IMPLIB_RELEASE "${libhv_LIBRARY_RELEASE}"
+    INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
+  )
+endif()
+
+# Manage Debug Windows shared
+if(EXISTS "${libhv_LIBRARY_DEBUG_DLL}")
+  if(EXISTS "${libhv_LIBRARY_RELEASE_DLL}")
+    #message("Debug mode")
+    set_target_properties(libhv PROPERTIES
+      IMPORTED_CONFIGURATIONS "Release;Debug"
+      IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE_DLL}"
+      IMPORTED_IMPLIB_RELEASE "${libhv_LIBRARY_RELEASE}"
+      IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG_DLL}"
+      IMPORTED_IMPLIB_DEBUG "${libhv_LIBRARY_DEBUG}"
+      INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"    
+    )
+  else()  
+    add_library(libhv SHARED IMPORTED)
+    set_target_properties(libhv PROPERTIES
+      IMPORTED_CONFIGURATIONS Debug
+      IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG_DLL"
+      IMPORTED_IMPLIB_DEBUG "${libhv_LIBRARY_DEBUG}"
+      INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
+    )
+  endif()
+endif()
+
+# Manage Release Windows static and Linux shared/static
+if((NOT EXISTS "${libhv_LIBRARY_RELEASE_DLL}") AND (EXISTS "${libhv_LIBRARY_RELEASE}"))
+  add_library(libhv UNKNOWN IMPORTED)
+  set_target_properties(libhv PROPERTIES
+    IMPORTED_CONFIGURATIONS Release
+    IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE}"
+    INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
+  )
+endif()
+
+# Manage Debug Windows static and Linux shared/static
+if((NOT EXISTS "${libhv_LIBRARY_DEBUG_DLL}") AND (EXISTS "${libhv_LIBRARY_DEBUG}"))
+  if(EXISTS "${libhv_LIBRARY_RELEASE}")
+    set_target_properties(libhv PROPERTIES
+      IMPORTED_CONFIGURATIONS "Release;Debug"
+      IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE}"
+      IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG}"
+      INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"   
+    )
+  else()
+    add_library(libhv UNKNOWN IMPORTED)
+    set_target_properties(libhv PROPERTIES
+      IMPORTED_CONFIGURATIONS Debug
+      IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG}"
+      INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}"
+    )
+  endif()
+endif()
+
+set(libhv_FOUND TRUE)
+set(LIBHV_FOUND TRUE)