diff --git a/basis/alien/libraries/finder/finder.factor b/basis/alien/libraries/finder/finder.factor index 78b3a71955..6cc8de0931 100644 --- a/basis/alien/libraries/finder/finder.factor +++ b/basis/alien/libraries/finder/finder.factor @@ -1,4 +1,5 @@ -USING: accessors kernel sequences system vocabs ; +USING: accessors alien.libraries kernel sequences system vocabs +; IN: alien.libraries.finder HOOK: find-library* os ( name -- path/f ) @@ -6,6 +7,13 @@ HOOK: find-library* os ( name -- path/f ) : find-library ( name -- path/library-not-found ) dup find-library* [ nip ] when* ; +: ?add-library ( name path abi -- ) + pick lookup-library [ dll>> dll-valid? ] [ f ] if* [ + 3drop + ] [ + [ find-library ] [ add-library ] bi* + ] if ; + ! Try to find the library from a list, but if it's not found, ! try to open a library that is the first name in that list anyway ! or "library_not_found" as a last resort for better debugging.