Shorten compilation times

Now fish shell stores version is a small file called by other files.
This means that a slight change which modifies one file won't cause
many of files to recompile.

The compilation unit is intentionally small, this is by design. The
smaller it is, the faster it will recompile, and it will be compiled
a lot.
This commit is contained in:
Konrad Borowski 2014-05-01 09:46:27 +02:00
parent a7facfb760
commit f8e35de18d
8 changed files with 81 additions and 52 deletions

View file

@ -90,10 +90,10 @@ FISH_OBJS := function.o builtin.o complete.o env.o exec.o expand.o \
signal.o io.o parse_util.o common.o screen.o path.o autoload.o \ signal.o io.o parse_util.o common.o screen.o path.o autoload.o \
parser_keywords.o iothread.o color.o postfork.o \ parser_keywords.o iothread.o color.o postfork.o \
builtin_test.o parse_tree.o parse_productions.o parse_execution.cpp \ builtin_test.o parse_tree.o parse_productions.o parse_execution.cpp \
pager.cpp utf8.o pager.cpp utf8.o fish_version.o
FISH_INDENT_OBJS := fish_indent.o print_help.o common.o \ FISH_INDENT_OBJS := fish_indent.o print_help.o common.o \
parser_keywords.o wutil.o tokenizer.o parser_keywords.o wutil.o tokenizer.o fish_version.o
# #
# Additional files used by builtin.o # Additional files used by builtin.o
@ -125,7 +125,7 @@ FISHD_OBJS := fishd.o env_universal_common.o wutil.o print_help.o \
MIME_OBJS := mimedb.o print_help.o xdgmimealias.o xdgmime.o \ MIME_OBJS := mimedb.o print_help.o xdgmimealias.o xdgmime.o \
xdgmimeglob.o xdgmimeint.o xdgmimemagic.o xdgmimeparent.o wutil.o \ xdgmimeglob.o xdgmimeint.o xdgmimemagic.o xdgmimeparent.o wutil.o \
common.o common.o fish_version.o
# #
@ -228,7 +228,7 @@ FISH-BUILD-VERSION-FILE: FORCE
-include FISH-BUILD-VERSION-FILE -include FISH-BUILD-VERSION-FILE
CPPFLAGS += -DFISH_BUILD_VERSION=\"$(FISH_BUILD_VERSION)\" CPPFLAGS += -DFISH_BUILD_VERSION=\"$(FISH_BUILD_VERSION)\"
.PHONY: FORCE .PHONY: FORCE
env.o fish.o fish_indent.o fishd.o mimedb.o: FISH-BUILD-VERSION-FILE fish_version.o: FISH-BUILD-VERSION-FILE
# #
@ -776,14 +776,6 @@ clean:
autoload.o: config.h autoload.h common.h util.h lru.h wutil.h signal.h env.h autoload.o: config.h autoload.h common.h util.h lru.h wutil.h signal.h env.h
autoload.o: exec.h proc.h io.h parse_tree.h tokenizer.h parse_constants.h autoload.o: exec.h proc.h io.h parse_tree.h tokenizer.h parse_constants.h
builtin.o: config.h signal.h fallback.h util.h wutil.h common.h builtin.h
builtin.o: io.h function.h event.h complete.h proc.h parse_tree.h tokenizer.h
builtin.o: parse_constants.h parser.h reader.h highlight.h env.h color.h
builtin.o: wgetopt.h sanity.h wildcard.h expand.h input_common.h input.h
builtin.o: intern.h exec.h parse_util.h autoload.h lru.h parser_keywords.h
builtin.o: path.h history.h builtin_set.cpp builtin_commandline.cpp
builtin.o: builtin_complete.cpp builtin_ulimit.cpp builtin_jobs.cpp
builtin.o: builtin_set_color.cpp output.h screen.h builtin_printf.cpp
builtin_commandline.o: config.h signal.h fallback.h util.h wutil.h common.h builtin_commandline.o: config.h signal.h fallback.h util.h wutil.h common.h
builtin_commandline.o: builtin.h io.h wgetopt.h reader.h complete.h builtin_commandline.o: builtin.h io.h wgetopt.h reader.h complete.h
builtin_commandline.o: highlight.h env.h color.h proc.h parse_tree.h builtin_commandline.o: highlight.h env.h color.h proc.h parse_tree.h
@ -794,37 +786,45 @@ builtin_complete.o: config.h signal.h fallback.h util.h wutil.h common.h
builtin_complete.o: builtin.h io.h complete.h wgetopt.h parser.h proc.h builtin_complete.o: builtin.h io.h complete.h wgetopt.h parser.h proc.h
builtin_complete.o: parse_tree.h tokenizer.h parse_constants.h event.h builtin_complete.o: parse_tree.h tokenizer.h parse_constants.h event.h
builtin_complete.o: function.h reader.h highlight.h env.h color.h builtin_complete.o: function.h reader.h highlight.h env.h color.h
builtin.o: config.h signal.h fallback.h util.h wutil.h common.h builtin.h
builtin.o: io.h function.h event.h complete.h proc.h parse_tree.h tokenizer.h
builtin.o: parse_constants.h parser.h reader.h highlight.h env.h color.h
builtin.o: wgetopt.h sanity.h wildcard.h expand.h input_common.h input.h
builtin.o: intern.h exec.h parse_util.h autoload.h lru.h parser_keywords.h
builtin.o: path.h history.h builtin_set.cpp builtin_commandline.cpp
builtin.o: builtin_complete.cpp builtin_ulimit.cpp builtin_jobs.cpp
builtin.o: builtin_set_color.cpp output.h screen.h builtin_printf.cpp
builtin_jobs.o: config.h fallback.h signal.h util.h wutil.h common.h builtin_jobs.o: config.h fallback.h signal.h util.h wutil.h common.h
builtin_jobs.o: builtin.h io.h proc.h parse_tree.h tokenizer.h builtin_jobs.o: builtin.h io.h proc.h parse_tree.h tokenizer.h
builtin_jobs.o: parse_constants.h parser.h event.h function.h wgetopt.h builtin_jobs.o: parse_constants.h parser.h event.h function.h wgetopt.h
builtin_printf.o: common.h util.h builtin_printf.o: common.h util.h
builtin_set.o: config.h signal.h fallback.h util.h wutil.h common.h builtin.h
builtin_set.o: io.h env.h expand.h wgetopt.h proc.h parse_tree.h tokenizer.h
builtin_set.o: parse_constants.h parser.h event.h function.h
builtin_set_color.o: config.h builtin.h util.h io.h common.h color.h output.h builtin_set_color.o: config.h builtin.h util.h io.h common.h color.h output.h
builtin_set_color.o: screen.h highlight.h env.h builtin_set_color.o: screen.h highlight.h env.h
builtin_set.o: config.h signal.h fallback.h util.h wutil.h common.h builtin.h
builtin_set.o: io.h env.h expand.h parse_constants.h wgetopt.h proc.h
builtin_set.o: parse_tree.h tokenizer.h parser.h event.h function.h
builtin_test.o: config.h common.h util.h builtin.h io.h wutil.h proc.h builtin_test.o: config.h common.h util.h builtin.h io.h wutil.h proc.h
builtin_test.o: signal.h parse_tree.h tokenizer.h parse_constants.h builtin_test.o: signal.h parse_tree.h tokenizer.h parse_constants.h
builtin_ulimit.o: config.h fallback.h signal.h util.h builtin.h io.h common.h builtin_ulimit.o: config.h fallback.h signal.h util.h builtin.h io.h common.h
builtin_ulimit.o: wgetopt.h builtin_ulimit.o: wgetopt.h
color.o: color.h config.h common.h util.h fallback.h signal.h color.o: color.h config.h common.h util.h fallback.h signal.h
common.o: config.h fallback.h signal.h util.h wutil.h common.h expand.h common.o: config.h fallback.h signal.h util.h wutil.h common.h expand.h
common.o: proc.h io.h parse_tree.h tokenizer.h parse_constants.h wildcard.h common.o: parse_constants.h proc.h io.h parse_tree.h tokenizer.h wildcard.h
common.o: complete.h parser.h event.h function.h util.cpp fallback.cpp common.o: complete.h parser.h event.h function.h util.cpp fallback.cpp
complete.o: config.h signal.h fallback.h util.h tokenizer.h common.h complete.o: config.h signal.h fallback.h util.h tokenizer.h common.h
complete.o: wildcard.h expand.h complete.h proc.h io.h parse_tree.h complete.o: wildcard.h expand.h parse_constants.h complete.h proc.h io.h
complete.o: parse_constants.h parser.h event.h function.h builtin.h env.h complete.o: parse_tree.h parser.h event.h function.h builtin.h env.h exec.h
complete.o: exec.h reader.h highlight.h color.h history.h wutil.h intern.h complete.o: reader.h highlight.h color.h history.h wutil.h intern.h
complete.o: parse_util.h autoload.h lru.h parser_keywords.h path.h iothread.h complete.o: parse_util.h autoload.h lru.h parser_keywords.h path.h iothread.h
env.o: config.h signal.h fallback.h util.h wutil.h common.h proc.h io.h env.o: config.h signal.h fallback.h util.h wutil.h common.h proc.h io.h
env.o: parse_tree.h tokenizer.h parse_constants.h env.h sanity.h expand.h env.o: parse_tree.h tokenizer.h parse_constants.h env.h sanity.h expand.h
env.o: history.h reader.h complete.h highlight.h color.h parser.h event.h env.o: history.h reader.h complete.h highlight.h color.h parser.h event.h
env.o: function.h env_universal.h env_universal_common.h input.h env.o: function.h env_universal.h env_universal_common.h input.h
env.o: input_common.h path.h env.o: input_common.h path.h fish_version.h
env_universal.o: config.h signal.h fallback.h util.h common.h wutil.h
env_universal.o: env_universal_common.h env_universal.h
env_universal_common.o: config.h signal.h fallback.h util.h common.h wutil.h env_universal_common.o: config.h signal.h fallback.h util.h common.h wutil.h
env_universal_common.o: env_universal_common.h env_universal_common.o: utf8.h env_universal_common.h env.h
env_universal.o: config.h signal.h fallback.h util.h common.h wutil.h
env_universal.o: env_universal_common.h env.h env_universal.h
event.o: config.h signal.h fallback.h util.h wutil.h common.h function.h event.o: config.h signal.h fallback.h util.h wutil.h common.h function.h
event.o: event.h input_common.h proc.h io.h parse_tree.h tokenizer.h event.o: event.h input_common.h proc.h io.h parse_tree.h tokenizer.h
event.o: parse_constants.h parser.h event.o: parse_constants.h parser.h
@ -841,17 +841,19 @@ fish.o: config.h signal.h fallback.h util.h common.h reader.h io.h complete.h
fish.o: highlight.h env.h color.h builtin.h function.h event.h wutil.h fish.o: highlight.h env.h color.h builtin.h function.h event.h wutil.h
fish.o: sanity.h proc.h parse_tree.h tokenizer.h parse_constants.h parser.h fish.o: sanity.h proc.h parse_tree.h tokenizer.h parse_constants.h parser.h
fish.o: expand.h intern.h exec.h output.h screen.h history.h path.h input.h fish.o: expand.h intern.h exec.h output.h screen.h history.h path.h input.h
fish.o: input_common.h fish.o: input_common.h fish_version.h
fishd.o: config.h signal.h fallback.h util.h common.h wutil.h
fishd.o: env_universal_common.h env.h path.h print_help.h fish_version.cpp
fishd.o: fish_version.h
fish_indent.o: config.h fallback.h signal.h util.h common.h wutil.h fish_indent.o: config.h fallback.h signal.h util.h common.h wutil.h
fish_indent.o: tokenizer.h print_help.h parser_keywords.h fish_indent.o: tokenizer.h print_help.h parser_keywords.h fish_version.h
fish_tests.o: config.h signal.h fallback.h util.h common.h proc.h io.h fish_tests.o: config.h signal.h fallback.h util.h common.h proc.h io.h
fish_tests.o: parse_tree.h tokenizer.h parse_constants.h reader.h complete.h fish_tests.o: parse_tree.h tokenizer.h parse_constants.h reader.h complete.h
fish_tests.o: highlight.h env.h color.h builtin.h function.h event.h fish_tests.o: highlight.h env.h color.h builtin.h function.h event.h
fish_tests.o: autoload.h lru.h wutil.h expand.h parser.h output.h screen.h fish_tests.o: autoload.h lru.h wutil.h expand.h parser.h output.h screen.h
fish_tests.o: exec.h path.h history.h iothread.h postfork.h parse_util.h fish_tests.o: exec.h path.h history.h iothread.h postfork.h parse_util.h
fish_tests.o: pager.h fish_tests.o: pager.h input.h input_common.h utf8.h
fishd.o: config.h signal.h fallback.h util.h common.h wutil.h fish_version.o: fish_version.h
fishd.o: env_universal_common.h path.h env.h print_help.h
function.o: config.h signal.h wutil.h common.h util.h fallback.h function.h function.o: config.h signal.h wutil.h common.h util.h fallback.h function.h
function.o: event.h proc.h io.h parse_tree.h tokenizer.h parse_constants.h function.o: event.h proc.h io.h parse_tree.h tokenizer.h parse_constants.h
function.o: parser.h intern.h reader.h complete.h highlight.h env.h color.h function.o: parser.h intern.h reader.h complete.h highlight.h env.h color.h
@ -862,15 +864,16 @@ highlight.o: parse_constants.h parser.h event.h function.h parse_util.h
highlight.o: autoload.h lru.h parser_keywords.h builtin.h expand.h sanity.h highlight.o: autoload.h lru.h parser_keywords.h builtin.h expand.h sanity.h
highlight.o: complete.h output.h screen.h wildcard.h path.h history.h highlight.o: complete.h output.h screen.h wildcard.h path.h history.h
history.o: config.h fallback.h signal.h util.h sanity.h tokenizer.h common.h history.o: config.h fallback.h signal.h util.h sanity.h tokenizer.h common.h
history.o: reader.h io.h complete.h highlight.h env.h color.h wutil.h history.o: reader.h io.h complete.h highlight.h env.h color.h parse_tree.h
history.o: history.h intern.h path.h autoload.h lru.h iothread.h history.o: parse_constants.h wutil.h history.h intern.h path.h autoload.h
history.o: lru.h iothread.h
input_common.o: config.h fallback.h signal.h util.h common.h wutil.h
input_common.o: input_common.h env_universal.h env_universal_common.h env.h
input_common.o: iothread.h
input.o: config.h signal.h fallback.h util.h wutil.h common.h reader.h io.h input.o: config.h signal.h fallback.h util.h wutil.h common.h reader.h io.h
input.o: complete.h highlight.h env.h color.h proc.h parse_tree.h tokenizer.h input.o: complete.h highlight.h env.h color.h proc.h parse_tree.h tokenizer.h
input.o: parse_constants.h sanity.h input_common.h input.h parser.h event.h input.o: parse_constants.h sanity.h input_common.h input.h parser.h event.h
input.o: function.h expand.h output.h screen.h intern.h input.o: function.h expand.h output.h screen.h intern.h
input_common.o: config.h fallback.h signal.h util.h common.h wutil.h
input_common.o: input_common.h env_universal.h env_universal_common.h
input_common.o: iothread.h
intern.o: config.h fallback.h signal.h util.h wutil.h common.h intern.h intern.o: config.h fallback.h signal.h util.h wutil.h common.h intern.h
io.o: config.h fallback.h signal.h util.h wutil.h common.h exec.h proc.h io.h io.o: config.h fallback.h signal.h util.h wutil.h common.h exec.h proc.h io.h
io.o: parse_tree.h tokenizer.h parse_constants.h io.o: parse_tree.h tokenizer.h parse_constants.h
@ -880,10 +883,11 @@ kill.o: config.h signal.h fallback.h util.h wutil.h common.h kill.h proc.h
kill.o: io.h parse_tree.h tokenizer.h parse_constants.h sanity.h env.h exec.h kill.o: io.h parse_tree.h tokenizer.h parse_constants.h sanity.h env.h exec.h
kill.o: path.h kill.o: path.h
mimedb.o: config.h xdgmime.h fallback.h signal.h util.h print_help.h mimedb.o: config.h xdgmime.h fallback.h signal.h util.h print_help.h
mimedb.o: fish_version.h
output.o: config.h signal.h fallback.h util.h wutil.h common.h expand.h output.o: config.h signal.h fallback.h util.h wutil.h common.h expand.h
output.o: output.h screen.h highlight.h env.h color.h output.o: parse_constants.h output.h screen.h highlight.h env.h color.h
pager.o: config.h pager.h complete.h util.h common.h screen.h highlight.h pager.o: config.h pager.h complete.h util.h common.h screen.h highlight.h
pager.o: env.h color.h input_common.h pager.o: env.h color.h reader.h io.h input_common.h wutil.h
parse_execution.o: parse_execution.h config.h util.h parse_tree.h common.h parse_execution.o: parse_execution.h config.h util.h parse_tree.h common.h
parse_execution.o: tokenizer.h parse_constants.h proc.h signal.h io.h parse_execution.o: tokenizer.h parse_constants.h proc.h signal.h io.h
parse_execution.o: parse_util.h autoload.h lru.h complete.h wildcard.h parse_execution.o: parse_util.h autoload.h lru.h complete.h wildcard.h
@ -891,13 +895,6 @@ parse_execution.o: expand.h builtin.h parser.h event.h function.h reader.h
parse_execution.o: highlight.h env.h color.h wutil.h exec.h path.h parse_execution.o: highlight.h env.h color.h wutil.h exec.h path.h
parse_productions.o: parse_productions.h parse_tree.h config.h util.h parse_productions.o: parse_productions.h parse_tree.h config.h util.h
parse_productions.o: common.h tokenizer.h parse_constants.h parse_productions.o: common.h tokenizer.h parse_constants.h
parse_tree.o: parse_productions.h parse_tree.h config.h util.h common.h
parse_tree.o: tokenizer.h parse_constants.h fallback.h signal.h wutil.h
parse_tree.o: proc.h io.h
parse_util.o: config.h fallback.h signal.h util.h wutil.h common.h
parse_util.o: tokenizer.h parse_util.h autoload.h lru.h parse_tree.h
parse_util.o: parse_constants.h expand.h intern.h exec.h proc.h io.h env.h
parse_util.o: wildcard.h complete.h parser.h event.h function.h
parser.o: config.h signal.h fallback.h util.h common.h wutil.h proc.h io.h parser.o: config.h signal.h fallback.h util.h common.h wutil.h proc.h io.h
parser.o: parse_tree.h tokenizer.h parse_constants.h parser.h event.h parser.o: parse_tree.h tokenizer.h parse_constants.h parser.h event.h
parser.o: function.h parser_keywords.h exec.h wildcard.h expand.h complete.h parser.o: function.h parser_keywords.h exec.h wildcard.h expand.h complete.h
@ -906,8 +903,15 @@ parser.o: env_universal.h env_universal_common.h intern.h parse_util.h
parser.o: autoload.h lru.h path.h parse_execution.h parser.o: autoload.h lru.h path.h parse_execution.h
parser_keywords.o: config.h fallback.h signal.h common.h util.h parser_keywords.o: config.h fallback.h signal.h common.h util.h
parser_keywords.o: parser_keywords.h parser_keywords.o: parser_keywords.h
parse_tree.o: parse_productions.h parse_tree.h config.h util.h common.h
parse_tree.o: tokenizer.h parse_constants.h fallback.h signal.h wutil.h
parse_tree.o: proc.h io.h
parse_util.o: config.h fallback.h signal.h util.h wutil.h common.h
parse_util.o: tokenizer.h parse_util.h autoload.h lru.h parse_tree.h
parse_util.o: parse_constants.h expand.h intern.h exec.h proc.h io.h env.h
parse_util.o: wildcard.h complete.h parser.h event.h function.h builtin.h
path.o: config.h fallback.h signal.h util.h common.h env.h wutil.h path.h path.o: config.h fallback.h signal.h util.h common.h env.h wutil.h path.h
path.o: expand.h path.o: expand.h parse_constants.h
postfork.o: signal.h postfork.h config.h common.h util.h proc.h io.h postfork.o: signal.h postfork.h config.h common.h util.h proc.h io.h
postfork.o: parse_tree.h tokenizer.h parse_constants.h wutil.h iothread.h postfork.o: parse_tree.h tokenizer.h parse_constants.h wutil.h iothread.h
postfork.o: exec.h postfork.o: exec.h
@ -926,20 +930,21 @@ sanity.o: config.h signal.h fallback.h util.h common.h sanity.h proc.h io.h
sanity.o: parse_tree.h tokenizer.h parse_constants.h history.h wutil.h sanity.o: parse_tree.h tokenizer.h parse_constants.h history.h wutil.h
sanity.o: reader.h complete.h highlight.h env.h color.h kill.h sanity.o: reader.h complete.h highlight.h env.h color.h kill.h
screen.o: config.h fallback.h signal.h common.h util.h wutil.h output.h screen.o: config.h fallback.h signal.h common.h util.h wutil.h output.h
screen.o: screen.h highlight.h env.h color.h pager.h complete.h screen.o: screen.h highlight.h env.h color.h pager.h complete.h reader.h io.h
signal.o: config.h signal.h common.h util.h fallback.h wutil.h event.h signal.o: config.h signal.h common.h util.h fallback.h wutil.h event.h
signal.o: reader.h io.h complete.h highlight.h env.h color.h proc.h signal.o: reader.h io.h complete.h highlight.h env.h color.h proc.h
signal.o: parse_tree.h tokenizer.h parse_constants.h signal.o: parse_tree.h tokenizer.h parse_constants.h
tokenizer.o: config.h fallback.h signal.h util.h wutil.h common.h tokenizer.h tokenizer.o: config.h fallback.h signal.h util.h wutil.h common.h tokenizer.h
utf8.o: utf8.h
util.o: config.h fallback.h signal.h util.h common.h wutil.h util.o: config.h fallback.h signal.h util.h common.h wutil.h
wgetopt.o: config.h wgetopt.h wutil.h common.h util.h fallback.h signal.h wgetopt.o: config.h wgetopt.h wutil.h common.h util.h fallback.h signal.h
wildcard.o: config.h fallback.h signal.h util.h wutil.h common.h complete.h wildcard.o: config.h fallback.h signal.h util.h wutil.h common.h complete.h
wildcard.o: wildcard.h expand.h reader.h io.h highlight.h env.h color.h wildcard.o: wildcard.h expand.h parse_constants.h reader.h io.h highlight.h
wildcard.o: exec.h proc.h parse_tree.h tokenizer.h parse_constants.h wildcard.o: env.h color.h exec.h proc.h parse_tree.h tokenizer.h
wutil.o: config.h fallback.h signal.h util.h common.h wutil.h wutil.o: config.h fallback.h signal.h util.h common.h wutil.h
xdgmimealias.o: xdgmimealias.h xdgmime.h xdgmimeint.h
xdgmime.o: xdgmime.h xdgmimeint.h xdgmimeglob.h xdgmimemagic.h xdgmimealias.h xdgmime.o: xdgmime.h xdgmimeint.h xdgmimeglob.h xdgmimemagic.h xdgmimealias.h
xdgmime.o: xdgmimeparent.h xdgmime.o: xdgmimeparent.h
xdgmimealias.o: xdgmimealias.h xdgmime.h xdgmimeint.h
xdgmimeglob.o: xdgmimeglob.h xdgmime.h xdgmimeint.h xdgmimeglob.o: xdgmimeglob.h xdgmime.h xdgmimeint.h
xdgmimeint.o: xdgmimeint.h xdgmime.h xdgmimeint.o: xdgmimeint.h xdgmime.h
xdgmimemagic.o: xdgmimemagic.h xdgmime.h xdgmimeint.h xdgmimemagic.o: xdgmimemagic.h xdgmime.h xdgmimeint.h

