import org.gradle.nativeplatform.test.cppunit.CppUnitTestSuiteSpec model { components { withType(NativeComponentSpec) { binaries.withType(NativeBinarySpec) { if (buildType == buildTypes.debug) { if (it instanceof NativeExecutableBinarySpec) { executable.file = toLocalBin(appendDebugSuffix(executable.file), targetPlatform) } } else if (buildType == buildTypes.release) { if (it instanceof NativeExecutableBinarySpec) { executable.file = toLocalBin(executable.file, targetPlatform) } } } } TestSuite(NativeLibrarySpec) { sources { cpp { source { srcDir 'src' include '**/*.cpp' exclude '*Driver.cpp' } exportedHeaders { srcDir 'src' } lib project: ':Data:PostgreSQL', library: 'postgres' lib project: ':Data:PostgreSQL', library: 'DataPostgreSQL' lib project: ':Data:PostgreSQL', library: 'intl' lib project: ':Data:PostgreSQL', library: 'iconv' lib project: ':Data', library: 'Data' lib project: ':Foundation', library: 'Foundation' lib project: ':CppUnit', library: 'CppUnit' lib library: 'ssl' lib library: 'crypto' } } } } testSuites { PostgreSQLTestSuite(org.gradle.nativeplatform.test.cppunit.CppUnitTestSuiteSpec) { testing $.components.TestSuite } } binaries { withType(org.gradle.nativeplatform.test.cppunit.CppUnitTestSuiteBinarySpec) { lib project: ':CppUnit', library: 'CppUnit', linkage: 'shared' if (toolChain in VisualCpp) { if (buildType == buildTypes.debug) { cCompiler.args "/MDd" cppCompiler.args "/MDd" } else if (buildType == buildTypes.release) { cCompiler.args "/MD" cppCompiler.args "/MD" } else { throw new GradleException("Unknown buildType" + buildType) } } if (toolChain in Gcc) { linker.args ( "-l", "z") linker.args ( "-l", "pthread") linker.args ( "-l", "dl") } } } } task testsuite { dependsOn "assemble" }