@@ -256,20 +256,37 @@ extension FFMSwift2JavaGenerator {
256256 printNominal ( & printer, decl) { printer in
257257 // We use a static field to abuse the initialization order such that by the time we get type metadata,
258258 // we already have loaded the library where it will be obtained from.
259- printer. printParts (
260- """
261- @SuppressWarnings( " unused " )
262- private static final boolean INITIALIZED_LIBS = initializeLibs();
263- static boolean initializeLibs() {
264- SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_CORE);
265- SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_JAVA);
266- SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_RUNTIME_FUNCTIONS);
267- SwiftLibraries.loadLibraryWithFallbacks(LIB_NAME);
268- return true;
259+ if let overrideLoading = self . config. overrideStaticBlockLibraryLoading {
260+ if !overrideLoading. isEmpty {
261+ let body = overrideLoading. map { " \( $0) " } . joined ( separator: " \n " )
262+ printer. printParts (
263+ """
264+ @SuppressWarnings( " unused " )
265+ private static final boolean INITIALIZED_LIBS = initializeLibs();
266+ static boolean initializeLibs() {
267+ \( body)
268+ return true;
269+ }
270+ """
271+ )
272+ printer. print ( " " )
269273 }
270- """
271- )
272- printer. print ( " " )
274+ } else {
275+ printer. printParts (
276+ """
277+ @SuppressWarnings( " unused " )
278+ private static final boolean INITIALIZED_LIBS = initializeLibs();
279+ static boolean initializeLibs() {
280+ SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_CORE);
281+ SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_JAVA);
282+ SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_RUNTIME_FUNCTIONS);
283+ SwiftLibraries.loadLibraryWithFallbacks(LIB_NAME);
284+ return true;
285+ }
286+ """
287+ )
288+ printer. print ( " " )
289+ }
273290
274291 // Type metadata (common to all nominal types)
275292 printer. printParts (
@@ -479,12 +496,35 @@ extension FFMSwift2JavaGenerator {
479496 """
480497 static final SymbolLookup SYMBOL_LOOKUP = getSymbolLookup();
481498 private static SymbolLookup getSymbolLookup() {
482- if (SwiftLibraries.AUTO_LOAD_LIBS) {
483- SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_CORE);
484- SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_JAVA);
485- SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_RUNTIME_FUNCTIONS);
486- SwiftLibraries.loadLibraryWithFallbacks(LIB_NAME);
487- }
499+ """
500+ )
501+
502+ if let overrideLoading = config. overrideStaticBlockLibraryLoading {
503+ if !overrideLoading. isEmpty {
504+ let body = overrideLoading. map { " \( $0) " } . joined ( separator: " \n " )
505+ printer. print (
506+ """
507+ if (SwiftLibraries.AUTO_LOAD_LIBS) {
508+ \( body)
509+ }
510+ """
511+ )
512+ }
513+ } else {
514+ printer. print (
515+ """
516+ if (SwiftLibraries.AUTO_LOAD_LIBS) {
517+ SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_CORE);
518+ SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_JAVA);
519+ SwiftLibraries.loadLibraryWithFallbacks(SwiftLibraries.LIB_NAME_SWIFT_RUNTIME_FUNCTIONS);
520+ SwiftLibraries.loadLibraryWithFallbacks(LIB_NAME);
521+ }
522+ """
523+ )
524+ }
525+
526+ printer. print (
527+ """
488528
489529 if (PlatformUtils.isMacOS()) {
490530 return SymbolLookup.libraryLookup(System.mapLibraryName(LIB_NAME), LIBRARY_ARENA)
0 commit comments