Commit graph

52 commits

Author SHA1 Message Date
Kp b396445efa Require support for std::index_sequence, std::make_index_sequence
The minimum supported compiler versions now provide a depth-efficient
implementation of std::make_index_sequence, which removes the last
reason to carry a private implementation.  In the case of clang, it
appears to have a special compiler intrinsic used to implement its
std::make_index_sequence.

Switch to the compiler-provided version for both gcc and clang.
2020-04-26 17:26:23 +00:00
Kp d2e190ec3d Update snapshot ebuilds
- Remove the d1x, d2x ebuilds.  Gentoo uses the dxx name now, so the old
  placeholder ebuilds are no longer needed.
- Update the dxx snapshot ebuild to a current commit.
- Resynchronize the dxx snapshot ebuild from the dxx live ebuild.
  - This adds support for USE=valgrind and for USE=data.
- Add a helper script to generate snapshot ebuilds for arbitrary
  commits.
2020-04-19 20:47:07 +00:00
Kp 3b1f33c0c3 Make ebuild dependency on game data configurable via USE=data 2020-04-19 20:47:07 +00:00
Kp ddce1b00d5 Ignore Manifest files in the Gentoo ebuild area 2020-04-19 20:47:07 +00:00
SanskritFritz c62e0d322c Version 20191227 2019-12-31 13:10:12 +01:00
SanskritFritz 4fe2d8f35f Minor fixes in the Archlinux PKGBUILDs. 2019-12-31 12:31:04 +01:00
SanskritFritz 40f344125e Archlinux PKGBUILD fixes. 2019-12-30 00:15:33 +01:00
Kp 427f45fdd7 Update Arch PKGBUILD
- Quote variables.
- Use https:// where possible.
- Combine mkdir calls.
- Fix broken links to GOG game pages.
2019-09-14 20:54:08 +00:00
Christian Beckhäuser b97091cf70 Added Arch PKGBUILDs 2019-09-12 13:29:17 +02:00
Kp 6629711b59 Import RPM spec file 2019-08-29 02:40:32 +00:00
Kp f4264f146e Add USE=valgrind support to ebuild 2019-08-18 20:37:29 +00:00
Kp 4759ad660f Update ebuild to latest snapshot
a17792c89f fixes an important multiplayer
bug.
2019-07-20 18:24:24 +00:00
Kp f84cdff6a2 Update ebuild to latest snapshot 2019-07-07 22:00:16 +00:00
Kp da59e1ff5a Update transition ebuilds to most recent snapshot
Fixes: c834febc09 ("Update ebuild to most recent snapshot")
2019-06-12 04:23:35 +00:00
Kp c834febc09 Update ebuild to most recent snapshot
Add _p1 to pull in the fix for register_install_target=1.
2019-06-01 21:13:49 +00:00
Kp 12b57e84e6 Switch most in-tree http:// links to https://
For each link given as http://, verify that the site is accessible over
https:// and, if so, switch to it.  These domains were converted:

* llvm.org
* clang.llvm.org
* en.cppreference.com
* www.dxx-rebirth.com
* www.libsdl.org
* www.scons.org
2018-09-02 00:57:29 +00:00
Kp f491059ed7 Enable building with SDL2
This commit enables Rebirth to build with SDL2, but the result is not
perfect.

- SDL2 removed some sticky key support.  Rebirth may behave differently
  now in this area.
- SDL2 removed some key-repeat related support.  Rebirth may behave
  differently now in this area.
- SDL2 gained the ability to make a window fullscreen by sizing it to
  the desktop instead of by changing the desktop resolution.  Rebirth
  uses this, and it mostly works.
  - Resizing while in the automap does not notify the automap code, so
    the view is wrong until the player switches out of automap mode and
    back in.
- SDL2 changed how to enumerate available resolutions.  Since
  fitting the window to the desktop is generally more useful than
  fitting the desktop to the window, I chose to drop support for
  enumerating resolutions instead of porting to the new API.  Users can
  now enter an arbitrary window dimension and Rebirth will make an
  attempt to use it.
  - It might be useful to cap the window dimension at the desktop
    dimension, but that is not done yet.
  - Entering fullscreen mode through the Controls->Graphics submenu
    failed to notify the relevant subsystems, causing the rendered
    content not to rescale.  For now, compile out the option to toggle
    full screen through that menu.  Toggling through Alt+Enter works
    properly.

