Native: check return value of clang_saveTranslationUnit
This commit is contained in:
committed by
Space
parent
59bd2fbb91
commit
fce5ad1358
+14
-1
@@ -417,7 +417,20 @@ fun Compilation.precompileHeaders(): CompilationWithPCH = withIndex { index ->
|
|||||||
|
|
||||||
internal fun Compilation.withPrecompiledHeader(translationUnit: CXTranslationUnit): CompilationWithPCH {
|
internal fun Compilation.withPrecompiledHeader(translationUnit: CXTranslationUnit): CompilationWithPCH {
|
||||||
val precompiledHeader = Files.createTempFile(null, ".pch").toFile().apply { this.deleteOnExit() }
|
val precompiledHeader = Files.createTempFile(null, ".pch").toFile().apply { this.deleteOnExit() }
|
||||||
clang_saveTranslationUnit(translationUnit, precompiledHeader.absolutePath, 0)
|
val errorCode = clang_saveTranslationUnit(translationUnit, precompiledHeader.absolutePath, 0)
|
||||||
|
if (errorCode != 0) {
|
||||||
|
error(buildString {
|
||||||
|
appendLine("""
|
||||||
|
clang_saveTranslationUnit failed with $errorCode;
|
||||||
|
output = ${precompiledHeader.absolutePath}
|
||||||
|
output size is ${precompiledHeader.length()}, exists = ${precompiledHeader.exists()}
|
||||||
|
arguments = ${compilerArgs.joinToString(" ")}
|
||||||
|
preamble:
|
||||||
|
""".trimIndent())
|
||||||
|
|
||||||
|
this.appendPreamble(this@withPrecompiledHeader)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return CompilationWithPCH(
|
return CompilationWithPCH(
|
||||||
this.compilerArgs,
|
this.compilerArgs,
|
||||||
|
|||||||
Reference in New Issue
Block a user