Commit graph

31 commits

Author SHA1 Message Date
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
Bradley Bell ca21d2cf57 Add XCode project 2014-12-06 22:31:31 -08:00
Kp afd26ccd75 Add VS2013 build files
This does not compile yet, but commit the files to save others the work
of creating the framework.

Known issues:
- Some editor-specific files do not find their headers due to missing
  AdditionalIncludeDirectories
- VS2013.2 picks incorrect variadic template overloads.  VS2013.3 might
  do better.
- VS2013.2 C preprocessor mishandles C99 __VA_ARGS__ usage
2014-08-16 17:02:21 +00:00