summaryrefslogtreecommitdiff
path: root/ide/macos_prehook.ml
blob: d6687889548dc0e353464a54c522ea0f1f58a7c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
let append_to_var var value =
  let new_val =
    try value ^ ":" ^ Unix.getenv var
    with Not_found -> value in
  Unix.putenv var new_val

let resources_dir =
  let working_dir = Sys.getcwd () in
  let () = Sys.chdir (Filename.dirname (Sys.executable_name)) in
  let app_root_dir = Filename.dirname (Sys.getcwd ()) in
  let () = Sys.chdir working_dir in
  Filename.concat app_root_dir "Resources"

let lib_dir = Filename.concat resources_dir "lib"
let etc_dir = Filename.concat resources_dir "etc"
let xdg_home = Filename.concat (Sys.getenv "HOME") "Library/Application Support"

let () = Unix.putenv "DYLD_LIBRARY_PATH" lib_dir
let () = Unix.putenv "XDG_DATA_HOME" xdg_home
let () = Unix.putenv "XDG_CONFIG_HOME" xdg_home
let () = append_to_var "XDG_DATA_DIRS" (Filename.concat resources_dir "share")
let () = append_to_var "XDG_CONFIG_DIRS" (Filename.concat etc_dir "xdg")
let () = Unix.putenv "GTK_DATA_PREFIX" resources_dir
let () = Unix.putenv "GTK_EXE_PREFIX" resources_dir
let () = Unix.putenv "GTK_PATH" resources_dir
let () =
  Unix.putenv "GTK2_RC_FILES" (Filename.concat etc_dir "gtk-2.0/gtkrc")
let () =
  Unix.putenv "GTK_IM_MODULE_FILE"
   (Filename.concat etc_dir "gtk-2.0/gtk-immodules.loaders")
let () =
  Unix.putenv "GDK_PIXBUF_MODULE_FILE"
   (Filename.concat etc_dir "gtk-2.0/gdk-pixbuf.loaders")
let () = Unix.putenv "PANGO_LIBDIR" lib_dir
let () = Unix.putenv "PANGO_SYSCONFIGDIR" etc_dir
let () = Unix.putenv "CHARSETALIASDIR" lib_dir
let () = append_to_var "PATH" (Filename.concat resources_dir "bin")