From 3a16fbea3dcac351ea9a98c82cb0734fb0768995 Mon Sep 17 00:00:00 2001 From: Andrey Vokin Date: Wed, 8 Mar 2023 12:49:20 +0100 Subject: [PATCH] [Build scripts] implement possibility to add "skip" statement to Zkm open command. IJ-CR-104329 GitOrigin-RevId: 06ebb715b1c4b7c4f4bc689bd33557c2f484c9d4 --- .../jetbrains/intellij/build/impl/PluginLayout.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginLayout.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginLayout.kt index fe044e36b8f3..245649b44702 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginLayout.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginLayout.kt @@ -49,6 +49,9 @@ class PluginLayout private constructor(val mainModule: String, mainJarNameWithou var pathsToScramble: PersistentList = persistentListOf() private set + var scrambleSkipStatements: PersistentList> = persistentListOf() + private set + var scrambleClasspathPlugins: PersistentList> = persistentListOf() private set @@ -334,6 +337,18 @@ class PluginLayout private constructor(val mainModule: String, mainJarNameWithou layout.scrambleClasspathFilter = filter } + /** + * Adds a "skip" element to the open statement. See: [Open Statement documentation](https://www.zelix.com/klassmaster/docs/openStatement.html) + * + * Note: zkm open statement for the jar must be declared. + * + * @param jar - name of the jar file + * @param classFilter - in the following format: `com/mycompany/MyClass.class` + */ + fun scrambleSkip(jar: String, classFilter: String) { + layout.scrambleSkipStatements += Pair(jar, classFilter) + } + /** * Concatenates `META-INF/services` files with the same name from different modules together. * By default, the first service file silently wins.