Despite these quirks, this is a substantial improvement over the prior
commit, where SDL2 cannot be used at all.  The remaining issues can be
resolved in future work.

References: <https://github.com/dxx-rebirth/dxx-rebirth/issues/82>
2018-07-28 23:22:58 +00:00
Kp d1a4e3b7a1 Update Gentoo ebuild to current stable-0.60.x
_p38 since the target commit is 38 commits after tag 0.60.0-beta2.
2018-06-24 18:05:48 +00:00
Kp 2f4524d3c2 Add screenshot=none to disable screenshot support
Per comment from kreator, some Apple systems now ship without a working
print screen key.  It makes no sense to provide print screen support
bound to a key which does not exist.  Add `screenshot=none` and activate
it on OS X to remove the unreachable screenshot support.
2018-06-16 04:13:37 +00:00
Kp e616ca4f47 Bump Gentoo ebuilds for beta2 2018-06-06 04:53:45 +00:00
Chris Taylor 0b026b6282 Fix 'Header png.h is missing or unusable' build error on macOS Xcode
Commit 131c1b9f4d added support for PNG screenshots and made this support a default build option. Set screenshot=legacy in the project file for macOS's Xcode for all out-of-the-box builds. PNG support has been dropped in Xcode for several reasons:
- macOS creates PNG screenshots via Command-Shift-3. This works in DXX-Rebirth, even in full screen mode.
- The macOS screenshots are put on the desktop, as opposed to in the user's Library (which is normally hidden from view and can only be accessed via 'Go' menu holding down Option)
- Macs have no Print Screen key
- There is no simple way to include libpng with the macOS DXX-Rebirth binaries, and the average Mac user is unlikely to install it from source

When building with scons, the Mac user compiling can do one of two things:
- Install libpng (which is much easier than packaging with a binary)
- Pass screenshot=legacy to scons
2018-05-14 15:48:00 +08:00
Kp 131c1b9f4d Add support for PNG screenshots 2018-02-18 00:42:42 +00:00
Kp f175949412 Add DXX_ptrdiff_cast_int,DXX_WORDS_BIGENDIAN to VS2017 dxxsconf.h 2018-01-22 04:50:10 +00:00
Kp 4d155527b1 Remove mve_main.c from project builds
It is a test remnant not used as part of the regular game.
2018-01-22 04:50:10 +00:00
Kp e53e969d92 Update Gentoo ebuilds
- Add descentX-freedata-1.ebuild to manage the freely downloadable
  music, German briefings, and (for Descent 1 only) higher resolution
  textures.  These can be added/removed without rebuilding the game, so
  they get a separate ebuild.  This prevents reinstalling these
  resources on game upgrades, and permits using these resources with
  live ebuilds.
- Fix $LICENSE to reflect Rebirth 2014 license change.
- Add USE=+joystick.  When unset, SDL joystick support is unnecessary
  and Rebirth is built without joystick support.  This reduces
  code size, which may be important on constrained targets.  When
  USE=joystick is set, SDL joystick support is now required.
- Add blockers for co-installation with <d1x-rebirth-0.59.100,
  <d2x-rebirth-0.59.100, as these install files of the same name and
  would otherwise collide with this package.  Compiling while the older
  version is installed is safe, so this is only an RDEPEND blocker.
- Add USE flags for the various descentX-freedata features, and depend
  on a descentX-freedata with those flags enabled.  When all such flags
  are clear, there is no dependency, since descentX-freedata with USE=-*
  installs no files.
- Add commented out IUSE_RUNTIME to record which USE flags are
  runtime-only.  When Portage implements IUSE_RUNTIME, this definition
  should be uncommented.
