編譯它
在 Linux 上從原始碼編譯 Kate
Kate 的原始碼目前位於 invent.kde.org 的 GitLab 實體上。這個教學會解釋如何編譯 Kate 而不影響您的全域安裝。
所有操作都會在一個額外建立的開發目錄中進行。這可以避免需要管理者權限,並且允許在目前編譯版本出問題時回去使用全域安裝的 Kate。
由於這個教學的設定也允許開發 KDE 軟體的其他部分,我們會在下方說明如何配置 KDE 開發環境。除了 Kate 應用程式部分以外,需要的 KDE Frameworks 框架等也會被編譯。這可以讓為 KDE 各層軟體進行貢獻都變得比較容易。
選擇您的 Kate 與 KDE 開發用的目錄
您可以自己決定 Kate 及 KDE 開發的東西全部應該要位於的資料夾。除了使用者本機設定檔案以外,這個目錄以外的任何檔案都不會被影響。您可以為其他 KDE 軟體使用同一個資料夾。
這個教學以下會假設開發目錄使用
~/projects/kde
不過您還是可以隨意選擇此目錄。
安裝 kdesrc-build
安裝基本上就是用 git 再製目前版本
mkdir -p ~/projects/kde/src
cd ~/projects/kde/src
git clone https://invent.kde.org/sdk/kdesrc-build.git
為了方便之後使用,可以在您的 PATH 中的某資料夾內建立 kdesrc-build 的符號連結。例如,如果您已將 ~/bin 加入 PATH 中:
ln -s ~/projects/kde/src/kdesrc-build/kdesrc-build ~/bin
設定 kdesrc-build
kdesrc-build 有一些設定步驟可以幫助您設定東西,請參閱此說明。
以下是一個範例的 ~/.config/kdesrc-buildrc,足夠用來開發 Kate。
您可以就將以下設定檔案複製到家目錄底下的 ~/.config/kdesrc-buildrc 並依您的需求調整路徑。如果您也是使用上方選擇的 ~/projects/kde 路徑,這個設定應該會不需要調整。
global
# 使用最新基於 KF6 和 Qt6 的軟體
branch-group kf6-qt6
# 使用 Ninja 來在需要重新編譯時能使用更快的漸進式重新編譯;關掉一些 Qt 5 的東西來減少依賴數量
cmake-options -G "Ninja" -DBUILD_WITH_QT6=ON -DQT_MAJOR_VERSION=6 -DPHONON_BUILD_QT5=OFF -DBUILD_QT5=OFF
# clangd 工具整合
compile-commands-export yes
compile-commands-linking yes
# 扁平結構
directory-layout flat
# KDE 軟體的安裝目錄
install-dir ~/projects/kde/usr
# 下載下來的原始碼用的目錄
source-dir ~/projects/kde/src
# 在安裝到 source-dir 相對路徑前將 KDE 軟體編譯到的目錄
build-dir ~/projects/kde/build
end global
include ${module-definitions-dir}/kf6-qt6.ksb
讓開發 Kate(或 KDE 其他東西)變得比較方便用的重要的行數在下面有詳細說明。
LSP 整合
# clangd 工具整合
compile-commands-export yes
compile-commands-linking yes
這幾行確保 CMake 會產生 clangd 的 LSP 整合所需要的 compile_commands.json 檔案。除了在編譯目錄產生它們以外,compile-commands-linking
選項會將該檔案用符號連結放回原始碼目錄。這讓 Kate(或其他編輯器)能夠零設定註解開始使用 LSP。
安裝需要的相依關係(可選)
kdesrc-build 提供一些初始設定模式,支援在一些常用發行版上安裝需要的軟體包來開始開發。這在您不確定您的系統上是否已安裝開發需要的軟體包,而不想要自己想辦法處理時很有用。**由於這個步驟需要為您的發行版安裝軟體包,這一步會需要管理者權限來安裝軟體包。**要繼續進行,只需要執行:
kdesrc-build --initial-setup
我們已經建立了 .config/kdesrc-buildrc,所以它不會被變更。之後的使用也不需要再調整 shell 的設定。
編譯 Kate 和依賴關係
要進行 Kate 和所有需要的 KDE 依賴關係,請輸入:
kdesrc-build --include-dependencies kate
這在一台較新的電腦上通常會花幾分鐘。可以喝點茶並想想您要實作什麼。
在您的發行版沒有打包我們的依賴關係的 KF6 版本之前,您可能會想要編譯多一些部分來改善風格和終端機整合:
kdesrc-build --include-dependencies breeze plasma-integration kwayland-integration konsole kate
如果您只要編譯 Kate 而不要編譯依賴關係(因為您確定您的系統上已經有提供,且提供的版本夠新),可以試試看:
kdesrc-build --no-include-dependencies kate
但考量現代的電腦上編譯時間不用花多久,編譯全部可能會比較方便,來確保您取得最新的 KSyntaxHighlighting 和 KTextEditor 框架等等。
在這個情況,您可以使用這個簡單指令編譯所有 KDE 軟體部分:
kdesrc-build
請記得:這會花一些時間(和磁碟空間)。
如果編譯時您有看到任何以紅色字型顯示的失敗,請跟隨這個說明:如何解決編譯問題
要怎麽用剛編譯的東西?
要啟動本地編譯的 Kate 版本,您需要將環境正確設定來確保外掛程式等等東西能正確載入。幸運地,這不會很難:
source ~/projects/kde/build/kate/prefix.sh
kate
一個不錯的使用方式是自己建立一個包裝文稿來啟動您的本地 bin 目錄中的主分支版的 Kate:
#!/bin/bash
source ~/projects/kde/build/kate/prefix.sh
exec kate "$@"
維持您的東西更新到最新
要將本地版本更新到最新,只要再次使用上方的指令即可。它們會自己從 KDE 版本庫取得新的變更,並將它們編譯/安裝到本地目錄中。
開發!
現在,剩下的問題是:怎麽開發是最好的?
如果您要開發 Kate,使用 Kate 來開發它自己也是很自然的事。
有了上方的準備,這很簡單,只要開啟您的主分支版 Kate,然後給它 Kate 的編譯目錄:
kate ~/projects/kde/build/kate
另外一種方式,您也可以從終端機瀏覽到該目錄然後在裡面開啟 Kate,Kate 會自動開啟目前目錄:
cd ~/projects/kde/build/kate
kate
為了最好的體驗,請至少啟用專案和 LSP 外掛程式。如果您想要有圖形介面編譯整合,也可以啟用編譯外掛程式。
最後您會進到如下方的 Kate 新視窗。
在底部「目前專案」工具檢視您有預設的兩個終端機。第一個終端機位於您的編譯目錄中,在此可以執行 ninja 或 ninja install 指令等等。第二個終端機位於您的原始碼目錄,可以執行 git 指令列。
使用上方設定,(假設有安裝 clangd 的話)LSP 外掛程式應該不用多做設定就會正常運作。
也可以啟用其他好用工具,像是專案內開啟、搜尋與取代,並且設定正確的編譯目標。
貢獻回來吧!
Feel free to create a merge request at invent.kde.org. For more information see Join Us.
取得支援?
If you have questions you can ask them on our mailing list kwrite-devel@kde.org and/or join #kate on irc.libera.chat.
更多資訊請見取得幫助。
在 Linux 上從原始碼編譯 Windows
To build the KF5 based Kate/KWrite you can follow the guide on KDE on Windows.
在 Linux 上從原始碼編譯 macOS
To build the KF5 based Kate/KWrite you can follow the guide on KDE on macOS.