cmake: Install the OCaml libraries into a more correct path
authorMichal Gorny <mgorny@gentoo.org>
Fri, 30 Sep 2016 18:34:23 +0000 (18:34 +0000)
committerMichal Gorny <mgorny@gentoo.org>
Fri, 30 Sep 2016 18:34:23 +0000 (18:34 +0000)
commitb002f6370bfcb1f27e7adad91fec38adbabf5894
treef2667da7448624c3b5764099714c2983a09b3e15
parent977853b7c52bd2e05ec9150513c509edc831c9c6
cmake: Install the OCaml libraries into a more correct path

Add a OCAML_INSTALL_PATH variable that can be used to control
the install path for OCaml libraries. The new variable defaults to
${OCAML_STDLIB_PATH}, i.e. the OCaml library path obtained from
the OCaml compiler. Install libraries into "llvm" subdirectory.

This fixes two issues:

1. OCaml library directories differ between systems, and 'lib/ocaml' is
incorrect e.g. on amd64 Gentoo where OCaml is installed
in 'lib64/ocaml'. Therefore, obtain the library path from the OCaml
compiler using 'ocamlc -where' (which is already used to set
OCAML_STDLIB_PATH), which is the method used commonly in OCaml packages.

2. The top-level directory is reserved for the standard library, and has
precedence over local directory in search path. As a result, OCaml
preferred the files installed along with previous LLVM version over the
source tree when building a new version, resulting in two versions being
mixed during the build. The new layout is used commonly by other OCaml
packages, and findlib is able to find the LLVM libraries successfully.

Bug: https://bugs.gentoo.org/559134
Bug: https://bugs.gentoo.org/559624

Differential Revision: https://reviews.llvm.org/D24354

llvm-svn: 282895
llvm/bindings/ocaml/backends/CMakeLists.txt
llvm/bindings/ocaml/backends/META.llvm_backend.in
llvm/bindings/ocaml/llvm/CMakeLists.txt
llvm/bindings/ocaml/llvm/META.llvm.in
llvm/cmake/config-ix.cmake
llvm/cmake/modules/AddOCaml.cmake
llvm/test/lit.cfg