Project

General

Profile

機能 #3082

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

Added by n.kawauchi about 7 years ago. Updated over 6 years ago.

Status:
終了
Priority:
通常
Assignee:
Start date:
10/30/2014
Due date:
% Done:

100%

Estimated time:

Description

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へリンクを貼り、このバージョンを利用してもらうようにするため

Associated revisions

Revision 518 (diff)
Added by kawauchi about 7 years ago

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

Revision 519 (diff)
Added by kawauchi about 7 years ago

Modification of CMP0046 in r518 has been fixed.

History

#1 Updated by n.kawauchi about 7 years ago

  • % Done changed from 0 to 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 Updated by n.kawauchi almost 7 years ago

  • Status changed from 新規 to 解決

#3 Updated by n-ando over 6 years ago

  • Status changed from 解決 to 終了

Also available in: Atom PDF