ridiculousfish
f35f2fe110
Mark the benchmark as using the terminal
...
Prevents buffering all output from the command.
2019-04-13 12:40:12 -07:00
ridiculousfish
c39950e49a
Add benchmark target to CMake
...
This adds a benchmark target to CMake to run the new benchmarks.
example: ninja benchmark
2019-04-10 14:35:59 -07:00
ridiculousfish
b6555a0dc4
Add print-rusage-self to fish
...
This adds an option --print-rusage-self to the fish executable. When set,
this option prints some getrusage stats to the console in a human-readable
way. This will be used by upcoming benchmarking support.
2019-04-10 14:33:45 -07:00
ridiculousfish
93cc99d6d0
Teach CMake to tell Sphinx where fish_indent is
2019-04-08 19:11:10 -07:00
ridiculousfish
5b2c741f6c
Add fish_indent_lexer.py
...
This is a pygments lexer that shells out to fish_indent
2019-04-08 19:09:53 -07:00
ridiculousfish
23d88e0e03
Add fish_test_helper executable
...
In tests we would like to arrange for an executable to invoke certain
system calls, e.g. to claim or relinquish control of the terminal. This is
annoying to do portably via e.g. perl. fish_test_helper is a little
program where we can add custom commands to make it act in certain ways.
2019-04-07 09:20:19 -07:00
Fabian Homborg
bfb61879cd
Do create installation directories that already exist
...
Reverts 71329a250b
.
That tried to fix problems with pkgconfig by not recreating it.
Instead, use the function we already have for not trying too hard to
create a directory.
Fixes #5735 .
2019-03-12 18:50:45 +01:00
David Adam
08fd8b6472
cmake: fix prebuilt documentation detection and installation
2019-03-04 22:06:09 +08:00
David Adam
73d9f80772
cmake: drop obsolete paths for prebuilt documentation
2019-02-28 22:04:54 +11:00
David Adam
9acfe0261b
cmake: install system manpath manpages
...
The build path of these files moved under Sphinx.
2019-02-28 22:03:57 +11:00
Fabian Homborg
3674efad0b
Fix manpage directory
...
This installed files in man/ directly, instead of in man/man1/, so
they weren't installed.
See #5696 .
2019-02-25 21:16:42 +01:00
Fabian Homborg
0e82fb8c47
Install sphinx files
...
Sphinx put the files into sphinx-root, which wasn't being installed.
Instead, use user_doc again, which we already used before.
Belongs to #5696 .
2019-02-25 21:05:02 +01:00
ridiculousfish
4da38df43b
Remove last vestiges of Doxygen from Docs.cmake
2019-02-24 19:02:39 -08:00
ridiculousfish
2ec33be90f
CMake BUILD_DOCS option to look for sphinx instead of Doxygen
2019-02-24 18:58:25 -08:00
ridiculousfish
c46f02e01e
Initial sphinx file import
2019-02-24 18:15:23 -08:00
David Adam
d44308388f
cmake: use the check state stack for __nl_msg_cat_cntr checks
2019-02-19 21:35:30 +08:00
David Adam
7200f7ff4a
Revert "Drop hard requirement on explicit -lpthread
support"
...
This reverts commit b402b635a9f7466616cef6e2b9cfd55a6e7068c5; as discussed in #5512 it is not
required.
2019-02-12 22:30:53 +08:00
ridiculousfish
b952606430
Teach CMake Mac App build to dynamically derive the version
...
Populate CFBundleShortVersionString with the fish version from
git_version_gen.sh. Note this happens at build generation time, not at
build time.
2019-02-05 22:14:43 -08:00
ridiculousfish
e0396d8ef8
CMake support for building Mac app
2019-02-05 22:14:43 -08:00
Mahmoud Al-Qudsi
462cb6044c
Use standard __CYGWIN__ define for Cygwin detection
2019-01-21 20:06:16 -06:00
Mahmoud Al-Qudsi
16a94db702
Check for -Werror=unguarded_availability
support before forcing it
...
The compiler flag `-Werror=unguarded_availability` was hard-coded for
macOS, but is not supported by GCC on macOS 10.10 (Yosemite). Test for
support with CHECK_CXX_COMPILER_FLAG before forcing it.
2019-01-10 20:03:38 -06:00
Mahmoud Al-Qudsi
b402b635a9
Drop hard requirement on explicit -lpthread
support
...
Closes #5512
2019-01-10 20:03:38 -06:00
Mahmoud Al-Qudsi
4f196eef64
Bypass mutually exclusive CMake checks
...
There are some redundant CMake checks, in the sense that they are either
not needed or cannot possibly match if a previous check already passed.
2019-01-04 14:46:36 -06:00
Mahmoud Al-Qudsi
5196a42165
Prevent CMake configure checks for affecting future checks
...
Using CMAKE_PUSH_CHECK_STATE/CMAKE_POP_CHECK_STATE to prevent CMake
checks from permanently altering the environment used by future checks.
2019-01-04 14:30:14 -06:00
Mahmoud Al-Qudsi
490432c177
Globally set the _GNU_SOURCE define for CMake configuration checks
2019-01-04 14:18:02 -06:00
Mahmoud Al-Qudsi
380bae80bf
Fix wcstod_l
detection under Linux
...
This was broken in a8eb02f9f5
when the
detection was corrected for FreeBSD. This patch makes the detection work
for both Linux and FreeBSD instead of one or the other (tested).
2019-01-02 19:07:53 -06:00
Mahmoud Al-Qudsi
7af0cad23d
Fall back to CMake's pkg-config-based search for curses
...
CMake seems to have trouble finding libraries from multiarch packages
that do not have the compatibility symlink installed to the
arch-independent library directory. Users must either manually supply
the path to the library in question via command-line parameters or we
can fall back to CMake's alternate method of finding packages based off
of pkg-config rather than using the hard-coded `FindCurses` CMake module
specific to the CMake version/distribution installed.
2019-01-02 18:38:55 -06:00
Mahmoud Al-Qudsi
74422e476b
Define _GNU_SOURCE for wcstod_l check
2019-01-02 14:05:49 -06:00
Mahmoud Al-Qudsi
d1913f0df0
Add workaround for Cygwin process management and job control bugs
...
We cannot wait by pgroup under Cygwin for unknown reasons. Always
wait on jobs by individual processes. See code for more information.
2019-01-02 00:14:07 -06:00
Fabian Homborg
a608e5d581
cmake: Check for TPARM_VARARGS
2018-12-31 14:24:22 +01:00
Mahmoud Al-Qudsi
a8eb02f9f5
Fix wcstod_l detection under FreeBSD
2018-12-31 02:31:48 -06:00
David Adam
b60a9d8c4a
pcre2: move to PCRE2 10.32
...
Closes #5353 .
2018-12-29 22:54:40 +08:00
Fabian Homborg
ffab420e43
Add fallback wcstod_l for musl
...
Just sets locale to "C" (because that's the only one we need), does
wcstod and resets the locale.
No idea why uselocale(loc) failed for me, but it did.
Fixes #5407 .
2018-12-12 15:12:12 +01:00
David Adam
4f3786f8d0
Build system: add extra sysconf directories
...
Closes #5235 .
2018-11-04 21:14:06 +08:00
David Adam
1e0fab4fa4
git_version_gen: add support for out-of-tree tarballs
...
Closes #4122 .
2018-08-28 23:10:24 +08:00
ridiculousfish
11502c0d36
Teach cmake to run expect tests
...
Fixes #4794
2018-07-21 15:43:31 -07:00
Mahmoud Al-Qudsi
e26d5418af
Revert "Blow away existing $fish_data_dir on (re)install"
...
This reverts commit e35983438e
.
Reopens #4314 . Closes #5007 .
# Conflicts:
# share/config.fish
2018-05-31 22:41:49 -05:00
Mahmoud Al-Qudsi
e35983438e
Blow away existing $fish_data_dir on (re)install
...
Fixes #4314 (under cmake, at least)
2018-04-14 21:01:52 -05:00
David Adam
0f59e42802
[cmake] support prebuilt documentation in out-of-tree builds
2018-03-24 22:38:38 +08:00
David Adam
46e9bf86b8
[cmake] fix dependencies in documentation build
...
Closes two race conditions in parallel builds.
2018-03-24 22:38:38 +08:00
David Adam
0572b29f26
[cmake] install manual from binary directory
...
Fixes out-of-tree builds.
2018-03-24 22:38:38 +08:00
David Adam
b819f38e83
[cmake] fix selection of manual pages for installation
2018-03-24 22:38:38 +08:00
David Adam
a6d2b06529
[cmake] use full paths for extra configuration/function/completion dirs
2018-03-24 22:38:38 +08:00
David Adam
625ef5d734
[cmake] fix generation of fish pkgconfig file
...
Use `printf` instead of the non-portable `echo -n`.
2018-03-24 22:38:38 +08:00
David Adam
072bbe7e5d
[cmake] add doc target to ALL
...
Closes #4809 .
2018-03-24 22:38:38 +08:00
David Adam
b5aea3fd8b
Revert "[cmake] Fix installing docs"
...
INSTALL_DOCS is not a controllable option, and is only used to indicate
whether they will be installed or not.
This reverts commit e800b18ee9
.
2018-03-13 22:08:05 +08:00
Fabian Homborg
e800b18ee9
[cmake] Fix installing docs
...
Installing docs is not optional if they have been built
2018-03-13 12:55:05 +01:00
ridiculousfish
df4b03d859
Fix CMake documentation build path
...
This fixes a variety of issues related to building the documentation
with CMake. In particular it cleans up the dependency management and
fixes some issues where the documentation build was using generated
files from the source directory.
2018-03-05 12:13:34 -08:00
Mahmoud Al-Qudsi
000892e315
Use constexpr for is_windows_subsystem_for_linux()
...
To guarantee that at runtime there will be no branching, using a CMAKE
test/define combined with a constexpr wrapper for code-friendliness.
2018-03-04 21:13:31 -06:00
Mahmoud Al-Qudsi
71329a250b
[cmake] Don't create installation directories that already exist
...
fish's cmake install routines were attempting to create system
directories that already existed, an operation for which the permissions
to do so may not be available (e.g. /usr/local/share/pkgconfig)
This commit first checks if a directory exists before creating it.
2018-03-04 15:46:29 -06:00