Changeset 30934

Show
Ignore:
Timestamp:
2008-08-22 19:26:14 (3 months ago)
Author:
res2002
Message:

Allow specification of subdirs for file lists put into an MSM.

Location:
CS/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • CS/trunk/bin/cs-genwix-msm.py

    r30932 r30934  
    1313options.add_option("--id", dest="msmid", 
    1414                    help="Merge module ID (used to look up GUID)", metavar="ID") 
     15options.add_option("--subdirmap", dest="subdirmap", 
     16                    help="Subdirectory map to place files in. (Multiple allowed)",  
     17                    action="append", metavar="LIST:DIR") 
    1518options.add_option("--version", dest="version", 
    1619                    help="Package version", metavar="VERSION") 
     
    2225if not parsed_options.msmid: 
    2326    options.error("missing --id") 
     27 
     28if parsed_options.subdirmap: 
     29    subdirmap = {} 
     30    for s in parsed_options.subdirmap: 
     31        (list, subdirs) = s.split (':', 1) 
     32        subdirmap[list] = subdirs 
    2433 
    2534(base, merge, dir) = generate_merge_module(id = parsed_options.msmid, 
     
    3544    id = parsed_options.msmid) 
    3645 
    37 ref = DirectoryRef( 
     46dirref = DirectoryRef( 
    3847    parent = f, 
    3948    id = parsed_options.msmid + '_dir') 
    4049 
    4150for list in args: 
     51    listid = os.path.splitext(os.path.basename(list))[0] 
     52    thisdir = dirref 
     53    if subdirmap and subdirmap.has_key(listid): 
     54        dirid = parsed_options.msmid 
     55        list_subdir = subdirmap[listid] 
     56        for subdir in list_subdir.split('/'): 
     57            dirid = dirid + '.' + subdir 
     58            thisdir = Directory( 
     59                parent = thisdir, 
     60                id = dirid + '_d', 
     61                name = subdir) 
    4262    generate_from_file_list_txt (list, 
    4363                                 parent = merge, 
    44                                  prefix = parsed_options.msmid, 
    45                                  dir = ref) 
     64                                 prefix = parsed_options.msmid + '.' + listid, 
     65                                 dir = thisdir) 
    4666         
    4767base.save() 
  • CS/trunk/mk/jam/msi.jam

    r30932 r30934  
    3030LOCATE.MSI.TEMP ?= $(BUILDTOP)/out/msi/temp ; 
    3131 
    32 # MSIMergeModule id : filelist : version 
     32# MSIMergeModule id : filelist : version [: subdir] 
    3333rule MSIMergeModule 
    3434{ 
     
    4040  VERSION on $(mod_src) = $(3) ; 
    4141  ID on $(mod_src) = $(target) ; 
     42  SUBDIR on $(mod_src) = $(4) ; 
    4243  Depends $(mod_src) : $(filelistfile) ; 
    4344  GenerateMSMSource $(mod_src) : $(filelistfile) ; 
     
    6465actions together GenerateMSMSource  
    6566{ 
    66   $(CMD.GENMSM) -o $(<) --id $(ID) --version $(VERSION) $(>) 
     67  $(CMD.GENMSM) -o $(<) --id $(ID) --version $(VERSION) \ 
     68    --subdirmap=$(SUBDIR) \ 
     69    $(>) 
    6770} 
    6871