私は現在、プロジェクトでCMakeを(Windowsで)実行しようとしています。すべてのライブラリがインストールされているカスタムの場所を使用したい。そのパスについてCMakeに通知するために、私はそれを実行しようとしました。
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs)
しかし、私がライブラリを見つけようとすると
find_library(CURL_LIBRARY NAMES curl curllib libcurl_imp curllib_static)
CMakeはそれを見つけることができません。プレフィックスパスをに設定すると
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs/curl)
...ライブラリがあります。
だから私の質問は次のとおりです:次のようなカスタムの場所でディレクトリ構造を操作するようにCMakeを適切に構成するにはどうすればよいですか?
D:/develop/cmake/libs/
-> libA
-> include
-> lib
-> libB
-> include
-> lib
-> ...
-> include
-> lib
「include」にはパブリックヘッダーがあり、「lib」にはコンパイル済みライブラリがあります。
誰かが私を助けてくれることを願っています-事前に感謝します
編集:私にとっての現在の回避策は、ライブラリを検索する前にこれを行うことです:
set(CUSTOM_LIBRARY_PATH D:/develop/cmake/libs)
file(GLOB sub-dir ${CUSTOM_LIBRARY_PATH}/*)
foreach(dir ${sub-dir})
if(IS_DIRECTORY ${dir})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${dir})
endif()
endforeach()
しかし、そうすれば、boostのディレクトリ構造が少し異なるため、boostのデフォルトモジュールはそれまでそれを見つけることができません。
boost -> include -> boost-1_50 -> *.hpp
「boost-1_50」から「include」へのコンテンツを移動すると、ライブラリが見つかりますが、その方法では複数のバージョンを処理できません。