Fork me on GitHub

scalor:scala-native-link-main

Full name:

com.carrotgarden.maven:scalor-maven-plugin_2.12:1.5.0.20190502181145:scala-native-link-main

Description:

Generate Scala.native runtime binary for scope=main. Provides incremental linking in M2E. A member of goal=scala-native-link.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • Binds by default to the lifecycle phase: process-classes.

Optional Parameters

Name Type Since Description
<commonMappingPattern> String - Regular expression for plugin configuration map values provided in pom.xml. Extractor for pattern: key=value. Must define exactly two regex capture groups. Mapping regular expression is used as follows:
  case commonMappingPattern.r( key, value ) => ( key, value )
Note: <![CDATA[ ... ]]> brackets can help preserve text entries in pom.xml.
Default value is: \s*([^=\s]+)\s*=\s*([^\s]+)\s*.
User property is: scalor.commonMappingPattern.
<commonSequenceSeparator> String - Separator for plugin configuration list values provided in pom.xml. Separator regular expression is used as follows:
  string.split( commonSequenceSeparator ).map( _.trim ).filterNot( _.isEmpty )
Note: <![CDATA[ ... ]]> brackets can help preserve text entries in pom.xml. Note: to insert unicode symbol in Eclipse/GTK, type CTRL+SHIFT+U, then XXXX - a 4-hex-digit unicode value. For example, for star ★, use hex code 2605.
Default value is: [★\n]+.
User property is: scalor.commonSequenceSeparator.
<nativeCdataZipEnable> boolean - Enable to use a single zip archive for all C data resources. Insead of embedding individual C data resouces files, put them in a zip archive and then apply objcopy.
Default value is: true.
User property is: scalor.nativeCdataZipEnable.
<nativeCdataZipFileName> String - Name of the C data resource file used for embedding by objcopy.
Archive zip file is created with these steps:
  1. iterate all src/main/cdata folders
  2. copy content into a temp directory
  3. overwrite conflicting files when present
  4. create final cdata.zip archive
  5. convert cdata.zip into cdata.zip.o
Resulting objcopy cdata.zip.o used for Scala.native linking can be accessed as follows:
for example, in file src/main/clang/main.c
  // objcopy naming convention 
  extern char _binary_cdata_zip_start 
  extern char _binary_cdata_zip_end
  // provide forwarders for scala @extern
  char* binary_cdata_zip_start() { return & _binary_cdata_zip_start; }
  char* binary_cdata_zip_end()   { return & _binary_cdata_zip_end; }
and in file src/main/scala/Main.scala
  @extern
  object cdata { // access compressed zip archive
    def binary_cdata_zip_start : Ptr[ CChar ] = extern
    def binary_cdata_zip_end   : Ptr[ CChar ] = extern
  }
Enablement parameter: nativeCdataZipEnable.
Default value is: cdata.zip.
User property is: scalor.nativeCdataZipFileName.
<nativeClassRegex> String - Regular expression used to discover Scala.native *.nir IR classes from class path.
Default value is: .+[.]nir.
User property is: scalor.nativeClassRegex.
<nativeEnsureCdataFolders> boolean - Enable to create C data resource root folders when missing.
Default value is: true.
User property is: scalor.nativeEnsureCdataFolders.
<nativeEnsureClangFolders> boolean - Enable to create C/CPP source root folders when missing.
Default value is: true.
User property is: scalor.nativeEnsureClangFolders.
<nativeLibraryDetect> boolean - Invoke Scala.native linker only when Scala.native library is detected in project dependencies with given scope. Detection parameter: nativeScalaLibRegex.
Default value is: true.
User property is: scalor.nativeLibraryDetect.
<nativeLogBuildProcs> boolean - Enable logging of Scala.native external executable invocations. Use to review actual shell commands used to invoke external processes such as LLMV.
Default value is: false.
User property is: scalor.nativeLogBuildProcs.
<nativeLogBuildStats> boolean - Enable logging of Scala.native build results. Use to review generated resources locations and counts.
Default value is: false.
User property is: scalor.nativeLogBuildStats.
<nativeLogBuildTimes> boolean - Enable logging of Scala.native build phase durations. Use to review compiler and linker performance profile.
Default value is: false.
User property is: scalor.nativeLogBuildTimes.
<nativeLogBuildVerts> boolean - Enable logging of Scala.native external command invocations "vertically". Use to ease review of typical long LLVM compile and linking shell commands.
Default value is: false.
User property is: scalor.nativeLogBuildVerts.
<nativeLogClassPath> boolean - Enable logging of Scala.native linker class path. Use to review actual resources used for *.nir class discovery.
Default value is: false.
User property is: scalor.nativeLogClassPath.
<nativeLogOptions> boolean - Enable logging of linker options. Use to review actual Scala.native linker invocation configuration.
Default value is: false.
User property is: scalor.nativeLogOptions.
<nativeLogRuntime> boolean - Enable logging of Scala.native linker runtime. Use to review actual generated output runtime location.
Default value is: false.
User property is: scalor.nativeLogRuntime.
<nativeLogUpdateResult> boolean - Enable logging of Scala.native linker update result of M2E incremental change detection. Use to review actual *.nir classes which triggered Eclipse linker build.
Default value is: false.
User property is: scalor.nativeLogUpdateResult.
<nativeMainBuildModeDebug> String - Build mode for non-optimized nativeMainRuntimeDebug. Normally uses always, to link during both Maven full build and Eclipse incremental build. Available build modes:
  always - link during both full and incremental build
  never  - do not produce runtime at all
  full   - link only during full build
  incr   - link only during incremental build

