build.atpkg 5.23 KB
Newer Older
Drew's avatar
Drew committed
1 2
(package
 :name "Caroline"
Drew's avatar
Drew committed
3
 :version "0.2-beta3"
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
            :overlays {
                :atbuild.platform.ios {
                    :deployment-target "9.3"
                }
            }
Drew's avatar
Drew committed
69
        }
70 71 72 73 74 75
        :core-package {
            :tool "packageatbin"
            :name "CarolineCore"
            :atllbuild-task "core-dynamic"
            :platforms ["all"]
        }
Drew's avatar
Drew committed
76
        :core-framework {
77
            :tool "package-framework.attool"
Drew's avatar
Drew committed
78
            :name "CarolineCore"
79
            :info-plist "CarolineCore/Info.plist"
80
            :dependencies ["core-package"]
Drew's avatar
Drew committed
81
            :compress "true"
Drew's avatar
Drew committed
82
        }
Drew's avatar
Drew committed
83

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

        ;;coretest tests the full core API
        :coretest-gen {
            :tool "shell"
108
            :script "bin/caroline-static-tool --core tests/CoreTests/assert.swift tests/CoreTests/fail.swift tests/CoreTests/SimpleEqual.swift tests/CoreTests/SequenceEqual.swift > tests/CoreTests/main.swift"
Drew's avatar
Drew committed
109 110 111 112 113 114 115 116
            :dependencies ["statictool"]
        }
        :coretest-build {
            :dependencies ["core" "coretest-gen"]
            :tool "atllbuild"
            :output-type "executable"
            :name "CoreTest"
            :sources ["tests/CoreTests/**.swift"]
Drew's avatar
Drew committed
117
            :link-with-product ["CarolineCore.a"]
Drew's avatar
Drew committed
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
            :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
134
            :link-with-product ["CarolineCore.a"]
Drew's avatar
Drew committed
135 136 137 138 139 140 141
            :publish-product true
        }
        :coretest {
            :dependencies ["coretest-build-xcode"]
            :tool "shell"
            :script "bin/CoreTest"
        }
142 143 144 145 146 147 148 149 150


        ;;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
151
        :check {
152
            :dependencies ["simpletest" "coretest" "osx-xcode-toolrun"]
Drew's avatar
Drew committed
153 154
            :tool "nop"
        }
Drew's avatar
Drew committed
155 156
     }
)