change `raco exe' to disable collection lookup by default
This commit is contained in:
parent
495c0da189
commit
ecc058de4a
|
@ -14,7 +14,7 @@
|
|||
(define exe-embedded-flags (make-parameter '("-U" "--")))
|
||||
(define exe-embedded-libraries (make-parameter null))
|
||||
(define exe-aux (make-parameter null))
|
||||
(define exe-embedded-collects-path (make-parameter #f))
|
||||
(define exe-embedded-collects-path (make-parameter null))
|
||||
(define exe-embedded-collects-dest (make-parameter #f))
|
||||
|
||||
(define source-file
|
||||
|
|
|
@ -28,9 +28,8 @@
|
|||
(when collects-path
|
||||
(unless (or (path-string? collects-path)
|
||||
(and (list? collects-path)
|
||||
(pair? collects-path)
|
||||
(andmap path-string? collects-path)))
|
||||
(raise-type-error who "path, string, non-empty list of paths and strings, or #f"
|
||||
(raise-type-error who "path, string, list of paths and strings, or #f"
|
||||
collects-path))
|
||||
(unless ((bytes-length collects-path-bytes) . <= . 1024)
|
||||
(error who "collects path list is too long"))))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
@(require scribble/manual
|
||||
scribble/bnf
|
||||
"common.rkt"
|
||||
(for-label racket/gui
|
||||
compiler/compiler
|
||||
compiler/sig
|
||||
|
@ -271,12 +272,17 @@ collections---which are used to initialize the
|
|||
@racket[current-library-collection-paths] list in combination with
|
||||
@envvar{PLTCOLLECTS} environment variable. Otherwise, the argument
|
||||
specifies a replacement; it must be either a path, string, or
|
||||
non-empty list of paths and strings. In the last case, the first path
|
||||
list of paths and strings. In the last case, the first path
|
||||
or string specifies the main collection directory, and the rest are
|
||||
additional directories for the collection search path (placed, in
|
||||
order, after the user-specific @filepath{collects} directory, but
|
||||
before the main @filepath{collects} directory; then the search list is
|
||||
combined with @envvar{PLTCOLLECTS}, if it is defined).
|
||||
combined with @envvar{PLTCOLLECTS}, if it is defined). If the list
|
||||
is empty, then @racket[(find-system-path 'collects-dir)] will return
|
||||
the directory of the executable, but @racket[current-library-collection-paths]
|
||||
is initialized to an empty list and
|
||||
@racket[use-collection-link-paths] is set to false to disable the
|
||||
use of @tech[#:doc reference-doc]{collection links files}.
|
||||
|
||||
If the @racket[#:launcher?] argument is @racket[#t], then no
|
||||
@racket[module]s should be null, @racket[literal-files] should be
|
||||
|
|
|
@ -122,6 +122,16 @@ static char *make_embedded_load(const char *start, const char *end)
|
|||
|
||||
return s;
|
||||
}
|
||||
|
||||
static Scheme_Object *check_make_path(const char *prog, const char *real_switch, char *arg)
|
||||
{
|
||||
if (!*arg) {
|
||||
PRINTF("%s: empty path after %s switch\n",
|
||||
prog, real_switch);
|
||||
exit(1);
|
||||
}
|
||||
return scheme_make_path(arg);
|
||||
}
|
||||
#endif
|
||||
|
||||
enum {
|
||||
|
@ -555,6 +565,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
Scheme_Env *global_env;
|
||||
char *prog, *sprog = NULL;
|
||||
Scheme_Object *sch_argv;
|
||||
int skip_coll_dirs = 0;
|
||||
Scheme_Object *collects_path = NULL, *collects_extra = NULL, *addon_dir = NULL;
|
||||
Scheme_Object *links_file = NULL;
|
||||
#ifndef NO_FILE_SYSTEM_UTILS
|
||||
|
@ -849,7 +860,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
}
|
||||
argv++;
|
||||
--argc;
|
||||
collects_path = scheme_make_path(argv[0]);
|
||||
collects_path = check_make_path(prog, real_switch, argv[0]);
|
||||
was_config_flag = 1;
|
||||
break;
|
||||
case 'A':
|
||||
|
@ -860,7 +871,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
}
|
||||
argv++;
|
||||
--argc;
|
||||
addon_dir = scheme_make_path(argv[0]);
|
||||
addon_dir = check_make_path(prog, real_switch, argv[0]);
|
||||
was_config_flag = 1;
|
||||
break;
|
||||
case 'C':
|
||||
|
@ -871,7 +882,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
}
|
||||
argv++;
|
||||
--argc;
|
||||
links_file = scheme_make_path(argv[0]);
|
||||
links_file = check_make_path(prog, real_switch, argv[0]);
|
||||
was_config_flag = 1;
|
||||
break;
|
||||
case 'U':
|
||||
|
@ -899,7 +910,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
--argc;
|
||||
if (!collects_extra)
|
||||
collects_extra = scheme_make_null();
|
||||
collects_extra = scheme_make_pair(scheme_make_path(argv[0]), collects_extra);
|
||||
collects_extra = scheme_make_pair(check_make_path(prog, real_switch, argv[0]), collects_extra);
|
||||
was_config_flag = 1;
|
||||
break;
|
||||
case 'c':
|
||||
|
@ -1163,9 +1174,16 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
|
||||
#ifndef NO_FILE_SYSTEM_UTILS
|
||||
/* Setup path for "collects" collection directory: */
|
||||
if (!collects_path)
|
||||
collects_path = scheme_make_path(_coldir XFORM_OK_PLUS _coldir_offset);
|
||||
else
|
||||
if (!collects_path) {
|
||||
if (!_coldir[_coldir_offset]) {
|
||||
/* empty list of directories => don't set collection dirs
|
||||
and don't use collection links files */
|
||||
skip_coll_dirs = 1;
|
||||
scheme_set_ignore_link_paths(1);
|
||||
collects_path = scheme_make_path(".");
|
||||
} else
|
||||
collects_path = scheme_make_path(_coldir XFORM_OK_PLUS _coldir_offset);
|
||||
} else
|
||||
collects_path = scheme_path_to_complete_path(collects_path, NULL);
|
||||
scheme_set_collects_path(collects_path);
|
||||
|
||||
|
@ -1246,7 +1264,8 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
|||
global_env = mk_basic_env();
|
||||
|
||||
#ifndef NO_FILE_SYSTEM_UTILS
|
||||
scheme_init_collection_paths_post(global_env, collects_paths_l, collects_paths_r);
|
||||
if (!skip_coll_dirs)
|
||||
scheme_init_collection_paths_post(global_env, collects_paths_l, collects_paths_r);
|
||||
#endif
|
||||
|
||||
scheme_seal_parameters();
|
||||
|
|
Loading…
Reference in New Issue
Block a user