project/AutomaticModuleName.scala (7 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * license agreements; and to You under the Apache License, version 2.0: * * https://www.apache.org/licenses/LICENSE-2.0 * * This file is part of the Apache Pekko project, which was derived from Akka. */ /** * Copyright (C) 2009-2018 Lightbend Inc. <http://www.lightbend.com> */ import sbt.{ Def, _ } import sbt.Keys._ /** * Helper to set Automatic-Module-Name in projects. * * !! DO NOT BE TEMPTED INTO AUTOMATICALLY DERIVING THE NAMES FROM PROJECT NAMES !! * * The names carry a lot of implications and DO NOT have to always align 1:1 with the group ids or package names, though * there should be of course a strong relationship between them. */ object AutomaticModuleName { private val AutomaticModuleName = "Automatic-Module-Name" def settings(name: String): Seq[Def.Setting[Task[Seq[PackageOption]]]] = Seq( Compile / packageBin / packageOptions += Package.ManifestAttributes(AutomaticModuleName -> name)) }