プロジェクト

全般

プロフィール

機能 #3082

CMake3.0.2でのワーニング対応

n.kawauchi9年以上前に追加. ほぼ9年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2014/10/30
期日:
進捗率:

100%

予定工数:

説明

CMake3.0.2では新たにcmake-policiesが追加され、既存のコードではワーニングが出るようになった。
http://www.cmake.org/cmake/help/v3.0/manual/cmake-policies.7.html

Windowsで使用するCMake GUIでは、ワーニングは赤字で表示されるので、ワーニングがでないように対応する。

---- 背景
・OpenRTM-aist C++ 1.1.1版 リリースに合わせての対応
・CMake のサイトでは、ダウンロードのデフォルトのバージョンが3になっている(2014年10月時点でversion 3.0.2)
・OpenRTM-aist C++ 1.1.1 ダウンロードページでのWindows環境では、CMake3.0.2へリンクを貼り、このバージョンを利用してもらうようにするため

関係しているリビジョン

リビジョン 518 (差分)
kawauchi が9年以上前に追加

CMakeLists has been changed for cmake_policy(CMP0046/CMP0048) of CMake3.0.2.

リビジョン 519 (差分)
kawauchi が9年以上前に追加

Modification of CMP0046 in r518 has been fixed.

履歴

#1 n.kawauchi9年以上前に更新

  • 進捗率0 から 100 に変更
修正内容
  • Policy CMP0046とCMP0048に対応した
  • OpenCVコンポーネント群であるImageProcessingの全体ビルドでの確認で、CMP0046とCMP0048に対するワーニングが出たことによる
  • Ubuntu14.04は、apt-getでcmakeをインストールすると、2.8.12.2のバージョンがインストールされるので、cmake_minimum_requiredはVERSION 2.8のままとした

CMP0046に対する修正詳細

参考:Added new policy CMP0046 which requires dependencies added by add_dependencies() to actually exist.

以下の形式でないとワーニングが出るようだ。add_custom_targetが無いと指摘されてワーニングになっている。
-----
cmake_policy(SET CMP0046 NEW)
add_custom_target(foo)
add_custom_target(bar)
add_dependencies(foo bar)
-----

src/CMakeLists.txtとidl/CMakeLists.txtに関係しているため、if文で判断させて多重宣言にならないようにした。

if(NOT TARGET ALL_IDL_TGT)
  add_custom_target(ALL_IDL_TGT)
endif(NOT TARGET ALL_IDL_TGT)

CMP0048に対する修正詳細

ワーニング出力状況
  • Delete Cache 直後は出力されない
  • CMake GUIで、Configureボタンを続けて押すと、3.0.2のバージョンは2回目以降からこのワーニングが出るが、
    2.8.12.2のバージョンは同じ操作を繰り返しても問題ない
  • CMake3.0.2の環境でImageProcessingの一括ビルドをすると、一番初めのAffineコンポーネントでは出力されないが、続く
    BackGroundSubtractionSimple ~ Translateのコンポーネントは全てこのCMP0048が出る

CMP0048ワーニングメッセージ

CMake Warning (dev) at components/BackGroundSubtractionSimple/CMakeLists.txt:4 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

project()コマンドの引数を変更すればよいのだが、2.8.12.2バージョンではエラーになるため、if文で判断させるようにした。

if(POLICY CMP0048)
  cmake_policy(SET CMP0048 OLD)
endif()

r518とr519にて修正。

#2 n.kawauchi約9年前に更新

  • ステータス新規 から 解決 に変更

#3 n-andoほぼ9年前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF