/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" FunctionName ", Ġ" D uplicated Code ") Ċ Ċ package Ġorg . jetbrains . kotlin . gradle Ċ Ċ import Ġorg . gradle . api . internal . Task Internal Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . sources . Default Kotlin Source Set Ċ import Ġorg . jetbrains . kotlin . gradle . targets . native . internal . locate Or Register C Interop Metadata Dependency Transformation Task Ċ import Ġorg . jetbrains . kotlin . gradle . targets . native . internal . locate Or Register C Interop Metadata Dependency Transformation Task For Ide Ċ import Ġkotlin . test .* Ċ Ċ class ĠC Interop Metadata Dependency Transformation Task Test Ġ: ĠMulti platform Extension Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` task Ġnot Ġregistered Ġwhen Ġc interop Ġcommon ization Ġis Ġdisabled `() Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . enable C Interop Common ization ( false ) ĊĊĠĠĠĠĠĠĠ Ġkotlin . linux Arm 6 4 () ĊĠĠĠĠĠĠĠ Ġkotlin . linux X 6 4 () ĊĊĠĠĠĠĠĠĠ Ġval Ġcommon Main Ġ= Ġkotlin . source Sets . get ByName (" common Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux Arm 6 4 Main Ġ= Ġkotlin . source Sets . get ByName (" linux Arm 6 4 Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux X 6 4 Main Ġ= Ġkotlin . source Sets . get ByName (" linux X 6 4 Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux Main Ġ= Ġkotlin . source Sets . create (" linux Main ") Ġas ĠDefault Kotlin Source Set ĊĊĠĠĠĠĠĠĠ Ġlinux Main . depends On ( common Main ) ĊĠĠĠĠĠĠĠ Ġlinux Arm 6 4 Main . depends On ( linux Main ) ĊĠĠĠĠĠĠĠ Ġlinux X 6 4 Main . depends On ( linux Main ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠExpect Ġno Ġtasks Ġbeing Ġregistered Ġwithout Ġthe Ġc interop Ġcommon ization Ġfeature Ġflag Ġ*/ ĊĠĠĠĠĠĠĠ ĠassertNull ( project . locate Or Register C Interop Metadata Dependency Transformation Task ( linux Main )) ĊĠĠĠĠĠĠĠ ĠassertNull ( project . locate Or Register C Interop Metadata Dependency Transformation Task For Ide ( linux Main )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġtask Ġordering `() Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . enable C Interop Common ization ( true ) ĊĠĠĠĠĠĠĠ Ġkotlin . linux X 6 4 () ĊĠĠĠĠĠĠĠ Ġkotlin . linux Arm 6 4 () ĊĊĠĠĠĠĠĠĠ Ġval Ġcommon Main Ġ= Ġkotlin . source Sets . get ByName (" common Main ") ĊĠĠĠĠĠĠĠ Ġval Ġcommon Test Ġ= Ġkotlin . source Sets . get ByName (" common Test ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux Arm 6 4 Main Ġ= Ġkotlin . source Sets . get ByName (" linux Arm 6 4 Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux Arm 6 4 Test Ġ= Ġkotlin . source Sets . get ByName (" linux Arm 6 4 Test ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux X 6 4 Main Ġ= Ġkotlin . source Sets . get ByName (" linux X 6 4 Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux X 6 4 Test Ġ= Ġkotlin . source Sets . get ByName (" linux X 6 4 Test ") ĊĠĠĠĠĠĠĠ Ġval Ġnative Main Ġ= Ġkotlin . source Sets . create (" native Main ") Ġas ĠDefault Kotlin Source Set ĊĠĠĠĠĠĠĠ Ġval Ġnative Test Ġ= Ġkotlin . source Sets . create (" native Test ") Ġas ĠDefault Kotlin Source Set ĊĊĠĠĠĠĠĠĠ Ġnative Main . depends On ( common Main ) ĊĠĠĠĠĠĠĠ Ġlinux X 6 4 Main . depends On ( native Main ) ĊĠĠĠĠĠĠĠ Ġlinux Arm 6 4 Main . depends On ( native Main ) ĊĊĠĠĠĠĠĠĠ Ġnative Test . depends On ( common Test ) ĊĠĠĠĠĠĠĠ Ġlinux X 6 4 Test . depends On ( native Test ) ĊĠĠĠĠĠĠĠ Ġlinux Arm 6 4 Test . depends On ( native Test ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnative Test Transformation Task Ġ= Ġproject . locate Or Register C Interop Metadata Dependency Transformation Task ( native Test ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( native Test Transformation Task , Ġ" Expected Ġtransformation Ġtask Ġregistered Ġfor Ġ' native Test '") ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( common Main , Ġcommon Test , Ġnative Main ). map Ġ{ Ġsource Set Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . locate Or Register C Interop Metadata Dependency Transformation Task ( source Set Ġas ĠDefault Kotlin Source Set )?. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Expected Ġtransformation Ġtask Ġregistered Ġfor Ġ'${ source Set . name }' ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toSet (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnative Test Transformation Task . get (). must Run After . get Dependencies ( null ). toSet () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġtask Ġdisabled Ġfor Ġnon Ġshared - native Ġsource Ġsets `() Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . enable C Interop Common ization ( true ) ĊĠĠĠĠĠĠĠ Ġkotlin . linux Arm 6 4 () ĊĠĠĠĠĠĠĠ Ġkotlin . linux X 6 4 () ĊĠĠĠĠĠĠĠ Ġkotlin . jvm () ĊĊĠĠĠĠĠĠĠ Ġval Ġcommon Main Ġ= Ġkotlin . source Sets . get ByName (" common Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux Arm 6 4 Main Ġ= Ġkotlin . source Sets . get ByName (" linux Arm 6 4 Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux X 6 4 Main Ġ= Ġkotlin . source Sets . get ByName (" linux X 6 4 Main ") ĊĠĠĠĠĠĠĠ Ġval Ġlinux Main Ġ= Ġkotlin . source Sets . create (" linux Main ") Ġas ĠDefault Kotlin Source Set ĊĊĠĠĠĠĠĠĠ Ġlinux Main . depends On ( common Main ) ĊĠĠĠĠĠĠĠ Ġlinux Arm 6 4 Main . depends On ( linux Main ) ĊĠĠĠĠĠĠĠ Ġlinux X 6 4 Main . depends On ( linux Main ) ĊĊĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" common Main ", Ġ" jvm Main ", Ġ" linux Arm 6 4 Main ", Ġ" linux X 6 4 Main " ĊĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġsource SetName Ġ-> Ġkotlin . source Sets . get ByName ( source SetName ) Ġ}. forEach Ġ{ Ġsource Set Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġproject . locate Or Register C Interop Metadata Dependency Transformation Task ( source Set Ġas ĠDefault Kotlin Source Set ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn @ forEach ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . get (). only If . is Satisf ied By ( task . get () Ġas ĠTask Internal ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Expected Ġtask Ġ${ task . name } Ġto Ġbe Ġdisabled Ġ( not Ġa Ġshared Ġnative Ġsource Ġset )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlinux Main Task Ġ= Ġproject . locate Or Register C Interop Metadata Dependency Transformation Task For Ide ( linux Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Expected Ġtransformation Ġtask Ġregistered Ġfor Ġ' linux Main '") ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinux Main Task . get (). only If . is Satisf ied By ( linux Main Task . get () Ġas ĠTask Internal ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Expected Ġtask Ġ${ linux Main Task . name } Ġto Ġbe Ġenabled " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