I'm using URI's for relativizing and basic string comparison for directory comparison. URIs have a bug where they can't produce ../../ style relative paths, but since we require that your :output-dir be in the same directory as :source-map, this shouldn't bite us.

Prior to this patch, I have seen cljsbuild emit sourcemaps that refer to files from the /target directory, which if you set :output-dir to "out", is going to require an implementation of relativize() that is able to emit paths starting with ../target

So I'm not sure if something wrong is happening there? I'll have to check that again once the rest of my windows issues are sorted.

I'm still looking at CLJS-681 - the main issue is it omitting files entirely from the sourcemap - I'm getting closer...

@David Powell: After CLJS-674 though, we've restricted what :output-dir can be when using :source-map to ensure that :output-dir will be relative to :source-map's parent so that URI relativization should work fine.