View file

@ -55,6 +55,7 @@
#include "path.h" #include "path.h"
#include "complete.h" #include "complete.h"
#include "fish_version.h"
/** Command used to start fishd */ /** Command used to start fishd */
#define FISHD_CMD L"fishd ^ /tmp/fishd.log.%s" #define FISHD_CMD L"fishd ^ /tmp/fishd.log.%s"
@ -599,7 +600,7 @@ void env_init(const struct config_paths_t *paths /* or NULL */)
/* /*
Set up the version variables Set up the version variables
*/ */
wcstring version = str2wcstring(FISH_BUILD_VERSION); wcstring version = str2wcstring(get_fish_version());
env_set(L"version", version.c_str(), ENV_GLOBAL); env_set(L"version", version.c_str(), ENV_GLOBAL);
env_set(L"FISH_VERSION", version.c_str(), ENV_GLOBAL); env_set(L"FISH_VERSION", version.c_str(), ENV_GLOBAL);

View file

@ -62,6 +62,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#include "history.h" #include "history.h"
#include "path.h" #include "path.h"
#include "input.h" #include "input.h"
#include "fish_version.h"
/* PATH_MAX may not exist */ /* PATH_MAX may not exist */
#ifndef PATH_MAX #ifndef PATH_MAX
@ -360,7 +361,7 @@ static int fish_parse_opt(int argc, char **argv, std::vector<std::string> *out_c
fwprintf(stderr, fwprintf(stderr,
_(L"%s, version %s\n"), _(L"%s, version %s\n"),
PACKAGE_NAME, PACKAGE_NAME,
FISH_BUILD_VERSION); get_fish_version());
exit_without_destructors(0); exit_without_destructors(0);
} }

