我使用Xcode作爲我的OS X版本的一部分,但由於它不是唯一使用的IDE,所以可以直接從文件系統添加文件。Xcode文件系統
據我所知,有添加文件夾的方式有兩種:
- 文件夾參考拿起所有的文件系統上的變化,但不註冊的任何文件作爲來源。
- 遞歸複製允許所要構建的文件,但我需要不斷地維護文件結構
我想知道是否有辦法設置的Xcode構建所有的的一部分的文件文件夾引用或失敗,如果有快速腳本來自動修復文件系統差異。從添加/現有的文件導入另一個文件
我使用Xcode作爲我的OS X版本的一部分,但由於它不是唯一使用的IDE,所以可以直接從文件系統添加文件。Xcode文件系統
據我所知,有添加文件夾的方式有兩種:
我想知道是否有辦法設置的Xcode構建所有的的一部分的文件文件夾引用或失敗,如果有快速腳本來自動修復文件系統差異。從添加/現有的文件導入另一個文件
Xcode的AppleScript字典有做這些任務所需的名詞和動詞。假設其他IDE的構建腳本知道哪些文件被添加/刪除,您可以編寫非常簡單的AppleScript來充當膠水。例如,腳本可以使用一個指定文件的參數來添加到Xcode中當前打開的項目中。另一個腳本可能需要一個參數來從當前項目中刪除一個文件。然後,您的其他IDE可以像構建腳本中的其他命令行工具那樣調用這些腳本。
我不知道任何內置功能來完成此操作。如果你需要它是自動的,你最好的選擇可能是寫一個Folder Action AppleScript並將它附加到你的項目文件夾。
儘管如此,它很可能是一個相當困難的(也許相當脆弱的)解決方案。
我想出了概念驗證解決方案,但需要一些工作才能在生產中使用。基本上,我設置了一個新的「外部目標」,它將給定目錄中的所有源文件編譯爲靜態庫。然後靜態庫鏈接到主應用程序。
詳細:
現在,當您將一些源文件放入「代碼」中時,Xcode應重新編譯所有內容。我創建了一個demo project作爲概念驗證。要查看它的工作方式,請將'tmp'目錄中的B.h/m複製到'Codes'目錄中。
*注意事項:我提供的Makefile過於簡化。如果你想在真實的項目中使用它,你需要花費一些時間使所有的構建標誌正確。您必須決定是否值得手動管理構建過程,而不是讓Xcode爲您處理大部分細節。注意有空白的路徑; Make不能很好地處理它們。
這不是很漂亮,我認爲它只能解決一半的問題,但是......如果您遞歸複製,然後退出xcode。然後刪除這些文件夾,並將它們替換爲原始文件夾的simlink,至少有文件被視爲代碼,並且它們與其他IDE正在查看的文件相同......您仍然需要手動添加和刪除文件。
我有種懷疑,有沒有更好的方式來做到這一點沒有某種形式的腳本(如文件夾操作),因爲Xcode允許你在一個項目中有多個目標,所以它不會知道你想自動包含任何特定目標中的所有文件。所以,你將不得不每次手動添加每個文件到當前目標...
我已經這樣做了。我需要一種自動獲取新文件和刪除已刪除文件的方式。 – fengb 2009-11-29 20:58:51