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
16611ec091
optimisation: group instruction sets by enabled status
2018-09-14 13:00:37 +10:00
99c1ae6afd
optimisation: use more conservative architecture flags
...
We can't enable SSE3 if we want to compile for our Atom test target, so
we explicitly disable this and a few future instruction sets that we
know won't be accessible.
2018-09-13 14:53:06 +10:00