2016-05-12 73 views
0

我試圖在Mac OS X El Capitan上將Blender創建爲Python模塊。我正在按照this tutorial來建造Blender作爲Python模塊,this tutorial用於建造Blender。我的經驗如下。我可以在沒有任何錯誤的情況下使用默認設置運行CMake。不過,我想建立攪拌機作爲一個Python模塊,並this page表明,儘管我跑CMake的,我需要設置:在Mac OS X上將Blender構建爲Python模塊時發生錯誤「set_target_properties調用的參數數量不正確」

WITH_PYTHON_INSTALL=OFF 
WITH_PLAYER=OFF 
WITH_PYTHON_MODULE=ON 

當我這樣設定這些選項,我得到以下錯誤:

CMake Error at source/creator/CMakeLists.txt:223 (set_target_properties): 
    set_target_properties called with incorrect number of arguments. 

我已經嘗試了命令行CMake和CMake GUI,同樣的錯誤。我對CMake一無所知,所以我很遺憾如何解決這個問題。我查看了source/creator/CMakeLists.txt的第223行,並將其顯示爲錯誤消息,它有以下幾行。

if(APPLE) 
    set_target_properties(
     blender 
     PROPERTIES 
      MACOSX_BUNDLE 
      LINK_FLAGS_RELEASE "${PLATFORM_LINKFLAGS}" 
      LINK_FLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG}" 
    ) 
endif() 

如何解決此錯誤?

+0

看起來像'MACOSX_BUNDLE'屬性錯過值。根據屬性[文檔](https://cmake.org/cmake/help/v3.0/prop_tgt/MACOSX_BUNDLE.html),其值可能是* false * -like(例如「FALSE」)或* true * -like(例如「TRUE」)。不確定這個代碼的作者打算使用哪一個。 – Tsyvarev

回答

1

目標屬性MACOSX_BUNDLE確實需要一個參數:

if(APPLE) 
    set_target_properties(
     blender 
     PROPERTIES 
      MACOSX_BUNDLE TRUE 
      LINK_FLAGS_RELEASE "${PLATFORM_LINKFLAGS}" 
      LINK_FLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG}" 
    ) 
endif() 

似乎是在source/creator/CMakeLists.txt的錯誤。

這想出了一個提交前一陣子:[Bf-blender-cvs] [4828c6a] master: cmake: fix generation/install on OS X, N.B. needs cmake cache rebuild

+0

哇謝謝!那麼你是否參與了Blender項目?你聽起來很像。 – Ray

+0

@Ray不客氣。不,我沒有參與Blender項目。就像Tsyvarev一樣 - 我現在正在使用CMake很長一段時間,只是看着錯誤消息和代碼,問題非常明顯。它開始讓我想知道這是如何工作的,所以我檢查了最新版本(它仍然存在問題),然後研究了什麼時候添加了這個版本(這似乎是Martijn Berger不久前發佈的) 。從那以後,我只注意到if從「if(WITH_PYTHON_MODULE)」變成了「if(APPLE)」。似乎有人已經注意到代碼存在問題。 – Florian

+0

@射線請[向Blender項目團隊報告此問題](https://developer.blender.org/maniphest/task/create/?project=2&type=Bug_),以便他們審查並修復它。 – Florian

相關問題