View file

@ -40,6 +40,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#include "tokenizer.h" #include "tokenizer.h"
#include "print_help.h" #include "print_help.h"
#include "parser_keywords.h" #include "parser_keywords.h"
#include "fish_version.h"
/** /**
The string describing the single-character options accepted by the main fish binary The string describing the single-character options accepted by the main fish binary
@ -344,7 +345,7 @@ int main(int argc, char **argv)
fwprintf(stderr, fwprintf(stderr,
_(L"%ls, version %s\n"), _(L"%ls, version %s\n"),
program_name, program_name,
FISH_BUILD_VERSION); get_fish_version());
exit(0); exit(0);
} }

14
fish_version.cpp Normal file
View file

@ -0,0 +1,14 @@
/** \file fish_version.c Fish version receiver.
This file has a specific purpose of shortening compilation times when
the only change is different `git describe` version.
*/
#include "fish_version.h"
/**
* Return fish shell version.
*/
const char *get_fish_version() {
return FISH_BUILD_VERSION;
}

5
fish_version.h Normal file
View file

@ -0,0 +1,5 @@
/** \file fish_version.h
Prototype for version receiver.
*/
const char *get_fish_version();

View file

@ -74,6 +74,7 @@ time the original barrier request was sent have been received.
#include "env_universal_common.h" #include "env_universal_common.h"
#include "path.h" #include "path.h"
#include "print_help.h" #include "print_help.h"
#include "fish_version.cpp"
#ifndef HOST_NAME_MAX #ifndef HOST_NAME_MAX
/** /**
@ -936,7 +937,7 @@ int main(int argc, char ** argv)
exit(0); exit(0);
case 'v': case 'v':
debug(0, L"%ls, version %s\n", program_name, FISH_BUILD_VERSION); debug(0, L"%ls, version %s\n", program_name, get_fish_version());
exit(0); exit(0);
case '?': case '?':

View file

@ -51,6 +51,7 @@ license. Read the source code of the library for more information.
#include "fallback.h" #include "fallback.h"
#include "util.h" #include "util.h"
#include "print_help.h" #include "print_help.h"
#include "fish_version.h"
typedef std::vector<std::string> string_list_t; typedef std::vector<std::string> string_list_t;
@ -1332,7 +1333,7 @@ int main(int argc, char *argv[])
exit(0); exit(0);
case 'v': case 'v':
printf(_("%s, version %s\n"), MIMEDB, FISH_BUILD_VERSION); printf(_("%s, version %s\n"), MIMEDB, get_fish_version());
exit(0); exit(0);
case '?': case '?':