Ignore:
Timestamp:
Dec 30, 2013, 1:58:43 AM (12 years ago)
Author:
bird
Message:

kmk: Hacking kBuild-define-*.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/testcase-kBuild-define.kmk

    r2658 r2717  
    55
    66#
    7 # Copyright (c) 2011-2012 knut st. osmundsen <bird-kBuild-spamx@anduin.net>
     7# Copyright (c) 2011-2013 knut st. osmundsen <bird-kBuild-spamx@anduin.net>
    88#
    99# This file is part of kBuild.
     
    2424#
    2525
    26 DEPTH = ../..
     26#DEPTH = ../..
    2727#include $(PATH_KBUILD)/header.kmk
    2828
     29if 0
    2930# object definition syntax:
    30 #      kobject <type> <name> [extends <object>] [object specific args...]
    31 #      endkobj [<type> [name]]
     31#      kobject <type> <name> [extends <object> [by <||>]] [object specific args...]
     32#      kendobj [<type> [name]]
    3233kobject kb-target MyTarget
    3334.TOOL = GCC
    3435.SOURCES = file.c
    35 endobj
     36kendobj
     37else
     38# Target definition.
     39#      kBuild-define-target <name> [extends <target> [by <||>]] [using <template>]
     40#      kBuild-endef-target [name]
     41kBuild-define-target MyTarget
     42_TOOL = GCC
     43_SOURCES = file.c
     44kBuild-endef-target
     45endif
    3646
     47if 0
    3748# accesses an already defined object.
    3849# syntax:
    3950#      kaccess <type> <name>
    40 #      endkacc [<type> [name]]
     51#      kendacc [<type> [name]]
    4152kaccess kb-target MyTarget
    4253.SOURCES += file2.c
    43 endkacc
     54kendacc
     55else
     56#kBuild-access-target MyTarget
     57#_SOURCES += file2.c
     58#kBuild-endacc-target
     59endif
    4460
    4561
    4662# Referencing an object variable, the object must exist.
    4763# syntax: [<type>@<name>].<property>
    48 [kb-target@MyTarget].SOURCES += file3.c
    49 $(info [kb-target@MyTarget].SOURCES is $([kb-target@MyTarget].SOURCES))
     64[target@MyTarget]_SOURCES += file3.c
     65$(info [target@MyTarget]_SOURCES is $([target@MyTarget]_SOURCES))
    5066
    5167
    5268# Test #1
    53 kobject target BaseTarget with DUMMY as template
    54 .SOURCES = BaseTargetSource.c
    55 kendobj
    56 $(if "$([target@BaseTarget].SOURCES)" == "BaseTargetSource.c",,$(error [target@BaseTarget].SOURCES is '$([target@BaseTarget].SOURCES)' not 'BaseTargetSource.c'))
    57 $(if "$(BaseTarget_SOURCES)" == "BaseTargetSource.c",,$(error BaseTarget's _SOURCES wasn't set correctly in the global space))
     69kBuild-define-target BaseTarget using DUMMY
     70_SOURCES = BaseTargetSource.c
     71kBuild-endef-target BaseTarget
     72$(if-expr "$([target@BaseTarget]_SOURCES)" == "BaseTargetSource.c",,$(error [target@BaseTarget]_SOURCES is '$([target@BaseTarget]_SOURCES)' not 'BaseTargetSource.c'))
     73$(if-expr "$(BaseTarget_SOURCES)" == "BaseTargetSource.c",,$(error BaseTarget's _SOURCES wasn't set correctly in the global space))
    5874
    59 $(if "$([target@BaseTarget].TEMPLATE)" == "DUMMY",,$(error [target@BaseTarget].TEMPLATE is '$([target@BaseTarget].TEMPLATE)' not 'DUMMY'))
    60 $(if "$(BaseTarget_TEMPLATE)" == "DUMMY",,$(error BaseTarget's _TEMPLATE wasn't set correctly in the global space))
     75$(if-expr "$([target@BaseTarget]_TEMPLATE)" == "DUMMY",,$(error [target@BaseTarget]_TEMPLATE is '$([target@BaseTarget]_TEMPLATE)' not 'DUMMY'))
     76$(if-expr "$(BaseTarget_TEMPLATE)" == "DUMMY",,$(error BaseTarget's _TEMPLATE wasn't set correctly in the global space))
    6177
    6278# Test #2
    63 kobject target TargetWithLocals
    64 local .LOCAL_PROP = no global alias
    65 kendobj
    66 $(if "$([target@TargetWithLocals].LOCAL_PROP)" == "no global alias",,$(error [target@TargetWithLocals].LOCAL_PROP is '$([target@TargetWithLocals].LOCAL_PROP)' not 'no global alias'))
    67 $(if "$(TargetWithLocals_LOCAL_PROP)" == "",,$(error TargetWithLocals_LOCAL_PROP's local property 'LOCAL_PROP' was exposed globally.))
     79kBuild-define-target TargetWithLocals
     80local _LOCAL_PROP = no global alias
     81kBuild-endef-target
     82$(if-expr "$([target@TargetWithLocals]_LOCAL_PROP)" == "no global alias",,$(error [target@TargetWithLocals]_LOCAL_PROP is '$([target@TargetWithLocals]_LOCAL_PROP)' not 'no global alias'))
     83$(if-expr "$(TargetWithLocals_LOCAL_PROP)" == "",,$(error TargetWithLocals_LOCAL_PROP's local property 'LOCAL_PROP' was exposed globally.))
    6884
     85# Test #3
     86kBuild-define-target OutsideMod
     87_SOURCES = file3.c
     88_OTHER   = inside-value
     89kBuild-endef-target
     90[target@OutsideMod]_SOURCES += file4.c
     91[target@OutsideMod]_SOURCES <= file2.c
     92[target@OutsideMod]_OTHER   = outside-value
     93$(if-expr "$([target@OutsideMod]_SOURCES)" == "file2.c file3.c file4.c",,$(error [target@OutsideMod]_SOURCES is '$([target@OutsideMod]_SOURCES)' not 'file2.c file3.c file4.c'))
     94$(if-expr "OutsideMod_SOURCES"             == "file2.c file3.c file4.c",,$(error OutsideMod_SOURCES is '$(OutsideMod_SOURCES)' not 'file2.c file3.c file4.c'))
     95
     96$(if-expr "$([target@OutsideMod]_OTHER)" == "outside-value",,$(error [target@OutsideMod]_OTHER is '$([target@OutsideMod]_OTHER)' not 'outside-value'))
     97$(if-expr "$(OutsideMod_OTHER)"          == "outside-value",,$(error OutsideMod_OTHER is '$(OutsideMod_OTHER)' not 'outside-value'))
    6998
    7099all_recursive:
    71         #$(ECHO) "kBuild-define-xxxx works fine"
     100        @kmk_echo "kBuild-define-xxxx works fine"
    72101
Note: See TracChangeset for help on using the changeset viewer.