build.atpkg 4.96 KB
Newer Older
Drew's avatar
Drew committed
1 2
(package
 :name "Caroline"
Drew's avatar
Drew committed
3
 :version "1.0"
Drew's avatar
Drew committed
4 5 6 7 8 9
:external-packages [
    {
      :version [">=0.1"]
      :url "https://code.sealedabstract.com/drewcrawford/StandBack.git"
    }
  ]
Drew's avatar
Drew committed
10 11 12 13 14
    :tasks {
        :statictool {
            :tool "atllbuild"
            :output-type "executable"
            :name "caroline_static_tool"
15
            :executable-name "caroline-static-tool"
Drew's avatar
Drew committed
16 17
            :sources ["caroline-static-tool/**.swift"]
            :publish-product true
18
            :link-options ["-static-stdlib"]
Drew's avatar
Drew committed
19 20
            :dependencies ["StandBack.default"]
            :link-with-product ["StandBack.a"]
Drew's avatar
Drew committed
21
        }
22 23 24 25 26 27 28 29 30 31 32 33 34 35

        :statictool-atbin {
            :tool "packageatbin"
            :name "caroline-static-tool"
            :atllbuild-task "statictool"
            :platforms ["all"]
        }
        :statictool-homebrew {
            :tool "package-homebrew.attool"
            :name "caroline-static-tool"
            :url "test-url-please-ignore-FIXME"
            :only-platforms ["osx"]
            :dependencies ["statictool-atbin"]
        }
Drew's avatar
Drew committed
36 37 38 39 40 41
        :statictool-deb {
            :tool "package-deb.attool"
            :name "caroline-static-tool"
            :dependencies ["statictool-atbin"]
            :only-platforms ["linux"]
        }
42 43
        :package-statictool {
            :tool "nop"
Drew's avatar
Drew committed
44
            :dependencies ["statictool-homebrew" "statictool-deb"]
45
        }
Drew's avatar
Drew committed
46 47 48
        :debug {
            :dependencies ["statictool"]
            :tool "shell"
49
            :script ".atllbuild/products/caroline-static-tool --core caroline-static-tool-tests/fixtures/SampleTests/foo.swift"
Drew's avatar
Drew committed
50 51 52 53 54 55 56
        }
        :core {
            :tool "atllbuild"
            :output-type "static-library"
            :name "CarolineCore"
            :sources ["CarolineCore/**.swift"]
        }
Drew's avatar
Drew committed
57 58 59 60 61 62
        :core-dynamic {
            :tool "atllbuild"
            :output-type "dynamic-library"
            :name "CarolineCore"
            :sources ["CarolineCore/**.swift"]
            :publish-product true
Drew's avatar
Drew committed
63
            :framework true
Drew's avatar
Drew committed
64
        }
65 66 67 68 69 70
        :core-package {
            :tool "packageatbin"
            :name "CarolineCore"
            :atllbuild-task "core-dynamic"
            :platforms ["all"]
        }
Drew's avatar
Drew committed
71
        :core-framework {
72
            :tool "package-framework.attool"
Drew's avatar
Drew committed
73
            :name "CarolineCore"
74
            :info-plist "CarolineCore/Info.plist"
75
            :dependencies ["core-package"]
Drew's avatar
Drew committed
76
            :compress "true"
Drew's avatar
Drew committed
77
        }
Drew's avatar
Drew committed
78

Drew's avatar
Drew committed
79
        ;;simpletest is a basic sanity check of the gen/test/runner infrastructure
Drew's avatar
Drew committed
80 81
        :simpletest-gen {
            :tool "shell"
82
            :script "bin/caroline-static-tool --core tests/SimpleTest/foo.swift > tests/SimpleTest/main.swift"
Drew's avatar
Drew committed
83 84 85 86 87 88 89 90
            :dependencies ["statictool"]
        }
        :simpletest-build {
            :dependencies ["core" "simpletest-gen"]
            :tool "atllbuild"
            :output-type "executable"
            :name "SimpleTest"
            :sources ["tests/SimpleTest/**.swift"]
Drew's avatar
Drew committed
91
            :link-with-product ["CarolineCore.a"]
Drew's avatar
Drew committed
92 93 94 95 96 97 98
            :publish-product true
        }
        :simpletest {
            :dependencies ["simpletest-build"]
            :tool "shell"
            :script "bin/SimpleTest"
        }
Drew's avatar
Drew committed
99 100 101 102

        ;;coretest tests the full core API
        :coretest-gen {
            :tool "shell"
Drew's avatar
Drew committed
103
            :script "bin/caroline-static-tool --core tests/CoreTests/assert.swift tests/CoreTests/fail.swift tests/CoreTests/SimpleEqual.swift tests/CoreTests/SequenceEqual.swift tests/CoreTests/DictEqual.swift > tests/CoreTests/main.swift"
Drew's avatar
Drew committed
104 105 106
            :dependencies ["statictool"]
        }
        :coretest-build {
Drew's avatar
Drew committed
107
            :dependencies ["core"]
Drew's avatar
Drew committed
108 109 110 111
            :tool "atllbuild"
            :output-type "executable"
            :name "CoreTest"
            :sources ["tests/CoreTests/**.swift"]
Drew's avatar
Drew committed
112
            :link-with-product ["CarolineCore.a"]
Drew's avatar
Drew committed
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
            :publish-product true
        }
        :coretest {
            :dependencies ["coretest-build"]
            :tool "shell"
            :script "bin/CoreTest"
        }
        
        ;;this alternative coretest tasks should be used with --toolchain xcode
        ;; you must also manually run coretest-gen prior to these working, as codetest-gen isn't supported on xcode toolchain
        :coretest-build-xcode {
            :dependencies ["core"]
            :tool "atllbuild"
            :output-type "executable"
            :name "CoreTest"
            :sources ["tests/CoreTests/**.swift"]
Drew's avatar
Drew committed
129
            :link-with-product ["CarolineCore.a"]
Drew's avatar
Drew committed
130 131
            :publish-product true
        }
132 133 134 135 136 137 138 139 140


        ;;we can run this via standard toolchain since we only depend on statictool
        :osx-xcode-toolrun {
            :tool "shell"
            :script "rm tests/OSXXcode/OSXXCodeTests/CarolineXCTest.swift; WRAPPER_EXTENSION=xctest PROJECT_FILE_PATH=tests/OSXXcode/OSXXcode.xcodeproj TARGETNAME=OSXXcodeTests bin/caroline-static-tool"
            :dependencies ["statictool"]
        }

Drew's avatar
Drew committed
141
        :check {
142
            :dependencies ["simpletest" "coretest" "osx-xcode-toolrun"]
Drew's avatar
Drew committed
143 144
            :tool "nop"
        }
Drew's avatar
Drew committed
145 146
     }
)