]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/SCLOsgi.java
Collect reference hierarchy for SCL values
[simantics/platform.git] / bundles / org.simantics.scl.osgi / src / org / simantics / scl / osgi / SCLOsgi.java
index 59f8e5fd804616a59ac705a31563160404206f92..e6bddee7e3c9ca9bf4ac140d93db5999573718e4 100644 (file)
@@ -2,9 +2,12 @@ package org.simantics.scl.osgi;
 
 import java.util.ArrayList;
 
+import org.eclipse.core.internal.runtime.PlatformActivator;
 import org.simantics.scl.compiler.errors.DoesNotExist;
 import org.simantics.scl.compiler.errors.Failable;
 import org.simantics.scl.compiler.module.Module;
+import org.simantics.scl.compiler.module.options.ModuleCompilationOptions;
+import org.simantics.scl.compiler.module.options.ModuleCompilationOptionsAdvisor;
 import org.simantics.scl.compiler.module.repository.ModuleRepository;
 import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;
 import org.simantics.scl.compiler.testing.repository.TestRepository;
@@ -23,6 +26,19 @@ public class SCLOsgi {
     public static ModuleRepository MODULE_REPOSITORY = new ModuleRepository(SOURCE_REPOSITORY);
     public static TestRepository TEST_REPOSITORY = new ServiceBasedTestRepository(Activator.getContext());
 
+    static {
+        MODULE_REPOSITORY.setAdvisor(new ModuleCompilationOptionsAdvisor() {
+            ModuleCompilationOptions options = null;
+            @Override
+            public ModuleCompilationOptions getOptions(String moduleName) {
+                if(options == null) {
+                    options = new ModuleCompilationOptions(false);
+                    options.collectDebugInfo = Activator.getContext().getProperty("osgi.dev") != null; //$NON-NLS-1$
+                }
+                return options; 
+            }
+        });
+    }
     
     public static String compileAllModules() {
         ArrayList<String> modulesWithErrors = new ArrayList<String>();