2015-05-04 21:25:41 +03:00
|
|
|
import org.doomedsociety.gradlecpp.cfg.BinaryKind
|
|
|
|
import org.doomedsociety.gradlecpp.gcc.GccToolchainConfig
|
|
|
|
import org.doomedsociety.gradlecpp.gcc.OptimizationLevel
|
|
|
|
|
|
|
|
rootProject.ext.createIccConfig = { boolean release, BinaryKind binKind ->
|
2017-02-10 23:51:22 +03:00
|
|
|
GccToolchainConfig cfg
|
|
|
|
if (release) {
|
|
|
|
cfg = new GccToolchainConfig(
|
|
|
|
compilerOptions: new GccToolchainConfig.CompilerOptions(
|
|
|
|
optimizationLevel: OptimizationLevel.LEVEL_3,
|
|
|
|
stackProtector: false,
|
|
|
|
interProceduralOptimizations: true,
|
|
|
|
|
|
|
|
noBuiltIn: true,
|
|
|
|
|
|
|
|
intelExtensions: false,
|
|
|
|
asmBlocks: true,
|
|
|
|
|
2017-06-28 14:26:29 +03:00
|
|
|
positionIndependentCode: false,
|
|
|
|
|
|
|
|
extraDefines: [
|
|
|
|
'_GLIBCXX_USE_CXX11_ABI': 0,
|
|
|
|
]
|
2017-02-10 23:51:22 +03:00
|
|
|
),
|
|
|
|
|
|
|
|
linkerOptions: new GccToolchainConfig.LinkerOptions(
|
|
|
|
interProceduralOptimizations: true,
|
2017-09-29 18:55:05 +03:00
|
|
|
stripSymbolTable: false,
|
2017-02-14 19:29:46 +03:00
|
|
|
staticLibGcc: false,
|
2017-02-10 23:51:22 +03:00
|
|
|
staticIntel: true,
|
2017-02-14 17:27:57 +03:00
|
|
|
staticLibStdCpp: false,
|
2017-02-10 23:51:22 +03:00
|
|
|
),
|
|
|
|
|
|
|
|
librarianOptions: new GccToolchainConfig.LibrarianOptions(
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
} else {
|
|
|
|
//debug
|
|
|
|
cfg = new GccToolchainConfig(
|
|
|
|
compilerOptions: new GccToolchainConfig.CompilerOptions(
|
|
|
|
optimizationLevel: OptimizationLevel.DISABLE,
|
|
|
|
stackProtector: true,
|
|
|
|
interProceduralOptimizations: false,
|
|
|
|
|
|
|
|
noBuiltIn: true,
|
|
|
|
intelExtensions: false,
|
2017-06-28 14:26:29 +03:00
|
|
|
asmBlocks: true,
|
|
|
|
|
|
|
|
extraDefines: [
|
|
|
|
'_GLIBCXX_USE_CXX11_ABI': 0,
|
|
|
|
]
|
2017-02-10 23:51:22 +03:00
|
|
|
),
|
|
|
|
|
|
|
|
linkerOptions: new GccToolchainConfig.LinkerOptions(
|
|
|
|
interProceduralOptimizations: false,
|
|
|
|
stripSymbolTable: false,
|
2017-02-14 19:29:46 +03:00
|
|
|
staticLibGcc: false,
|
2017-02-10 23:51:22 +03:00
|
|
|
staticIntel: true,
|
2017-02-14 17:27:57 +03:00
|
|
|
staticLibStdCpp: false,
|
2017-02-10 23:51:22 +03:00
|
|
|
),
|
|
|
|
|
|
|
|
librarianOptions: new GccToolchainConfig.LibrarianOptions(
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2017-12-14 22:15:59 +03:00
|
|
|
// ICC uses -fp-model fast=1 by default for more aggressive optimizations on floating-point calculations
|
|
|
|
// https://software.intel.com/en-us/node/522979#GUID-99936BBA-1508-4E9F-AC09-FA98613CE2F5
|
|
|
|
|
|
|
|
cfg.compilerOptions.args('-fp-model=precise');
|
2017-12-05 18:55:45 +03:00
|
|
|
cfg.singleDefines('LINUX', '_LINUX')
|
2017-02-10 23:51:22 +03:00
|
|
|
return cfg
|
2015-05-04 21:25:41 +03:00
|
|
|
}
|