diff --git a/ports/farmhash/CONTROL b/ports/farmhash/CONTROL new file mode 100644 index 000000000..79cb6849a --- /dev/null +++ b/ports/farmhash/CONTROL @@ -0,0 +1,4 @@ +Source: farmhash +Version: 1.1 +Homepage: https://github.com/google/farmhash +Description: FarmHash, a family of hash functions. diff --git a/ports/farmhash/farmhashConfig.cmake b/ports/farmhash/farmhashConfig.cmake new file mode 100644 index 000000000..b7b4cd1b0 --- /dev/null +++ b/ports/farmhash/farmhashConfig.cmake @@ -0,0 +1,16 @@ +function(set_library_target NAMESPACE LIB_NAME DEBUG_LIB_FILE_NAME RELEASE_LIB_FILE_NAME INCLUDE_DIR) + add_library(${NAMESPACE}::${LIB_NAME} STATIC IMPORTED) + set_target_properties(${NAMESPACE}::${LIB_NAME} PROPERTIES + IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" + IMPORTED_LOCATION_RELEASE "${RELEASE_LIB_FILE_NAME}" + IMPORTED_LOCATION_DEBUG "${DEBUG_LIB_FILE_NAME}" + INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIR}" + ) + set(${NAMESPACE}_${LIB_NAME}_FOUND 1) +endfunction() + +get_filename_component(ROOT "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(ROOT "${ROOT}" PATH) +get_filename_component(ROOT "${ROOT}" PATH) + +set_library_target("GOOGLE" "farmhash" "${ROOT}/debug/lib/libfarmhash.a" "${ROOT}/lib/libfarmhash.a" "${ROOT}/include/") diff --git a/ports/farmhash/portfile.cmake b/ports/farmhash/portfile.cmake new file mode 100644 index 000000000..42aa80ceb --- /dev/null +++ b/ports/farmhash/portfile.cmake @@ -0,0 +1,26 @@ +vcpkg_fail_port_install(ON_ARCH "arm" "arm64" ON_TARGET "UWP" "Windows") +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/farmhash + REF 0d859a811870d10f53a594927d0d0b97573ad06d + SHA512 7bc14931e488464c1cedbc17551fb90a8cec494d0e0860db9df8efff09000fd8d91e01060dd5c5149b1104ac4ac8bf7eb57e5b156b05ef42636938edad1518f1 + HEAD_REF master +) + +set(FLAGS "-g -mavx -maes -O3") +vcpkg_configure_make( + SOURCE_PATH ${SOURCE_PATH} + AUTOCONFIG + OPTIONS + CXXFLAGS=${FLAGS} +) + +vcpkg_install_make() + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/farmhashConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) \ No newline at end of file diff --git a/ports/farmhash/usage b/ports/farmhash/usage new file mode 100644 index 000000000..6ec1706dc --- /dev/null +++ b/ports/farmhash/usage @@ -0,0 +1,4 @@ +The package farmhash is compatible with built-in CMake targets: + + FIND_PACKAGE(farmhash REQUIRED) + TARGET_LINK_LIBRARIES(main PRIVATE GOOGLE::farmhash) for linkage \ No newline at end of file diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 710522cf4..94535e2d0 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -435,6 +435,12 @@ fann:x64-linux=fail fann:x64-osx=fail fann:x64-uwp=fail fann:x64-windows-static=fail +farmhash:arm64-windows=fail +farmhash:arm-uwp=fail +farmhash:x64-uwp=fail +farmhash:x64-windows=fail +farmhash:x64-windows-static=fail +farmhash:x86-windows=fail fastcdr:x64-linux=fail fastrtps:arm-uwp=fail fastrtps:x64-linux=fail