@@ -349,14 +349,19 @@ private void validateSDK(@NotNull Path path, boolean isLocalSDK) {
349349
350350        try  {
351351            validate (DIR , path , "" );
352+             validate (FIL , path , "sdk/moe-desugared-dex.jar" );
353+             validate (FIL , path , "sdk/moe-desugared-lib.json" );
354+             validate (FIL , path , "sdk/moe-core-dex.jar" );
352355            validate (FIL , path , "sdk/moe-core.jar" );
353356            validate (FIL , path , "sdk/moe-core-javadoc.jar" );
354357            validate (FIL , path , "sdk/moe-core-sources.jar" );
355358
359+             validate (FIL , path , "sdk/moe-ios-junit-dex.jar" );
356360            validate (FIL , path , "sdk/moe-ios-junit.jar" );
357361            validate (FIL , path , "sdk/moe-ios-junit-javadoc.jar" );
358362            validate (FIL , path , "sdk/moe-ios-junit-sources.jar" );
359363
364+             validate (FIL , path , "sdk/moe-ios-dex.jar" );
360365            validate (FIL , path , "sdk/moe-ios.jar" );
361366            validate (FIL , path , "sdk/moe-ios-javadoc.jar" );
362367            validate (FIL , path , "sdk/moe-ios-sources.jar" );
@@ -367,7 +372,6 @@ private void validateSDK(@NotNull Path path, boolean isLocalSDK) {
367372            }
368373
369374            validate (FIL  | EXE , path , "tools/dex2oat" );
370-             validate (FIL , path , "tools/dx.jar" );
371375            validate (FIL , path , "tools/ios-device.jar" );
372376            validate (FIL , path , "tools/java8support.jar" );
373377            validate (DIR , path , "tools/macosx" );
@@ -407,14 +411,20 @@ private void validate(int type, @NotNull Path path, @NotNull String sub) throws
407411    private  @ Nullable  File  MOE_SDK_ROOT ;
408412    private  @ Nullable  File  MOE_SDK_SDK_DIR ;
409413    private  @ Nullable  File  MOE_SDK_TOOLS_DIR ;
414+ 
415+     private  @ Nullable  File  MOE_SDK_DESUGARED_LIB_JSON ;
416+     private  @ Nullable  File  MOE_SDK_DESUGARED_DEX ;
410417    private  @ Nullable  File  MOE_SDK_CORE_JAR ;
418+     private  @ Nullable  File  MOE_SDK_CORE_DEX ;
411419    private  @ Nullable  File  MOE_SDK_CORE_SOURCES_JAR ;
412420    private  @ Nullable  File  MOE_SDK_CORE_JAVADOC_JAR ;
413421    private  @ Nullable  File  MOE_SDK_IOS_JAVADOC_JAR ;
414422    private  @ Nullable  File  MOE_SDK_IOS_JUNIT_JAR ;
423+     private  @ Nullable  File  MOE_SDK_IOS_JUNIT_DEX ;
415424    private  @ Nullable  File  MOE_SDK_IOS_JUNIT_SOURCES_JAR ;
416425    private  @ Nullable  File  MOE_SDK_IOS_JUNIT_JAVADOC_JAR ;
417426    private  @ Nullable  File  MOE_SDK_IOS_JAR ;
427+     private  @ Nullable  File  MOE_SDK_IOS_DEX ;
418428    private  @ Nullable  File  MOE_SDK_IOS_SOURCES_JAR ;
419429    private  @ Nullable  File  MOE_SDK_DEX2OAT_EXEC ;
420430    private  @ Nullable  File  MOE_SDK_DX_JAR ;
@@ -433,13 +443,18 @@ private void bakeSDKPaths(@NotNull Path path) {
433443        MOE_SDK_ROOT  = path .toFile ();
434444        MOE_SDK_SDK_DIR  = path .resolve ("sdk" ).toFile ();
435445        MOE_SDK_TOOLS_DIR  = path .resolve ("tools" ).toFile ();
446+         MOE_SDK_DESUGARED_LIB_JSON  = path .resolve ("sdk/moe-desugared-lib.json" ).toFile ();
447+         MOE_SDK_DESUGARED_DEX  = path .resolve ("sdk/moe-desugared-dex.jar" ).toFile ();
436448        MOE_SDK_CORE_JAR  = path .resolve ("sdk/moe-core.jar" ).toFile ();
449+         MOE_SDK_CORE_DEX  = path .resolve ("sdk/moe-core-dex.jar" ).toFile ();
437450        MOE_SDK_CORE_SOURCES_JAR  = path .resolve ("sdk/moe-core-sources.jar" ).toFile ();
438451        MOE_SDK_CORE_JAVADOC_JAR  = path .resolve ("sdk/moe-core-javadoc.jar" ).toFile ();
439452        MOE_SDK_IOS_JAR  = path .resolve ("sdk/moe-ios.jar" ).toFile ();
453+         MOE_SDK_IOS_DEX  = path .resolve ("sdk/moe-ios-dex.jar" ).toFile ();
440454        MOE_SDK_IOS_SOURCES_JAR  = path .resolve ("sdk/moe-ios-sources.jar" ).toFile ();
441455        MOE_SDK_IOS_JAVADOC_JAR  = path .resolve ("sdk/moe-ios-javadoc.jar" ).toFile ();
442456        MOE_SDK_IOS_JUNIT_JAR  = path .resolve ("sdk/moe-ios-junit.jar" ).toFile ();
457+         MOE_SDK_IOS_JUNIT_DEX  = path .resolve ("sdk/moe-ios-junit-dex.jar" ).toFile ();
443458        MOE_SDK_IOS_JUNIT_SOURCES_JAR  = path .resolve ("sdk/moe-ios-junit-sources.jar" ).toFile ();
444459        MOE_SDK_IOS_JUNIT_JAVADOC_JAR  = path .resolve ("sdk/moe-ios-junit-javadoc.jar" ).toFile ();
445460        MOE_SDK_DEX2OAT_EXEC  = path .resolve ("tools/dex2oat" ).toFile ();
@@ -472,6 +487,15 @@ public File getToolsDir() {
472487        return  safeVariable (MOE_SDK_TOOLS_DIR , "MOE_SDK_TOOLS_DIR" );
473488    }
474489
490+     @ NotNull 
491+     public  File  getDesugaredLibJson () {
492+         return  safeVariable (MOE_SDK_DESUGARED_LIB_JSON , "MOE_SDK_DESUGARED_LIB_JSON" );
493+     }
494+     @ NotNull 
495+     public  File  getDesugaredLibDex () {
496+         return  safeVariable (MOE_SDK_DESUGARED_DEX , "MOE_SDK_DESUGARED_DEX" );
497+     }
498+ 
475499    @ NotNull 
476500    public  File  getCoreJar () {
477501        return  safeVariable (MOE_SDK_CORE_JAR , "MOE_SDK_CORE_JAR" );
@@ -489,6 +513,11 @@ public File getCoreSourcesJar() {
489513        return  safeVariable (MOE_SDK_CORE_SOURCES_JAR , "MOE_SDK_CORE_SOURCES_JAR" );
490514    }
491515
516+     @ NotNull 
517+     public  File  getCoreDex () {
518+         return  safeVariable (MOE_SDK_CORE_DEX , "MOE_SDK_CORE_DEX" );
519+     }
520+ 
492521    @ NotNull 
493522    @ IgnoreUnused 
494523    public  File  getiOSJavadocJar () {
@@ -518,11 +547,22 @@ public File getiOSJUnitSourcesJar() {
518547        return  safeVariable (MOE_SDK_IOS_JUNIT_SOURCES_JAR , "MOE_SDK_IOS_JUNIT_SOURCES_JAR" );
519548    }
520549
550+     @ NotNull 
551+     @ IgnoreUnused 
552+     public  File  getiOSJUnitDex () {
553+         return  safeVariable (MOE_SDK_IOS_JUNIT_DEX , "MOE_SDK_IOS_JUNIT_DEX" );
554+     }
555+ 
521556    @ NotNull 
522557    private  File  getiOSJar () {
523558        return  safeVariable (MOE_SDK_IOS_JAR , "MOE_SDK_IOS_JAR" );
524559    }
525560
561+     @ NotNull 
562+     private  File  getiOSDex () {
563+         return  safeVariable (MOE_SDK_IOS_DEX , "MOE_SDK_IOS_DEX" );
564+     }
565+ 
526566    @ NotNull 
527567    public  File  getDex2OatExec () {
528568        return  safeVariable (MOE_SDK_DEX2OAT_EXEC , "MOE_SDK_DEX2OAT_EXEC" );
@@ -594,6 +634,13 @@ public File getPlatformJar(final @NotNull MoePlatform platform) {
594634        throw  new  GradleException ("platform jar is unsupported for "  + platform .displayName );
595635    }
596636
637+     @ NotNull 
638+     public  File  getPlatformDex (final  @ NotNull  MoePlatform  platform ) {
639+         if  (platform  == MoePlatform .IOS ) {
640+             return  getiOSDex ();
641+         }
642+         throw  new  GradleException ("platform dex is unsupported for "  + platform .displayName );
643+     }
597644    @ NotNull 
598645    private  static  <T > T  safeVariable (@ Nullable  T  variable , @ NotNull  String  name ) {
599646        return  Require .nonNull (variable , "Unable to access MOE SDK variable '"  + name  + "'" );
0 commit comments