- Mirror xdg integration from main Gentoo Portage ebuild for Rebirth.
  Also match layout with that ebuild where possible, to simplify sharing
  changes.  Notable differences remaining:
  - Gentoo Portage ebuild handles freedata assets inline.
  - Gentoo Portage ebuild disallows enabling both music pack USE flags,
    even though the files install to separate names.  Rebirth freedata
    ebuild permits both to be enabled.
  - Gentoo Portage ebuild hard-enables joystick support and
    hard-requires SDL joystick support.  Rebirth ebuild makes it
    optional via USE=joystick.
  - Gentoo Portage ebuild is less strict about SDL_mixer features.
  - Gentoo Portage ebuild has USE=+data to control whether game data is
    a required dependency.  Rebirth ebuild hard-depends on game data
    (but still provides a choice of demo data or retail data).
  - Gentoo Portage ebuild hard-blocks _all_ d1x-rebirth, d2x-rebirth
    package versions.  Rebirth ebuild hard-blocks only such packages
    that would cause a file collision, so that the transition
    meta-packages can be installed.
  - Gentoo Portage ebuild carries two useless patches.
    - $P-flags.patch removes default CXXFLAGS flags, even though
      SConstruct adds them to the left of the user's CXXFLAGS, so that
      user CXXFLAGS override default flags.
    - $P-sharepath.patch changes the sharepath by patching SConstruct.
      Rebirth ebuild changes the sharepath by passing an appropriate
      `sharepath=` argument to the `scons` call.
  - Gentoo Portage ebuild lacks USE=editor and associated build of Descent
    editor mode.
  - Gentoo Portage ebuild does not export PKG_CONFIG.
2017-11-25 01:56:51 +00:00
Kp 7843ea90ce Add Gentoo ebuilds for beta 2017-04-08 16:48:19 +00:00
Kp bc9e0ea196 Update contributed Visual Studio files to Visual Studio 2017
Visual Studio 2013 support was experimental and never worked due to
missing C++11 support in the compiler and various compiler bugs that
caused it to crash on some of the more complicated files.  Microsoft
never issued sufficient patches to get Visual Studio 2013 to compile
Rebirth successfully.

Remove the Visual Studio 2013 files and add files to build Rebirth with
Visual Studio 2017.  Visual Studio 2017 support is also experimental and
is also currently broken.  Among the known problems:

- Visual Studio 2017's C99 preprocessor support, like those of predecessor versions, is deficient regarding variadic macros, causing it to reject valid constructs with confusing error messages.

	common\include\window.h(170): error C2672: 'con_puts_literal': no matching overloaded function found
	common\include\window.h(170): error C2780: 'void con_puts_literal(const con_priority,const char (&)[len])': expects 2 arguments - 1 provided
	common\include\console.h(44): note: see declaration of 'con_puts_literal'
	common\include\window.h(170): error C2664: 'void con_printf(con_priority,const char *,...)': cannot convert argument 1 from 'const char [54]' to 'con_priority'

  Visual Studio 2017's preprocessor expanded this line to:

	 ( ((void)(("%s:%u: sending event %s to window of dimensions %dx%d"))), (sizeof("file, line, e, c.cv_bitmap.bm_w, c.cv_bitmap.bm_h") == 1) ? (con_puts_literal(("%s:%u: sending event %s to window of dimensions %dx%d"))) : (con_printf(("%s:%u: sending event %s to window of dimensions %dx%d") ,file, line, e, c.cv_bitmap.bm_w, c.cv_bitmap.bm_h)) );

  gcc-5.4.0's preprocessor expanded this line to:

	 ( ((void)(("%s:%u: sending event %s to window of dimensions %dx%d"))), (sizeof("file, line, e, c.cv_bitmap.bm_w, c.cv_bitmap.bm_h") == 1) ? (con_puts_literal(CON_DEBUG ,("%s:%u: sending event %s to window of dimensions %dx%d"))) : (con_printf(CON_DEBUG ,("%s:%u: sending event %s to window of dimensions %dx%d") , file, line, e, c.cv_bitmap.bm_w, c.cv_bitmap.bm_h)) );

  Note the absence of the leading "CON_DEBUG," in the Visual Studio
  version.

- Visual Studio 2017 sometimes disallows inner classes access to private typedef symbols in the containing class.  Both gcc and clang permit this and the standard says this should work.  This is shown mixed in as part of the next error.
- Visual Studio 2017's cl.exe crashes processing some files.  Including "segment.h" is sufficient to crash cl.exe.  Before crashing it prints:

	common\include\fwd-valptridx.h(200): error C2833: 'operator integral_type' is not a recognized operator or type
	common\include\fwd-valptridx.h(201): note: see reference to class template instantiation 'valptridx<managed_type>::magic_constant<constant>' being compiled
	common\include\fwd-valptridx.h(202): note: see reference to class template instantiation 'valptridx<managed_type>' being compiled
	common\main\fwd-segment.h(19): note: see reference to class template instantiation 'std::integral_constant<::size_t,9000>' being compiled
	common\include\fwd-valptridx.h(200): error C2059: syntax error: 'newline'
	common\include\fwd-valptridx.h(200): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
	common\main\fwd-segment.h(48): error C2248: 'valptridx<d2x::segment>::specialized_types': cannot access private typedef declared in class 'valptridx<d2x::segment>'
	common\include\fwd-valptridx.h(87): note: see declaration of 'valptridx<d2x::segment>::specialized_types'
	common\main\fwd-segment.h(46): note: see declaration of 'valptridx<d2x::segment>'
	common\main\fwd-segment.h(48): note: see reference to class template instantiation 'valptridx<d2x::segment>::magic_constant<65534>' being compiled
	common\main\fwd-segment.h(48): fatal error C1903: unable to recover from previous error(s); stopping compilation

