Author: brett Date: Thu Feb 27 05:29:45 2014 New Revision: 1572435 URL: http://svn.apache.org/r1572435 Log: [NPANDAY-609] add generated sources for XAML
Note that any includeSources listed for obj are now ignored, and that these are picked up automatically, in contrast to previous behaviour. Modified: incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java Modified: incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java?rev=1572435&r1=1572434&r2=1572435&view=diff ============================================================================== --- incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java (original) +++ incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java Thu Feb 27 05:29:45 2014 @@ -37,6 +37,7 @@ import org.apache.maven.plugin.MojoExecu import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; +import org.codehaus.plexus.util.DirectoryScanner; import org.codehaus.plexus.util.FileUtils; /** @@ -278,6 +279,31 @@ public class MsbuildMojo resource.addInclude( "**/*.resources" ); project.addResource( resource ); + // Pick up generated source patterns to compile + DirectoryScanner scanner = new DirectoryScanner(); + scanner.setBasedir( directory ); + scanner.setIncludes(new String[] { "**/*.g.cs", "**/*.g.vb" }); + scanner.scan(); + + String[] files = scanner.getIncludedFiles(); + if ( files != null && files.length > 0 ) + { + getLog().info( "Adding sources from " + directory + " generated by MSBuild" ); + File generatedSourcesDirectory = new File( project.getBuild().getDirectory(), "generated-sources/msbuild" ); + for ( String f : files ) + { + File src = new File( directory, f ); + File dest = new File( generatedSourcesDirectory, f ); + dest.getParentFile().mkdirs(); + try { + FileUtils.copyFile( src, dest ); + } catch (IOException e) { + throw new MojoExecutionException("Unable to copy source file: " + e.getLocalizedMessage(), e); + } + } + project.addCompileSourceRoot( generatedSourcesDirectory.getAbsolutePath() ); + } + if (attachXBAP) { projectHelper.attachArtifact(project, "xbap", new File(directory, project.getArtifactId() + ".xbap")); File manifest = new File(directory, project.getArtifactId() + ".exe.manifest");