Default value is: always.
User property is: scalor.nativeMainBuildModeDebug.
<nativeMainBuildModeRelease> String - Build mode for optimized/stripped nativeMainRuntimeRelease. Normally uses full, to link only during Maven full build and skip Eclipse incremental build. Available build modes:
  always - link during both full and incremental build
  never  - do not produce runtime at all
  full   - link only during full build
  incr   - link only during incremental build

Default value is: full.
User property is: scalor.nativeMainBuildModeRelease.
<nativeMainCdataEnable> boolean - Enable to convert project-provided C data resources in scope=main. Provides a way to embed objcopy resources in binary runtime. Basic explanation.
Default value is: true.
User property is: scalor.nativeMainCdataEnable.
<nativeMainCdataFolders> File[] - C data resource root folders to be included in compilation scope=main. Normally uses [src/main/cdata]. Absolute path. Conversion parameter nativeCdataZipEnable Enablement parameter nativeMainCdataEnable
Default value is: ${project.build.sourceDirectory}/../cdata.
User property is: scalor.nativeMainCdataFolders.
<nativeMainClangEnable> boolean - Enable to compile project-provided C/CPP sources in scope=main. Provides a way to inject #define constant extractors, etc.
Default value is: true.
User property is: scalor.nativeMainClangEnable.
<nativeMainClangFolders> File[] - C/CPP source root folders to be included in compilation scope=main. Normally uses [src/main/clang]. Absolute path. Enablement parameter nativeMainClangEnable
Default value is: ${project.build.sourceDirectory}/../clang.
User property is: scalor.nativeMainClangFolders.
<nativeMainDependencyFolders> File[] - Folders with classes generated by current project and included in linker class path. Normally includes build output from scope=[macro,main] (target/classes).
Default value is: ${project.build.outputDirectory}.
User property is: scalor.nativeMainDependencyFolders.
<nativeMainDependencyScopes> String[] - Provide linker class path from project dependency artifacts based on these scopes. Scopes reference.
Default value is: provided.
User property is: scalor.nativeMainDependencyScopes.
<nativeMainEntryClass> String - Entry point for native runtime in scope=main. Fully qualified class name which follows Java main contract. For example, Scala object in file main/Main.scala:
package main
object Main {
  def main( args : Array[ String ] ) : Unit = {
    println( s"scala-native" )
  }
}

Default value is: main.Main.
User property is: scalor.nativeMainEntryClass.
<nativeMainGarbageCollector> String - Select garbage collector included with Scala.native runtime in scope=main. Garbage collector reference. Available garbage collectors:
  none 
  boehm 
  immix 

