Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
F
fzf
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to JiHu GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KMSCAKKSCFKA AKFACAMADCAS
fzf
Commits
67026718
Unverified
Commit
67026718
authored
8 years ago
by
Junegunn Choi
Browse files
Options
Downloads
Patches
Plain Diff
Add BUILD.md
parent
a71c4714
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
BUILD.md
+106
-0
106 additions, 0 deletions
BUILD.md
CHANGELOG.md
+1
-1
1 addition, 1 deletion
CHANGELOG.md
README.md
+5
-0
5 additions, 0 deletions
README.md
src/README.md
+1
-49
1 addition, 49 deletions
src/README.md
with
113 additions
and
50 deletions
BUILD.md
0 → 100644
+
106
−
0
View file @
67026718
Building fzf
============
Build instructions
------------------
### Prerequisites
-
`go`
executable in $PATH
### Using Makefile
Makefile will set up and use its own
`$GOPATH`
under the project root.
```
sh
# Source files are located in src directory
cd
src
# Build fzf binary for your platform in src/fzf
make
# Build fzf binary and copy it to bin directory
make
install
# Build 32-bit and 64-bit executables and tarballs
make release
# Build executables and tarballs for Linux using Docker
make linux
```
### Using `go get`
Alternatively, you can build fzf directly with
`go get`
command without
cloning the repository.
```
sh
go get
-u
github.com/junegunn/fzf/src/fzf
```
Build options
-------------
### With ncurses 6
The official binaries of fzf are built with ncurses 5 because it's widely
supported by different platforms. However ncurses 5 is old and has a number of
limitations.
1.
Does not support more than 256 color pairs (See
[
357
][
357
]
)
2.
Does not support italics
3.
Does not support 24-bit color
[
357
]:
https://github.com/junegunn/fzf/issues/357
But you can manually build fzf with ncurses 6 to overcome some of these
limitations. ncurses 6 supports up to 32767 color pairs (1), and supports
italics (2). To build fzf with ncurses 6, you have to install it first. On
macOS, you can use Homebrew to install it.
```
sh
brew
install
homebrew/dupes/ncurses
LDFLAGS
=
"-L/usr/local/opt/ncurses/lib"
make
install
```
### With tcell
[
tcell
][
tcell
]
is a portable alternative to ncurses and we currently use it to
build Windows binaries. tcell has many benefits but most importantly, it
supports 24-bit colors. To build fzf with tcell:
```
sh
TAGS
=
tcell make
install
```
However, note that tcell has its own issues.
-
Poor rendering performance compared to ncurses
-
Does not support bracketed-paste mode
-
Does not support italics unlike ncurses 6
-
Some wide characters are not correctly displayed
Third-party libraries used
--------------------------
-
[
ncurses
][
ncurses
]
-
[
mattn/go-runewidth
](
https://github.com/mattn/go-runewidth
)
-
Licensed under
[
MIT
](
http://mattn.mit-license.org
)
-
[
mattn/go-shellwords
](
https://github.com/mattn/go-shellwords
)
-
Licensed under
[
MIT
](
http://mattn.mit-license.org
)
-
[
mattn/go-isatty
](
https://github.com/mattn/go-isatty
)
-
Licensed under
[
MIT
](
http://mattn.mit-license.org
)
-
[
tcell
](
https://github.com/gdamore/tcell
)
-
Licensed under
[
Apache License 2.0
](
https://github.com/gdamore/tcell/blob/master/LICENSE
)
License
-------
[
MIT
](
LICENSE
)
[
install
]:
https://github.com/junegunn/fzf#installation
[
go
]:
https://golang.org/
[
gil
]:
http://en.wikipedia.org/wiki/Global_Interpreter_Lock
[
ncurses
]:
https://www.gnu.org/software/ncurses/
[
req
]:
http://golang.org/doc/install
[
tcell
]:
https://github.com/gdamore/tcell
This diff is collapsed.
Click to expand it.
CHANGELOG.md
+
1
−
1
View file @
67026718
...
...
@@ -14,7 +14,7 @@ CHANGELOG
-
Supports italics
-
*tcell*
-
24-bit color support
-
See https://github.com/junegunn/fzf/blob/master/
src/README.md#buil
d
-
See https://github.com/junegunn/fzf/blob/master/
BUILD.m
d
0.
15.8
------
...
...
This diff is collapsed.
Click to expand it.
README.md
+
5
−
0
View file @
67026718
...
...
@@ -91,6 +91,11 @@ flawlessly.
[
wsl
]:
https://blogs.msdn.microsoft.com/wsl/
Building fzf
------------
See
[
BUILD.md
](
BUILD.md
)
.
Usage
-----
...
...
This diff is collapsed.
Click to expand it.
src/README.md
+
1
−
49
View file @
67026718
...
...
@@ -50,55 +50,7 @@ starts much faster though the difference may not be noticeable.
Build
-----
```
sh
# Build fzf executables and tarballs
make release
# Install the executable to ../bin directory
make
install
# Build executables and tarballs for Linux using Docker
make linux
```
### With ncurses 6
The official binaries of fzf are built with ncurses 5 because it's widely
supported by different platforms. However ncurses 5 is old and has a number of
limitations.
1.
Does not support more than 256 color pairs (See
[
357
][
357
]
)
2.
Does not support italics
3.
Does not support 24-bit color
[
357
]:
https://github.com/junegunn/fzf/issues/357
But you can manually build fzf with ncurses 6 to overcome some of these
limitations. ncurses 6 supports up to 32767 color pairs (1), and supports
italics (2). To build fzf with ncurses 6, you have to install it first. On
macOS, you can use Homebrew to install it.
```
sh
brew
install
homebrew/dupes/ncurses
LDFLAGS
=
"-L/usr/local/opt/ncurses/lib"
make
install
```
### With tcell
[
tcell
][
tcell
]
is a portable alternative to ncurses and we currently use it to
build Windows binaries. tcell has many benefits but most importantly, it
supports 24-bit colors. To build fzf with tcell:
```
sh
TAGS
=
tcell make
install
```
However, note that tcell has its own issues.
-
Poor rendering performance compared to ncurses
-
Does not support bracketed-paste mode
-
Does not support italics unlike ncurses 6
-
Some wide characters are not correctly displayed
See
[
BUILD.md
](
../BUILD.md
)
Test
----
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment