2017-11-30 19 views
0

質問:CURL_INCLUDE_DIRを「/usr/local/Cellar/curl/7.75.0/include/」に設定/設定するにはどうすればよいですか?CMAKEをOSXでlib curlの特定のバージョンを見つけるには?

私が何をしても、CMAKEはXcodeのlibバージョン/場所のみを検出します。

マイCMAKEファイルが含まれています

set(CURL_ROOT_DIR /usr/local/Cellar/curl/7.75.0/include/) 
find_package(curl REQUIRED) 
message(STATUS ">>> CURL Dir Found: " ${CURL_INCLUDE_DIR}) 

どんなに私が試したものを、上記CMAKEコードが

「/Applications/Xcode.app/の "CURL_INCLUDE_DIR" になりません内容量/開発/プラットフォーム/ MacOSX.platform /開発/ SDKに/ MacOSX10.13.sdkは/ usr/

注意を含んで、利用代わりfind_package」の(REQUIREDをカール) "(findcurl)が含ま" "同じ結果が得られます。

私は

セット(CMAKE_CXX_FLAGS「-Iは/ usr/local /セラー/カール/ 7.57.0 /含ま -Lは/ usr/local /セラー/カール/ 7.57を追加することに頼ってきました。 0/lib ")

CMAKEが実際に私が望むlibバージョン/場所を利用するためには、私が理解していないより良い方法はありますか?

答えて

1

cmake FindCURLモジュール(少なくとも私が持っているバージョンでは3.5.1)はどこでもCURL_ROOT_DIRを参照していないので、その変数を設定しても効果はありません。

実際にFindCURLモジュールは、実際にはかなり基本的なもの、どこで探せばカスタマイズするための任意の手段を提供していません、それは「標準」のパスにのみことになるだろうことを意味する(例えば/usr/lib/usr/local/libなど)

ますただし、find_libraryにはPATHS引数を使用できます。この時点で

set(CURL_PATH "/usr/local/Cellar/curl/7.75.0") 

find_library(
     LIB_CURL 
     NAMES 
      curl 
     PATHS 
      ${CURL_PATH}/lib) 

あなたは、ライブラリに対するlibcurl

リンクの場所を指す変数${LIB_CURL}を持っているし、インクルードパスを設定します:

あなたはその後、ちょうど${LIB_CURL}に対してリンクすることができますが直接、手動でターゲットのインクルードパスを指定することもできます。

add_executable(
     foo 
     main.cpp) 

target_link_libraries(
     foo 
     ${LIB_CURL}) 

target_include_directories(
     foo 
     SYSTEM 
     PRIVATE "${CURL_PATH}/include") 

IMPORTEDライブラリターゲット:

別のオプションあなたは空想になりたい場合は、消費者が自動的に設定インクルードパスを取得するので、${LIB_CURL}を使用してIMPORTEDライブラリターゲットを作成し、そのターゲットにINTERFACE_INCLUDE_DIRECTORIESを設定することです。

add_library(
     libcurl 
     IMPORTED) 

set_target_properties(
     libcurl 
     PROPERTIES 
      IMPORTED_LOCATION "${LIB_CURL}") 

set_target_properties(
     libcurl 
     PROPERTIES 
      INTERFACE_INCLUDE_DIRECTORIES "${CURL_PATH}/include") 

今、あなただけの直接のターゲットlibcurlをリンクすることができます、そして、あなたのアプリが自動的にその

add_executable(
     foo 
     main.cpp) 

target_link_libraries(
     foo 
     libcurl) 
を更新パスが含まれています
関連する問題