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) } } } } */ TestLibrary(NativeLibrarySpec) { sources { cpp { source { srcDir 'src' include 'TestLibrary.cpp' include 'TestPlugin.cpp' } lib project: ':Foundation', library: 'Foundation', linkage: 'shared' } } } TestApp(NativeExecutableSpec) { sources { cpp { source { srcDir 'src' include 'TestApp.cpp' } } } } TestSuite(NativeLibrarySpec) { sources { cpp { source { srcDir 'src' include '**/*.cpp' exclude '*Driver.cpp' exclude '*_WINCE.cpp' exclude 'TestApp*.cpp' } exportedHeaders { srcDir 'src' } lib project: ':CppUnit', library: 'CppUnit', linkage: 'shared' lib project: ':Foundation', library: 'Foundation', linkage: 'shared' } } } } testSuites { FoundationTestSuite(org.gradle.nativeplatform.test.cppunit.CppUnitTestSuiteSpec) { testing $.components.TestSuite binaries.all { String PATH = "" if (targetPlatform.name.startsWith("win")) PATH = tasks.run.environment.get("Path") else PATH = tasks.run.environment.get("PATH") String testAppDir = project.buildDir testAppDir += "/exe" + "/testApp" testAppDir += "/" + targetPlatform.name if (buildType == buildTypes.debug) testAppDir += "/debug" else if (buildType == buildTypes.release) testAppDir += "/release" if (targetPlatform.name.startsWith("win")) testAppDir = testAppDir.replace('/', '\\') PATH = testAppDir + File.pathSeparator + PATH if (targetPlatform.name.startsWith("win")) tasks.run.environment "Path", PATH else tasks.run.environment "PATH", PATH } } } binaries { withType(org.gradle.nativeplatform.test.cppunit.CppUnitTestSuiteBinarySpec) { lib project: ':CppUnit', library: 'CppUnit', linkage: 'shared' lib library: 'TestLibrary', 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" } } if (toolChain in Gcc) { } } } } task testsuite { dependsOn "assemble" } tasks.withType(RunTestExecutable) { environment "POCO_BASE", "$rootDir" args test }