diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/flashlight-cpu | |
Diffstat (limited to 'vcpkg/ports/flashlight-cpu')
| -rw-r--r-- | vcpkg/ports/flashlight-cpu/fix-dependencies.patch | 33 | ||||
| -rw-r--r-- | vcpkg/ports/flashlight-cpu/portfile.cmake | 87 | ||||
| -rw-r--r-- | vcpkg/ports/flashlight-cpu/vcpkg.json | 113 |
3 files changed, 233 insertions, 0 deletions
diff --git a/vcpkg/ports/flashlight-cpu/fix-dependencies.patch b/vcpkg/ports/flashlight-cpu/fix-dependencies.patch new file mode 100644 index 0000000..6d4c1b4 --- /dev/null +++ b/vcpkg/ports/flashlight-cpu/fix-dependencies.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9d9eacb..b530743 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -183,7 +183,7 @@ if (FL_BUILD_CORE) + + # If cereal is found in a user-defined location, use it rather than + # downloading from source +- find_package(cereal) ++ find_package(cereal CONFIG REQUIRED) + if (NOT TARGET cereal AND NOT cereal_FOUND AND FL_BUILD_STANDALONE) + message(STATUS "cereal NOT found. Will download from source") + set(CEREAL_INSTALL_PATH ${FL_INSTALL_INC_DIR}/cereal) +@@ -206,7 +206,6 @@ if (FL_BUILD_CORE) + message(STATUS "Found cereal") + target_link_libraries(flashlight PRIVATE cereal) + endif() +- setup_install_find_module(${CMAKE_MODULE_PATH}/Findcereal.cmake) + + # -------------------- Locate Backend-specific Dependencies -------------------- + # TODO: rather than conditionally searching for backend-specific dependencies, +diff --git a/cmake/flashlightConfig.cmake.in b/cmake/flashlightConfig.cmake.in +index 00f9442..f265b8f 100644 +--- a/cmake/flashlightConfig.cmake.in ++++ b/cmake/flashlightConfig.cmake.in +@@ -36,6 +36,7 @@ if (@FL_BUILD_LIBRARIES@) + endif() + # Core dependencies + if (@FL_BUILD_CORE@) ++ find_dependency(cereal CONFIG) + find_dependency(ArrayFire 3.7.1) + endif() + if (@FL_BUILD_DISTRIBUTED@) diff --git a/vcpkg/ports/flashlight-cpu/portfile.cmake b/vcpkg/ports/flashlight-cpu/portfile.cmake new file mode 100644 index 0000000..11459b6 --- /dev/null +++ b/vcpkg/ports/flashlight-cpu/portfile.cmake @@ -0,0 +1,87 @@ +if (EXISTS "${CURRENT_INSTALLED_DIR}/share/flashlight") + message(FATAL_ERROR "Only one of flashlight-cpu and flashlight-cuda" + "can be installed at once. Uninstall and try again:" + "\n vcpkg remove flashlight-cuda\n") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO flashlight/flashlight + REF 626914e79073c5547513de649af706f7e2b796ad # 0.3 branch tip + SHA512 a22057cfa4cfe7acd95cbc5445a30870cce3cdde89066d1d75f40be0d73b069a49e89b226fe5337488cfe5618dd25958679c0636a3e4008312f01606328becfa + HEAD_REF master + PATCHES fix-dependencies.patch +) + +################################### Build ################################### +# Default flags +set(FL_DEFAULT_VCPKG_CMAKE_FLAGS + -DFL_BUILD_TESTS=OFF + -DFL_BUILD_EXAMPLES=OFF + -DFL_BACKEND=CPU # this port is CPU-backend only + -DFL_BUILD_STANDALONE=OFF +) + +# Determine which components to build via specified feature +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + lib FL_BUILD_LIBRARIES + fl FL_BUILD_CORE + asr FL_BUILD_APP_ASR + imgclass FL_BUILD_APP_IMGCLASS + lm FL_BUILD_APP_LM + objdet FL_BUILD_APP_OBJDET +) + +# Build and install +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FL_DEFAULT_VCPKG_CMAKE_FLAGS} + ${FEATURE_OPTIONS} + OPTIONS_DEBUG + "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/debug/share/flashlight" + OPTIONS_RELEASE + "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/share/flashlight" +) +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(PACKAGE_NAME flashlight) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +# Binaries/tools +set(FLASHLIGHT_TOOLS "") +if ("imgclass" IN_LIST FEATURES) + list(APPEND FLASHLIGHT_TOOLS + fl_img_imagenet_resnet34 + fl_img_imagenet_eval + fl_img_imagenet_vit + ) +endif() +if ("asr" IN_LIST FEATURES) + list(APPEND FLASHLIGHT_TOOLS + fl_asr_train + fl_asr_test + fl_asr_decode + fl_asr_align + fl_asr_voice_activity_detection_ctc + fl_asr_arch_benchmark + ) +endif() +if ("lm" IN_LIST FEATURES) + list(APPEND FLASHLIGHT_TOOLS + fl_lm_dictionary_builder + fl_lm_train + fl_lm_test + ) +endif() +list(LENGTH FLASHLIGHT_TOOLS NUM_TOOLS) +if (NUM_TOOLS GREATER 0) + vcpkg_copy_tools(TOOL_NAMES ${FLASHLIGHT_TOOLS} AUTO_CLEAN) +endif() + +# Copyright +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/flashlight-cpu/vcpkg.json b/vcpkg/ports/flashlight-cpu/vcpkg.json new file mode 100644 index 0000000..2794691 --- /dev/null +++ b/vcpkg/ports/flashlight-cpu/vcpkg.json @@ -0,0 +1,113 @@ +{ + "name": "flashlight-cpu", + "version": "0.3", + "port-version": 5, + "description": "A C++ standalone library for machine learning. CPU backend.", + "homepage": "https://github.com/facebookresearch/flashlight", + "license": "MIT", + "supports": "!(windows | osx)", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "fl" + ], + "features": { + "asr": { + "description": "flashlight asr app", + "dependencies": [ + { + "name": "flashlight-cpu", + "features": [ + "fl", + "lib" + ] + }, + "gflags", + { + "name": "libsndfile", + "default-features": false, + "features": [ + "external-libs" + ] + } + ] + }, + "fl": { + "description": "flashlight core autograd and neural net library", + "dependencies": [ + { + "name": "arrayfire", + "features": [ + "cpu" + ] + }, + "cereal", + { + "name": "gloo", + "features": [ + "mpi" + ] + }, + "onednn", + "openmpi", + "stb" + ] + }, + "imgclass": { + "description": "flashlight image classification app", + "dependencies": [ + { + "name": "flashlight-cpu", + "features": [ + "fl", + "lib" + ] + }, + "gflags" + ] + }, + "lib": { + "description": "flashlight libraries", + "dependencies": [ + "fftw3", + "intel-mkl", + "kenlm" + ] + }, + "lm": { + "description": "flashlight lm app", + "dependencies": [ + { + "name": "flashlight-cpu", + "features": [ + "fl", + "lib" + ] + }, + "gflags" + ] + }, + "objdet": { + "description": "flashlight object detection app", + "dependencies": [ + { + "name": "flashlight-cpu", + "features": [ + "fl", + "imgclass", + "lib" + ] + }, + "gflags" + ] + } + } +} |