Default value is: immix.
User property is: scalor.nativeMainGarbageCollector.
<nativeMainRuntimeDebug> String - Relative path of the generated runtime binary file for scope=main, mode=debug. File is packaged inside nativeMainTargetFolder
Default value is: debug.
User property is: scalor.nativeMainRuntimeDebug.
<nativeMainRuntimeRelease> String - Relative path of the generated runtime binary file for scope=main, mode=release. File is packaged inside nativeMainTargetFolder
Default value is: release.
User property is: scalor.nativeMainRuntimeRelease.
<nativeMainTargetFolder> File - Build target directory for the generated runtime binary file with scope=main.
Default value is: ${project.build.directory}/scalor/native/output/main.
User property is: scalor.nativeMainTargetFolder.
<nativeMainWorkdir> File - Linker working directory for scope=main.
Default value is: ${project.build.directory}/scalor/native/workdir/main.
User property is: scalor.nativeMainWorkdir.
<nativeNativeLibRegex> String - Regular expression used to discover Scala.native interop C/CPP library from class path. This library normally comes as dependency to scalalib, see nativeScalaLibRegex. This regular expression is matched against resolved project depenencies in given scope. Regular expression in the form: ${groupId}:${artifactId}.
Default value is: org.scala-native:nativelib_.+.
User property is: scalor.nativeNativeLibRegex.
<nativeObjcopyMapping> String - Mapping required for objcopy embedder. Used to convert from LLVM triplet into GNU objcopy binary-architecture/output. LLVM triplet reference. GNU objcopy --info reference. Separator parameter: commonSequenceSeparator. Mapping parameter: commonMappingPattern.
Mapping format, where triplet-regex is regular expressoin mathced against LLVM triplet, binary-architecture/output is slash-separated pair describing GNU objcopy type:
   triplet-regex = binary-architecture/output

Default value is: x86-([^-]+)-linux-([^-]+) = i386/elf32-i386 ★ x86_64-([^-]+)-linux-([^-]+) = i386/elf64-x86-64 ★ .
User property is: scalor.nativeObjcopyMapping.
<nativeOptionLinkStubs> boolean - Linking behaviour for placeholder methods annotated with @stub. By default stubs are not linked and are shown as linking errors.
Default value is: false.
User property is: scalor.nativeOptionLinkStubs.
<nativeOptionsClangPP> String - Options used by LLVM clangpp during *.cpp sources compilation. These options are added to auto-discovered LLVM options. Sets standard by default. Separator parameter: commonSequenceSeparator.
Default value is: -std=c++11 ★.
User property is: scalor.nativeOptionsClangPP.
<nativeOptionsCompileDebug> String - LLVM compile options for mode=debug. Uses no optimization by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
Default value is: -O0 ★.
User property is: scalor.nativeOptionsCompileDebug.
<nativeOptionsCompileRelease> String - LLVM compile options for mode=release. Uses optimization by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
Default value is: -O2 ★.
User property is: scalor.nativeOptionsCompileRelease.
<nativeOptionsLinkingDebug> String - LLVM linking options for mode=release. Keeps symbols by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
Default value is: -lpthread ★.
User property is: scalor.nativeOptionsLinkingDebug.
<nativeOptionsLinkingRelease> String - LLVM linking options for mode=release. Strips symbols by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
Default value is: -lpthread ★ -Wl,-s ★.
User property is: scalor.nativeOptionsLinkingRelease.
<nativeOptionsObjcopy> String - Options used by objcopy tool during C data resource embedding. These options are added to required hard-coded objcopy invocation options. Empty by default. Separator parameter: commonSequenceSeparator.
Default value is: .
User property is: scalor.nativeOptionsObjcopy.
<nativeScalaLibRegex> String - Regular expression used to discover Scala.native core *.nir library from class path. This regular expression is matched against resolved project depenencies in given scope. Regular expression in the form: ${groupId}:${artifactId}. Enablement parameter: nativeLibraryDetect.
Default value is: org.scala-native:scalalib_.+.
User property is: scalor.nativeScalaLibRegex.
<nativeSystemDetect> boolean - Detect operating system and invoke native goals only when running on supported o/s. When false, force native goals invocation.
Default value is: true.
User property is: scalor.nativeSystemDetect.
<skip> boolean - Force to skip all executions of this plugin.
Default value is: false.
User property is: scalor.skip.
<skipLogReason> boolean - Enable logging of reason for skipping an execution.
Default value is: true.
User property is: scalor.skipLogReason.
<skipNativeLink> boolean - Flag to skip this execution: scala-native-link-*.
Default value is: false.
User property is: scalor.skipNativeLink.
<skipNativeLinkMain> boolean - Flag to skip this goal execution: scala-native-link-main.
Default value is: false.
User property is: scalor.skipNativeLinkMain.
<skipPackagingList> String[] - List of packaging types, which are skipped by this plugin.
Default value is: pom.
User property is: scalor.skipPackagingList.

