Changeset 155 for trunk/m2

Show
Ignore:
Timestamp:
05/18/06 21:22:14 (3 years ago)
Author:
krobillard
Message:

m2 - Implemented 'bundle word for Mac OS.

Location:
trunk/m2
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/m2/m2

    r93 r155  
    1 #!/usr/bin/rebol -qs 
     1#!/usr/local/bin/rebol -qs 
    22 
    33REBOL [ 
     
    116116                rule_makeobj: func [cc flags obj src /local uc] [ 
    117117                        ; Default to GNU 
    118                         uc: uppercase name 
     118                        uc: uppercase copy name 
    119119                        rejoin [ "^(tab)$(" cc ") -c $(" uc flags ") -o " obj  
    120120                                         " $(" uc "_INCPATH) " src ] 
  • trunk/m2/m2_macx.r

    r107 r155  
    9595    built_obj_rule: none 
    9696 
     97    uc_name: none 
     98 
    9799    cfg_bundle: none 
    98100    cfg_universal: none 
     
    102104    config: 
    103105    [ 
    104         obj_macro: rejoin [ "$(" uppercase name "_OBJECTS)" ] 
     106        uc_name: uppercase copy name 
     107 
     108        obj_macro: rejoin [ "$(" uc_name "_OBJECTS)" ] 
    105109 
    106110        cflags {-pipe} 
     
    150154 
    151155    configure: does [ 
    152         output_file: rejoin [ output_dir name ] 
     156        output_file: rejoin either cfg_bundle 
     157                        [[name %.app/Contents/MacOs/ name]] 
     158                        [[output_dir name]] 
    153159        do config 
    154160        if cfg/qt [ 
     
    165171    ] 
    166172 
    167     macro_text: function [] [uc] 
    168     [ 
    169         uc: uppercase name 
    170  
     173    macro_text: func [] 
     174    [ 
    171175        emit [ 
    172             uc "_CFLAGS   = " menv_cflags " " gnu_string "-D" defines eol 
    173             uc "_CXXFLAGS = $(" uc "_CFLAGS) " menv_cxxflags eol 
    174             uc "_INCPATH  = " gnu_string "-I" include_paths eol 
    175             uc "_LFLAGS   = " menv_lflags eol 
    176             uc "_LIBS     = " gnu_string "-L" link_paths " " 
     176            uc_name "_CFLAGS   = " menv_cflags " " gnu_string "-D" defines eol 
     177            uc_name "_CXXFLAGS = $(" uc_name "_CFLAGS) " menv_cxxflags eol 
     178            uc_name "_INCPATH  = " gnu_string "-I" include_paths eol 
     179            uc_name "_LFLAGS   = " menv_lflags eol 
     180            uc_name "_LIBS     = " gnu_string "-L" link_paths " " 
    177181                              gnu_string "-l" link_libs eol 
    178182        ] 
     
    180184        ;if cfg/qt [ 
    181185        ;    emit [ 
    182         ;        uc "_SRCMOC  = " expand_list_gnu srcmoc_files eol 
    183         ;        uc "_OBJMOC  = " expand_list_gnu objmoc_files eol 
     186        ;        uc_name "_SRCMOC  = " expand_list_gnu srcmoc_files eol 
     187        ;        uc_name "_OBJMOC  = " expand_list_gnu objmoc_files eol 
    184188        ;    ] 
    185189        ;] 
    186190 
    187191        emit [ 
    188             ;uc "_HEADERS  = " expand_list_gnu header_files eol 
    189             uc "_SOURCES  = " expand_list_gnu source_files eol 
    190             uc "_OBJECTS  = " expand_list_gnu object_files eol 
     192            ;uc_name "_HEADERS  = " expand_list_gnu header_files eol 
     193            uc_name "_SOURCES  = " expand_list_gnu source_files eol 
     194            uc_name "_OBJECTS  = " expand_list_gnu object_files eol 
    191195        ] 
    192196    ] 
     
    195199    ; TODO: if cfg/qt [ "rm -f $(_SRCMOC)" ] 
    196200 
    197     dist: function [] [uc] [ 
    198         uc: uppercase name 
    199         rejoin [" $(" uc "_SOURCES)" ] 
    200     ] 
    201  
    202     rule_text: function [] [uc] 
    203     [ 
    204         uc: uppercase name 
     201    dist: func [] [ 
     202        rejoin [" $(" uc_name "_SOURCES)" ] 
     203    ] 
     204 
     205    rule_text: function [] [bdir] 
     206    [ 
    205207        emit [ eol output_file ": " obj_macro m2/local_libs link_libs 
    206208            {^/^(tab)$(} 
    207209                either link_cxx ["LINK_CXX"]["LINK"] 
    208                 {) -o $@ $(} uc {_LFLAGS) } obj_macro 
    209             { $(} uc {_LIBS)} eol 
    210         ] 
    211  
    212         ;if cfg_bundle [ emit {^/# bundle} ] 
     210                {) -o $@ $(} uc_name {_LFLAGS) } obj_macro 
     211            { $(} uc_name {_LIBS)} eol 
     212        ] 
     213 
     214        if cfg_bundle [ 
     215            bdir: to-file join name %.app/Contents/ 
     216            if not exists? bdir [ 
     217                make-dir/deep join bdir %MacOs 
     218                write join bdir %PkgInfo #{4150504c 3f3f3f3f 0a} 
     219                write join bdir %Info.plist rejoin bind info.plist 'name 
     220 
     221                ;emit {^/# bundle} 
     222            ] 
     223        ] 
    213224    ] 
    214225] 
     
    221232    ] 
    222233 
    223     rule_text: function [] [] 
     234    rule_text: func [] 
    224235    [ 
    225236        emit [ eol output_file ": " obj_macro 
    226             "^/^(tab)ar rc $@ " obj_macro  ; " $(" uppercase name "_LFLAGS)" 
     237            "^/^(tab)ar rc $@ " obj_macro  ; " $(" uc_name "_LFLAGS)" 
    227238            "^/^(tab)ranlib $@^/" 
    228239        ] 
     
    239250    ] 
    240251 
    241     rule_text: function [] [uc] 
    242     [ 
    243         uc: uppercase name 
     252    rule_text: func [] 
     253    [ 
    244254        emit [ eol output_file ": " obj_macro 
    245             {^/^(tab)libtool -o $@ } obj_macro { $(} uc {_LFLAGS) } 
    246             { $(} uc {_LIBS)} eol 
     255            {^/^(tab)libtool -o $@ } obj_macro { $(} uc_name {_LFLAGS) } 
     256            { $(} uc_name {_LIBS)} eol 
    247257        ] 
    248258    ] 
     
    293303 
    294304 
     305info.plist: [ 
     306{<?xml version="1.0" encoding="UTF-8"?> 
     307<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD 
     308PLIST 1.0//EN" 
     309"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
     310<plist version="1.0"> 
     311<dict> 
     312    <key>CFBundlePackageType</key> 
     313    <string>APPL</string> 
     314    <key>CFBundleExecutable</key> 
     315    <string>} name {</string> 
     316    <key>CFBundleIdentifier</key> 
     317    <string>com.mycompany.} name {</string> 
     318    <key>CFBundleDisplayName</key> 
     319    <string>} uc_name {</string> 
     320    <key>CFBundleName</key> 
     321    <string>} uc_name {</string> 
     322    <key>CFBundleIconFile</key> 
     323    <string>} name {</string> 
     324    <key>CFBundleSignature</key> 
     325    <string>????</string> 
     326    <key>CFBundleVersion</key> 
     327    <string>1</string> 
     328    <key>CFBundleShortVersionString</key> 
     329    <string>1.0</string> 
     330</dict> 
     331</plist> 
     332} 
     333] 
     334 
     335 
    295336;EOF