Kp
83f1a94ec4
Move __shared_header_file_list to create_header_targets
2015-11-01 21:15:39 +00:00
Kp
afb1fc3383
Remove special-case for profiler support
...
Stackable build profiles allow this to be specified without a special
case in SConstruct.
2015-11-01 21:15:39 +00:00
Kp
f5dfa1a3b2
Inline banner()
2015-11-01 21:15:39 +00:00
Kp
38df160341
Create platform_settings, env on first use
2015-11-01 21:15:39 +00:00
Kp
b35ef80a0f
Reduce global lookups
2015-11-01 21:15:38 +00:00
Kp
bab5f5f1be
Reduce env lookups
2015-11-01 21:15:38 +00:00
Kp
e86e1a882a
Combine adjacent env.Append calls
2015-10-29 03:01:42 +00:00
Kp
fd51188e57
Simplify DXXCommon instance counter
2015-10-29 03:01:42 +00:00
Kp
9c4a4e3cf8
Remove unnecessary __init__ methods
2015-10-28 02:44:36 +00:00
Kp
def268faf9
Combine lazy object caches
2015-10-28 02:44:36 +00:00
Kp
edea687627
Remove HAVE_STRUCT_TIMEVAL
...
SConstruct defines it for all platforms. It is only false on Mac OS 9,
which is no longer supported.
2015-10-27 03:04:49 +00:00
Kp
e7c65dbc3f
Use property for LinuxPlatformSettings ogllibs
...
It is only called once per instance, so caching it as an instance
value is not helpful. Change it to a property so that __init__ can be
removed.
2015-10-27 03:04:49 +00:00
Kp
a4eda5e6f7
Include commented tool versions in sconf tests
...
Encourage SCons not to reuse test results when the printed version
strings have changed.
2015-10-24 03:13:11 +00:00
Kp
4951cb0b8f
Fix build break if no git and extra_version=''
2015-10-18 21:01:20 +00:00
Kp
927b14848f
Add optional cpp output targets
2015-10-18 21:01:18 +00:00
Kp
091bcbec26
Support skipping configure/compile stages
2015-10-18 21:01:18 +00:00
Kp
2a1e07adfa
Detect failure to git ls-files
for check_header_includes
2015-10-13 02:43:25 +00:00
Kp
d3198ab0bd
Use env.Textfile to generate stub check_header_includes.cpp
2015-10-13 02:43:24 +00:00
Kp
365340560d
Cache result of checking for .git
2015-10-13 02:43:24 +00:00
Kp
c1b1da61e5
Support unusual values of CPP define SHAREPATH
...
Use the full CPP define quoting function instead of just hoping
sharepath is clean.
2015-10-13 02:43:24 +00:00
Kp
2e17c03c9e
Remove unnecessary list comprehension for vers_id.cpp
...
It was a convenience for binding 's' to one value, but that can be
rewritten without the comprehension.
2015-10-13 02:43:24 +00:00
Kp
a71e886fce
Add scons option to skip pch optimization
...
Add option to compute indirect includes even when not necessary, since
indirect includes influence the inclusion count shown in the comments.
Enabling this option makes SCons work harder for the same output binary.
It should only be used by developers who want to see precise file
inclusion counts.
2015-10-09 02:46:10 +00:00
Kp
4041e3ba53
Test whether compiler can use PCHs it generates
...
Current gcc requires a non-PIE cc1plus for working PCH support. If the
chosen compiler is PIE, it will succeed in building the PCH, then fail
when trying to use it.
2015-10-03 17:17:49 +00:00
Kp
f37e55737c
Shorten secondary calls to Git.pcall
2015-09-29 02:41:22 +00:00
Kp
433b80c0b3
Reduce copying of pkg-config result
2015-09-29 02:41:22 +00:00
Kp
e2d16844a8
Fix handling of pch_cpp_assume_unchanged
2015-09-26 21:17:14 +00:00
Kp
f3470cef5f
Show tool versions in sconf output
2015-09-26 21:17:13 +00:00
Kp
51a86c62ef
Hide undocumented options
...
If no help text is defined, hide the associated option from --help.
2015-09-26 21:17:13 +00:00
Kp
0b242833f5
Always set StaticSubprocess.stdout to PIPE
2015-09-26 21:17:13 +00:00
Kp
63dd2656ed
Document some SConstruct tests
2015-09-26 21:17:12 +00:00
Kp
76b94de1de
Add commented out hook for warning on valptridx exceptions
2015-09-26 21:17:12 +00:00
Kp
4afae87883
Remove -Wcast-align from default compiler options
...
Per issue from MattWatt, gcc for Raspberry Pi warns about alignment
issues.
Per issue from kreator, clang warns about alignment issues on OS X.
However, it does not warn on x86_64-pc-linux-gnu.
GCC only warns when compiling for a target architecture that requires
alignment, so it does not warn for i686-pc-linux-gnu or
x86_64-pc-linux-gnu.
Using this warning would be nice, but since it only triggers on
architectures not maintained by active developers, it causes more
trouble than it may solve.
Alignment sensitive users will have to get by with software fixups until
an active developer begins targeting alignment sensitive hardware.
Reported-by: MattWatt <https://github.com/dxx-rebirth/dxx-rebirth/issues/119 >
Reported-by: kreatordxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/120 >
2015-09-19 23:04:36 +00:00
Kp
f1021de448
Add SDL_NumJoysticks() to SDL library test
...
Some builds of SDL lack joystick support. Rebirth requires joystick
support in SDL, even if the user never connects a joystick. Add a call
to SDL_NumJoysticks during the SDL test so that systems without SDL
joystick support fail the "usable library SDL" test.
2015-09-19 23:04:36 +00:00
Kp
ae5fc1b74b
Remove wrapper Cxx11Compile
...
All compilation is now at least C++11.
2015-09-19 23:04:36 +00:00
Kp
348c656311
Explicitly require C++11 support
2015-09-19 23:04:36 +00:00
Kp
6c49f5b95d
Disable ccache/distcc during SConf
2015-09-19 23:04:36 +00:00
Kp
d18835bcf9
Invert sense of {} messages
...
Prefer to always have 'yes' for good results and 'no' for bad results.
2015-09-19 23:04:35 +00:00
Kp
22a7d121f5
Restructure compiler preferred option tests
2015-09-19 23:04:35 +00:00
Kp
61044df4f7
Use string formatting consistently
2015-09-19 23:04:35 +00:00
Kp
451325c89b
Improve lazy object setup
2015-09-19 23:04:35 +00:00
Kp
54928db871
Cache os.environ.get
2015-09-19 23:04:35 +00:00
Kp
8f7ed1f5ee
Remove unused program_specific_objects
2015-09-19 23:04:35 +00:00
Kp
d954cdf279
Look up configure test docstring at record time
2015-09-13 21:02:19 +00:00
Kp
198b8295c4
Force sconf.log verbose for LINKCOMSTR
2015-09-13 21:02:19 +00:00
Kp
f2d9ffe48d
Rewrite PCH generation
2015-09-13 20:23:05 +00:00
Kp
0ec66ef673
Use collections.defaultdict for successful_flags
2015-09-13 20:23:05 +00:00
Kp
433fc96505
Avoid redefining LazyObjectConstructor.__strip_extension
2015-09-09 03:27:52 +00:00
Kp
80f70fbc34
Remove SConf test check_compiler_template_parentheses_warning
...
Test check_compiler_template_parentheses_warning probes for a bug in
gcc-4.6. Upstream fixed the bug in gcc-4.7. Using gcc-4.6 is no longer
supported, so remove the test for the bug.
2015-08-22 20:43:04 +00:00
Kp
37838329a1
Add SConf hook to check result against expected value
2015-08-22 20:43:04 +00:00
Kp
3bf0c93067
Factor out lookup of sconf overrides
2015-08-22 20:43:03 +00:00
Kp
b5bf4cf9cc
Change - to _ for check_compiler_option names
2015-08-22 20:43:03 +00:00
Kp
389cd42f47
Default verbosebuild on for non-tty outputs
2015-08-14 03:02:04 +00:00
Kp
41ecab004f
Skip message for unknown variables when there is nothing to do
...
Reported-by: zicodxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/115 >
Fixes: 870ed653b5
("Warn about unknown scons variables")
2015-08-11 03:05:55 +00:00
Kp
001fdfff37
Add workaround for gcc-4.8 ref qualifier quirk
...
In gcc-4.8, a member method with const lvalue and const rvalue methods
is ambiguous.
$ cat t.cpp
class A
{
public:
void a() const &;
void a() const &&;
};
A b();
void c()
{
b().a(); // fails in gcc-4.8, works in later
}
$ gcc-4.8 -Wall -Wextra -std=gnu++0x -O2 -c t.cpp
t.cpp: In function 'void c()':
t.cpp:11:8: error: call of overloaded 'a()' is ambiguous
b().a();
^
t.cpp:11:8: note: candidates are:
t.cpp:4:7: note: void A::a() const &
void a() const &;
^
t.cpp:5:7: note: void A::a() const &&
void a() const &&;
^
$ gcc-4.9 -Wall -Wextra -std=gnu++0x -O2 -c t.cpp
$
Fixes: bda7fef3a0
("Use get_local_player to compute reference to local player")
2015-08-05 02:59:03 +00:00
Kp
b979f52ebf
Centralize required C++11 features
2015-08-03 03:11:25 +00:00
Kp
7086bbae14
Simplify automatic compiler test
2015-08-03 03:11:24 +00:00
Kp
4d8ae44794
Add helper macro DXX_CONSTANT_TRUE
2015-07-29 03:05:28 +00:00
Kp
4a6ae13367
Centralize PCH object hook
2015-07-25 23:10:48 +00:00
Kp
d4dc3df3de
Support PCH+LTO
2015-07-25 23:10:48 +00:00
Kp
9a5654e002
Move similar/editor/autosave.cpp -> common/editor/autosave.cpp
2015-07-25 23:10:47 +00:00
Kp
15fb75c1c7
Fix check_header_includes build
2015-07-25 23:10:45 +00:00
Kp
cdb113a050
Diagnose including compiler-type_traits without dxxsconf.h
2015-07-25 23:10:45 +00:00
Kp
9f84f0851d
Enable clang LTO
...
clang does not support -flto=N syntax for parallel LTO.
Remove -fno-fat-lto-objects too. clang does not understand it;
gcc 4.9 and later default to non-fat LTO.
Fixes: 1037a92d60
("Allow parallel lto")
2015-07-18 21:01:56 +00:00
Kp
82e1ea5636
Move similar/mem/mem.cpp -> common/mem/mem.cpp
2015-07-18 21:01:56 +00:00
Kp
a58e8f87a0
Move similar/misc/hash.cpp -> common/misc/hash.cpp
2015-07-18 21:01:56 +00:00
Kp
cfdffa184f
Move similar/arch/sdl/event.cpp -> common/arch/sdl/event.cpp
2015-07-18 21:01:56 +00:00
Kp
04d9f82a50
Move similar/arch/sdl/key.cpp -> common/arch/sdl/key.cpp
2015-07-18 21:01:56 +00:00
Kp
c7542fe9fc
Move similar/arch/sdl/mouse.cpp -> common/arch/sdl/mouse.cpp
2015-07-18 21:01:56 +00:00
Kp
51ee9d2833
SDL2: skip build of rbaudio.cpp
2015-07-14 02:42:12 +00:00
Kp
a2cb5fea6e
Add SConf option to use SDL2
2015-07-14 02:42:12 +00:00
Kp
658102a868
Improve static_assert test
...
Previously, SConstruct tested whether static_assert worked with trivial
constant expressions. Extend the test to more complicated expressions
like the ones used in the program.
Replace the typedef based approach with an inline enum to avoid warnings
about unused local typedefs.
Allow use with compilers that lack working static_assert or that cannot
accept complicated expressions. Add a non-checking definition that uses
the input parameter. This prevents warnings when types or constants are
used only for the static_assert.
2015-07-09 03:12:45 +00:00
Kp
c03fe30fc2
Move similar/arch/sdl/timer.cpp -> common/arch/sdl/timer.cpp
2015-07-04 21:01:17 +00:00
Kp
2bc1f786d5
Test for -Wlogical-op before using it
...
clang does not understand it, so using it unconditionally breaks the
clang build.
2015-06-20 03:50:46 +00:00
Kp
3905f1a668
Enable -Wcast-qual
2015-06-13 22:42:21 +00:00
Kp
92f44fcaaa
Enable -Wmissing-include-dirs
2015-06-13 22:42:21 +00:00
Kp
7c436f1fbb
Merge pull #39 into unification/master
...
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/39 >
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88712761 >
Acked-by: zico <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88907523 >
2015-06-07 16:21:37 +00:00
Kp
ff452dbded
Move CLI code to common
...
None of it depends on D1 vs D2.
2015-06-07 16:20:46 +00:00
Kp
a8431a1933
Fix noreturn test with LTO
2015-05-28 03:08:38 +00:00
Kp
41c58ec70e
Remove zlib.h from physfs test
...
The test does not use zlib functions directly.
2015-05-23 04:13:29 +00:00
Kp
3caea6d618
Enable -Wvla
2015-05-17 00:59:26 +00:00
Kp
0ece005dfa
Use screen_mode for screen resolution
2015-05-14 02:23:13 +00:00
Kp
8daf33b422
Blacklist broken clang C++11 constructor inheritance
2015-05-09 17:39:02 +00:00
Kp
f92e890f50
Improve valptridx exception reporting
2015-05-09 17:39:02 +00:00
Kp
1037a92d60
Allow parallel lto
2015-05-09 17:38:57 +00:00
Kp
ee3731ccd1
Add workaround for clang -Wunused-parameter bug
2015-05-06 02:11:03 +00:00
Kp
9dc22b1ee6
Expand DXX_CXX11_EXPLICIT_DELETE
...
Various functions use the non-macro form, so support for =delete is
already mandatory. Remove the remnants of support for compilers which
lack =delete and replace it with a hard stop when the compiler rejects
declaring explicitly deleted functions.
2015-05-01 02:18:33 +00:00
Kp
596ece352b
Enable -Wextra
2015-04-26 20:15:57 +00:00
Kp
6792c1bc4b
Enable -Wunused-parameter
2015-04-26 20:15:56 +00:00
Bradley Bell
844aad2639
Merge branch 'unification/master' into command-line
2015-04-24 20:54:35 -07:00
Kp
bb3f414128
Cache scons subprocess calls
2015-04-22 02:44:30 +00:00
Kp
f86f06f1d4
Add -fvisibility=hidden when supported
...
Saves ~4k of text on debug+editor build
2015-04-22 02:44:29 +00:00
Kp
eee5e8d4b9
Require compiler support for constexpr
2015-04-22 02:44:29 +00:00
Kp
239f633356
Remove unused include directory
2015-04-19 04:18:50 +00:00
Kp
be4eef36dd
Always add -g to CXXFLAGS
2015-04-17 02:38:12 +00:00
Kp
6633eef18b
Fix spurious quote on version string
2015-04-16 01:48:15 +00:00
Kp
fa82c1bd3b
Add special case for physfs requiring zlib
...
Dynamic linked physfs handles its own zlib dependencies. If the user
links to a static physfs and physfs is built with support for zip files,
then we need to add zlib to the link line.
2015-04-09 02:29:58 +00:00
Kp
add7107cc7
Fix preserving CCACHE_PREFIX
2015-04-04 17:23:47 +00:00
Kp
942f867926
Always set -Wredundant-decls
...
<gcc-4.7 no longer builds due to incomplete decltype handling
>=gcc-4.7 handles -Wredundant-decls correctly
Remove the SConf test and always set -Wredundant-decls.
2015-04-03 02:46:25 +00:00
Kp
85a777d300
Move pkg-config lookups into configure tests
2015-04-02 02:36:52 +00:00
Kp
66806e1f34
Enable -Wmissing-braces
...
clang includes it in -Wall, so add it for gcc
2015-04-02 02:36:52 +00:00