This list is not exhaustive.  The project was abandoned upon
encountering a compiler crash suspiciously similar to the one seen when
using Visual Studio 2013 to compile this code.  No one should expect
Visual Studio 2017 version 15.0.0+26228.9 to successfully compile
Rebirth, but these files are published in the hope that future patches
fix the problems in Visual Studio 2017.
2017-04-08 16:48:18 +00:00
Kp 8e96f24d26 Add stub __attribute_cold to Visual Studio dxxsconf.h header 2017-04-08 16:48:18 +00:00
Chris Taylor f634b084ed Update Xcode project for recently added/removed files
Added:
common/include/cpp-valptridx.h
common/misc/vg-wrap-physfs.h
common/misc/vgrphys.cpp
common/misc/vgwphys.cpp

Added (some time ago):
common/include/dsx-ns.h

Removed:
common/main/segnum.h
2017-01-07 15:30:18 +08:00
Chris Taylor 1c819359a6 Add -O0 flags for the Debug and Editor builds in Xcode.
Add -O0 flags for the Debug and Editor builds in Xcode, setting optimisation to None so the Xcode debugger reports on all variables, steps through code correctly and otherwise can debug properly.
2016-09-28 11:18:46 +08:00
Chris Taylor 3a6bda287b Update Xcode project file listing (for editing purposes) 2016-03-06 13:05:37 +08:00
Kp b937c732a8 Add stub __attribute_always_inline to VS2013 header 2015-10-30 02:52:57 +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 c47b7e383f Make template alias support mandatory 2015-08-03 03:11:25 +00:00
Kp 20b1db3483 Expand dxx_explicit_operator_bool to "explicit"
Many files now use "explicit", so compilers which reject
explicit operator bool() will not work.  Remove the macro.
2015-08-03 03:11:25 +00:00
Kp 215e2dca81 Remove unused libpng support
HAVE_LIBPNG has not been set since 2004 when
3325c0b52b ("remove old OSX bundle stuff")
commented out the autoconf check to set it.
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 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
Bradley Bell a63ec5bd7c Merge branch 'unification/master' into command-line 2015-04-25 12:27:16 -07:00
Kp 6d2d0f33fa Merge 'Use Travis for CI' into unification/master
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/54>
2015-04-25 16:51:49 +00:00
Bradley Bell 844aad2639 Merge branch 'unification/master' into command-line 2015-04-24 20:54:35 -07:00
Bradley Bell 17770f0cce Added .travis.yml 2015-03-24 22:12:23 -07:00
Bradley Bell 5d7fbf1c2f Enable Product->Clean in XCode
by adding --$(ACTION) to build args.
Other project cleanups.
2015-03-21 13:05:50 -07:00
Bradley Bell 5a6b36277a Create dummy XCode target dxx-rebirth-doc
so that code completion, etc will work despite using an external build system.
Minor cleanups to project files.
2015-02-16 20:18:07 -08:00
Bradley Bell bbb32d0175 added cmd and cvar modules from d2x 2015-02-10 23:35:44 -08:00
Bradley Bell 0db11cc139 add d2x command-line interface to console 2015-02-10 17:01:00 -08:00
Bradley Bell 625cba6fdf xcode setting for passing network opts to scons
also delete reference to old sconf.log
2015-02-05 17:02:17 -08:00
Bradley Bell 86a6c40325 add ntstring.h to xcode project 2015-01-02 21:11:26 -08:00
Bradley Bell 864f404fcf add shared XCode schemes 2014-12-06 22:43:12 -08:00
Bradley Bell ad48198ece Establish XCode targets
Separated sconf_args into relevant build settings
Added Editor build configuration
2014-12-06 22:43:11 -08:00