Skip to content
This repository has been archived by the owner on Jul 4, 2018. It is now read-only.

Commit

Permalink
Add a translateOnly mode that skips compilation-dependent tasks.
Browse files Browse the repository at this point in the history
  • Loading branch information
advayDev1 committed Aug 14, 2015
1 parent 4fecf27 commit 6760ba3
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,12 @@ class J2objcConfig {
appendArgs(this.translateSourcepaths, 'translateSourcepaths', translateSourcepaths)
}

/**
* True iff only translation (and cycle finding, if applicable) should be attempted,
* skipping all compilation, linking, and testing tasks.
*/
boolean translateOnlyMode = false


// Do not use groovydoc, this option should remain undocumented.
// WARNING: Do not use this unless you know what you are doing.
Expand Down Expand Up @@ -530,6 +536,18 @@ class J2objcConfig {
}
}
}

// Support translation-only mode.
if (translateOnlyMode) {
project.tasks.all { Task task ->
// First pattern matches all native-compilation tasks.
// Second pattern matches plugin-specific tasks beyond translation.
if ((task.name =~ /^.*((J|j)2objc(Executable|StaticLibrary|SharedLibrary|Objc))$/).matches() ||
(task.name =~ /^j2objc(Assemble|PackLibraries|Test)(Debug|Release)$/).matches()) {
task.enabled = false
}
}
}
}
boolean isFinalConfigured() {
return finalConfigured
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import com.github.j2objccontrib.j2objcgradle.tasks.TranslateTask
import com.github.j2objccontrib.j2objcgradle.tasks.Utils
import com.github.j2objccontrib.j2objcgradle.tasks.XcodeTask
import org.gradle.api.DefaultTask
import org.gradle.api.InvalidUserDataException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
Expand Down Expand Up @@ -112,6 +111,10 @@ class J2objcPlugin implements Plugin<Project> {
description "Run the cycle_finder tool on all Java source files"
enabled false
}

// NOTE: When adding new tasks, consider whether they fall under 'translate-only' mode, and
// filter them in J2objcConfig.finalConfigure otherwise.

// Note the '(debug|release)TestJ2objcExecutable' tasks are dynamically created by the Objective-C plugin.
// It is specified by the testJ2objc native component in NativeCompilation.groovy.
// TODO: copy and run debug and release tests within j2objcTestContent at the
Expand Down

0 comments on commit 6760ba3

Please sign in to comment.