Swift源碼編譯為Xcode項目

今天和大家講講怎么樣將github中的swift源碼編譯到Xcode可以打開的項目:

1,安裝cmake 去官網下載cmake,我下的是目前的最新版本cmake-3.12.0-rc3-Darwin-x86_64.tar.gz,如下圖:


cmake官網下載圖

下載完成以后,接著就解壓,會看到這個玩意兒:


cmake解壓后

把這個拷貝到應用程序目錄下面,接著打開這個應用程序,找到tools->how to install...這一行,會提示你怎樣操作,我選擇的是第二個:


cmake tools


cmake

接著可以打開終端了,復制上圖畫圈的sudo這一行到終端執行一下,好啦,cmake客戶端和終端命令都搞定了!

2,安裝ninja(從git下載)

首先創建一個文件夾,并定位到這個文件夾下,如下:

mkdir -p ~/ninja && cd ~/ninja

下載安裝包:

git clone https://github.com/martine/ninja

進入ninja:

cd ninja

編譯ninja:

./configure.py --bootstrap

這里我報了一個錯:


編譯ninja錯誤

這個錯誤不要慌,是缺少re2c,這個時候只要安裝好re2c就行了,接下來說說一下如何安裝re2c:

進入到這個re2c官網,下載最新的包:我下載的是re2c-1.0.3.tar.gz

下載完成以后解壓,然后用命令行定位到解壓后的文件夾: cd? re2c路徑

也可以打開這個文件夾看一下里面的內容,應該差不多是這個樣子(可以查看對應的readme文件,也可以跟著我的步驟來):


re2c

這個時候在命令行這樣做:

./configure

等待命令執行完畢再輸入:

make

等待執行完畢再輸入:

make install

至此,如果一切順利,re2c就安裝完畢了;回頭再來安裝ninja

cd? 定位到你剛才的ninja文件夾:我的是:cd ~/ninja/ninja

這個時候在命令行輸入:./configure.py --bootstrap,如果一切順利,就安裝成功了。這個時候可以在終端輸入:./ninja --version? ? ? 如果終端能顯示版本就說明正常了。


ninja安裝成功

但是有個問題是,這個命令必須制定完整的路徑或者像剛才一樣在當前目錄才可以執行,這個時候我們如果想在任何路徑下只要執行 ninja --version都能看到版本就好了,此時我們可以配置環境變量:使用如下命令(如果在~目錄下有.bash_profile這個文件就不用創建):

touch ~/.bash_profile? ? (創建.bash_profile)

用vi 編輯器打開:

vi ~/.bash_profile

在vi編輯器中進行編輯(按i開啟編輯),輸入以下內容:

export NINJA_HOME=ninja的路徑? ? 我這里是: ~/ninja/ninja

export PATH=$PATH:$NINJA_HOME

編輯完成按esc退出編輯,然后按? ? ?:wq? ? ? 保存并退出編輯器

用這個命令讓環境變量生效: source ./.bash_profile

這樣環境變量就設置成功了,我們測試一下,

cd? /

ninja --version

你會看到出現了ninja的版本號


至此ninja安裝完畢。 附上mac配置環境變量的方法:

3,下載swift在github上的倉庫:可以按照git上的操作的操作進行,這里我說說我自己的操作


獲取source和related project


首先download項目,存儲在你自己定義的文件夾里面,我是下載到:~/Deskdop/swift-source 里面:

下載成功以后,就進入到剛才那個文件夾,然后解壓,再進入解壓后的目錄:? 執行 utils/update-checkout --clone? 這個命令(https的方式),安靜的等待執行完畢(時間會有一點長,泡一杯咖啡吧),當然也可以用git ssh的方式操作,只不過需要添加github密鑰(參考添加密鑰),這一步完成以后就開始編譯swift源碼了。


編譯swift

至此等待編譯完畢。


編譯的結果
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容

  • 有一個人是個誠實正直的善人,上帝經不住撒旦的引誘對他降罪,使他蒙受苦難。他的三位朋友與他論辯,試圖使他相信他是有罪...
    胡涂格格閱讀 508評論 0 0
  • 事情是從這部電影的原聲帶中的一首不長的樂曲開始的,不得不佩服王家衛的音樂鑒賞能力,絕對是個有品位的人。 ...
    andy1999閱讀 1,797評論 0 3
  • 今天寫15分鐘吧,這一段在本子上寫,有點隨意,完全隨性,本子隨時在手邊,有時是一句話而已。 昨天才開始看看電視,《...
    何偀閱讀 346評論 0 0
  • 潘瑋柏引領街頭潮風的品味,無人能及,繼配戴要價5800萬的Richard Mille透明骷髏頭藍寶石陀飛輪RM05...
    灌南高手No1閱讀 425評論 0 0