

CMakeで環境非依存なビルドファイルを作ろうとしています。  
find_package()でLLVMやffiのConfig.cmakeフィアルを利用しようとしたところ、下記のようなエラーが出てしまいました。set()を利用してパスを指定するとエラーは消えますが、CMakeLists.txtに環境依存なパスがハードコードしており、当初の目的を達成できません。  
ハードコードなしにConfig.cmakeファイルの格納場所を指定する方法を教えていただきたいです。

set(LLVM_DIR ...)しない場合のエラー

[code]

    CMake Error at src/CMakeLists.txt:5 (find_package):
      Could not find a package configuration file provided by "LLVM" with any of
      the following names:
    
        LLVMConfig.cmake
        llvm-config.cmake
    
      Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH or set
      "LLVM_DIR" to a directory containing one of the above files.  If "LLVM"
      provides a separate development package or SDK, be sure it has been
      installed.
    
[/code]

CMakeLists.txt

[code]

    cmake_minimum_required(VERSION 2.8)
    project(sample)
    # 明示的にLLVM_DIRを指定するとエラーが消えるが環境依存になってしまう
    set(LLVM_DIR /usr/local/Cellar/llvm/3.5.1/share/llvm/cmake)
    find_package(LLVM REQUIRED CONFIG)
    
[/code]

OS X Yosemite環境, HomeBrewでインストールしたllvmを指定した場合のCMakeLists.txtです。  
MintLinuxでは/usr/share/llvm-3.5/cmake/に格納されているため、書き換えが必要でした。バージョンの変化も考えると他の方法があると思いました。

* * *

5/15 19:00頃追記

cmake実行時に以下のように指定することで外出しが可能でした。

[code]

    cmake -D LLVM_DIR=/path/to/LLVMConfig.cmake
    
[/code]


CC BY-SA 3.0
2015-05-14T15:00:12.850
10189
2016-06-29T23:31:12.090
2015-05-15T10:09:20.007
2173
2173
question
build cmake
CMakeでFindHoge.cmakeの格納場所をハードコーディングしないで指定するには


自己解決されたようですが、clang に PATH を通して

[code]

    CC=clang cmake .
    
[/code]

という方法もあるようです。


CC BY-SA 3.0
2015-05-15T12:01:56.137
10234
2015-05-15T12:01:56.137
5288
10189
answer