@@ -98,7 +98,7 @@ object BootstrapUtility {
9898 * @param scalaLibraryVersion the scala library major version
9999 */
100100 def prepareDeploymentTask (logger : ManagedLogger , scalaLibraryVersion : String ): Unit = {
101- // Assuming, before this: clean, bs, assembly bootstrapProject, package
101+ // Assuming, before this: clean, gui, bs, bootstrapProject/assembly , package
102102 // Assuming: Hardcoded "bin/" and "deploy/" folders
103103 // Assuming: A folder called "deployment-files" with all additional files (license, bat, etc.)
104104
@@ -111,7 +111,7 @@ object BootstrapUtility {
111111
112112 // Second step: Create bin directories and copy all binaries
113113 val targetJarDirectories = List (" bin" , " deploy/bin" )
114- prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion)
114+ prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion, copyApi = true )
115115
116116 // Third step: Copy bootstrap launcher
117117 copyJars(s " bootstrap/target/scala- $scalaLibraryVersion/ " , List (" deploy/" ), logger)
@@ -134,9 +134,11 @@ object BootstrapUtility {
134134 *
135135 * @param logger the sbt logger
136136 * @param scalaLibraryVersion the scala library major version
137+ * @param apiProjectPath the path to the api project. Used to copy the api into the deployDev directory
138+ * @param dependencies the dependencies of the framework. Used to create a sbt file with them.
137139 */
138- def prepareDevDeploymentTask (logger : ManagedLogger , scalaLibraryVersion : String , dependencies : List [ModuleID ]): Unit = {
139- // Assuming, before this: clean, package and apiProject/packagedArtifacts
140+ def prepareDevDeploymentTask (logger : ManagedLogger , scalaLibraryVersion : String , apiProjectPath : String , dependencies : List [ModuleID ]): Unit = {
141+ // Assuming, before this: clean, gui and package
140142 // Assuming: Hardcoded "bin/" and "deployDev/" folders
141143 // Assuming: A folder called "deployment-files-dev" with more additional files for plugin developers
142144
@@ -149,19 +151,23 @@ object BootstrapUtility {
149151
150152 // Second step: Copy all binaries
151153 val targetJarDirectories = List (" bin" , " deployDev/bin" )
152- prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion)
154+ prepareBinDirectories(logger, targetJarDirectories, scalaLibraryVersion, copyApi = false )
153155
154- // Third step: Copy required meta-build files
156+ // Third step: Copy the api
157+ sbt.IO .copyDirectory(new File (apiProjectPath), new File (" deployDev/api/" ))
158+ sbt.IO .delete(new File (" deployDev/api/target" ))
159+
160+ // Fourth step: Copy required meta-build files
155161 val requiredBuildFiles = Set (" BuildUtility.scala" , " build.properties" , " Plugin.scala" , " PluginCreateWizard.scala" ,
156- " PluginLanguage.scala" , " PluginMetadata.scala" , " SbtFile.scala" )
162+ " PluginLanguage.scala" , " PluginMetadata.scala" , " SbtFile.scala" , " APIUtility.scala " , " RequirementsFile.scala " )
157163
158164 for (filepath <- requiredBuildFiles) {
159165 val origFile = new File (s " project/ $filepath" )
160166 val deployFile = new File (s " deployDev/project/ $filepath" )
161167 sbt.IO .copyFile(origFile, deployFile)
162168 }
163169
164- // Fourth step: Create sbt files containing all dependencies
170+ // Fifth step: Create sbt files containing all dependencies
165171 val depFile = new SbtFile (dependencies)
166172 sbt.IO .write(new File (" deployDev/dependencies.sbt" ), depFile.toString)
167173
@@ -176,7 +182,7 @@ object BootstrapUtility {
176182 }
177183 }
178184
179- private def prepareBinDirectories (logger : ManagedLogger , targetDirs : List [String ], scalaLibraryVersion : String ): Unit = {
185+ private def prepareBinDirectories (logger : ManagedLogger , targetDirs : List [String ], scalaLibraryVersion : String , copyApi : Boolean ): Unit = {
180186 // First prepare all bin folders
181187 targetDirs.foreach(d => {
182188 logger info s " Preparing ' $d' folder. "
@@ -185,8 +191,10 @@ object BootstrapUtility {
185191
186192 // Then copy all binary files
187193 logger info " Copying chat overflow files..."
188- val sourceJarDirectories = List (s " target/scala- $scalaLibraryVersion/ " ,
189- s " api/target/scala- $scalaLibraryVersion/ " )
194+ val sourceJarDirectories = if (copyApi)
195+ List (s " target/scala- $scalaLibraryVersion/ " , s " api/target/scala- $scalaLibraryVersion/ " )
196+ else
197+ List (s " target/scala- $scalaLibraryVersion/ " )
190198
191199 sourceJarDirectories.foreach(d => copyJars(d, targetDirs, logger))
192200 }
0 commit comments