         (not= (:dependencies cp) (:dependencies config))
         )))
 
-(defn get-classpath [project-root {:keys [cache-root] :as config}]
+(defn get-classpath [project-root {:keys [cache-root version] :as config}]
   (let [cp-file (path/resolve project-root cache-root "classpath.edn")]
 
     ;; only need to rebuild the classpath if :dependencies

;; FIXME: windows uses ;
(def cp-seperator ":")

(defn aot-compile [project-root aot-path classpath]
  (let [version-file (path/resolve aot-path "version")]

    ;; FIXME: is it enough to AOT only when versions change?
    (when (or (not (fs/existsSync version-file))
              (not= jar-version (util/slurp version-file)))

      (mkdirp/sync aot-path)



      ;; re-create classpath by running the java helper
      (let [jar (js/require "shadow-cljs-jar/path")]
        (run-java project-root ["-jar" jar version (path/resolve project-root "shadow-cljs.edn")])))

    ;; only return :files since the rest is just cache info
    (-> (util/slurp cp-file)
