Commit Graph

110 Commits

Author SHA1 Message Date
084fabb000 deps: add a small helper to locate lists of nerdcruft dependencies 2024-07-18 09:34:50 +10:00
c688cf9dbb warnings: add GCC 14 warnings 2024-05-14 14:42:53 +10:00
f269ef3f4f cxx: only set GLIBCXX_DEBUG if using libstdc++
Some libraries detect the debug mode of the stdlib and try to integrate
with the system headers (eg, range-v3) which obviously doesn't work well
if we're using an alternative stdlib like clang's libc++.
2024-05-14 09:04:42 +10:00
4aa60cc306 cxx: enabled sized-deallocation on clang 2023-01-11 11:13:05 +10:00
1bfe9561d8 cxx: expose clang's stdlib argument as a cache variable 2023-01-11 09:31:27 +10:00
3b696fffb4 optimisation: try to set -flto=auto where available
This removes a warning from GCC about serialisation of LTO compilation
jobs.

Though it shouldn't really be using the 'auto' value as it is liable to
flood the system with jobs.
2022-08-23 13:36:01 +10:00
3b9eb09ba5 link_flag: add multiple flag search 2022-08-23 13:35:51 +10:00
0b6d0ea507 compile_flag: add multiple flag search 2022-08-23 13:35:26 +10:00
f3994915e3 optimisation: add RUNTIME_DEBUGGING option 2022-08-18 13:13:02 +10:00
aa7b95facb sanitizer: disable "pointer-compare" 2022-07-26 06:58:32 +10:00
84bfa4ae2a Cache CMAKE_CURRENT_LIST_DIR for correct paths in macros 2022-06-23 07:26:21 +10:00
54f0855312 Use CMAKE_CURRENT_LIST_DIR for local includes to simplify usage
This means that we no longer need to modify the module path for CMake
before including the root script.
2022-06-15 10:46:52 +10:00
b09ea14d5a warnings: add some clang-14 warnings 2022-05-03 09:55:29 +10:00
29b2a1539e cxx: move to C++2b 2022-05-03 09:54:27 +10:00
f7105fae36 warnings: always use suggest-override 2021-06-03 13:01:17 +10:00
ea804359fb cxx: force use of DWARF4 for breakpad compatibility 2021-05-26 12:49:53 +10:00
9843d15679 warnings: add clang-12 warnings 2021-04-19 15:09:24 +10:00
11ed45b116 warnings: add missing-field-initializers 2021-04-09 13:32:43 +10:00
60a1dc65ef FindRAGEL: bump the minimum CMake version to 3.14
We were deprecation warnings for CMake 2.x so we request a 3.x series.

No good reason that we chose 3.14 other than it's _kinda_ recent.
2020-12-03 10:05:04 +10:00
39d0ee8173 optimisation: enable SSE3 and AVX by default 2020-11-03 16:01:20 +10:00
209adacf5a optimisation: disable LTO partitioning on GCC
This dramatically decreases link times.
2020-10-21 06:08:20 +10:00
a4b3a217d6 cxx: try to enable gold and lld for gcc and clang 2020-10-20 11:53:34 +10:00
93d09dc0dc optimisation: try to enable multi-threaded LTO 2020-10-19 07:46:42 +10:00
67bee65f76 warnings: disable c99-designator warning 2020-02-17 17:40:49 +11:00
13dc2ac513 cxx: use 'auto' argument for diagnostics-color 2019-11-04 11:26:04 +11:00
c767d8f047 cxx: add build-id as a link flag 2019-11-04 11:17:09 +11:00
4de013d8e3 Enable visibility-inlines-hidden 2019-10-31 17:03:51 +11:00
985fe7fe48 cxx: disable filesystem library discovery 2019-10-22 12:00:50 +11:00
ff58436a98 cxx_stdcxxfs: Instantiate more code in the linking test
clang requires more instantiations than we currently have to exercise
their filesystem library.
2019-07-01 10:49:58 +10:00
00955b8920 nc_cxx: actually allow the empty library for stdfs detection 2019-06-28 10:24:23 +10:00
1dd0984040 nc: write fewer status messages 2019-06-22 08:37:20 +10:00
dc52274971 cxx: fix the path to the stdcxxfs test code 2019-06-20 11:45:58 +10:00
93b876dee7 nc: set a variable to point to this directory 2019-06-18 11:28:17 +10:00
e46716472a Revert "cxx: remove test for the filesystem library"
This reverts commit 874bbb2413.
2019-05-06 13:02:15 +10:00
874bbb2413 cxx: remove test for the filesystem library
We no longer use compilers that rely on this library, and the 'null'
case in library detection was broken.
2019-05-05 09:17:49 +10:00
bf694b3085 cxx: use PIC by default so we can produce dynamic libraries 2019-03-03 13:00:27 +11:00
b695b56ead optimisation: re-enable -fipa-pta by default
It appears to work alright for the core libraries as of GCC-8.2.0
2019-02-22 12:41:41 +11:00
3368ac332e warnings: disable -Wswitch-enum 2019-02-05 18:17:01 +11:00
0e00c08c0e warnings: disable -Wnoexcept temporarily 2019-02-05 12:35:39 +11:00
d09971da97 warnings: disable strict-overflow warnings
This makes view construction with sizes more tolerable.
2019-02-03 11:36:56 +11:00
68d37542d9 optimisation: downgrade unknown architecture to a warning 2019-02-02 17:02:17 +11:00
395f16c88e optimisation: remove inadvertant default value for host_cpu 2019-02-02 17:02:01 +11:00
23b5facb81 cxx: print which c++fs libraries are being attempted 2019-02-02 15:01:27 +11:00
b4db7136eb optimisation: add lto odr-type-merging and partition=none 2019-01-16 14:33:13 +11:00
525f597d64 cxx: define _FILE_OFFSET_BITS=64 2019-01-04 17:18:07 +11:00
6b7a06ddb7 cxx: don't set stdc++fs globally
Linking to stdc++fs in the wrong order can produce an ICE under GCC.
Linking globally will place stdc++fs at the front of the library list
(which is the trigger for the ICE). We rely on the clients linking
manually where required.
2019-01-02 13:42:54 +11:00
fc58c76599 optimisation: disable -fipa-pta
GCC encounters an ICE with this option in some projects (eg, edict)
2018-12-10 15:08:14 +11:00
d333042d85 warnings: add switch, and disable pragma, warnings 2018-12-06 16:09:21 +11:00
f5a4420164 build: transition from experimental filesystem 2018-12-05 19:12:02 +11:00
7eb31caa22 cxx: add libcxx-7.0.0 library for std::filesystem 2018-10-15 17:16:26 +11:00