Parameter Details

<commonMappingPattern>

Regular expression for plugin configuration map values provided in pom.xml. Extractor for pattern: key=value. Must define exactly two regex capture groups. Mapping regular expression is used as follows:
  case commonMappingPattern.r( key, value ) => ( key, value )
Note: <![CDATA[ ... ]]> brackets can help preserve text entries in pom.xml.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.commonMappingPattern
  • Default: \s*([^=\s]+)\s*=\s*([^\s]+)\s*

<commonSequenceSeparator>

Separator for plugin configuration list values provided in pom.xml. Separator regular expression is used as follows:
  string.split( commonSequenceSeparator ).map( _.trim ).filterNot( _.isEmpty )
Note: <![CDATA[ ... ]]> brackets can help preserve text entries in pom.xml. Note: to insert unicode symbol in Eclipse/GTK, type CTRL+SHIFT+U, then XXXX - a 4-hex-digit unicode value. For example, for star ★, use hex code 2605.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.commonSequenceSeparator
  • Default: [★\n]+

<nativeCdataZipEnable>

Enable to use a single zip archive for all C data resources. Insead of embedding individual C data resouces files, put them in a zip archive and then apply objcopy.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeCdataZipEnable
  • Default: true

<nativeCdataZipFileName>

Name of the C data resource file used for embedding by objcopy.
Archive zip file is created with these steps:
  1. iterate all src/main/cdata folders
  2. copy content into a temp directory
  3. overwrite conflicting files when present
  4. create final cdata.zip archive
  5. convert cdata.zip into cdata.zip.o
Resulting objcopy cdata.zip.o used for Scala.native linking can be accessed as follows:
for example, in file src/main/clang/main.c
  // objcopy naming convention 
  extern char _binary_cdata_zip_start 
  extern char _binary_cdata_zip_end
  // provide forwarders for scala @extern
  char* binary_cdata_zip_start() { return & _binary_cdata_zip_start; }
  char* binary_cdata_zip_end()   { return & _binary_cdata_zip_end; }
and in file src/main/scala/Main.scala
  @extern
  object cdata { // access compressed zip archive
    def binary_cdata_zip_start : Ptr[ CChar ] = extern
    def binary_cdata_zip_end   : Ptr[ CChar ] = extern
  }
Enablement parameter: nativeCdataZipEnable.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeCdataZipFileName
  • Default: cdata.zip

<nativeClassRegex>

Regular expression used to discover Scala.native *.nir IR classes from class path.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeClassRegex
  • Default: .+[.]nir

<nativeEnsureCdataFolders>

Enable to create C data resource root folders when missing.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeEnsureCdataFolders
  • Default: true

<nativeEnsureClangFolders>

Enable to create C/CPP source root folders when missing.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeEnsureClangFolders
  • Default: true

<nativeLibraryDetect>

Invoke Scala.native linker only when Scala.native library is detected in project dependencies with given scope. Detection parameter: nativeScalaLibRegex.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLibraryDetect
  • Default: true

<nativeLogBuildProcs>

Enable logging of Scala.native external executable invocations. Use to review actual shell commands used to invoke external processes such as LLMV.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogBuildProcs
  • Default: false

<nativeLogBuildStats>

Enable logging of Scala.native build results. Use to review generated resources locations and counts.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogBuildStats
  • Default: false

<nativeLogBuildTimes>

Enable logging of Scala.native build phase durations. Use to review compiler and linker performance profile.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogBuildTimes
  • Default: false

<nativeLogBuildVerts>

Enable logging of Scala.native external command invocations "vertically". Use to ease review of typical long LLVM compile and linking shell commands.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogBuildVerts
  • Default: false

<nativeLogClassPath>

