From 8281c2fb55c3a7652051f8f0361a8dc4fa375203 Mon Sep 17 00:00:00 2001 From: Jeremy Hughes <jedahu@gmail.com> Date: Fri, 10 Jul 2009 12:45:27 +1200 Subject: [PATCH] alien.inline.compile: write library files to resource:alien-inline-libs --- basis/alien/inline/compiler/compiler.factor | 15 ++++++++++----- basis/alien/inline/inline.factor | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/basis/alien/inline/compiler/compiler.factor b/basis/alien/inline/compiler/compiler.factor index b1ccc2baab..d049668eec 100644 --- a/basis/alien/inline/compiler/compiler.factor +++ b/basis/alien/inline/compiler/compiler.factor @@ -2,12 +2,19 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays combinators fry generalizations io.encodings.ascii io.files io.files.temp io.launcher kernel -locals make sequences system vocabs.parser words ; +locals make sequences system vocabs.parser words io.directories +io.pathnames ; IN: alien.inline.compiler SYMBOL: C SYMBOL: C++ +: inline-libs-directory ( -- path ) + "alien-inline-libs" resource-path dup make-directories ; + +: inline-library-file ( name -- path ) + inline-libs-directory prepend-path ; + : library-suffix ( -- str ) os { { [ dup macosx? ] [ drop ".dylib" ] } @@ -16,10 +23,8 @@ SYMBOL: C++ } cond ; : library-path ( str -- str' ) - '[ - "lib-" % current-vocab name>> % - "-" % _ % library-suffix % - ] "" make temp-file ; + '[ "lib" % "-" % _ % library-suffix % ] + "" make inline-library-file ; : src-suffix ( lang -- str ) { diff --git a/basis/alien/inline/inline.factor b/basis/alien/inline/inline.factor index 88cc5e3519..8ec0952c5a 100644 --- a/basis/alien/inline/inline.factor +++ b/basis/alien/inline/inline.factor @@ -58,7 +58,7 @@ SYMBOL: c-strings PRIVATE> : define-c-library ( name -- ) - c-library set + [ current-vocab name>> % "_" % % ] "" make c-library set V{ } clone c-strings set V{ } clone compiler-args set ;