2017-03-13 5 views
1

私はプロジェクトをAutotoolsからCMakeに変換しています。 我々は声明で、configure.acファイルを持っている:(それはPKG-config設定を持っていない)かどうかはわかりCMakeでAC_CHECK_LIBを置き換えます

AC_CHECK_LIB([gsuffix], [gsuffix_create], [], AC_MSG_ERROR([Can not find gsuffix library])) 

私はcmakeのにそれを交換したい、としませ は、私は必要なものである:

  • libgsuffixが存在し、パスを検出しているかどうかを確認します。
  • gsuffix_createがlibgsuffixに存在することを確認してください。
  • -lg接尾辞をコンパイルに追加します。これは私が行う方法を知っていると思います。

誰でも正しい方向に向けることができますか?

+2

あなたは[ 'CHECK_SYMBOL_EXISTS']を探している可能性があり(HTTPS ://cmake.org/cmake/help/latest/module/CheckSymbolExists.html)または同様の機能 – Angew

+1

また、['FIND_LIBRARY'](https://cmake.org/cmake/help/v3.4/command/find_library.html) – languitar

答えて

0

1対1の翻訳はありません。一般に、CMakeではヘッダとライブラリが実際に動作するかどうかはチェックしません。あなたがファイルを見つけたら、それはトリックを行うと仮定します。

たぶん
  • find_package誰かが既にに従って設定ファイルを提供し、このようなテストや、あなたのライブラリーを書い応じて、あなたのために右です。

  • Find_libraryは、ライブラリを見つけることを目的としていますが、名前によるものです。

  • 実際にライブラリが機能することを確認する必要がある場合は、CheckLibraryExistsを使用してください。

0

前述のように、1つのコマンドでこれを行うことはできませんでした。

私は完全に一般的な何かをする方法を理解するのに十分な時間を持っていなかったので、私はFindGSUFFIX.cmakeのための私の骨格を与えることができます。

FIND_LIBRARY(GSUFFIX_LIBRARY NAMES gsuffix) 

INCLUDE(CheckLibraryExists) 
CHECK_LIBRARY_EXISTS(gsuffix gsuffix_create ${GSUFFIX_LIBRARY} GSUFFIX_VERIFIED) 

# Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE. 
INCLUDE(FindPackageHandleStandardArgs) 
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSUFFIX DEFAULT_MSG GSUFFIX_LIBRARY GSUFFIX_VERIFIED) 

MARK_AS_ADVANCED(GSUFFIX_LIBRARY) 
関連する問題