Commit graph

1357 commits

Author SHA1 Message Date
Kp 232c648024 Add Windows version resource for Windows build 2022-09-11 17:00:45 +00:00
Kp 231acfe0ae Include git-describe data in archived snapshots 2022-08-31 01:46:58 +00:00
Kp c08b35ff45 Add SConf test for C++17 attribute [[nodiscard]]
This attribute is already in use in the code, but add an explicit test
to detect at configure time if the compiler lacks support for it.
2022-08-22 01:24:49 +00:00
Kp b8313fdeb0 Filter out empty feature text fragments
Avoid generating a banner comment over an empty text fragment.
2022-08-22 01:24:49 +00:00
Kp dc674eafe8 Replace various uses of std::enable_if with C++20 requires()
Compiler error messages are generally better when reporting a misuse
that fails a requires() versus reporting a misuse that fails a
std::enable_if.  In some cases, this also makes the code clearer, and
avoids the need for dummy template parameters as a place to invoke
std::enable_if.
2022-07-30 17:42:59 +00:00
Kp e5dcb8a505 Prefer C++20 std::span over internal span for decode_row
This generates the same code before and after.
2022-07-30 17:42:59 +00:00
Kp 25d0ae8f65 Use an explicitly defaulted exact_type<T>::operator==
clang-13 needed an operator==(const exact_type<T>&) defined to avoid an
ambiguity.  Now that C++20 mode is enabled, switch to a
compiler-generated operator== instead of manually defining the
equivalent function.
2022-07-02 18:10:45 +00:00
Kp aee963c015 Switch dialect to C++20
Future commits will introduce tests for and uses of C++20 features.
2022-07-02 18:10:45 +00:00
Kp e66da397a5 Add dummy 'file' key to executable entry in compilation database
clang rejects the entire database if any entry lacks a 'file' key,
regardless of whether the entry is used.

