build fish for current host

step0、参考

step1、安装依赖

所有时Terminal + Shell + GNU CoreUtils
下载时cURL
解压时tar + gzip
编译时cmakeninja、 ( gcc + g++ ) / GCC | Clang / LLVM
运行时
  • glibc ( libc.solibm.solibdl.solibpthread.sold-linux-x86-64.so )
  • GCC ( libstdc++.solibgcc_s.so )
  • pcre2 ( libpcre2-32.so )
  • ncurses ( libtinfo.so )

step2、使用curl命令下载fish源码包 (

curl -LO https://github.com/fish-shell/fish-shell/releases/download/3.1.2/fish-3.1.2.tar.gz

step3、使用tar解压fish源码包

tar vxf fish-3.1.2.tar.gz

step4、进入fish-3.1.2目录

cd fish-3.1.2

step5、查看fish-3.1.2目录中的内容

step6、使用cmake命令配置编译参数

cmake [option]... -D<变量>=<值> -S <sourceDIR> -B <buildDIR>
本软件特有的变量类型默认值说明
WITH_GETTEXTBOOLON是否使用gettext
PCRE2_INCLUDE_DIRPATH设置pcre2头文件的搜索路径
PCRE2_LIBRARY_RELEASEFILEPATH设置libpcre2-32.{a | so | dylib}的路径
ZLIB_INCLUDE_DIRPATH设置zlib头文件的搜索路径
ZLIB_LIBRARY_RELEASEFILEPATH设置libz.{a | so | dylib}的路径
BZIP2_INCLUDE_DIRPATH设置bzip2.h头文件的搜索路径
BZIP2_LIBRARY_RELEASEFILEPATH设置libbz2.{a | so | dylib}的路径
READLINE_INCLUDE_DIRPATH设置readline头文件的搜索路径
READLINE_LIBRARY_RELEASEFILEPATH设置libreadline.{a | so | dylib}的路径
CURSES_INCLUDE_DIRPATH设置ncurses头文件的搜索路径
CURSES_NCURSES_LIBRARYFILEPATH设置libncurses.{a | so | dylib}的路径
CURSES_FORM_LIBRARYFILEPATH设置libform.{a | so | dylib}的路径

示例:

cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -G Ninja \
    -Wno-dev \
    -S . \
    -B build.d

step7、使用cmake命令进行编译

cmake --build build.d

step8、使用cmake命令进行安装

cmake --install build.d