1 This is how we exclude in the .iml files 2 For example in example-nbody.iml 3 ```xml 4 <module> 5 <component name="NewModuleRootManager" inherit-compiler-output="true"> 6 <exclude-output /> 7 <content url="file://$MODULE_DIR$/../examples/nbody"> 8 <sourceFolder url="file://$MODULE_DIR$/../examples/nbody/src/main/java" isTestSource="false" /> 9 <sourceFolder url="file://$MODULE_DIR$/../examples/nbody/src/main/resources" type="java-resource" /> 10 <!--<excludeFolder url="file://$MODULE_DIR$/../examples/nbody/src/main/java/nbody" />--> 11 </component> 12 </module> 13 ``` 14 Sadly to exclude a single file we have to go to 15 ``` 16 IntelliJ>Settings>Build, Execution, Deployment> Compiler>Excludes 17 18 And add to the UI 19 FULL_PATH_TO_HAT/hat/wraps/opengl/src/main/java/wrap/opengl/GLCallbackEventHandler.java 20 ``` 21 22 23 We need these to be able to run in a run configuration 24 ``` 25 RunConfiguration 26 VMOptions 27 -XstartOnFirstThread (on mac only for nbody/opengl) 28 --enable-native-access=ALL-UNNAMED 29 -Djava.library.path=FULL_PATH_TO_HAT/build 30 31 WorkingDirectory 32 FULL_PATH_TO_HAT/wraps/opengl/src/main/java/wrap/opengl/GLCallbackEventHandler.java 33 /Users/grfrost/github/babylon-grfrost-fork/hat/intellij 34 35 Assuming Working dir is 36 FULL_PATH_TO_HAT/intellij 37 38 ``` 39 40 Note that run configs are held in `intellij/.idea/workspace.xml` 41 42 I tend to add them manually. 43 ```xml 44 <project version="4"> 45 // other components 46 <component name="RunManager"> 47 <configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> 48 <classpathModifications> 49 <entry path="$PROJECT_DIR$/../build/hat-backend-ffi-opencl-1.0.jar" /> 50 <entry path="$PROJECT_DIR$/backend_ffi_shared.iml" /> 51 </classpathModifications> 52 <option name="MAIN_CLASS_NAME" value="nbody.Main" /> 53 <module name="example_nbody" /> 54 <option name="VM_PARAMETERS" value="-XstartOnFirstThread --enable-native-access=ALL-UNNAMED -Djava.library.path=../build" /> 55 <extension name="coverage"> 56 <pattern> 57 <option name="PATTERN" value="nbody.*" /> 58 <option name="ENABLED" value="true" /> 59 </pattern> 60 </extension> 61 <method v="2"> 62 <option name="Make" enabled="true" /> 63 </method> 64 </configuration> 65 <recent_temporary> 66 <list> 67 <item itemvalue="Application.Main" /> 68 </list> 69 </recent_temporary> 70 </component> 71 </project> 72 ``` 73 74