Fixes: bc6d043f5d ("Extend SConstruct compilation_database support to cover Program()")
2022-06-05 17:44:53 +00:00
Kp 58deb3c333 Rename check_header_includes object directory to be descriptive
Change from `chi` to `check_header_includes`.
2022-05-05 02:59:11 +00:00
Kp 97f8aea2f8 Use header path for check_header_includes=1 compilation database entries 2022-05-05 02:59:11 +00:00
Kp f95bc3193f Fix traceback when using GIT='' and check_header_includes=1
`check_header_includes` requires `git` to be installed and able to list
files from a working copy.  When `GIT=''` is used, SConstruct is told
not to find or run `git`.  This caused a traceback when
`check_header_includes` tried to use git to list headers.  Reorder the
test to report a clear failure message.
2022-04-24 20:42:01 +00:00
Kp 71b4c11f8c Combine DXX_HAVE_BUILTIN_BSWAP, DXX_HAVE_BUILTIN_BSWAP16
Commit f1606f7747 ("Simplify test for
__builtin_bswap16") changed the SConstruct test to either define both
DXX_HAVE_BUILTIN_BSWAP and DXX_HAVE_BUILTIN_BSWAP16 or to define neither
of them.  Follow up that commit by removing the definition of
DXX_HAVE_BUILTIN_BSWAP16 and redirecting uses of it to
DXX_HAVE_BUILTIN_BSWAP.
2022-04-17 22:27:19 +00:00
Kp 600a4f9d62 Remove special case for negative crc32
According to the documentation, starting in Python 3, the result is
always unsigned.
2022-04-16 19:38:02 +00:00
Kp f38a1b95a1 Simplify use of git-archive handling
The result of git-archive expanding `$Format:%H` will always be a valid
string.  Repeat the format specifier, so that the call to `.format()`
can be removed.
2022-02-13 19:13:38 +00:00
Kp 72064c62e7 Add unit tests for enumerate 2022-02-13 19:13:38 +00:00
Kp 7c2b8e1e6f Save full pkg-config stdout to sconf.log
Select flags parsed from pkg-config stdout were logged to the screen and
to sconf.log.  Add a line in sconf.log which shows the full stdout of
pkg-config.
2022-02-13 19:13:38 +00:00
Kp 5f1c4b34ff Fold Darwin GL test using Python ternary expression 2022-01-30 04:38:47 +00:00
Kreeblah 28a6cd26c2
Re-add macOS OpenGL test 2022-01-28 16:46:17 -08:00
Kp 78d4a36bb4 Explicitly require support for C++11 constructor inheritance
Parts of the code already used the C++11 syntax, so compilers without it
were already unsupported.  Expand the remaining uses to the standard
syntax.
2022-01-09 15:25:42 +00:00
Kp d2478d0708 Require support for C++17 attribute [[fallthrough]] 2022-01-09 15:25:42 +00:00
Kp d8cc2fd363 Factor out definition of __get_found_includes
This does not need to be a local function.  It does not need to access
anything from the containing scope, so move it to be a static method on
the class.
2022-01-07 04:26:22 +00:00
Kp 6ac75cd618 Construct compilation database earlier
This must be set up before trying to register check_header_includes
targets.
2022-01-07 04:26:22 +00:00
Kp bc6d043f5d Extend SConstruct compilation_database support to cover Program()
This is not required by clang, but should be useful for anyone who wants
to produce a machine-readable list of all the compile commands run for
building the program.  Previously, compilation_database would describe
how to build object files from sources, but not how to link those
objects.
2022-01-07 04:26:22 +00:00
Kp 0d9f2d1136 Move GL_SILENCE_DEPRECATION from CXXFLAGS to CPPDEFINES 2021-12-23 03:21:26 +00:00
Kreeblah 522acbf398
Updated enums and added define to silence deprecation warnings 2021-12-22 13:45:35 -08:00
Kp 14891bd5af Merge branch kreeblah/macos-sign-app into master
Requested-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/issues/611>
2021-12-18 19:29:31 +00:00
Kp 52256223da Pass bundledir via a local, not a property on self 2021-12-18 03:22:09 +00:00
Kp a7f2d0a751 Change default build output directory to build/ 2021-12-17 03:14:54 +00:00
Kreeblah d39d043692
Switch password auth to use an environment variable, to avoid printing it in the SConstruct logs 2021-12-14 21:01:28 -08:00
Kreeblah 5a7d09ec41
Fixed test 2021-12-12 16:21:02 -08:00
Kreeblah 9d328ed620
Added test for if bundledir is None 2021-12-12 16:17:22 -08:00
Kreeblah e640a2116d
Reused bundledir 2021-12-12 16:09:07 -08:00
Kreeblah b696a63190
Updated to pass in binary name instead of using glob 2021-12-12 16:04:31 -08:00
Kreeblah f97d553013
Updated messages 2021-12-12 15:53:41 -08:00
Kreeblah 8d0aa0c6a8
Initial changes from feedback 2021-12-12 15:45:28 -08:00
Kreeblah a5cd62e877
Updated to working SConstruct implementation 2021-12-11 20:42:55 -08:00
Kreeblah 91232cbb01
First pass for code signing and notarization for Macs 2021-11-08 23:27:27 -08:00
Kp f99ba91998 Pass user $PATH to Command() for dylibbundler
On some systems, such as the Apple M1 (ARM-based Macs),
dylibbundler is in $PATH, but not in a directory found by the limited
path that SCons uses for Command() invocations.  This causes the SConf
test to succeed (because it uses the full $PATH), but the Command() to
fail (because it uses a reduced path).  Fix this by using the user's
$PATH, if defined, for this Command() invocation.

Along the way, rework tool_bundle.py to use SCons' Node() objects in
place of direct path manipulation.  This lets SCons produce better error
messages in some cases.

Reported-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/pull/610>
2021-11-08 01:53:05 +00:00
Kreeblah 9a14d734bb Added message for library bundling step 2021-11-06 21:28:36 +00:00
Kreeblah 13d3af3123 Made dylibbundler an optional step 2021-11-06 21:28:36 +00:00
Kp d604518563 Change SConf tests not to generate consecutive underscores 2021-11-04 03:24:43 +00:00
Kp 23f03d0a5e Add unit tests for partial_range 2021-09-04 12:17:14 +00:00
Kp 0f4c9f240e Make some SConstruct output respect SCons' -Q option 2021-08-26 03:13:45 +00:00
Kp 86e8e1d4f9 Remove Python2 dict compatibility symbols
Switch to calling the methods directly on the dict instances.  This
eliminates use of a global variable at each call site.
2021-06-28 03:37:51 +00:00
Kp f1606f7747 Simplify test for __builtin_bswap16
This test covered __builtin_bswap32 and __builtin_bswap16 separately,
because it was written to support gcc versions that predated the
introduction of __builtin_bswap16.  The minimum supported gcc version
now understands both intrinsics, so simplify the test to cover all three
at once.
2021-06-28 03:37:51 +00:00
Kp e1aac6949a Replace __attribute_warn_unused_result with C++17 [[nodiscard]]
This eliminates a configure test, and may help readers understand the
annotation more readily.
2021-06-28 03:37:51 +00:00
Kp 770ae0cea5 Replace __attribute_noreturn with C++11 [[noreturn]]
This eliminates a configure test, and may help readers understand the
annotation more readily.
2021-06-28 03:37:50 +00:00
Robert Menes c630191c29
Add Haiku as a built host option 2021-06-01 13:37:30 -04:00
Kp e226623ebe Fix advice in dylibbundler error path
Reported-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/pull/591#issuecomment-841927157>
2021-05-18 03:00:48 +00:00