Redundant recompile in subproject with Scala

I have a multi-project build on Scala. Some of modules are large. When I make any changes in large module gradle recompiles all classes in it. Other modules recompiles only changed classes, but all modules have common ScalaCompile parameters:

tasks.withType(ScalaCompile) {
	scalaCompileOptions.forkOptions.with {
		memoryMaximumSize = '3g'
		jvmArgs = ['-Xss32m']
	}

	scalaCompileOptions.additionalParameters = [
			'-language:experimental.macros',
			'-nowarn'
	]
}

If I change default settings and tune build by IntelliJ IDEA instead Gradle then project recompiles fast and only changed classes. But I want to compile it with default settings or with gradlew because I want to save output directories with compiled classes.

What can I change in my build to recompile only changed parts of module and use default settings?