Changeset 5747:17e1c9dacc8f in roaraudio for roarclients


Ignore:
Timestamp:
11/14/12 04:32:25 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Provide a more common interface for path config.

Location:
roarclients
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • roarclients/Makefile

    r5737 r5747  
    9090        $L 
    9191roar-config: roar-config.o 
    92         $(LNL) 
     92        $L 
    9393roarvorbis: roarvorbis.o 
    9494        ${CC} ${LDFLAGS} -o roarvorbis roarvorbis.o $(VORBISLIBS) $(LIBS) 
  • roarclients/roar-config.c

    r5674 r5747  
    5353}, * flags_ptr = NULL; 
    5454 
    55 const struct path { 
    56  const char * name; 
    57  const char * path; 
    58 } paths[] = { 
    59  {"prefix",     ROAR_PREFIX}, 
    60  {"prefix-bin", ROAR_PREFIX_BIN}, 
    61  {"prefix-lib", ROAR_PREFIX_LIB}, 
    62  {"prefix-inc", ROAR_PREFIX_INC}, 
    63  {"prefix-man", ROAR_PREFIX_MAN}, 
    64  {"prefix-pc",  ROAR_PREFIX_PC}, 
    65  {"prefix-comp-libs", ROAR_PREFIX_COMP_LIBS}, 
    66  {"prefix-comp-bins", ROAR_PREFIX_COMP_BINS}, 
    67  {"prefix-plugins", ROAR_PREFIX_PLUGINS}, 
    68  {"prefix-buildsystem", ROAR_PREFIX_BUILDSYSTEM}, 
    69  {"<<<END>>>", NULL} 
    70 }; 
    71  
    72 void print_path(const char * name) { 
    73  size_t i; 
    74  
    75  for (i = 0; i < (sizeof(paths)/sizeof(*paths)); i++) { 
    76   if ( !strcasecmp(name, paths[i].name) ) { 
    77    printf("%s\n", paths[i].path); 
    78    return; 
    79   } 
    80  } 
     55void print_path(const char * name, int null_as_universal, const char * product, const char * provider) { 
     56 char * path = roar_libroar_get_path(name, null_as_universal, product, provider); 
     57 if ( path == NULL ) 
     58  return; 
     59 printf("%s\n", path); 
     60 roar_mm_free(path); 
    8161} 
    8262 
     
    8767 
    8868 printf( 
    89         "  --version          - Show version of library\n" 
    90         "  --path NAME        - Print path NAME\n" 
    91         "  --libs             - Show linker flags (-lxxx) needed to link library\n" 
    92         "  --cflags           - Show compiler flags needed to link library\n" 
    93         "  --output-pc        - Output PC format\n" 
    94         "  --output-normal    - Output PC format\n" 
     69        "  --version           - Show version of library\n" 
     70        "  --path NAME         - Print path NAME\n" 
     71        "  --product PRODUCT   - Product string for --path\n" 
     72        "  --provider PROVIDER - Provider string for --path\n" 
     73        "  --universal         - Use universal path for --path\n" 
     74        "  --libs              - Show linker flags (-lxxx) needed to link library\n" 
     75        "  --cflags            - Show compiler flags needed to link library\n" 
     76        "  --output-pc         - Output PC format\n" 
     77        "  --output-normal     - Output PC format\n" 
    9578       ); 
    9679 
     
    10184int main (int argc, char * argv[]) { 
    10285 enum { NORMAL, PC } mode = NORMAL; 
     86 int null_as_universal = 0; 
     87 const char * product = NULL; 
     88 const char * provider = NULL; 
    10389 int i, h; 
    10490 int cflags = 0; 
     
    117103   usage(); 
    118104   return 0; 
     105  } else if ( !strcmp(argv[i], "--product") ) { 
     106   product = argv[++i]; 
     107  } else if ( !strcmp(argv[i], "--provider") ) { 
     108   provider = argv[++i]; 
     109  } else if ( !strcmp(argv[i], "--universal") ) { 
     110   null_as_universal = 1; 
    119111  } else if ( !strcmp(argv[i], "--path") ) { 
    120    print_path(argv[++i]); 
     112   print_path(argv[++i], null_as_universal, product, provider); 
    121113  } else if ( !strcmp(argv[i], "--libs") ) { 
    122114   libs   = 1; 
Note: See TracChangeset for help on using the changeset viewer.