diff --git a/src/PersefoneDesktop.jl b/src/PersefoneDesktop.jl
index e6ad80b1b23ca0a69fc2b6b3fdb2ed95fc3c93f1..41f73c8af28d58ba514bec8e18a369161682ed15 100644
--- a/src/PersefoneDesktop.jl
+++ b/src/PersefoneDesktop.jl
@@ -27,6 +27,9 @@ using QML: QML, JuliaPropertyMap, QString, QTimer, @emit, @qmlfunction,
 using ResumableFunctions: ResumableFunctions, @resumable, @yield
 using TOML: TOML
 
+export
+    launch
+
 # To visualise dependencies, see here: https://tfiers.github.io/PkgGraph.jl/v0.6/
 
 include("variables.jl")
@@ -34,10 +37,12 @@ include("logic.jl")
 include("config.jl")
 include("GUI.jl")
 
-precompile(launch, ())
-precompile(render_map, (Any,)) #what's the input type?
-
-export
-    launch
+function _precompile()
+    ccall(:jl_generating_output, Cint, ()) == 1 || return nothing
+    precompile(launch, ())
+    precompile(render_map, (Any,)) #what's the input type?
+    return
+end
+_precompile()
 
 end