build.atpkg 2.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
;; Copyright (c) 2016 Anarchy Tools Contributors.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; You may obtain a copy of the License at
;;
;;   http:;;www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.

;; The build file for all of the targets of the Anarchy Tools build tool.

(package
  :name "atbuild"
19
  :import-packages ["atpkg/build.atpkg"]
Drew's avatar
Drew committed
20
  :version "1.5.0"
Drew's avatar
Drew committed
21
  :tasks {
22 23 24 25 26
    :atbuild {
      :tool "atllbuild"
      :sources ["atbuild/src/**.swift"]
      :name "atbuild"
      :output-type "executable"
Drew's avatar
Drew committed
27
      :link-with-product ["attools.a" "atpkg.a" "atfoundation.a"]
28
      :dependencies ["attools" "atpkg.atpkg" "atfoundation.atfoundation"]
29 30
      :publish-product true
      
31 32 33 34 35 36 37 38 39 40
      :overlays {
        :bootstrap-osx {
          :bootstrap-only true
          :llbuildyaml "bootstrap/bootstrap-macosx.swift-build"
        }
        :bootstrap-linux {
          :bootstrap-only true
          :link-sdk false
          :llbuildyaml "bootstrap/bootstrap-linux.swift-build"
        }
Drew's avatar
Drew committed
41 42 43
        :static {
          :link-options ["-static-stdlib"]
        }
44 45 46 47 48 49 50 51 52
      }
    }
            
    :attools {
      :tool "atllbuild"
      :sources ["attools/src/**.swift"]
      :name "attools"
      :output-type "static-library"
      :dependencies ["atpkg.atpkg"]
Drew's avatar
Drew committed
53
      :link-with-product ["atpkg.a"]
54 55 56 57 58 59 60 61 62 63 64 65
      :overlays {
        :bootstrap-osx {
          :bootstrap-only true
          :llbuildyaml "bootstrap/bootstrap-macosx-attools.swift-build"
        }
        :bootstrap-linux {
          :bootstrap-only true
          :link-sdk false
          :llbuildyaml "bootstrap/bootstrap-linux-attools.swift-build"
        }
      }
    }
Drew's avatar
Drew committed
66

67 68 69 70 71
    :check {
      :tool "shell"
      :script "./tests/test.sh"
      :dependencies ["atbuild"]
    }
Drew's avatar
Drew committed
72

Drew's avatar
Drew committed
73 74 75 76 77
    :bootstrap {
      :tool "shell"
      :script "atbuild atbuild --use-overlay bootstrap-linux --platform linux && atbuild atbuild --use-overlay bootstrap-osx --platform osx" 
    }

Drew's avatar
Drew committed
78 79 80
    :atbin {
      :tool "packageatbin"
      :name "atbuild"
81
      :compress true
Drew's avatar
Drew committed
82 83 84 85 86 87 88 89 90 91
      :atllbuild-task "atbuild"
      :platforms ["all"]
    }

    :package-linux {
      :tool "package-deb.attool"
      :name "atbuild"
      :dependencies ["atbin"]
      :recommends "xz-utils"
      :suggests "package-deb"
Drew's avatar
Drew committed
92
      :only-platforms ["linux"]
Drew's avatar
Drew committed
93 94 95 96 97 98
    }
    :package-osx {
      :tool "package-homebrew.attool"
      :name "atbuild"
      :github-project "AnarchyTools/atbuild"
      :dependencies ["atbin"]
Drew's avatar
Drew committed
99 100 101 102 103
      :only-platforms ["osx"]
    }
    :package {
      :tool "nop"
      :dependencies ["package-osx" "package-linux"]
Drew's avatar
Drew committed
104
    }
105
  }
106 107

)