Enable logging of Scala.native linker class path. Use to review actual resources used for *.nir class discovery.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogClassPath
  • Default: false

<nativeLogOptions>

Enable logging of linker options. Use to review actual Scala.native linker invocation configuration.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogOptions
  • Default: false

<nativeLogRuntime>

Enable logging of Scala.native linker runtime. Use to review actual generated output runtime location.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogRuntime
  • Default: false

<nativeLogUpdateResult>

Enable logging of Scala.native linker update result of M2E incremental change detection. Use to review actual *.nir classes which triggered Eclipse linker build.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeLogUpdateResult
  • Default: false

<nativeMainBuildModeDebug>

Build mode for non-optimized nativeMainRuntimeDebug. Normally uses always, to link during both Maven full build and Eclipse incremental build. Available build modes:
  always - link during both full and incremental build
  never  - do not produce runtime at all
  full   - link only during full build
  incr   - link only during incremental build
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeMainBuildModeDebug
  • Default: always

<nativeMainBuildModeRelease>

Build mode for optimized/stripped nativeMainRuntimeRelease. Normally uses full, to link only during Maven full build and skip Eclipse incremental build. Available build modes:
  always - link during both full and incremental build
  never  - do not produce runtime at all
  full   - link only during full build
  incr   - link only during incremental build
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeMainBuildModeRelease
  • Default: full

<nativeMainCdataEnable>

Enable to convert project-provided C data resources in scope=main. Provides a way to embed objcopy resources in binary runtime. Basic explanation.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeMainCdataEnable
  • Default: true

<nativeMainCdataFolders>

C data resource root folders to be included in compilation scope=main. Normally uses [src/main/cdata]. Absolute path. Conversion parameter nativeCdataZipEnable Enablement parameter nativeMainCdataEnable
  • Type: java.io.File[]
  • Required: No
  • User Property: scalor.nativeMainCdataFolders
  • Default: ${project.build.sourceDirectory}/../cdata

<nativeMainClangEnable>

Enable to compile project-provided C/CPP sources in scope=main. Provides a way to inject #define constant extractors, etc.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeMainClangEnable
  • Default: true

<nativeMainClangFolders>

C/CPP source root folders to be included in compilation scope=main. Normally uses [src/main/clang]. Absolute path. Enablement parameter nativeMainClangEnable
  • Type: java.io.File[]
  • Required: No
  • User Property: scalor.nativeMainClangFolders
  • Default: ${project.build.sourceDirectory}/../clang

<nativeMainDependencyFolders>

Folders with classes generated by current project and included in linker class path. Normally includes build output from scope=[macro,main] (target/classes).
  • Type: java.io.File[]
  • Required: No
  • User Property: scalor.nativeMainDependencyFolders
  • Default: ${project.build.outputDirectory}

<nativeMainDependencyScopes>

Provide linker class path from project dependency artifacts based on these scopes. Scopes reference.
  • Type: java.lang.String[]
  • Required: No
  • User Property: scalor.nativeMainDependencyScopes
  • Default: provided

<nativeMainEntryClass>

Entry point for native runtime in scope=main. Fully qualified class name which follows Java main contract. For example, Scala object in file main/Main.scala:
package main
object Main {
  def main( args : Array[ String ] ) : Unit = {
    println( s"scala-native" )
  }
}
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeMainEntryClass
  • Default: main.Main

<nativeMainGarbageCollector>

Select garbage collector included with Scala.native runtime in scope=main. Garbage collector reference. Available garbage collectors:
  none 
  boehm 
  immix 
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeMainGarbageCollector
  • Default: immix

<nativeMainRuntimeDebug>

Relative path of the generated runtime binary file for scope=main, mode=debug. File is packaged inside nativeMainTargetFolder
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeMainRuntimeDebug
  • Default: debug

<nativeMainRuntimeRelease>

Relative path of the generated runtime binary file for scope=main, mode=release. File is packaged inside nativeMainTargetFolder
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeMainRuntimeRelease
  • Default: release

<nativeMainTargetFolder>

Build target directory for the generated runtime binary file with scope=main.
  • Type: java.io.File
  • Required: No
  • User Property: scalor.nativeMainTargetFolder
  • Default: ${project.build.directory}/scalor/native/output/main

<nativeMainWorkdir>

Linker working directory for scope=main.
  • Type: java.io.File
  • Required: No
  • User Property: scalor.nativeMainWorkdir
  • Default: ${project.build.directory}/scalor/native/workdir/main

<nativeNativeLibRegex>

Regular expression used to discover Scala.native interop C/CPP library from class path. This library normally comes as dependency to scalalib, see nativeScalaLibRegex. This regular expression is matched against resolved project depenencies in given scope. Regular expression in the form: ${groupId}:${artifactId}.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeNativeLibRegex
  • Default: org.scala-native:nativelib_.+

<nativeObjcopyMapping>

Mapping required for objcopy embedder. Used to convert from LLVM triplet into GNU objcopy binary-architecture/output. LLVM triplet reference. GNU objcopy --info reference. Separator parameter: commonSequenceSeparator. Mapping parameter: commonMappingPattern.
Mapping format, where triplet-regex is regular expressoin mathced against LLVM triplet, binary-architecture/output is slash-separated pair describing GNU objcopy type:
   triplet-regex = binary-architecture/output
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeObjcopyMapping
  • Default: x86-([^-]+)-linux-([^-]+) = i386/elf32-i386 ★ x86_64-([^-]+)-linux-([^-]+) = i386/elf64-x86-64 ★

<nativeOptionLinkStubs>

Linking behaviour for placeholder methods annotated with @stub. By default stubs are not linked and are shown as linking errors.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeOptionLinkStubs
  • Default: false

<nativeOptionsClangPP>

Options used by LLVM clangpp during *.cpp sources compilation. These options are added to auto-discovered LLVM options. Sets standard by default. Separator parameter: commonSequenceSeparator.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeOptionsClangPP
  • Default: -std=c++11 ★

<nativeOptionsCompileDebug>

LLVM compile options for mode=debug. Uses no optimization by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeOptionsCompileDebug
  • Default: -O0 ★

<nativeOptionsCompileRelease>

LLVM compile options for mode=release. Uses optimization by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeOptionsCompileRelease
  • Default: -O2 ★

<nativeOptionsLinkingDebug>

LLVM linking options for mode=release. Keeps symbols by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeOptionsLinkingDebug
  • Default: -lpthread ★

<nativeOptionsLinkingRelease>

LLVM linking options for mode=release. Strips symbols by default. These options are added to auto-discovered LLVM options. Separator parameter: commonSequenceSeparator.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeOptionsLinkingRelease
  • Default: -lpthread ★ -Wl,-s ★

<nativeOptionsObjcopy>

Options used by objcopy tool during C data resource embedding. These options are added to required hard-coded objcopy invocation options. Empty by default. Separator parameter: commonSequenceSeparator.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeOptionsObjcopy
  • Default:

<nativeScalaLibRegex>

Regular expression used to discover Scala.native core *.nir library from class path. This regular expression is matched against resolved project depenencies in given scope. Regular expression in the form: ${groupId}:${artifactId}. Enablement parameter: nativeLibraryDetect.
  • Type: java.lang.String
  • Required: No
  • User Property: scalor.nativeScalaLibRegex
  • Default: org.scala-native:scalalib_.+

<nativeSystemDetect>

Detect operating system and invoke native goals only when running on supported o/s. When false, force native goals invocation.
  • Type: boolean
  • Required: No
  • User Property: scalor.nativeSystemDetect
  • Default: true

<skip>

Force to skip all executions of this plugin.
  • Type: boolean
  • Required: No
  • User Property: scalor.skip
  • Default: false

<skipLogReason>

Enable logging of reason for skipping an execution.
  • Type: boolean
  • Required: No
  • User Property: scalor.skipLogReason
  • Default: true

<skipNativeLink>

Flag to skip this execution: scala-native-link-*.
  • Type: boolean
  • Required: No
  • User Property: scalor.skipNativeLink
  • Default: false

<skipNativeLinkMain>

Flag to skip this goal execution: scala-native-link-main.
  • Type: boolean
  • Required: No
  • User Property: scalor.skipNativeLinkMain
  • Default: false

<skipPackagingList>

List of packaging types, which are skipped by this plugin.
  • Type: java.lang.String[]
  • Required: No
  • User Property: scalor.skipPackagingList
  • Default: pom