first commit
This commit is contained in:
commit
9481e88bbd
553 changed files with 177275 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
build/
|
54
.session.vim
Normal file
54
.session.vim
Normal file
|
@ -0,0 +1,54 @@
|
|||
let SessionLoad = 1
|
||||
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
|
||||
let v:this_session=expand("<sfile>:p")
|
||||
silent only
|
||||
silent tabonly
|
||||
cd ~/Downloads/prboom/prboom-plus/prboom2
|
||||
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
|
||||
let s:wipebuf = bufnr('%')
|
||||
endif
|
||||
let s:shortmess_save = &shortmess
|
||||
if &shortmess =~ 'A'
|
||||
set shortmess=aoOA
|
||||
else
|
||||
set shortmess=aoO
|
||||
endif
|
||||
badd +0 .gitignore
|
||||
argglobal
|
||||
%argdel
|
||||
$argadd .gitignore
|
||||
edit .gitignore
|
||||
argglobal
|
||||
setlocal fdm=manual
|
||||
setlocal fde=0
|
||||
setlocal fmr={{{,}}}
|
||||
setlocal fdi=#
|
||||
setlocal fdl=0
|
||||
setlocal fml=1
|
||||
setlocal fdn=20
|
||||
setlocal fen
|
||||
silent! normal! zE
|
||||
let &fdl = &fdl
|
||||
let s:l = 1 - ((0 * winheight(0) + 15) / 30)
|
||||
if s:l < 1 | let s:l = 1 | endif
|
||||
keepjumps exe s:l
|
||||
normal! zt
|
||||
keepjumps 1
|
||||
normal! 06|
|
||||
tabnext 1
|
||||
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
|
||||
silent exe 'bwipe ' . s:wipebuf
|
||||
endif
|
||||
unlet! s:wipebuf
|
||||
set winheight=1 winwidth=20
|
||||
let &shortmess = s:shortmess_save
|
||||
let s:sx = expand("<sfile>:p:r")."x.vim"
|
||||
if filereadable(s:sx)
|
||||
exe "source " . fnameescape(s:sx)
|
||||
endif
|
||||
let &g:so = s:so_save | let &g:siso = s:siso_save
|
||||
set hlsearch
|
||||
nohlsearch
|
||||
doautoall SessionLoadPost
|
||||
unlet SessionLoad
|
||||
" vim: set ft=vim :
|
163
AUTHORS
Normal file
163
AUTHORS
Normal file
|
@ -0,0 +1,163 @@
|
|||
This file is now the amalgamated list of authors, contributors and credits
|
||||
for PrBoom. Hopefully by keeping these all in one place, they will remain
|
||||
more accurate.
|
||||
|
||||
Doom was originally written by id software; when playing with any id main
|
||||
wad file, you can see their list of credits, which includes the list of
|
||||
programmers. After some years, they released the source code, to allow
|
||||
others to work on improving the game.
|
||||
|
||||
One of the first projects was DosDoom, by Chi Hoang. This was a quick port
|
||||
of the released source code, which was for Linux, to DOS. This was then
|
||||
picked up by TeamTNT (http://www.teamtnt.com/), who produced Boom, a greatly
|
||||
debugged and extended version of Doom. The Boom programmers were Lee
|
||||
Killough, Jim Flynn, Rand Phares, Ty Halderman.
|
||||
|
||||
Several projects started working from the Boom source code. One was PrBoom,
|
||||
made by Florian Schulze, that ported the code to Windows, added suport for
|
||||
higher resolutions and later OpenGL. Another was Marine's Best Friend
|
||||
(known as MBF) by Lee Killough, which fixed a lot of Boom bugs and added
|
||||
many new game features. Finally, there was LxDoom, a port of Boom to Linux
|
||||
by Colin Phipps.
|
||||
|
||||
In October 1999, id Software re-released the Doom source code under the
|
||||
GNU General Public License. TeamTNT have also changed to the new license,
|
||||
and the other sources mentioned above have all allowed their code to be
|
||||
GPLed. So PrBoom is covered by the GPL.
|
||||
|
||||
In May 2000, LxDoom, PrBoom, and a derived port called LSDLDoom, merged into
|
||||
one. The current authors of PrBoom are:
|
||||
|
||||
Florian Schulze <florian.schulze@gmx.net>
|
||||
Colin Phipps <cph@moria.org.uk>
|
||||
Neil Stevens <neil@hakubi.us> - Mac OS X porting
|
||||
Andrey Budko <andrey.budko@gmail.com>
|
||||
Rob Young (RjY) <rjy@users.sourceforge.net>
|
||||
|
||||
Our thanks go to all the authors of the ports mentioned above, and also the
|
||||
following people who contributed code to LxDoom or PrBoom:
|
||||
|
||||
Jess Haas <JessH@lbjhs.net>
|
||||
Of LSDLdoom, who merged his project into PrBoom, contributing his SDL code.
|
||||
|
||||
Nicolas Kalkhof <nkalkhof@gmx.net>
|
||||
Much work on the OpenGL renderer.
|
||||
|
||||
James "Quasar" Haley <haleyjd@concentric.net>
|
||||
Ever willing to talk about source ideas, and has pointed me in the direction of
|
||||
a lot of Boom and MBF bugs; also various bits code from his port Eternity have
|
||||
been used, such as the BEX enhancements.
|
||||
|
||||
Bob Aman (sporkmonger.com)
|
||||
Created the RMUDAnsiTextView class used in the Mac launcher.
|
||||
|
||||
Gady Kozma gady@math.tau.ac.il
|
||||
Added hires to the SVGALib version of LxDoom, and other useful patches.
|
||||
|
||||
Dick Leban
|
||||
Lots of feedback about portability issues and helping get the network code
|
||||
working properly back at v1.3.6.
|
||||
|
||||
Eduardo Casino Almao
|
||||
Lots of helpful feedback and suggestions, but more importantly actually getting
|
||||
to grips with the code and giving very precise bug reports and patches.
|
||||
|
||||
Joey Hess
|
||||
For numerous patches, like the glibc fixes and window manager updates, and
|
||||
help with the music.
|
||||
|
||||
Ben Winslow
|
||||
Various useful patches, like the colour ENDOOM code.
|
||||
|
||||
Josh Parsons josh@schlick.anu.edu.au
|
||||
Sent me the patches to use autoconf for configuring LxDoom.
|
||||
|
||||
Steve Van Devender <stevev@efn.org>
|
||||
Found the bug causing slight noise at the start of sounds playing, and other
|
||||
patches.
|
||||
|
||||
Barry Mead <bmead15@cox.net>
|
||||
Improvements to the mouse code and other odd patches.
|
||||
|
||||
Mattias Kunkel <mattias@kunkel.freeservers.com>
|
||||
Made the lxdoom.spec file for creating LxDoom RPMs.
|
||||
|
||||
Vicente Aguilar vicente@hal.dhis.org
|
||||
Handy patch for the file handling
|
||||
|
||||
Benjamin L McGee <vuelto@netscape.net>
|
||||
Patch fixing the joystick code.
|
||||
|
||||
Chris Young <young1@users.sourceforge.net>
|
||||
Patch improving the ENDOOM printing
|
||||
|
||||
Peter Jay Salzman <p@belial.ucdavis.edu>
|
||||
Cleanup patches
|
||||
|
||||
Oliver Kraus
|
||||
Send bug reports and patches for Solaris/Sparc.
|
||||
|
||||
Paul S Jenner <psj@firstlinux.net>
|
||||
Nice patch to make RPM building easier
|
||||
|
||||
Julian <julian@jplan.cjb.net>
|
||||
Fixed inline asm for gcc-2.95 (from Eternity)
|
||||
|
||||
Lionel Ulmer <lionel.ulmer@free.fr>
|
||||
Patch to fix alignment problems on ARM processors.
|
||||
|
||||
Ville Vuorinen <vv@ydin.org>
|
||||
Spotted and helped patch the player spawn bug, as well as helping with some
|
||||
Win32 issues.
|
||||
|
||||
Steven Elliot <selliot4@users.sourceforge.net>
|
||||
Misc patches.
|
||||
|
||||
Andreas Dehmel <zarquon@t-online.de>
|
||||
Spotted & patched a savegame bug.
|
||||
|
||||
Jon Dowland
|
||||
Bug reports & fixes, documentation improvements.
|
||||
|
||||
If you have sent in patches and I forgot to list you, I apologise. Please email
|
||||
me and I will add you.
|
||||
|
||||
Also, thanks to the following people who have helped in various ways:
|
||||
|
||||
Simon "fraggle" Howard <fraggle@alkali.org>
|
||||
More MBF bugs.
|
||||
|
||||
Robert Phipps <rob@phipps.uklinux.net>
|
||||
Network game testing, feature suggestions etc.
|
||||
|
||||
Udo Monk
|
||||
His port xdoom is very portable, and I referred to his code sometimes for help
|
||||
with the X stuff; also his collection of Doom tools (XWadTools) is the
|
||||
definitive tools collection for Linux.
|
||||
|
||||
Andre Majorel <amajorel@teaser.fr>
|
||||
For Yadex, so I can debug those problematic levels more easily.
|
||||
|
||||
Michael Heasley
|
||||
Author of musserver, which helped me first add music support.
|
||||
|
||||
Rafael Reilova
|
||||
Helped with the music server program for LxDoom
|
||||
|
||||
Frederic Oghdayan
|
||||
For useful feedback on LxDoom v1.0.1, and repeating his bug reports until I
|
||||
believed them :-).
|
||||
|
||||
Adam Hegyi <ha211@hszk.bme.hu>
|
||||
Prompted me to hunt down those last few demo sync bugs, and provided some useful
|
||||
insights and example demos to help.
|
||||
|
||||
Adam Williamson
|
||||
Pointing me toward yet another compatibility bug.
|
||||
|
||||
Ingo van Lil
|
||||
Another bug spotter.
|
||||
|
||||
Everyone who contributed indirectly to MBF and Boom and Doom; see the
|
||||
respective documentation files.
|
||||
|
243
CMakeLists.txt
Normal file
243
CMakeLists.txt
Normal file
|
@ -0,0 +1,243 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project("PrBoom-Plus"
|
||||
VERSION 2.6.66
|
||||
HOMEPAGE_URL "https://github.com/coelckers/prboom-plus")
|
||||
|
||||
# Set a default build type if none was specified
|
||||
set(default_build_type "RelWithDebInfo")
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
|
||||
STRING "Choose the type of build." FORCE)
|
||||
# Set the possible values of build type for cmake-gui
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
||||
"Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||
endif()
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
include(TargetArch)
|
||||
|
||||
include(TestBigEndian)
|
||||
TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
|
||||
|
||||
# Check if a CMAKE_INSTALL_DOCDIR is provided before GNUInstallDirs sets its
|
||||
# own default; this lets us set our own PrBoom-Plus default docdir later
|
||||
# without clobbering a user-configured one
|
||||
set(CUSTOM_DOCDIR "${CMAKE_INSTALL_DOCDIR}")
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Automated dependencies discovery, mostly needed for MSVC
|
||||
target_architecture(TARGET_ARCH)
|
||||
if(${TARGET_ARCH} MATCHES "i386")
|
||||
set(DEPENDENCY_SUFFIX x86)
|
||||
elseif(${TARGET_ARCH} MATCHES "x86_64")
|
||||
set(DEPENDENCY_SUFFIX x64)
|
||||
endif()
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../dependencies_${DEPENDENCY_SUFFIX}")
|
||||
|
||||
set(PACKAGE_NAME "${PROJECT_NAME}")
|
||||
set(PACKAGE_TARNAME "prboom-plus")
|
||||
set(PACKAGE_VERSION "${PROJECT_VERSION}")
|
||||
set(PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE_URL}")
|
||||
set(PACKAGE_STRING "${PROJECT_NAME} ${PROJECT_VERSION}")
|
||||
if(NOT CUSTOM_DOCDIR)
|
||||
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PACKAGE_TARNAME}" CACHE PATH "" FORCE)
|
||||
endif()
|
||||
|
||||
include(CheckSymbolExists)
|
||||
|
||||
check_symbol_exists(stricmp "string.h" HAVE_STRICMP)
|
||||
if(NOT HAVE_STRICMP)
|
||||
add_definitions("-Dstricmp=strcasecmp")
|
||||
endif()
|
||||
check_symbol_exists(strnicmp "string.h" HAVE_STRNICMP)
|
||||
if(NOT HAVE_STRNICMP)
|
||||
add_definitions("-Dstrnicmp=strncasecmp")
|
||||
endif()
|
||||
|
||||
check_symbol_exists(getopt "unistd.h" HAVE_GETOPT)
|
||||
check_symbol_exists(mmap "sys/mman.h" HAVE_MMAP)
|
||||
check_symbol_exists(CreateFileMapping "windows.h" HAVE_CREATE_FILE_MAPPING)
|
||||
if(NOT WIN32)
|
||||
set(CMAKE_REQUIRED_DEFINITIONS_PREV ${CMAKE_REQUIRED_DEFINITIONS})
|
||||
set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE)
|
||||
check_symbol_exists(sched_setaffinity "sched.h" HAVE_SCHED_SETAFFINITY)
|
||||
set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_PREV})
|
||||
if(HAVE_SCHED_SETAFFINITY)
|
||||
add_definitions(-D_GNU_SOURCE)
|
||||
endif()
|
||||
endif()
|
||||
check_symbol_exists(usleep "unistd.h" HAVE_USLEEP)
|
||||
check_symbol_exists(strsignal "string.h" HAVE_STRSIGNAL)
|
||||
check_symbol_exists(mkstemp "stdlib.h" HAVE_MKSTEMP)
|
||||
|
||||
include(CheckIncludeFile)
|
||||
|
||||
check_include_file("sys/wait.h" HAVE_SYS_WAIT_H)
|
||||
check_include_file("unistd.h" HAVE_UNISTD_H)
|
||||
check_include_file("asm/byteorder.h" HAVE_ASM_BYTEORDER_H)
|
||||
check_include_file("dirent.h" HAVE_DIRENT_H)
|
||||
|
||||
option(BUILD_GL "Enable OpenGL rendering code" ON)
|
||||
if(BUILD_GL)
|
||||
set(OpenGL_GL_PREFERENCE LEGACY)
|
||||
find_package(OpenGL)
|
||||
endif()
|
||||
|
||||
find_package(SDL2 2.0.7 REQUIRED)
|
||||
|
||||
option(WITH_IMAGE "Use SDL2_image if available" ON)
|
||||
if(WITH_IMAGE)
|
||||
find_package(SDL2_image)
|
||||
if(SDL2_IMAGE_FOUND)
|
||||
set(HAVE_LIBSDL2_IMAGE TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_MIXER "Use SDL2_mixer if available" ON)
|
||||
if(WITH_MIXER)
|
||||
find_package(SDL2_mixer)
|
||||
if(SDL2_MIXER_FOUND)
|
||||
set(HAVE_LIBSDL2_MIXER TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_NET "Use SDL2_net if available" ON)
|
||||
if(WITH_NET)
|
||||
find_package(SDL2_net)
|
||||
if(SDL2_NET_FOUND)
|
||||
set(HAVE_NET TRUE)
|
||||
set(USE_SDL_NET TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_PCRE "Use PCRE if available" ON)
|
||||
if(WITH_PCRE)
|
||||
find_package(PCREPOSIX)
|
||||
if(PCREPOSIX_FOUND)
|
||||
set(HAVE_LIBPCREPOSIX TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_ZLIB "Use ZLIB if available" ON)
|
||||
if(WITH_ZLIB)
|
||||
find_package(ZLIB)
|
||||
if(ZLIB_FOUND)
|
||||
set(HAVE_LIBZ TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_MAD "Use libmad if available" ON)
|
||||
if(WITH_MAD)
|
||||
find_package(LibMad)
|
||||
if(LIBMAD_FOUND)
|
||||
set(HAVE_LIBMAD TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_FLUIDSYNTH "Use FluidSynth if available" ON)
|
||||
if(WITH_FLUIDSYNTH)
|
||||
find_package(FluidSynth)
|
||||
if(FLUIDSYNTH_FOUND)
|
||||
set(HAVE_LIBFLUIDSYNTH TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_DUMB "Use DUMB if available" ON)
|
||||
if(WITH_DUMB)
|
||||
find_package(DUMB)
|
||||
if(DUMB_FOUND)
|
||||
set(HAVE_LIBDUMB TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_VORBISFILE "Use vorbisfile if available" ON)
|
||||
if(WITH_VORBISFILE)
|
||||
find_package(Vorbis)
|
||||
if(VORBIS_FOUND)
|
||||
set(HAVE_LIBVORBISFILE TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_PORTMIDI "Use PortMidi if available" ON)
|
||||
if(WITH_PORTMIDI)
|
||||
find_package(PortMidi)
|
||||
if(PortMidi_FOUND)
|
||||
set(HAVE_LIBPORTMIDI TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_ALSA "Use ALSA MIDI if available" ON)
|
||||
if(WITH_ALSA)
|
||||
find_package(ALSA)
|
||||
if(ALSA_FOUND)
|
||||
set(HAVE_ALSA TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_INCLUDES_PREV ${CMAKE_REQUIRED_INCLUDES})
|
||||
set(CMAKE_REQUIRED_LIBRARIES_PREV ${CMAKE_REQUIRED_LIBRARIES})
|
||||
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${SDL2_INCLUDE_DIRS})
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${SDL2_LIBRARIES})
|
||||
check_symbol_exists(SDL_JoystickGetAxis "SDL.h" HAVE_SDL_JOYSTICKGETAXIS)
|
||||
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_PREV})
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_PREV})
|
||||
|
||||
set(DOOMWADDIR "${CMAKE_INSTALL_PREFIX}/share/games/doom" CACHE PATH "Path to look for WAD files")
|
||||
set(PRBOOMDATADIR "${CMAKE_INSTALL_PREFIX}/share/${PACKAGE_TARNAME}" CACHE PATH "Path to install supplemental files")
|
||||
|
||||
option(SIMPLECHECKS "Enable checks which only impose significant overhead if a posible error is detected" ON)
|
||||
option(ZONEIDCHECK "Enable id checks on zone blocks, to detect corrupted and illegally freed blocks" ON)
|
||||
|
||||
# Debug options, disabled by default
|
||||
option(RANGECHECK "Enable internal range checking" OFF)
|
||||
option(INSTRUMENTED "Enable real-time memory allocation statistics, and extra debugging features" OFF)
|
||||
option(TIMEDIAG "Enable creation of time stamps each time a lump is locked, and reporting of lumps locked for long periods of time" OFF)
|
||||
option(HEAPCHECK "Turn on continuous heap checking (very slow)" OFF)
|
||||
option(HEAPDUMP "Turn on dumping the heap state for debugging" OFF)
|
||||
|
||||
configure_file(cmake/config.h.cin config.h)
|
||||
|
||||
add_definitions(-DHAVE_CONFIG_H)
|
||||
|
||||
if (MSVC)
|
||||
add_definitions("/D_CRT_SECURE_NO_WARNINGS")
|
||||
else()
|
||||
set(CMAKE_C_FLAGS
|
||||
"${CMAKE_C_FLAGS} \
|
||||
-Wall -Wno-missing-field-initializers -Wwrite-strings -Wundef \
|
||||
-Wbad-function-cast -Wcast-align -Wcast-qual -Wdeclaration-after-statement \
|
||||
-Wpointer-arith -Wno-unused -Wno-switch -Wno-sign-compare -Wno-pointer-sign \
|
||||
-ffast-math"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Support cross compiling
|
||||
option(FORCE_CROSSCOMPILE "Enable cross-compilation" OFF)
|
||||
if(FORCE_CROSSCOMPILE)
|
||||
set(CMAKE_CROSSCOMPILING ON)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
set(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Export file from native build")
|
||||
include(${IMPORT_EXECUTABLES})
|
||||
else()
|
||||
if(NOT CROSS_EXPORTS)
|
||||
set(CROSS_EXPORTS "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(PRBOOM_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
||||
|
||||
set(WAD_DATA prboom-plus.wad)
|
||||
set(WAD_DATA_PATH "${PRBOOM_OUTPUT_PATH}/${WAD_DATA}")
|
||||
|
||||
add_subdirectory(data)
|
||||
add_subdirectory(doc)
|
||||
add_subdirectory(src)
|
||||
|
||||
if(NOT CMAKE_CROSSCOMPILING)
|
||||
export(TARGETS ${CROSS_EXPORTS} FILE "${CMAKE_BINARY_DIR}/ImportExecutables.cmake")
|
||||
endif()
|
367
COPYING
Normal file
367
COPYING
Normal file
|
@ -0,0 +1,367 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
The licenses for most software are designed to take away your freedom
|
||||
to share and change it. By contrast, the GNU General Public License
|
||||
is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit
|
||||
to using it. (Some other Free Software Foundation software is covered
|
||||
by the GNU Library General Public License instead.) You can apply it
|
||||
to your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish), that you receive source code or can
|
||||
get it if you want it, that you can change the software or use pieces
|
||||
of it in new free programs; and that you know you can do these
|
||||
things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software,
|
||||
and (2) offer you this license which gives you legal permission to
|
||||
copy, distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on,
|
||||
we want its recipients to know that what they have is not the
|
||||
original, so that any problems introduced by others will not reflect
|
||||
on the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making
|
||||
the program proprietary. To prevent this, we have made it clear that
|
||||
any patent must be licensed for everyone's free use or not licensed
|
||||
at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
0. This License applies to any program or other work which contains a
|
||||
notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the
|
||||
Program is covered only if its contents constitute a work based on
|
||||
the Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any
|
||||
warranty; and give any other recipients of the Program a copy of this
|
||||
License along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any part
|
||||
thereof, to be licensed as a whole at no charge to all third parties
|
||||
under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively when
|
||||
run, you must cause it, when started running for such interactive use
|
||||
in the most ordinary way, to print or display an announcement
|
||||
including an appropriate copyright notice and a notice that there is
|
||||
no warranty (or else, saying that you provide a warranty) and that
|
||||
users may redistribute the program under these conditions, and
|
||||
telling the user how to view a copy of this License. (Exception: if
|
||||
the Program itself is interactive but does not normally print such an
|
||||
announcement, your work based on the Program is not required to print
|
||||
an announcement.)
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the
|
||||
Program with the Program (or with a work based on the Program) on a
|
||||
volume of a storage or distribution medium does not bring the other
|
||||
work under the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the
|
||||
following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections 1
|
||||
and 2 above on a medium customarily used for software interchange;
|
||||
or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three years,
|
||||
to give any third party, for a charge no more than your cost of
|
||||
physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer to
|
||||
distribute corresponding source code. (This alternative is allowed
|
||||
only for noncommercial distribution and only if you received the
|
||||
program in object code or executable form with such an offer, in
|
||||
accord with Subsection b above.)
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this
|
||||
License. However, parties who have received copies, or rights, from
|
||||
you under this License will not have their licenses terminated so
|
||||
long as such parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject
|
||||
to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted
|
||||
herein. You are not responsible for enforcing compliance by third
|
||||
parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do
|
||||
not excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under
|
||||
this License and any other pertinent obligations, then as a
|
||||
consequence you may not distribute the Program at all. For example,
|
||||
if a patent license would not permit royalty-free redistribution of
|
||||
the Program by all those who receive copies directly or indirectly
|
||||
through you, then the only way you could satisfy both it and this
|
||||
License would be to refrain entirely from distribution of the
|
||||
Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended
|
||||
to apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is
|
||||
willing to distribute software through any other system and a
|
||||
licensee cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new
|
||||
versions of the General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published
|
||||
by the Free Software Foundation. If the Program does not specify a
|
||||
version number of this License, you may choose any version ever
|
||||
published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the
|
||||
author to ask for permission. For software which is copyrighted by
|
||||
the Free Software Foundation, write to the Free Software Foundation;
|
||||
we sometimes make exceptions for this. Our decision will be guided by
|
||||
the two goals of preserving the free status of all derivatives of our
|
||||
free software and of promoting the sharing and reuse of software
|
||||
generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
How to Apply These Terms to Your New Programs
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make
|
||||
it free software which everyone can redistribute and change under
|
||||
these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
one line to give the program's name and an idea of what it does.
|
||||
Copyright (C) yyyy name of author
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper
|
||||
mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like
|
||||
this when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) yyyy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
||||
type `show w'. This is free software, and you are welcome
|
||||
to redistribute it under certain conditions; type `show c'
|
||||
for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the
|
||||
appropriate parts of the General Public License. Of course, the
|
||||
commands you use may be called something other than `show w' and
|
||||
`show c'; they could even be mouse-clicks or menu items--whatever
|
||||
suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the
|
||||
program, if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright
|
||||
interest in the program `Gnomovision'
|
||||
(which makes passes at compilers) written
|
||||
by James Hacker.
|
||||
|
||||
signature of Ty Coon, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your
|
||||
program into proprietary programs. If your program is a subroutine
|
||||
library, you may consider it more useful to permit linking
|
||||
proprietary applications with the library. If this is what you want
|
||||
to do, use the GNU Library General Public License instead of this
|
||||
License.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
----------
|
||||
Return to GNU's home page.
|
||||
FSF & GNU inquiries & questions to gnu@gnu.org. Other ways to contact
|
||||
the FSF.
|
||||
|
||||
Comments on these web pages to webmasters@www.gnu.org, send other
|
||||
questions to gnu@gnu.org.
|
||||
|
||||
Copyright notice above.
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111, USA
|
||||
|
||||
Updated: 16 Feb 1998 tower
|
||||
|
65
ICONS/icons.rc
Normal file
65
ICONS/icons.rc
Normal file
|
@ -0,0 +1,65 @@
|
|||
#include "resource.h"
|
||||
#include "winresrc.h"
|
||||
#include "config.h"
|
||||
|
||||
/* IDC_STATIC is documented in winuser.h, but not defined. */
|
||||
#ifndef IDC_STATIC
|
||||
#define IDC_STATIC (-1)
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON DISCARDABLE "prboom-plus.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
#ifdef USE_WINDOWS_LAUNCHER
|
||||
|
||||
#ifdef _MSC_VER
|
||||
1 24 MOVEABLE PURE "prboom-plus.exe.manifest"
|
||||
#else
|
||||
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "prboom-plus.exe.manifest"
|
||||
#endif
|
||||
|
||||
IDD_LAUNCHERSERVERDIALOG DIALOGEX 0, 0, 187, 245
|
||||
STYLE DS_SYSMODAL | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP |
|
||||
WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_CONTROLPARENT | WS_EX_APPWINDOW
|
||||
CAPTION "PrBoom-Plus Launcher"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,72,224,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,127,224,50,14
|
||||
CONTROL "Tab1",IDC_TAB1,"SysTabControl32",0x0,5,5,178,214
|
||||
END
|
||||
|
||||
IDD_LAUNCHERCLIENTDIALOG DIALOGEX 7, 7, 173, 206
|
||||
STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
||||
BEGIN
|
||||
LTEXT "Game:",IDC_STATIC,4,5,22,8,0,WS_EX_TRANSPARENT
|
||||
COMBOBOX IDC_IWADCOMBO,4,15,164,100,CBS_DROPDOWNLIST | CBS_SORT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Files:",IDC_STATIC,4,32,17,8,0,WS_EX_TRANSPARENT
|
||||
LISTBOX IDC_PWADLIST,4,42,164,110,LBS_SORT |
|
||||
LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | LBS_EXTENDEDSEL |
|
||||
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||
LTEXT "History:",IDC_STATIC,4,155,38,8,0,WS_EX_TRANSPARENT
|
||||
COMBOBOX IDC_HISTORYCOMBO,4,165,164,100,CBS_DROPDOWNLIST |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Commands:",IDC_STATIC,4,181,38,8,0,WS_EX_TRANSPARENT
|
||||
COMBOBOX IDC_COMMANDCOMBO,4,191,164,100,CBS_DROPDOWNLIST |
|
||||
WS_VSCROLL
|
||||
LTEXT "",IDC_FULLFILENAMESTATIC,23,32,142,8
|
||||
END
|
||||
|
||||
#endif // USE_WINDOWS_LAUNCHER
|
||||
/////////////////////////////////////////////////////////////////////////////
|
51
ICONS/prboom-plus.bash
Normal file
51
ICONS/prboom-plus.bash
Normal file
|
@ -0,0 +1,51 @@
|
|||
# bash completion for PrBoom+ -*- shell-script -*-
|
||||
|
||||
_prboom_plus()
|
||||
{
|
||||
local cur prev words cword
|
||||
_init_completion || return
|
||||
|
||||
# Save the previous switch on the command line in the prevsw variable
|
||||
local i prevsw=""
|
||||
for (( i=1; $cword > 1 && i <= $cword; i++ )); do
|
||||
if [[ ${words[i]} == -* ]]; then
|
||||
prevsw=${words[i]}
|
||||
fi
|
||||
done
|
||||
|
||||
# Allow adding more than one file with the same extension to the same switch
|
||||
case $prevsw in
|
||||
-iwad|-file)
|
||||
_filedir wad
|
||||
;;
|
||||
-deh)
|
||||
_filedir '@(bex|deh)'
|
||||
;;
|
||||
-record*|-*demo)
|
||||
_filedir lmp
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ $cur == -* ]]; then
|
||||
COMPREPLY=( $( compgen -W '-1 -2 -3 -altdeath -aspect -auto -avg
|
||||
-avidemo -bexout -blockmap -complevel -config -deathmatch -debugfile
|
||||
-deh -devparm -fast -fastdemo -ffmap -file -fullscreen -geom -height
|
||||
-iwad -levelstat -noaccel -noblit -nocheats -nodraw -nodrawers
|
||||
-nofullscreen -nojoy -nomonsters -nomouse -nomusic -nosfx -nosound
|
||||
-nowindow -playdemo -port -record -recordfromto -resetgamma -respawn
|
||||
-save -shorttics -shotdir -skill -skipsec -solo-net -spechit -timedemo
|
||||
-timer -viddump -videodriver -vidmode -viewangle -warp -width -window' \
|
||||
-- "$cur" ) )
|
||||
else
|
||||
# DoLooseFiles() takes any file names on the command line before the
|
||||
# first switch parm and inserts the appropriate -file, -deh or -playdemo
|
||||
# switch in front of them.
|
||||
if [[ -z "$prevsw" ]]; then
|
||||
_filedir '@(bex|deh|lmp|wad)'
|
||||
fi
|
||||
fi
|
||||
} &&
|
||||
|
||||
complete -F _prboom_plus prboom-plus
|
||||
|
||||
# ex: ts=4 sw=4 et filetype=sh
|
10
ICONS/prboom-plus.desktop
Normal file
10
ICONS/prboom-plus.desktop
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=PrBoom+
|
||||
Comment=enhanced clone of the classic first-person shooter Doom
|
||||
Icon=prboom-plus
|
||||
TryExec=prboom-plus
|
||||
Exec=prboom-plus %F
|
||||
Categories=Game;ActionGame;
|
||||
MimeType=application/x-doom-wad;
|
||||
Keywords=first;person;shooter;doom;
|
32
ICONS/prboom-plus.exe.manifest
Normal file
32
ICONS/prboom-plus.exe.manifest
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!-- What's this??? It's for WinXP. See bug#466423 if you're interested -->
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||||
<assemblyIdentity
|
||||
version="1.0.0.0"
|
||||
processorArchitecture="*"
|
||||
name="prboom-plus.prboom-plus.prboom-plus"
|
||||
type="win32"
|
||||
/>
|
||||
<description>PrBoom-Plus</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
|
||||
<!-- Declare app as DPI aware, so that Windows Vista and later will not
|
||||
apply DPI virtualization. -->
|
||||
|
||||
<asmv3:application>
|
||||
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
|
||||
<dpiAware>true</dpiAware>
|
||||
</asmv3:windowsSettings>
|
||||
</asmv3:application>
|
||||
</assembly>
|
BIN
ICONS/prboom-plus.ico
Normal file
BIN
ICONS/prboom-plus.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 408 KiB |
127
ICONS/prboom-plus.svg
Normal file
127
ICONS/prboom-plus.svg
Normal file
|
@ -0,0 +1,127 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="32px"
|
||||
height="32px"
|
||||
id="svg2985"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="prbp.svg">
|
||||
<defs
|
||||
id="defs2987">
|
||||
<linearGradient
|
||||
id="linearGradient3874">
|
||||
<stop
|
||||
style="stop-color:#aa0004;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3876" />
|
||||
<stop
|
||||
style="stop-color:#390001;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3878" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3858">
|
||||
<stop
|
||||
style="stop-color:#d5a500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3860" />
|
||||
<stop
|
||||
style="stop-color:#fff000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3862" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3858"
|
||||
id="radialGradient3872"
|
||||
cx="28"
|
||||
cy="4"
|
||||
fx="28"
|
||||
fy="4"
|
||||
r="6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,-1,44,20)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3874"
|
||||
id="radialGradient3880"
|
||||
cx="16"
|
||||
cy="16"
|
||||
fx="16"
|
||||
fy="16"
|
||||
r="16"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="17.109259"
|
||||
inkscape:cx="6.9997341"
|
||||
inkscape:cy="15.98528"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3058"
|
||||
empspacing="2"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
spacingy="0.5px"
|
||||
spacingx="0.5px"
|
||||
originy="-0.5px"
|
||||
originx="-0.5px"
|
||||
color="#0000ff"
|
||||
opacity="0" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata2990">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<path
|
||||
style="fill:url(#radialGradient3880);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 0.5,18.5 5,-6 -2,-6 5,0 0,-6 6,6 6,-6 3,4 0,6 7,0 -4,9 4,11 -14,-6 -8,5 0,-6 -4,0 0,-4 z"
|
||||
id="path3060"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:url(#radialGradient3872);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 13.5,10.5 0,3 -3,0 0,5 3,0 0,3 5,0 0,-3 3,0 0,-5 -3,0 0,-3 z"
|
||||
id="path3062"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
20
ICONS/resource.h
Normal file
20
ICONS/resource.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#define IDI_ICON1 101
|
||||
#define IDI_ICON2 102
|
||||
#define IDI_ICON3 103
|
||||
#define IDI_ICON4 104
|
||||
#define IDI_ICON5 105
|
||||
#define IDI_ICON6 106
|
||||
#define IDD_LAUNCHERSERVERDIALOG 120
|
||||
#define IDD_LAUNCHERCLIENTDIALOG 121
|
||||
#define IDC_TAB1 1003
|
||||
#define IDC_COMBO1 1004
|
||||
#define IDC_IWADCOMBO 1004
|
||||
#define IDC_IWADLIST 1006
|
||||
#define IDC_LIST2 1006
|
||||
#define IDC_PWADLIST 1006
|
||||
#define IDC_LIST3 1007
|
||||
#define IDC_COMMANDCOMBO 1008
|
||||
#define IDC_HISTORYCOMBO 1009
|
||||
#define IDC_EDIT2 1014
|
||||
#define IDC_CHECK1 1015
|
||||
#define IDC_FULLFILENAMESTATIC 1016
|
245
INSTALL
Normal file
245
INSTALL
Normal file
|
@ -0,0 +1,245 @@
|
|||
Basic Installation (ZIP, tarball, Git)
|
||||
==================
|
||||
|
||||
1. To compile PrBoom-Plus, you need at least SDL2. To enable various
|
||||
extensions and optional features, the following are required:
|
||||
- SDL2_net (for network play)
|
||||
- SDL2_image (for high-res textures in OpenGL, and PNG screenshots)
|
||||
- PCRE (for demo filename pattern matching)
|
||||
- for music support, some or all of
|
||||
* SDL2_mixer (midi, timidity)
|
||||
* Fluidsynth (midi)
|
||||
* ALSA (midi)
|
||||
* Portmidi (midi)
|
||||
* MAD (mp3)
|
||||
* DUMB (various tracker-style formats)
|
||||
* vorbisfile (ogg)
|
||||
On a typical Debian or Ubuntu system this may be sufficient:
|
||||
apt-get install libsdl2-dev libsdl2-net-dev libsdl2-image-dev \
|
||||
libpcre3-dev libsdl2-mixer-dev libfluidsynth-dev \
|
||||
libportmidi-dev libmad0-dev libdumb1-dev libvorbis-dev libasound2-dev
|
||||
|
||||
You will also need `cmake` and `make` if you haven't already got them.
|
||||
|
||||
2. `cd' to the directory containing the PrBoom distribution (the directory
|
||||
this file is in, prboom2).
|
||||
|
||||
Create a new `build` folder and `cd` into it.
|
||||
`mkdir build && cd build`
|
||||
|
||||
Run `cmake .. -DCMAKE_BUILD_TYPE=Release` from this folder, or
|
||||
`cmake .. -DCMAKE_BUILD_TYPE=Debug` for a debug build. (This gives
|
||||
slightly lower performance, but more details in the event of
|
||||
issues).
|
||||
|
||||
This should end with the message "Build files have been written to: [folderpath]".
|
||||
|
||||
3. Type `make` to compile PrBoom. This may take some time; while it's
|
||||
compiling I suggest you read the README, or maybe go and look for some
|
||||
good doom levels to play when it's finished :-).
|
||||
|
||||
This should work on all Linux systems, but systems that have a make
|
||||
utility other than GNU make may have problems. E.g. you might need to
|
||||
install GNU make, and then use it instead of make for these
|
||||
instructions. I have tested BSD pmake and it works fine.
|
||||
|
||||
4. Type `make install/strip' as root, to install the programs, data files
|
||||
and man pages for PrBoom. If you don't have root access on the machine,
|
||||
you should ask the syadmin to do this and the next step for you.
|
||||
|
||||
If you want to install manually then you should put the `prboom-plus.wad`
|
||||
in /usr/local/share/games/doom/ (or symlink it from there).
|
||||
|
||||
5. Copy your Doom, Doom 2, Ultimate Doom or Final Doom IWAD (doom.wad or
|
||||
doom2.wad) to /usr/local/share/games/doom/ (or symlink it from there).
|
||||
Or if you don't have any of those, use the shareware IWAD, which you can
|
||||
get from http://www.doomworld.com/ or http://www.idsoftware.com/.
|
||||
|
||||
If you have a system with many users, you should read the license for
|
||||
your version of Doom, and make sure only those users allowed to use it
|
||||
can access the IWAD file.
|
||||
|
||||
You may also aquire FreeDoom from https://freedoom.github.io/ which is a
|
||||
free replacement to the iD Doom iWADs.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source directory by typing `make clean`. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. PrBoom is now ready for use. If /usr/local/games is in your path,
|
||||
you can just run prboom; otherwise give the full path.
|
||||
|
||||
|
||||
|
||||
Building an RPM
|
||||
===============
|
||||
|
||||
If you are on a system which uses the RPM packaging format, you might prefer
|
||||
to build an RPM containing the PrBoom binaries rather than installing them
|
||||
directly. Follow steps 1 and 2 above, then run a "make rpm". This performs
|
||||
the usual proceedure for building the rpm in /usr/src/redhat/. Note that
|
||||
the RPM sets its own parameters to ./configure; if you want to override
|
||||
them you'll have to edit the build scripts yourself. Note that to get the
|
||||
correct permissions, you either have to run this process as root, or use the
|
||||
wrapper program fakeroot (version 0.4.5 or later - grab it from the Debian
|
||||
source archive) and make sure you have permissions to the RPM build area.
|
||||
|
||||
Installation Details
|
||||
====================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
|
||||
The file `configure.ac' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.ac' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
300
NEWS
Normal file
300
NEWS
Normal file
|
@ -0,0 +1,300 @@
|
|||
PrBoom-Plus 2.6.66 @ 20 Jun 2023
|
||||
* Move default data directory to XDG_DATA_HOME on Linux by @facespkz in https://github.com/coelckers/prboom-plus/pull/470
|
||||
* sort resolutions by width first and height second by @fabiangreffrath in https://github.com/coelckers/prboom-plus/pull/472
|
||||
* check return status when checking for old prboom_dir by @facespkz in https://github.com/coelckers/prboom-plus/pull/473
|
||||
* Fix integer overflow during multiplication with realtic_clock_rate by @jengelh in https://github.com/coelckers/prboom-plus/pull/476
|
||||
* Fix UMAPINFO par times not loading for finale levels. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/479
|
||||
* Don't overwrite user-configured custom docdir by @vilhelmgray in https://github.com/coelckers/prboom-plus/pull/480
|
||||
* Generate mixer buffer size from sample rate by @facespkz in https://github.com/coelckers/prboom-plus/pull/483
|
||||
* Allow uppercase episode shortcuts in UMAPINFO by @facespkz in https://github.com/coelckers/prboom-plus/pull/486
|
||||
* Add complevel hints for Default compatibility level by @facespkz in https://github.com/coelckers/prboom-plus/pull/488
|
||||
* UMAPINFO: Fix nextsecret inconsistencies by @rfomin in https://github.com/coelckers/prboom-plus/pull/497
|
||||
* Fix mid-texture judder when upper and middle textures overlap. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/507
|
||||
* include wipe effect into video capture by @vadosnaprimer in https://github.com/coelckers/prboom-plus/pull/506
|
||||
* allow to -warp to MAP00 by @fabiangreffrath in https://github.com/coelckers/prboom-plus/pull/509
|
||||
* Workaround for optimization bug in clang by @rfomin in https://github.com/coelckers/prboom-plus/pull/512
|
||||
* Show a message when demo recording starts. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/517
|
||||
* Remove shift when initializing translation tables vs. colormap. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/519
|
||||
* Fix PortMidi level transitions by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/523
|
||||
* replace doomedsda.us links with dsdarchive.com by @andrey-budko in https://github.com/coelckers/prboom-plus/pull/525
|
||||
* Add proper SysEx support to PortMidi by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/526
|
||||
* Fix color translation tables to not rely on player map arrow colors. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/527
|
||||
* Fix pitch bend typo for PortMidi by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/529
|
||||
* Add configurable reverb and chorus for PortMidi by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/530
|
||||
* Adjust music volume slider to match vanilla Doom by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/531
|
||||
* Use non-linear scaling for high volume levels by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/532
|
||||
* Adjust PortMidi volume slider to match midiOutSetVolume by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/533
|
||||
* Remove alpha channel from FBO scene texture. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/534
|
||||
* UMAPINFO: bring par times fix in line with Woof by @fabiangreffrath in https://github.com/coelckers/prboom-plus/pull/537
|
||||
* Fixing wall texture bleed when a sector is inside the sky by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/542
|
||||
* Send all notes/sound off prior to SysEx reset by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/543
|
||||
* Fix MIDI looping when using reset delay by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/544
|
||||
* Clean up and fixes for PortMidi by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/548
|
||||
* Fix FluidSynth mode and polyphony by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/550
|
||||
* PortMidi: Use channel volume control, remove extra delay after reset by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/552
|
||||
* Replace win_fopen.c with wrappers used in Chocolate Doom by @rfomin in https://github.com/coelckers/prboom-plus/pull/554
|
||||
* PortMidi: Preserve timing when filtering SysEx; default to GM mode by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/555
|
||||
* PortMidi: Add fix for MS GS Synth bug by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/557
|
||||
* PortMidi: Fix songs with missing "hold pedal off" events by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/560
|
||||
* PortMidi: Send "reset all controllers" when song loops by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/562
|
||||
* Fix M_getcwd() in MinGW build by @rfomin in https://github.com/coelckers/prboom-plus/pull/563
|
||||
* Fix string overflow with large map numbers. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/569
|
||||
* Supply correct texture format for GL wipe. by @JadingTsunami in https://github.com/coelckers/prboom-plus/pull/570
|
||||
* PortMidi: Update volume after "reset all controllers" event by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/571
|
||||
* PortMidi: Optimize reset messages by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/572
|
||||
* PortMidi Updates by @ceski-1 in https://github.com/coelckers/prboom-plus/pull/576
|
||||
* UMAPINFO: Introduce the new author field. by @rfomin in https://github.com/coelckers/prboom-plus/pull/436
|
||||
|
||||
PrBoom-Plus 2.6.2 @ 11 Feb 2022
|
||||
- added a prospective fix for OpenGL rendering: don't bleed walls through sky floors
|
||||
- account for proper crosshair offsets when locked on to monsters
|
||||
- relaxed "IWAD tag not present" error to a warning, which allows loading REKKR IWAD
|
||||
- fixed processing of multiple DEHs
|
||||
- UMAPINFO: fixed error reporting if token == TK_NoToken
|
||||
- fixed intermission screen for E0Mx
|
||||
- fixed Alt+Tabbing on Windows, broken in new SDL2 version
|
||||
- UMAPINFO: fixed using_FMI reset * no more crashes at textscreens
|
||||
(e.g. after MAP06, MAP11 or MAP20) after viewing finale picture upon finishing
|
||||
a level with UMAPINFO 'endpic' property
|
||||
- fixed freezing at TITLEPIC while using mousewheel in menus
|
||||
- fixed looping forever in G_NextWeapon()
|
||||
- UMAPINFO: fix 'entering' and 'enterpic' shown on exit levels
|
||||
- GL: adjust sky offsets for non-standard FOVs
|
||||
- fixed stuttering with uncapped framerate
|
||||
- added support for widescreen low resolutions
|
||||
- added REKKR to launcher string list
|
||||
- let G_GotoNextLevel() close the circle for maps with an endpic
|
||||
- Launcher: identify IWADs either by IWAD tag, or by PWAD tag and matching filename
|
||||
- Portmidi: fix freeze after song change
|
||||
- fixed scaled time interpolation when changing game speed
|
||||
- fixed wrong pitch of SFX when MIDI Player is set to SDL
|
||||
- v1.2 compat:
|
||||
* do not use sfx_getpow for powerups
|
||||
* do not render powerups and attacking Spiderdemon fullbright
|
||||
- UMAPINFO: fixed par times not showing
|
||||
- fixed demo playback warp consistency
|
||||
- added SKILL cheat to display current skill level
|
||||
- fixed calculation of interpolation frac value
|
||||
- guard against screen buffer underflow
|
||||
- fixed crash at startup by properly closing IWAD file handle
|
||||
- added vanilla_keymap option à la Chocolate Doom
|
||||
- added 'run' as a mouse-settable control (mouseb_speed)
|
||||
|
||||
PrBoom-Plus 2.6.1um @ 16 Aug 2021
|
||||
- fixed MOD playback with DUMB 2.x
|
||||
- added TNTCLxx cheat, e.g. TNTCL04 sets complevel 4 (Final DOOM)
|
||||
- draw crosshair before messages, draw crosshair for fist/chainsaw and during on-screen messages
|
||||
- fixed crosshair locking on target for melee weapons
|
||||
- more consistently check for ammo instead of weapon type
|
||||
- fixed odd strafe values (vanilla allows even values only)
|
||||
- added TNTSHORT cheat to toggle shorttics on and off while in game
|
||||
- fixed typo in ZDoom-style Actor name (Slalagtite -> Stalagtite)
|
||||
- fixed Windows Alt-Tab
|
||||
- fixed a memory leak on SDL_Quit()
|
||||
- preserve automap position/scale when toggling overlay mode
|
||||
- allow binding weapon selection to mouse buttons
|
||||
- add a `-pistolstart` command-line parameter
|
||||
- fixed crashes on WADs with empty music lumps, e.g. Nihility.wad
|
||||
- enabled loading 16 bit RIFF wavs in WADs
|
||||
- make low-pass sound filter (introduced by the previous change) optional
|
||||
- if executable directory appears not writable, fall back to `.`
|
||||
- made pitch-shift range independent of target samplerate
|
||||
- fixed bogus condition preventing automap lines from being drawn
|
||||
- fixed saving of mouse button bindings
|
||||
- fixed interpolated z-coordinate after teleporting
|
||||
- added a new option "Disable sound cutoffs" to allow removed map objects to finish playing their sounds and to make seesounds uninterruptible
|
||||
- allow deleting savegames from menu
|
||||
- fixed automap crash when `USE_VERTEX_ARRAYS` and `GL_VBO` are undefined
|
||||
- fluidsynth: reset all controllers when looping a song
|
||||
- fixed hanging notes on exit when using Portmidi
|
||||
- show current and next levels when typing IDCLEV cheat
|
||||
- added a config key for "exclusive" i.e. mode-changing fullscreen
|
||||
- UMAPINFO: if interbackdrop does not specify a valid flat, draw it as a patch instead
|
||||
- appended revision tracker to UMAPINFO spec document
|
||||
- ALSA sequencer API backend for ALSA MIDI support (Linux only)
|
||||
- extended range of maps reachable via `-warp` and IDCLEV:
|
||||
* from E1M1-E4M9 to E1M0-E9M99 for D1
|
||||
* from MAP01-MAP33 to MAP00-MAP99
|
||||
* Limitations:
|
||||
* E0My doesn't work, since episode must always be > 0
|
||||
* `-warp x 0`, because zero passed to `-warp` as map number is used to warping to first changed map in PWAD
|
||||
- evaluate mouse motion only once per tick
|
||||
- show Time/STS widgets above status bar
|
||||
- removed lowpass-filter item from menu
|
||||
- fixed `P_SetMobjState()` stack, fixes crash on mayhem18p.wad/m18p31-1509.lmp
|
||||
- fixed crash in automap on certain maps (e.g. Sunlust MAP01) when using GL renderer, Thing Appearance = Icons and 2xIDDT
|
||||
- fixed menu intermission desync
|
||||
- fixed crash when leaving menu in Chex Quest
|
||||
- initialize the map title widget with the generic map lump name
|
||||
- make "Next Level" key simply increase map number if already outside regular level transition range
|
||||
- check for next level in IDCLEV cheat before announcing it
|
||||
- make sure "Next Level" key never warps to a non-existent map
|
||||
- reformatted umapinfo.txt so that it is easier to read in plaintext
|
||||
- fixed custom episode select for Doom 2
|
||||
- fixed shifting automap markers
|
||||
- allow translucent sprites on all complevels
|
||||
- allow disabling predefined translucency on all complevels
|
||||
- fixed flood HOM on certain maps (e.g. Plutonia MAP11, HR MAP01) (GL)
|
||||
- fixed sky walls for cases with sky vs. sky toptextures (e.g. E4M6) (GL)
|
||||
- fixed transparent spites being rendered incorrectly with transparent walls in view (GL)
|
||||
- generate a default save-slot name when saving to an empty slot
|
||||
- added mouse button binds for turn left/right
|
||||
- fixed sky scaling for non-standard sky sizes, e.g. Eviternity and Ancient Aliens (GL)
|
||||
- added new advanced HUD layout by Fireb3rt+
|
||||
- added slice_samplecount config option
|
||||
- added manifest to declare app as DPI aware, so that Windows will not apply DPI virtualization
|
||||
- added support for widescreen assets
|
||||
- added ZDoom's names for the new Crispy Doom/DEHEXTRA things to ActorNames[], so they can be used with BossAction() if needed
|
||||
- fixed UMAPINFO music restarting issue
|
||||
- skip the 'entering level' screen if one of endgame, endpic, endbunny or endcast is set (UMAPINFO)
|
||||
- fixed endbunny and endgame UMAPINFO fields
|
||||
- reset mlook on demo recording
|
||||
- added OpenGL sprite fuzz options ("darken", "shadow", "transparent", "ghostly")
|
||||
- properly check for the CreateFileMapping() symbol (build)
|
||||
- always precache sound lumps
|
||||
- replace W_SafeGetNumForName() with W_CheckNumForName()
|
||||
- removed defunct lump locking warnings
|
||||
- removed obsolete SFX usefulness references
|
||||
- allow colored blood to get set/overridden by DEHACKED, implemented Eternity's coloredblood spec, added three additional color translation tables for black, purple and white
|
||||
- made the Ouch Face fix available on all complevels
|
||||
- added the autoload directory feature from Chocolate Doom
|
||||
- implemented custom atexit() sequence, ported over from Chocolate Doom, fixing crashes during shutdown e.g. on Linux using Wayland
|
||||
- fixed switching weapons when reaching zero ammo with boom_autoswitch == 0
|
||||
- made Doom sound quirk fixes available on all complevels
|
||||
- UMAPINFO: introduced the new 'label' field
|
||||
- do not cast degenmobj_t as mobj_t, breaks aliasing rules on platforms where mobj_t pointers are 64-bit aligned and
|
||||
degenmobj_t pointers are only 32-bit aligned
|
||||
- fixed `-solo-net` for demo restart
|
||||
- fixed levelstat crash for MAP33 and above
|
||||
- added autoload per PWAD feature, further enhancing the autoload directory feature
|
||||
- UMAPINFO: fixed 'episode' field parsing, 'label' is single-line
|
||||
- removed obsolete weapon toggle setting
|
||||
- added ftell() and fseek() implementations for DEHACKED lumps, allowing the DEH parser to roll back to the start of a line following a blank line and re-process it with the last valid block code handler
|
||||
- added mouse look / vertical mouse movement toggle notifications
|
||||
- fixed forcing aspect ratio correction only for the canonical 16:10 (i.e. 320x200 and 640x400) modes
|
||||
- do not even attempt to play DEMO4 if it is not available
|
||||
- only apply palette changes when inside a level
|
||||
- fixed 32-bit widescreen pain palette
|
||||
- added a `-coop_spawns` parameter for using "coop in single-player" mode
|
||||
- fixed OpenGL effect palettes
|
||||
- added support for non-latin paths and filenames on Windows
|
||||
- made sure to always autoload prboom-plus.wad
|
||||
- introduced a supplemental data directory "PRBOOMDATADIR" to install prboom-plus.wad into (build)
|
||||
- prepared for different autoload base directories, respecting the `-noload` parameter
|
||||
- fixed playback of complevel 11 demo with UMAPINFO
|
||||
- fixed attempted playback of a UMAPINFO demo without UMAPINFO loaded
|
||||
- never exceed desktop resolution in fullscreen desktop mode
|
||||
- UMAPINFO: entries without defined 'levelname' fall back to default
|
||||
- UMAPINFO: fixed default intermission
|
||||
- fixed setting 'finaleflat' in FMI_StartFinale (UMAPINFO)
|
||||
- fixed load game during multiplayer demo playback
|
||||
- fixed OpenGL backfill
|
||||
|
||||
PrBoom-Plus 2.6um @ 09 Feb 2021
|
||||
- fixed episode selection when playing Doom 2
|
||||
- fixed Doom 1 level progression
|
||||
- print a blinking arrow next to the currently highlighted menu item
|
||||
- print another blinking arrow to the right of the currently selected menu setting
|
||||
- support the DOOMWADPATH environment variable
|
||||
- add some extra states, sprites and mobjtypes from Doom Retro and Crispy Doom
|
||||
- fullscreen desktop for the software renderer
|
||||
- improved v1.2 compat:
|
||||
- fixed a desync on the internal demo in DTH1.WAD
|
||||
- fixed the walkways to the BFG rising a little too high on 1_ON_1.WAD
|
||||
- moving floors (except plats) should not make the floor stop sound
|
||||
- fixed infinite loop in macOS launcher
|
||||
- added CMake build system
|
||||
- fixed the mainfest to allow 64 bit builds
|
||||
- fixed PortMidi support on 64-bit Windows
|
||||
- disabled the "popping skull player death" easter egg
|
||||
- do not wait for VSync if running a timedemo
|
||||
- added -statdump parameter from Chocolate Doom
|
||||
- added mouse-strafe divisor setting
|
||||
- removed and/or replace all non-free data lumps
|
||||
- improved Boom random seed
|
||||
- added -stroller param
|
||||
- include secret exit in -levelstat
|
||||
- added configurable quickstart window
|
||||
- disallow 180-turn with strafe on
|
||||
- fixed endianess for 32-bit ZDoom nodes
|
||||
- show Extended Help screen when pressing the Help key
|
||||
- made armor color depend on type, not amount
|
||||
- added Chocolate Doom mouse behavior option
|
||||
- fixed Boom autoswitch behavior
|
||||
- reinstated the "WEAPON ATTACK ALIGNMENT" menu option
|
||||
- changed "SECRET AREAS" menu option to "REPORT REVEALED SECRETS"
|
||||
- fixed endianess for DeePBSP V4 nodes
|
||||
- show error message boxes on Windows, except when video-dumping a demo
|
||||
- unbind game speed changing keys in default config
|
||||
- fixed heap buffer overflows in UDP multiplayer code
|
||||
- fixed -longtics having no effect
|
||||
- changed video capture to an ffmpeg-based approach
|
||||
- track demo joins for TAS-detection purposes
|
||||
- fixed some episode transition issues when using UMAPINFO
|
||||
- added automap rotate and overlay keybindings to menus
|
||||
- fixed a bug in DeHackEd string replacements with a length of exactly four
|
||||
- added "Dropped Item" menu support
|
||||
- enabled automap Follow Mode by default
|
||||
- disabled chorus and reverb for Fluidsynth by default
|
||||
- fix segfault with -viewangle parameter
|
||||
- next levels no longer reset if endscreen is disabled in UMAPINFO
|
||||
- added 200 Sounds for DEHEXTRA
|
||||
- respawn when using IDDQD while dead
|
||||
- fixes for empty DeHackEd lumps and entries
|
||||
- restrict "next level" button usage to in-level only
|
||||
- added adaptations for fluidsynth 2.0
|
||||
- added "No Vertical Mouse" setting and keybind
|
||||
- save / load -complevel 9 friction
|
||||
- added extensible demo format + "PR+UM" signature
|
||||
- made canonical resolutions (320x200, 320x240, 640x400 and 640x480)
|
||||
always available in menu, regardless of what video driver/SDL report
|
||||
- fixed aspect ratio for canonical resolutions; be sure to set "Aspect Ratio" to "Auto"
|
||||
and "Status Bar and Menu Appearance" to "Not Adjusted" for both 320x200 and 640x400
|
||||
- set minimum windows size to prevent window from shrinking when changing video modes
|
||||
- "Screen Multiple Factor" now functions like a "window size factor"
|
||||
(i.e. like "-1", "-2", "-3" in Chocolate Doom) and has no effect in fullscreen modes
|
||||
- added "Integer Screen Scaling" option (à la Crispy Doom), which restricts the screen
|
||||
size to integer multiples of the game resolution, under Options -> General, page 5
|
||||
- both executables now share the same config file "prboom-plus.cfg", with all config
|
||||
keys always preserved - including the GL-related ones
|
||||
- switched to the unified executable "prboom-plus" with optional OpenGL rendering
|
||||
- portmidi: pitch bends are now reset when stopping song
|
||||
- added support for more mouse buttons
|
||||
- fixed resolution-independent mouse sensitivity
|
||||
- added demo restart functionality - record a new demo on map restart
|
||||
- setup menus remember last active item
|
||||
- fixed the KFA cheat sting not read from .bex patches
|
||||
- UMAPINFO docs updated re: "bossaction" field
|
||||
- fixed a crash when running out of space while typing in a file path into the autoload
|
||||
fields (Options -> General, page 2)
|
||||
- fixed the "Garbage lines at the top of weapon sprites" issue (#95)
|
||||
- add support for named complevels on command line:
|
||||
-complevel 1.9 = -complevel 2
|
||||
-complevel doom2 = -complevel 2
|
||||
-complevel ultimate = -complevel 3
|
||||
-complevel udoom = -complevel 3
|
||||
-complevel final = -complevel 4
|
||||
-complevel tnt = -complevel 4
|
||||
-complevel plutonia = -complevel 4
|
||||
-complevel boom = -complevel 9
|
||||
-complevel mbf = -complevel 11
|
||||
-complevel vanilla = complevel autodetected according to IWAD loaded
|
||||
- allow MBF sky transfers in all complevels
|
||||
- add support for colored blood and gibs
|
||||
- fixed key-bindings unusable after mouse-wheel up/down
|
||||
|
||||
PrBoom-Plus 2.5.1.7um @ 16 Jun 2019
|
||||
- adds a special marker to demos recorded with UMAPINFO
|
||||
- addes support for ZDBSP's compressed node format
|
||||
- fixes the rendering problems in OpenGL
|
||||
- fixes TRANMAP caching
|
||||
|
||||
PrBoom-Plus 2.5.1.6um @ 11 Jun 2019
|
||||
This fixes a major bug with the episode selection menu not working and adds IDCLEV checks for maps outside the standard range.
|
||||
|
||||
PrBoom-Plus 2.5.1.5um @ 10 Jun 2019
|
||||
First official release with UMAPINFO support
|
||||
|
||||
2.5.1.4.umapinfo_test @ 22 Apr 2017
|
||||
Beta version with UMAPINFO support.
|
||||
Note that this is for testing as the newly added MAPINFO feature has not seen thorough testing yet.
|
251
README
Normal file
251
README
Normal file
|
@ -0,0 +1,251 @@
|
|||
PrBoom 2.6.66
|
||||
|
||||
PrBoom is a version of the classic 3D shoot'em'up game Doom, originally
|
||||
written by id Software.
|
||||
|
||||
See the file AUTHORS in this distribution for a list of authors and
|
||||
other contributors, and a history of the projects PrBoom is derived
|
||||
from.
|
||||
|
||||
PrBoom is made available under the GNU General Public License. See the
|
||||
file COPYING included in this distribution for details.
|
||||
|
||||
Please see the NEWS file included for changes since the previous version.
|
||||
|
||||
Game data - WADs
|
||||
----------------
|
||||
|
||||
(This section is aimed at people not familiar with Doom and the
|
||||
data files it uses.)
|
||||
|
||||
PrBoom is a game engine - it provides a program to play Doom levels, but
|
||||
it doesn't include any levels itself. More importantly, you need all the
|
||||
sounds, sprites, and other graphics that make up the Doom environment.
|
||||
So to play PrBoom, you need one of the main Doom date files from id
|
||||
Software - either doom.wad, doom2.wad, tnt.wad or plutonia.wad from one
|
||||
of the commercial Doom games, or the shareware doom1.wad. This file
|
||||
is called the IWAD.
|
||||
|
||||
PrBoom also supports playing Doom add-on levels, called "PWADs", which
|
||||
are small extra .wad files which just contain extra levels or other
|
||||
resources. PWADs are ONLY ADD-ONS, you still need the original IWAD
|
||||
that they are designed to work with. In practice, most PWADs on the
|
||||
Internet require doom2.wad (although some work with doom.wad).
|
||||
|
||||
If you don't own any of the Doom games, get the shareware doom1.wad
|
||||
from doom19s.zip on Doomworld's shareware download page. But note that you
|
||||
will not be able to play most add-ons.
|
||||
http://www.doomworld.com/files/shareware.shtml
|
||||
|
||||
Windows Installation
|
||||
--------------------
|
||||
|
||||
Just extract the zip to a directory of your choice and copy your IWAD
|
||||
files into it. Now you can make shortcuts and add "-iwad filename.wad"
|
||||
to them.
|
||||
|
||||
The SDL_mixer library used by PrBoom supports software MIDI music
|
||||
synthesis. If you want to hear the Doom music, you need a set of
|
||||
Timidity instrument patches. Do a web search for timidity patch sets,
|
||||
there are plenty around.
|
||||
These patch sets are a large download (>5megs).
|
||||
SDL_mixer does not currently support hardware MIDI synthesis. But we
|
||||
have added a hacked version of SDL_mixer with native midi support. If
|
||||
you like to try it out, rename SDL_mixer_beta.dll to SDL_mixer.dll.
|
||||
You should rename the original SDL_mixer.dll before. Tell us if it
|
||||
works or not. Please note, that there might be bugs in the native midi
|
||||
implementation.
|
||||
|
||||
Linux Installation
|
||||
------------------
|
||||
|
||||
For UNIX, Linux, and other POSIX systems, you need the SDL libraries in
|
||||
order to use PrBoom. If you haven't already done so, visit
|
||||
http://prboom.sourceforge.net/linux.html and follow the instructions there
|
||||
for your system, downloading the necessary libraries, and either
|
||||
installing the binary RPM package or compiling PrBoom from source.
|
||||
|
||||
Once you've done that, you'll need to copy your IWAD file (see the section
|
||||
above if you don't know what this is) to a directory where PrBoom can find
|
||||
it. Make /usr/local/share/games/doom/, and copy your IWAD (all of your
|
||||
IWADs, if you own more than one) to that directory.
|
||||
|
||||
Mac OS Installation
|
||||
-------------------
|
||||
|
||||
Copy your IWAD (see above) into your home folder under
|
||||
Library:Application Support:PrBoom (this folder will be created for you the
|
||||
first time you run PrBoom).
|
||||
|
||||
First Use
|
||||
---------
|
||||
|
||||
If it's the first time you've run PrBoom, you'll need to do some configuring
|
||||
to get the controls and display right for you.
|
||||
|
||||
On a new installation, PrBoom runs at 640x480 resolution. If you have used
|
||||
PrBoom before, you may have an old config file in your home directory which
|
||||
specifies a lower resolution, such as Doom's normal 320x200. You can use the
|
||||
-width and -height parameters to select a higher resolution, e.g.:
|
||||
|
||||
prboom -width 640 -height 400
|
||||
|
||||
sets the resolution. This setting is remembered for future sessions. For
|
||||
other parameters, see the included README.command-line.
|
||||
|
||||
You may also wish to customise the key bindings. PrBoom's default keybindings
|
||||
are the same as the original Doom; unlike original Doom, you can change key
|
||||
bindings in the game. In the in-game menus, go to Options, Settings, Key
|
||||
Bindings.
|
||||
|
||||
On Mac OS X, you can't use the command line, but after running the program
|
||||
once, you can edit YOURHOME:Library:Application Support:PrBoom:prboom.cfg to
|
||||
change settings like your screen resolution.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
This is all the features PrBoom has compared to the original Doom game
|
||||
- it's intended to give you an idea of the enhancements, rather than
|
||||
burying you in details.
|
||||
|
||||
See http://prboom.sourceforge.net/about.html for an HTML version of
|
||||
this list.
|
||||
|
||||
This is shamelessly modelled on Boom's changes pages. By each
|
||||
change, there's the name of the port the feature comes from (so it's
|
||||
compatible with).
|
||||
|
||||
Playing the game
|
||||
|
||||
* Supports loading dehacked files at the command line, or in WADs
|
||||
(BOOM, MBF)
|
||||
* Supports PWADs containing sprites and flats (BOOM)
|
||||
* Save games and demos completely store game parameters (BOOM,
|
||||
MBF)
|
||||
* Savegames store list of loaded WAD files, warning if wrong files
|
||||
loaded (BOOM, MBF)
|
||||
|
||||
Game engine
|
||||
|
||||
* Player bobbing improved, optional (BOOM, MBF)
|
||||
* Friction effects (BOOM), affecting players and monsters
|
||||
(MBF)
|
||||
* Wind, current, conveyor effects (BOOM)
|
||||
* Far more flexible scrolling wall/floor types (BOOM)
|
||||
* Always run (BOOM)
|
||||
* Weapon change logic overhauled and improved (BOOM)
|
||||
* Support for friendly monsters, helper dogs (MBF)
|
||||
* Monster target finding code improved (MBF)
|
||||
* AI improvements (MBF)
|
||||
* Bouncy and touchy things (MBF)
|
||||
* New code pointers (MBF)
|
||||
* Per-level and animated skies (MBF)
|
||||
* Generalised line types system gives complete flexibility
|
||||
(BOOM)
|
||||
* Elevators (BOOM)
|
||||
* Translucent sprites, walls (BOOM)
|
||||
* Independent floor and ceiling lighting (BOOM)
|
||||
* Silent teleports (BOOM)
|
||||
* Deep water, true underwater areas (BOOM)
|
||||
* Icon of Sin telefragging made more consistent (MBF)
|
||||
* Fix large numbers of game bugs (BOOM, MBF, LxDoom)
|
||||
* Support arbitrary texture heights (BOOM)
|
||||
|
||||
Screen
|
||||
|
||||
* High resolution support (PrBoom)
|
||||
* Optional message console, multiple message lines (BOOM)
|
||||
* Status bar shows health/armour/ammo in colours (BOOM)
|
||||
* Heads up display, showing ammo, health, keys overlayed on view
|
||||
(BOOM)
|
||||
|
||||
Multiplayer
|
||||
|
||||
* Spy mode improved (BOOM)
|
||||
* Support for loadgame in a net game (LxDoom)
|
||||
* Client server style network games (LxDoom)
|
||||
|
||||
Automap
|
||||
|
||||
* No limit on marks (BOOM)
|
||||
* Rotation and overlay modes (DOSDoom, LxDoom)
|
||||
* Map shows coordinates (BOOM), optionally follow pointer
|
||||
(MBF)
|
||||
* Teleport lines, key doors and switches marked specially (BOOM)
|
||||
* Keys, secrets visible on map with cheat codes (BOOM)
|
||||
* Colours fully configurable from menus (BOOM)
|
||||
|
||||
Intermission screens
|
||||
|
||||
* Par times hidden when not relevant (BOOM)
|
||||
* Total episode time shown (LxDoom)
|
||||
|
||||
Menus
|
||||
|
||||
* F1 help screen shows current key setup (BOOM)
|
||||
* Key bindings, monster behaviour, and compatibility settings all set
|
||||
in menus (BOOM, MBF)
|
||||
|
||||
Compatibility
|
||||
|
||||
* Game is capable of behaving like any of: original Doom v1.9, Boom
|
||||
v2.02, MBF (BOOM, MBF, LxDoom)
|
||||
* Plays most original Doom v1.9 demos (more than Boom or MBF)
|
||||
* Plays most Boom v2.02 demos (apart from levels with friction
|
||||
effects everything should work).
|
||||
* Plays some DOSDoom, earlier Doom, earlier Boom, and LxDoom demos.
|
||||
* Plays all MBF demos.
|
||||
* Auto-correction of common bugs in old levels (MBF), with
|
||||
warnings (LxDoom)
|
||||
* Fine control of options controlling compatibility and new features
|
||||
(MBF)
|
||||
|
||||
Controls
|
||||
|
||||
* Greater control of key bindings from in game menus (BOOM)
|
||||
* More accurate mouse sensitivity control (BOOM, LxDoom)
|
||||
|
||||
Misc
|
||||
|
||||
* Screenshot code improved, supports BMPs (BOOM)
|
||||
* Support for ENDOOM and ENDBOOM (BOOM, LxDoom)
|
||||
* -timedemo and -fastdemo options (BOOM)
|
||||
* Real time frame rate, segs, visplanes, sprites display
|
||||
(LxDoom)
|
||||
* Various extra cheat codes (BOOM, LxDoom)
|
||||
|
||||
Internals
|
||||
|
||||
* Greatly improved internal memory management (BOOM, LxDoom)
|
||||
* Startup time greatly shortened by lazy generation of some lookups
|
||||
(DOSDoom, LxDoom)
|
||||
* Removed internal limits (BOOM)
|
||||
|
||||
Other Tips
|
||||
----------
|
||||
|
||||
On Linux, SDL tries to detect an appropriate video device automatically.
|
||||
If you want to overrite the default, you can set the SDL_VIDEODRIVER
|
||||
enviromental variable. At a bash prompt, this is as easy as running:
|
||||
|
||||
SDL_VIDEODRIVER=fbcon prboom
|
||||
or
|
||||
SDL_VIDEODRIVER=svga prboom
|
||||
|
||||
Details
|
||||
-------
|
||||
|
||||
Details on these extra features are split into separate text files:
|
||||
|
||||
README.demos provides a guide to PrBoom's demo support
|
||||
README.compatibility describes PrBoom's various compatibility
|
||||
options and modes
|
||||
README.command-line gives a command line reference for prboom,
|
||||
prboom-game-server, and the format of boom.cfg.
|
||||
On UNIX/Linux systems use the man pages instead.
|
||||
|
||||
Editing features are not covered in the docs with this package. We plan
|
||||
to bundle the editing docs as a separate download. Watch our website
|
||||
for news.
|
||||
|
69
cmake/FindALSA.cmake
Normal file
69
cmake/FindALSA.cmake
Normal file
|
@ -0,0 +1,69 @@
|
|||
# Alsa check, based on libkmid/configure.in.in.
|
||||
# Only the support for Alsa >= 0.9.x was included; 0.5.x was dropped (but feel free to re-add it if you need it)
|
||||
# It defines ...
|
||||
# It offers the following macros:
|
||||
# ALSA_CONFIGURE_FILE(config_header) - generate a config.h, typical usage:
|
||||
# ALSA_CONFIGURE_FILE(${CMAKE_BINARY_DIR}/config-alsa.h)
|
||||
# ALSA_VERSION_STRING(version_string) looks for alsa/version.h and reads the version string into
|
||||
# the first argument passed to the macro
|
||||
|
||||
# Copyright (c) 2006, David Faure, <faure@kde.org>
|
||||
# Copyright (c) 2007, Matthias Kretz <kretz@kde.org>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckIncludeFileCXX)
|
||||
include(CheckLibraryExists)
|
||||
|
||||
# Already done by toplevel
|
||||
find_library(ASOUND_LIBRARY asound)
|
||||
set(ASOUND_LIBRARY_DIR "")
|
||||
if(ASOUND_LIBRARY)
|
||||
get_filename_component(ASOUND_LIBRARY_DIR ${ASOUND_LIBRARY} PATH)
|
||||
endif(ASOUND_LIBRARY)
|
||||
|
||||
check_library_exists(asound snd_seq_create_simple_port "${ASOUND_LIBRARY_DIR}" HAVE_LIBASOUND2)
|
||||
if(HAVE_LIBASOUND2)
|
||||
message(STATUS "Found ALSA: ${ASOUND_LIBRARY}")
|
||||
else(HAVE_LIBASOUND2)
|
||||
message(STATUS "ALSA not found")
|
||||
endif(HAVE_LIBASOUND2)
|
||||
set(ALSA_FOUND ${HAVE_LIBASOUND2})
|
||||
|
||||
find_path(ALSA_INCLUDES alsa/version.h)
|
||||
|
||||
macro(ALSA_VERSION_STRING _result)
|
||||
# check for version in alsa/version.h
|
||||
if(ALSA_INCLUDES)
|
||||
file(READ "${ALSA_INCLUDES}/alsa/version.h" _ALSA_VERSION_CONTENT)
|
||||
string(REGEX REPLACE ".*SND_LIB_VERSION_STR.*\"(.*)\".*" "\\1" ${_result} ${_ALSA_VERSION_CONTENT})
|
||||
else(ALSA_INCLUDES)
|
||||
message(STATUS "ALSA version not known. ALSA output will probably not work correctly.")
|
||||
endif(ALSA_INCLUDES)
|
||||
endmacro(ALSA_VERSION_STRING _result)
|
||||
|
||||
|
||||
get_filename_component(_FIND_ALSA_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
macro(ALSA_CONFIGURE_FILE _destFile)
|
||||
check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
|
||||
check_include_files(machine/soundcard.h HAVE_MACHINE_SOUNDCARD_H)
|
||||
|
||||
check_include_files(linux/awe_voice.h HAVE_LINUX_AWE_VOICE_H)
|
||||
check_include_files(awe_voice.h HAVE_AWE_VOICE_H)
|
||||
check_include_files(/usr/src/sys/i386/isa/sound/awe_voice.h HAVE__USR_SRC_SYS_I386_ISA_SOUND_AWE_VOICE_H)
|
||||
check_include_files(/usr/src/sys/gnu/i386/isa/sound/awe_voice.h HAVE__USR_SRC_SYS_GNU_I386_ISA_SOUND_AWE_VOICE_H)
|
||||
|
||||
check_include_file_cxx(sys/asoundlib.h HAVE_SYS_ASOUNDLIB_H)
|
||||
check_include_file_cxx(alsa/asoundlib.h HAVE_ALSA_ASOUNDLIB_H)
|
||||
|
||||
check_library_exists(asound snd_pcm_resume "${ASOUND_LIBRARY_DIR}" ASOUND_HAS_SND_PCM_RESUME)
|
||||
if(ASOUND_HAS_SND_PCM_RESUME)
|
||||
set(HAVE_SND_PCM_RESUME 1)
|
||||
endif(ASOUND_HAS_SND_PCM_RESUME)
|
||||
|
||||
configure_file(${_FIND_ALSA_MODULE_DIR}/config-alsa.h.cmake ${_destFile})
|
||||
endmacro(ALSA_CONFIGURE_FILE _destFile)
|
||||
|
||||
mark_as_advanced(ALSA_INCLUDES ASOUND_LIBRARY)
|
28
cmake/FindDUMB.cmake
Normal file
28
cmake/FindDUMB.cmake
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
SET(DUMB_SEARCH_PATHS
|
||||
/usr/local/
|
||||
/usr
|
||||
/opt
|
||||
)
|
||||
|
||||
FIND_PATH(DUMB_INCLUDE_DIR dumb.h
|
||||
HINTS ${DUMB_ROOT}
|
||||
PATH_SUFFIXES include include/dumb
|
||||
PATHS ${DUMB_SEARCH_PATHS}
|
||||
)
|
||||
FIND_LIBRARY(DUMB_LIBRARY dumb
|
||||
HINTS ${DUMB_ROOT}
|
||||
PATH_SUFFIXES lib64 lib
|
||||
PATHS ${DUMB_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
IF(DUMB_INCLUDE_DIR AND DUMB_LIBRARY)
|
||||
SET(DUMB_FOUND TRUE)
|
||||
ENDIF (DUMB_INCLUDE_DIR AND DUMB_LIBRARY)
|
||||
|
||||
|
||||
IF(DUMB_FOUND)
|
||||
MESSAGE(STATUS "Found Dumb: ${DUMB_LIBRARY}")
|
||||
ELSE(DUMB_FOUND)
|
||||
MESSAGE(STATUS "Could NOT find Dumb")
|
||||
ENDIF(DUMB_FOUND)
|
23
cmake/FindFluidSynth.cmake
Normal file
23
cmake/FindFluidSynth.cmake
Normal file
|
@ -0,0 +1,23 @@
|
|||
# - Find fluidsynth
|
||||
# Find the native fluidsynth includes and library
|
||||
#
|
||||
# FLUIDSYNTH_INCLUDE_DIR - where to find fluidsynth.h
|
||||
# FLUIDSYNTH_LIBRARIES - List of libraries when using fluidsynth.
|
||||
# FLUIDSYNTH_FOUND - True if fluidsynth found.
|
||||
|
||||
|
||||
IF (FLUIDSYNTH_INCLUDE_DIR AND FLUIDSYNTH_LIBRARIES)
|
||||
# Already in cache, be silent
|
||||
SET(FluidSynth_FIND_QUIETLY TRUE)
|
||||
ENDIF (FLUIDSYNTH_INCLUDE_DIR AND FLUIDSYNTH_LIBRARIES)
|
||||
|
||||
FIND_PATH(FLUIDSYNTH_INCLUDE_DIR fluidsynth.h)
|
||||
|
||||
FIND_LIBRARY(FLUIDSYNTH_LIBRARIES NAMES fluidsynth )
|
||||
MARK_AS_ADVANCED( FLUIDSYNTH_LIBRARIES FLUIDSYNTH_INCLUDE_DIR )
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set FLUIDSYNTH_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FluidSynth DEFAULT_MSG FLUIDSYNTH_LIBRARIES FLUIDSYNTH_INCLUDE_DIR)
|
||||
|
45
cmake/FindLibMad.cmake
Normal file
45
cmake/FindLibMad.cmake
Normal file
|
@ -0,0 +1,45 @@
|
|||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# Copyright 2013-2018 BBC Research and Development
|
||||
#
|
||||
# This file is part of Audio Waveform Image Generator.
|
||||
#
|
||||
# Author: Chris Needham
|
||||
#
|
||||
# Audio Waveform Image Generator is free software: you can redistribute it
|
||||
# and/or modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the License,
|
||||
# or (at your option) any later version.
|
||||
#
|
||||
# Audio Waveform Image Generator is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# Audio Waveform Image Generator. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# Finds libmad include file and library. This module sets the following
|
||||
# variables:
|
||||
#
|
||||
# LIBMAD_FOUND - Flag if libmad was found
|
||||
# LIBMAD_INCLUDE_DIRS - libmad include directories
|
||||
# LIBMAD_LIBRARIES - libmad library paths
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_path(LIBMAD_INCLUDE_DIRS mad.h)
|
||||
find_library(LIBMAD_LIBRARIES mad)
|
||||
|
||||
find_package_handle_standard_args(
|
||||
LibMad
|
||||
DEFAULT_MSG
|
||||
LIBMAD_LIBRARIES
|
||||
LIBMAD_INCLUDE_DIRS
|
||||
)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
53
cmake/FindOgg.cmake
Normal file
53
cmake/FindOgg.cmake
Normal file
|
@ -0,0 +1,53 @@
|
|||
# - Find ogg library
|
||||
# Find the native Ogg headers and libraries.
|
||||
#
|
||||
# OGG_INCLUDE_DIRS - where to find ogg/ogg.h, etc.
|
||||
# OGG_LIBRARIES - List of libraries when using ogg.
|
||||
# OGG_FOUND - True if ogg is found.
|
||||
|
||||
#=============================================================================
|
||||
#Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
||||
#All rights reserved.
|
||||
#
|
||||
#Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
#* Redistributions of source code must retain the above copyright notice,
|
||||
#this list of conditions and the following disclaimer.
|
||||
#
|
||||
#* Redistributions in binary form must reproduce the above copyright notice,
|
||||
#this list of conditions and the following disclaimer in the documentation
|
||||
#and/or other materials provided with the distribution.
|
||||
#
|
||||
#* Neither the names of Kitware, Inc., the Insight Software Consortium, nor
|
||||
#the names of their contributors may be used to endorse or promote products
|
||||
#derived from this software without specific prior written permission.
|
||||
#
|
||||
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
#AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
#IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
#ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
#LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
#CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
#SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
#INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
#CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
#ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
#POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
# Look for the header file.
|
||||
FIND_PATH(OGG_INCLUDE_DIR NAMES ogg/ogg.h)
|
||||
MARK_AS_ADVANCED(OGG_INCLUDE_DIR)
|
||||
|
||||
# Look for the library.
|
||||
FIND_LIBRARY(OGG_LIBRARY NAMES ogg)
|
||||
MARK_AS_ADVANCED(OGG_LIBRARY)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set OGG_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ogg DEFAULT_MSG OGG_LIBRARY OGG_INCLUDE_DIR)
|
||||
|
||||
SET(OGG_LIBRARIES ${OGG_LIBRARY})
|
||||
SET(OGG_INCLUDE_DIRS ${OGG_INCLUDE_DIR})
|
34
cmake/FindPCREPOSIX.cmake
Normal file
34
cmake/FindPCREPOSIX.cmake
Normal file
|
@ -0,0 +1,34 @@
|
|||
# - Find pcreposix
|
||||
# Find the native PCRE and PCREPOSIX include and libraries
|
||||
#
|
||||
# PCRE_INCLUDE_DIR - where to find pcreposix.h, etc.
|
||||
# PCREPOSIX_LIBRARIES - List of libraries when using libpcreposix.
|
||||
# PCRE_LIBRARIES - List of libraries when using libpcre.
|
||||
# PCREPOSIX_FOUND - True if libpcreposix found.
|
||||
# PCRE_FOUND - True if libpcre found.
|
||||
|
||||
IF (PCRE_INCLUDE_DIR)
|
||||
# Already in cache, be silent
|
||||
SET(PCRE_FIND_QUIETLY TRUE)
|
||||
ENDIF (PCRE_INCLUDE_DIR)
|
||||
|
||||
FIND_PATH(PCRE_INCLUDE_DIR pcreposix.h)
|
||||
FIND_LIBRARY(PCREPOSIX_LIBRARY NAMES pcreposix libpcreposix)
|
||||
FIND_LIBRARY(PCRE_LIBRARY NAMES pcre libpcre)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set PCREPOSIX_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCREPOSIX DEFAULT_MSG PCREPOSIX_LIBRARY PCRE_INCLUDE_DIR)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG PCRE_LIBRARY)
|
||||
|
||||
IF(PCREPOSIX_FOUND)
|
||||
SET(PCREPOSIX_LIBRARIES ${PCREPOSIX_LIBRARY})
|
||||
SET(HAVE_LIBPCREPOSIX 1)
|
||||
SET(HAVE_PCREPOSIX_H 1)
|
||||
ENDIF(PCREPOSIX_FOUND)
|
||||
|
||||
IF(PCRE_FOUND)
|
||||
SET(PCRE_LIBRARIES ${PCRE_LIBRARY})
|
||||
SET(HAVE_LIBPCRE 1)
|
||||
ENDIF(PCRE_FOUND)
|
36
cmake/FindPortMidi.cmake
Normal file
36
cmake/FindPortMidi.cmake
Normal file
|
@ -0,0 +1,36 @@
|
|||
# - Try to find PortMidi
|
||||
# Once done, this will define
|
||||
#
|
||||
# PortMidi_FOUND - system has PortMidi
|
||||
# PortMidi_INCLUDE_DIRS - the PortMidi include directories
|
||||
# PortMidi_LIBRARIES - link these to use PortMidi
|
||||
# PortMidi_VERSION - detected version of PortMidi
|
||||
#
|
||||
# See documentation on how to write CMake scripts at
|
||||
# http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries
|
||||
|
||||
find_library(PORTMIDI_LIBRARY portmidi
|
||||
HINTS
|
||||
$ENV{PORTMIDI_DIR}
|
||||
)
|
||||
|
||||
find_library(PORTTIME_LIBRARY porttime
|
||||
HINTS
|
||||
$ENV{PORTMIDI_DIR}
|
||||
)
|
||||
|
||||
find_path(PORTMIDI_INCLUDE_DIR portmidi.h
|
||||
HINTS
|
||||
$ENV{PORTMIDI_DIR}
|
||||
)
|
||||
|
||||
set(PORTMIDI_LIBRARIES ${PORTMIDI_LIBRARY})
|
||||
|
||||
if (PORTTIME_LIBRARY)
|
||||
list(APPEND PORTMIDI_LIBRARIES ${PORTTIME_LIBRARY})
|
||||
endif (PORTTIME_LIBRARY)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(PortMidi REQUIRED_VARS PORTMIDI_LIBRARIES PORTMIDI_INCLUDE_DIR)
|
||||
|
||||
mark_as_advanced(PORTMIDI_LIBRARY)
|
368
cmake/FindSDL2.cmake
Normal file
368
cmake/FindSDL2.cmake
Normal file
|
@ -0,0 +1,368 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
|
||||
# Copyright 2000-2019 Kitware, Inc. and Contributors
|
||||
# All rights reserved.
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
|
||||
# * Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
# may be used to endorse or promote products derived from this
|
||||
# software without specific prior written permission.
|
||||
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindSDL2
|
||||
--------
|
||||
|
||||
Locate SDL2 library
|
||||
|
||||
This module defines the following 'IMPORTED' targets:
|
||||
|
||||
::
|
||||
|
||||
SDL2::Core
|
||||
The SDL2 library, if found.
|
||||
Libraries should link to SDL2::Core
|
||||
|
||||
SDL2::Main
|
||||
The SDL2main library, if found.
|
||||
Applications should link to SDL2::Main instead of SDL2::Core
|
||||
|
||||
|
||||
|
||||
This module will set the following variables in your project:
|
||||
|
||||
::
|
||||
|
||||
SDL2_LIBRARIES, the name of the library to link against
|
||||
SDL2_INCLUDE_DIRS, where to find SDL.h
|
||||
SDL2_FOUND, if false, do not try to link to SDL2
|
||||
SDL2MAIN_FOUND, if false, do not try to link to SDL2main
|
||||
SDL2_VERSION_STRING, human-readable string containing the version of SDL2
|
||||
|
||||
|
||||
|
||||
This module responds to the following cache variables:
|
||||
|
||||
::
|
||||
|
||||
SDL2_PATH
|
||||
Set a custom SDL2 Library path (default: empty)
|
||||
|
||||
SDL2_NO_DEFAULT_PATH
|
||||
Disable search SDL2 Library in default path.
|
||||
If SDL2_PATH (default: ON)
|
||||
Else (default: OFF)
|
||||
|
||||
SDL2_INCLUDE_DIR
|
||||
SDL2 headers path.
|
||||
|
||||
SDL2_LIBRARY
|
||||
SDL2 Library (.dll, .so, .a, etc) path.
|
||||
|
||||
SDL2MAIN_LIBRAY
|
||||
SDL2main Library (.a) path.
|
||||
|
||||
SDL2_BUILDING_LIBRARY
|
||||
This flag is useful only when linking to SDL2_LIBRARIES insead of
|
||||
SDL2::Main. It is required only when building a library that links to
|
||||
SDL2_LIBRARIES, because only applications need main() (No need to also
|
||||
link to SDL2main).
|
||||
If this flag is defined, then no SDL2main will be added to SDL2_LIBRARIES
|
||||
and no SDL2::Main target will be created.
|
||||
|
||||
|
||||
Don't forget to include SDLmain.h and SDLmain.m in your project for the
|
||||
OS X framework based version. (Other versions link to -lSDL2main which
|
||||
this module will try to find on your behalf.) Also for OS X, this
|
||||
module will automatically add the -framework Cocoa on your behalf.
|
||||
|
||||
|
||||
Additional Note: If you see an empty SDL2_LIBRARY in your project
|
||||
configuration, it means CMake did not find your SDL2 library
|
||||
(SDL2.dll, libsdl2.so, SDL2.framework, etc). Set SDL2_LIBRARY to point
|
||||
to your SDL2 library, and configure again. Similarly, if you see an
|
||||
empty SDL2MAIN_LIBRARY, you should set this value as appropriate. These
|
||||
values are used to generate the final SDL2_LIBRARIES variable and the
|
||||
SDL2::Core and SDL2::Main targets, but when these values are unset,
|
||||
SDL2_LIBRARIES, SDL2::Core and SDL2::Main does not get created.
|
||||
|
||||
|
||||
$SDL2DIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2DIR used in building SDL2. l.e.galup 9-20-02
|
||||
|
||||
|
||||
|
||||
Created by Amine Ben Hassouna:
|
||||
Adapt FindSDL.cmake to SDL2 (FindSDL2.cmake).
|
||||
Add cache variables for more flexibility:
|
||||
SDL2_PATH, SDL2_NO_DEFAULT_PATH (for details, see doc above).
|
||||
Mark 'Threads' as a required dependency for non-OSX systems.
|
||||
Modernize the FindSDL2.cmake module by creating specific targets:
|
||||
SDL2::Core and SDL2::Main (for details, see doc above).
|
||||
|
||||
|
||||
Original FindSDL.cmake module:
|
||||
Modified by Eric Wing. Added code to assist with automated building
|
||||
by using environmental variables and providing a more
|
||||
controlled/consistent search behavior. Added new modifications to
|
||||
recognize OS X frameworks and additional Unix paths (FreeBSD, etc).
|
||||
Also corrected the header search path to follow "proper" SDL
|
||||
guidelines. Added a search for SDLmain which is needed by some
|
||||
platforms. Added a search for threads which is needed by some
|
||||
platforms. Added needed compile switches for MinGW.
|
||||
|
||||
On OSX, this will prefer the Framework version (if found) over others.
|
||||
People will have to manually change the cache value of SDL2_LIBRARY to
|
||||
override this selection or set the SDL2_PATH variable or the CMake
|
||||
environment CMAKE_INCLUDE_PATH to modify the search paths.
|
||||
|
||||
Note that the header path has changed from SDL/SDL.h to just SDL.h
|
||||
This needed to change because "proper" SDL convention is #include
|
||||
"SDL.h", not <SDL/SDL.h>. This is done for portability reasons
|
||||
because not all systems place things in SDL/ (see FreeBSD).
|
||||
#]=======================================================================]
|
||||
|
||||
# Define options for searching SDL2 Library in a custom path
|
||||
|
||||
set(SDL2_PATH "" CACHE STRING "Custom SDL2 Library path")
|
||||
|
||||
set(_SDL2_NO_DEFAULT_PATH OFF)
|
||||
if(SDL2_PATH)
|
||||
set(_SDL2_NO_DEFAULT_PATH ON)
|
||||
endif()
|
||||
|
||||
set(SDL2_NO_DEFAULT_PATH ${_SDL2_NO_DEFAULT_PATH}
|
||||
CACHE BOOL "Disable search SDL2 Library in default path")
|
||||
unset(_SDL2_NO_DEFAULT_PATH)
|
||||
|
||||
set(SDL2_NO_DEFAULT_PATH_CMD)
|
||||
if(SDL2_NO_DEFAULT_PATH)
|
||||
set(SDL2_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2 include directory
|
||||
find_path(SDL2_INCLUDE_DIR SDL.h
|
||||
HINTS
|
||||
ENV SDL2DIR
|
||||
${SDL2_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES SDL2
|
||||
# path suffixes to search inside ENV{SDL2DIR}
|
||||
include/SDL2 include
|
||||
PATHS ${SDL2_PATH}
|
||||
DOC "Where the SDL2 headers can be found"
|
||||
)
|
||||
|
||||
set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR}")
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(VC_LIB_PATH_SUFFIX lib/x64)
|
||||
else()
|
||||
set(VC_LIB_PATH_SUFFIX lib/x86)
|
||||
endif()
|
||||
|
||||
# SDL-2.0 is the name used by FreeBSD ports...
|
||||
# don't confuse it for the version number.
|
||||
find_library(SDL2_LIBRARY
|
||||
NAMES SDL2 SDL-2.0
|
||||
HINTS
|
||||
ENV SDL2DIR
|
||||
${SDL2_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
|
||||
PATHS ${SDL2_PATH}
|
||||
DOC "Where the SDL2 Library can be found"
|
||||
)
|
||||
|
||||
set(SDL2_LIBRARIES "${SDL2_LIBRARY}")
|
||||
|
||||
if(NOT SDL2_BUILDING_LIBRARY)
|
||||
if(NOT SDL2_INCLUDE_DIR MATCHES ".framework")
|
||||
# Non-OS X framework versions expect you to also dynamically link to
|
||||
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
|
||||
# seem to provide SDL2main for compatibility even though they don't
|
||||
# necessarily need it.
|
||||
|
||||
if(SDL2_PATH)
|
||||
set(SDL2MAIN_LIBRARY_PATHS "${SDL2_PATH}")
|
||||
endif()
|
||||
|
||||
if(NOT SDL2_NO_DEFAULT_PATH)
|
||||
set(SDL2MAIN_LIBRARY_PATHS
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
"${SDL2MAIN_LIBRARY_PATHS}"
|
||||
)
|
||||
endif()
|
||||
|
||||
find_library(SDL2MAIN_LIBRARY
|
||||
NAMES SDL2main
|
||||
HINTS
|
||||
ENV SDL2DIR
|
||||
${SDL2_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
|
||||
PATHS ${SDL2MAIN_LIBRARY_PATHS}
|
||||
DOC "Where the SDL2main library can be found"
|
||||
)
|
||||
unset(SDL2MAIN_LIBRARY_PATHS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# MinGW needs an additional link flag, -mwindows
|
||||
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -mwindows
|
||||
if(MINGW)
|
||||
set(MINGW32_LIBRARY mingw32 "-mwindows" CACHE STRING "link flags for MinGW")
|
||||
endif()
|
||||
|
||||
if(SDL2_LIBRARY)
|
||||
# For SDL2main
|
||||
if(SDL2MAIN_LIBRARY AND NOT SDL2_BUILDING_LIBRARY)
|
||||
list(FIND SDL2_LIBRARIES "${SDL2MAIN_LIBRARY}" _SDL2_MAIN_INDEX)
|
||||
if(_SDL2_MAIN_INDEX EQUAL -1)
|
||||
set(SDL2_LIBRARIES "${SDL2MAIN_LIBRARY}" ${SDL2_LIBRARIES})
|
||||
endif()
|
||||
unset(_SDL2_MAIN_INDEX)
|
||||
endif()
|
||||
|
||||
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
|
||||
# CMake doesn't display the -framework Cocoa string in the UI even
|
||||
# though it actually is there if I modify a pre-used variable.
|
||||
# I think it has something to do with the CACHE STRING.
|
||||
# So I use a temporary variable until the end so I can set the
|
||||
# "real" variable in one-shot.
|
||||
if(APPLE)
|
||||
set(SDL2_LIBRARIES ${SDL2_LIBRARIES} "-framework Cocoa")
|
||||
endif()
|
||||
|
||||
# For threads, as mentioned Apple doesn't need this.
|
||||
# In fact, there seems to be a problem if I used the Threads package
|
||||
# and try using this line, so I'm just skipping it entirely for OS X.
|
||||
if(NOT APPLE)
|
||||
set(SDL2_LIBRARIES ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
|
||||
# For MinGW library
|
||||
if(MINGW)
|
||||
set(SDL2_LIBRARIES ${MINGW32_LIBRARY} ${SDL2_LIBRARIES})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
# Read SDL2 version
|
||||
if(SDL2_INCLUDE_DIR AND EXISTS "${SDL2_INCLUDE_DIR}/SDL_version.h")
|
||||
file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MAJOR "${SDL2_VERSION_MAJOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MINOR "${SDL2_VERSION_MINOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_PATCH "${SDL2_VERSION_PATCH_LINE}")
|
||||
set(SDL2_VERSION_STRING ${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH})
|
||||
unset(SDL2_VERSION_MAJOR_LINE)
|
||||
unset(SDL2_VERSION_MINOR_LINE)
|
||||
unset(SDL2_VERSION_PATCH_LINE)
|
||||
unset(SDL2_VERSION_MAJOR)
|
||||
unset(SDL2_VERSION_MINOR)
|
||||
unset(SDL2_VERSION_PATCH)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2
|
||||
REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR
|
||||
VERSION_VAR SDL2_VERSION_STRING)
|
||||
|
||||
if(SDL2MAIN_LIBRARY)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2main
|
||||
REQUIRED_VARS SDL2MAIN_LIBRARY SDL2_INCLUDE_DIR
|
||||
VERSION_VAR SDL2_VERSION_STRING)
|
||||
endif()
|
||||
|
||||
|
||||
mark_as_advanced(SDL2_PATH
|
||||
SDL2_NO_DEFAULT_PATH
|
||||
SDL2_LIBRARY
|
||||
SDL2MAIN_LIBRARY
|
||||
SDL2_INCLUDE_DIR
|
||||
SDL2_BUILDING_LIBRARY)
|
||||
|
||||
|
||||
# SDL2:: targets (SDL2::Core and SDL2::Main)
|
||||
if(SDL2_FOUND)
|
||||
|
||||
# SDL2::Core target
|
||||
if(SDL2_LIBRARY AND NOT TARGET SDL2::Core)
|
||||
add_library(SDL2::Core UNKNOWN IMPORTED)
|
||||
set_target_properties(SDL2::Core PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}")
|
||||
|
||||
if(APPLE)
|
||||
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
|
||||
# For more details, please see above.
|
||||
set_property(TARGET SDL2::Core APPEND PROPERTY
|
||||
INTERFACE_LINK_OPTIONS "-framework Cocoa")
|
||||
else()
|
||||
# For threads, as mentioned Apple doesn't need this.
|
||||
# For more details, please see above.
|
||||
set_property(TARGET SDL2::Core APPEND PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES Threads::Threads)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# SDL2::Main target
|
||||
# Applications should link to SDL2::Main instead of SDL2::Core
|
||||
# For more details, please see above.
|
||||
if(NOT SDL2_BUILDING_LIBRARY AND NOT TARGET SDL2::Main)
|
||||
|
||||
if(SDL2_INCLUDE_DIR MATCHES ".framework" OR NOT SDL2MAIN_LIBRARY)
|
||||
add_library(SDL2::Main INTERFACE IMPORTED)
|
||||
set_property(TARGET SDL2::Main PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES SDL2::Core)
|
||||
elseif(SDL2MAIN_LIBRARY)
|
||||
# MinGW requires that the mingw32 library is specified before the
|
||||
# libSDL2main.a static library when linking.
|
||||
# The SDL2::MainInternal target is used internally to make sure that
|
||||
# CMake respects this condition.
|
||||
add_library(SDL2::MainInternal UNKNOWN IMPORTED)
|
||||
set_property(TARGET SDL2::MainInternal PROPERTY
|
||||
IMPORTED_LOCATION "${SDL2MAIN_LIBRARY}")
|
||||
set_property(TARGET SDL2::MainInternal PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES SDL2::Core)
|
||||
|
||||
add_library(SDL2::Main INTERFACE IMPORTED)
|
||||
|
||||
if(MINGW)
|
||||
# MinGW needs an additional link flag '-mwindows' and link to mingw32
|
||||
set_property(TARGET SDL2::Main PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES "mingw32" "-mwindows")
|
||||
endif()
|
||||
|
||||
set_property(TARGET SDL2::Main APPEND PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES SDL2::MainInternal)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endif()
|
222
cmake/FindSDL2_image.cmake
Normal file
222
cmake/FindSDL2_image.cmake
Normal file
|
@ -0,0 +1,222 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
|
||||
# Copyright 2000-2019 Kitware, Inc. and Contributors
|
||||
# All rights reserved.
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
|
||||
# * Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
# may be used to endorse or promote products derived from this
|
||||
# software without specific prior written permission.
|
||||
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindSDL2_image
|
||||
--------------
|
||||
|
||||
Locate SDL2_image library
|
||||
|
||||
This module defines the following 'IMPORTED' target:
|
||||
|
||||
::
|
||||
|
||||
SDL2::Image
|
||||
The SDL2_image library, if found.
|
||||
Have SDL2::Core as a link dependency.
|
||||
|
||||
|
||||
|
||||
This module will set the following variables in your project:
|
||||
|
||||
::
|
||||
|
||||
SDL2_IMAGE_LIBRARIES, the name of the library to link against
|
||||
SDL2_IMAGE_INCLUDE_DIRS, where to find the headers
|
||||
SDL2_IMAGE_FOUND, if false, do not try to link against
|
||||
SDL2_IMAGE_VERSION_STRING - human-readable string containing the
|
||||
version of SDL2_image
|
||||
|
||||
|
||||
|
||||
This module responds to the following cache variables:
|
||||
|
||||
::
|
||||
|
||||
SDL2_IMAGE_PATH
|
||||
Set a custom SDL2_image Library path (default: empty)
|
||||
|
||||
SDL2_IMAGE_NO_DEFAULT_PATH
|
||||
Disable search SDL2_image Library in default path.
|
||||
If SDL2_IMAGE_PATH (default: ON)
|
||||
Else (default: OFF)
|
||||
|
||||
SDL2_IMAGE_INCLUDE_DIR
|
||||
SDL2_image headers path.
|
||||
|
||||
SDL2_IMAGE_LIBRARY
|
||||
SDL2_image Library (.dll, .so, .a, etc) path.
|
||||
|
||||
|
||||
Additional Note: If you see an empty SDL2_IMAGE_LIBRARY in your project
|
||||
configuration, it means CMake did not find your SDL2_image library
|
||||
(SDL2_image.dll, libsdl2_image.so, etc). Set SDL2_IMAGE_LIBRARY to point
|
||||
to your SDL2_image library, and configure again. This value is used to
|
||||
generate the final SDL2_IMAGE_LIBRARIES variable and the SDL2::Image target,
|
||||
but when this value is unset, SDL2_IMAGE_LIBRARIES and SDL2::Image does not
|
||||
get created.
|
||||
|
||||
|
||||
$SDL2IMAGEDIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2IMAGEDIR used in building SDL2_image.
|
||||
|
||||
$SDL2DIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2DIR used in building SDL2.
|
||||
|
||||
|
||||
|
||||
Created by Amine Ben Hassouna:
|
||||
Adapt FindSDL_image.cmake to SDL2_image (FindSDL2_image.cmake).
|
||||
Add cache variables for more flexibility:
|
||||
SDL2_IMAGE_PATH, SDL2_IMAGE_NO_DEFAULT_PATH (for details, see doc above).
|
||||
Add SDL2 as a required dependency.
|
||||
Modernize the FindSDL2_image.cmake module by creating a specific target:
|
||||
SDL2::Image (for details, see doc above).
|
||||
|
||||
Original FindSDL_image.cmake module:
|
||||
Created by Eric Wing. This was influenced by the FindSDL.cmake
|
||||
module, but with modifications to recognize OS X frameworks and
|
||||
additional Unix paths (FreeBSD, etc).
|
||||
#]=======================================================================]
|
||||
|
||||
# SDL2 Library required
|
||||
find_package(SDL2 QUIET)
|
||||
if(NOT SDL2_FOUND)
|
||||
set(SDL2_IMAGE_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_image).")
|
||||
if(SDL2_image_FIND_REQUIRED)
|
||||
message(FATAL_ERROR ${SDL2_IMAGE_SDL2_NOT_FOUND})
|
||||
else()
|
||||
if(NOT SDL2_image_FIND_QUIETLY)
|
||||
message(STATUS ${SDL2_IMAGE_SDL2_NOT_FOUND})
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
unset(SDL2_IMAGE_SDL2_NOT_FOUND)
|
||||
endif()
|
||||
|
||||
|
||||
# Define options for searching SDL2_image Library in a custom path
|
||||
|
||||
set(SDL2_IMAGE_PATH "" CACHE STRING "Custom SDL2_image Library path")
|
||||
|
||||
set(_SDL2_IMAGE_NO_DEFAULT_PATH OFF)
|
||||
if(SDL2_IMAGE_PATH)
|
||||
set(_SDL2_IMAGE_NO_DEFAULT_PATH ON)
|
||||
endif()
|
||||
|
||||
set(SDL2_IMAGE_NO_DEFAULT_PATH ${_SDL2_IMAGE_NO_DEFAULT_PATH}
|
||||
CACHE BOOL "Disable search SDL2_image Library in default path")
|
||||
unset(_SDL2_IMAGE_NO_DEFAULT_PATH)
|
||||
|
||||
set(SDL2_IMAGE_NO_DEFAULT_PATH_CMD)
|
||||
if(SDL2_IMAGE_NO_DEFAULT_PATH)
|
||||
set(SDL2_IMAGE_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2_image include directory
|
||||
find_path(SDL2_IMAGE_INCLUDE_DIR SDL_image.h
|
||||
HINTS
|
||||
ENV SDL2IMAGEDIR
|
||||
ENV SDL2DIR
|
||||
${SDL2_IMAGE_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES SDL2
|
||||
# path suffixes to search inside ENV{SDL2DIR}
|
||||
# and ENV{SDL2IMAGEDIR}
|
||||
include/SDL2 include
|
||||
PATHS ${SDL2_IMAGE_PATH}
|
||||
DOC "Where the SDL2_image headers can be found"
|
||||
)
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(VC_LIB_PATH_SUFFIX lib/x64)
|
||||
else()
|
||||
set(VC_LIB_PATH_SUFFIX lib/x86)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2_image library
|
||||
find_library(SDL2_IMAGE_LIBRARY
|
||||
NAMES SDL2_image
|
||||
HINTS
|
||||
ENV SDL2IMAGEDIR
|
||||
ENV SDL2DIR
|
||||
${SDL2_IMAGE_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
|
||||
PATHS ${SDL2_IMAGE_PATH}
|
||||
DOC "Where the SDL2_image Library can be found"
|
||||
)
|
||||
|
||||
# Read SDL2_image version
|
||||
if(SDL2_IMAGE_INCLUDE_DIR AND EXISTS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h")
|
||||
file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+[0-9]+$")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MAJOR "${SDL2_IMAGE_VERSION_MAJOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MINOR "${SDL2_IMAGE_VERSION_MINOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_PATCH "${SDL2_IMAGE_VERSION_PATCH_LINE}")
|
||||
set(SDL2_IMAGE_VERSION_STRING ${SDL2_IMAGE_VERSION_MAJOR}.${SDL2_IMAGE_VERSION_MINOR}.${SDL2_IMAGE_VERSION_PATCH})
|
||||
unset(SDL2_IMAGE_VERSION_MAJOR_LINE)
|
||||
unset(SDL2_IMAGE_VERSION_MINOR_LINE)
|
||||
unset(SDL2_IMAGE_VERSION_PATCH_LINE)
|
||||
unset(SDL2_IMAGE_VERSION_MAJOR)
|
||||
unset(SDL2_IMAGE_VERSION_MINOR)
|
||||
unset(SDL2_IMAGE_VERSION_PATCH)
|
||||
endif()
|
||||
|
||||
set(SDL2_IMAGE_LIBRARIES ${SDL2_IMAGE_LIBRARY})
|
||||
set(SDL2_IMAGE_INCLUDE_DIRS ${SDL2_IMAGE_INCLUDE_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_image
|
||||
REQUIRED_VARS SDL2_IMAGE_LIBRARIES SDL2_IMAGE_INCLUDE_DIRS
|
||||
VERSION_VAR SDL2_IMAGE_VERSION_STRING)
|
||||
|
||||
|
||||
mark_as_advanced(SDL2_IMAGE_PATH
|
||||
SDL2_IMAGE_NO_DEFAULT_PATH
|
||||
SDL2_IMAGE_LIBRARY
|
||||
SDL2_IMAGE_INCLUDE_DIR)
|
||||
|
||||
|
||||
if(SDL2_IMAGE_FOUND)
|
||||
|
||||
# SDL2::Image target
|
||||
if(SDL2_IMAGE_LIBRARY AND NOT TARGET SDL2::Image)
|
||||
add_library(SDL2::Image UNKNOWN IMPORTED)
|
||||
set_target_properties(SDL2::Image PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_IMAGE_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_IMAGE_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES SDL2::Core)
|
||||
endif()
|
||||
endif()
|
220
cmake/FindSDL2_mixer.cmake
Normal file
220
cmake/FindSDL2_mixer.cmake
Normal file
|
@ -0,0 +1,220 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
|
||||
# Copyright 2000-2019 Kitware, Inc. and Contributors
|
||||
# All rights reserved.
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
|
||||
# * Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
# may be used to endorse or promote products derived from this
|
||||
# software without specific prior written permission.
|
||||
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindSDL2_mixer
|
||||
--------------
|
||||
|
||||
Locate SDL2_mixer library
|
||||
|
||||
This module defines the following 'IMPORTED' target:
|
||||
|
||||
::
|
||||
|
||||
SDL2::Mixer
|
||||
The SDL2_mixer library, if found.
|
||||
Have SDL2::Core as a link dependency.
|
||||
|
||||
|
||||
|
||||
This module will set the following variables in your project:
|
||||
|
||||
::
|
||||
|
||||
SDL2_MIXER_LIBRARIES, the name of the library to link against
|
||||
SDL2_MIXER_INCLUDE_DIRS, where to find the headers
|
||||
SDL2_MIXER_FOUND, if false, do not try to link against
|
||||
SDL2_MIXER_VERSION_STRING - human-readable string containing the
|
||||
version of SDL2_mixer
|
||||
|
||||
This module responds to the following cache variables:
|
||||
|
||||
::
|
||||
|
||||
SDL2_MIXER_PATH
|
||||
Set a custom SDL2_mixer Library path (default: empty)
|
||||
|
||||
SDL2_MIXER_NO_DEFAULT_PATH
|
||||
Disable search SDL2_mixer Library in default path.
|
||||
If SDL2_MIXER_PATH (default: ON)
|
||||
Else (default: OFF)
|
||||
|
||||
SDL2_MIXER_INCLUDE_DIR
|
||||
SDL2_mixer headers path.
|
||||
|
||||
SDL2_MIXER_LIBRARY
|
||||
SDL2_mixer Library (.dll, .so, .a, etc) path.
|
||||
|
||||
|
||||
Additional Note: If you see an empty SDL2_MIXER_LIBRARY in your project
|
||||
configuration, it means CMake did not find your SDL2_mixer library
|
||||
(SDL2_mixer.dll, libsdl2_mixer.so, etc). Set SDL2_MIXER_LIBRARY to point
|
||||
to your SDL2_mixer library, and configure again. This value is used to
|
||||
generate the final SDL2_MIXER_LIBRARIES variable and the SDL2::Mixer target,
|
||||
but when this value is unset, SDL2_MIXER_LIBRARIES and SDL2::Mixer does not
|
||||
get created.
|
||||
|
||||
|
||||
$SDL2MIXERDIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2MIXERDIR used in building SDL2_mixer.
|
||||
|
||||
$SDL2DIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2DIR used in building SDL2.
|
||||
|
||||
|
||||
|
||||
Created by Amine Ben Hassouna:
|
||||
Adapt FindSDL_mixer.cmake to SDL2_mixer (FindSDL2_mixer.cmake).
|
||||
Add cache variables for more flexibility:
|
||||
SDL2_MIXER_PATH, SDL2_MIXER_NO_DEFAULT_PATH (for details, see doc above).
|
||||
Add SDL2 as a required dependency.
|
||||
Modernize the FindSDL2_mixer.cmake module by creating a specific target:
|
||||
SDL2::Mixer (for details, see doc above).
|
||||
|
||||
Original FindSDL_mixer.cmake module:
|
||||
Created by Eric Wing. This was influenced by the FindSDL.cmake
|
||||
module, but with modifications to recognize OS X frameworks and
|
||||
additional Unix paths (FreeBSD, etc).
|
||||
#]=======================================================================]
|
||||
|
||||
# SDL2 Library required
|
||||
find_package(SDL2 QUIET)
|
||||
if(NOT SDL2_FOUND)
|
||||
set(SDL2_MIXER_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_mixer).")
|
||||
if(SDL2_mixer_FIND_REQUIRED)
|
||||
message(FATAL_ERROR ${SDL2_MIXER_SDL2_NOT_FOUND})
|
||||
else()
|
||||
if(NOT SDL2_mixer_FIND_QUIETLY)
|
||||
message(STATUS ${SDL2_MIXER_SDL2_NOT_FOUND})
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
unset(SDL2_MIXER_SDL2_NOT_FOUND)
|
||||
endif()
|
||||
|
||||
|
||||
# Define options for searching SDL2_mixer Library in a custom path
|
||||
|
||||
set(SDL2_MIXER_PATH "" CACHE STRING "Custom SDL2_mixer Library path")
|
||||
|
||||
set(_SDL2_MIXER_NO_DEFAULT_PATH OFF)
|
||||
if(SDL2_MIXER_PATH)
|
||||
set(_SDL2_MIXER_NO_DEFAULT_PATH ON)
|
||||
endif()
|
||||
|
||||
set(SDL2_MIXER_NO_DEFAULT_PATH ${_SDL2_MIXER_NO_DEFAULT_PATH}
|
||||
CACHE BOOL "Disable search SDL2_mixer Library in default path")
|
||||
unset(_SDL2_MIXER_NO_DEFAULT_PATH)
|
||||
|
||||
set(SDL2_MIXER_NO_DEFAULT_PATH_CMD)
|
||||
if(SDL2_MIXER_NO_DEFAULT_PATH)
|
||||
set(SDL2_MIXER_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2_mixer include directory
|
||||
find_path(SDL2_MIXER_INCLUDE_DIR SDL_mixer.h
|
||||
HINTS
|
||||
ENV SDL2MIXERDIR
|
||||
ENV SDL2DIR
|
||||
${SDL2_MIXER_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES SDL2
|
||||
# path suffixes to search inside ENV{SDL2DIR}
|
||||
# and ENV{SDL2MIXERDIR}
|
||||
include/SDL2 include
|
||||
PATHS ${SDL2_MIXER_PATH}
|
||||
DOC "Where the SDL2_mixer headers can be found"
|
||||
)
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(VC_LIB_PATH_SUFFIX lib/x64)
|
||||
else()
|
||||
set(VC_LIB_PATH_SUFFIX lib/x86)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2_mixer library
|
||||
find_library(SDL2_MIXER_LIBRARY
|
||||
NAMES SDL2_mixer
|
||||
HINTS
|
||||
ENV SDL2MIXERDIR
|
||||
ENV SDL2DIR
|
||||
${SDL2_MIXER_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
|
||||
PATHS ${SDL2_MIXER_PATH}
|
||||
DOC "Where the SDL2_mixer Library can be found"
|
||||
)
|
||||
|
||||
# Read SDL2_mixer version
|
||||
if(SDL2_MIXER_INCLUDE_DIR AND EXISTS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h")
|
||||
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+[0-9]+$")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MAJOR "${SDL2_MIXER_VERSION_MAJOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MINOR "${SDL2_MIXER_VERSION_MINOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_PATCH "${SDL2_MIXER_VERSION_PATCH_LINE}")
|
||||
set(SDL2_MIXER_VERSION_STRING ${SDL2_MIXER_VERSION_MAJOR}.${SDL2_MIXER_VERSION_MINOR}.${SDL2_MIXER_VERSION_PATCH})
|
||||
unset(SDL2_MIXER_VERSION_MAJOR_LINE)
|
||||
unset(SDL2_MIXER_VERSION_MINOR_LINE)
|
||||
unset(SDL2_MIXER_VERSION_PATCH_LINE)
|
||||
unset(SDL2_MIXER_VERSION_MAJOR)
|
||||
unset(SDL2_MIXER_VERSION_MINOR)
|
||||
unset(SDL2_MIXER_VERSION_PATCH)
|
||||
endif()
|
||||
|
||||
set(SDL2_MIXER_LIBRARIES ${SDL2_MIXER_LIBRARY})
|
||||
set(SDL2_MIXER_INCLUDE_DIRS ${SDL2_MIXER_INCLUDE_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_mixer
|
||||
REQUIRED_VARS SDL2_MIXER_LIBRARIES SDL2_MIXER_INCLUDE_DIRS
|
||||
VERSION_VAR SDL2_MIXER_VERSION_STRING)
|
||||
|
||||
|
||||
mark_as_advanced(SDL2_MIXER_PATH
|
||||
SDL2_MIXER_NO_DEFAULT_PATH
|
||||
SDL2_MIXER_LIBRARY
|
||||
SDL2_MIXER_INCLUDE_DIR)
|
||||
|
||||
|
||||
if(SDL2_MIXER_FOUND)
|
||||
|
||||
# SDL2::Mixer target
|
||||
if(SDL2_MIXER_LIBRARY AND NOT TARGET SDL2::Mixer)
|
||||
add_library(SDL2::Mixer UNKNOWN IMPORTED)
|
||||
set_target_properties(SDL2::Mixer PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_MIXER_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES SDL2::Core)
|
||||
endif()
|
||||
endif()
|
222
cmake/FindSDL2_net.cmake
Normal file
222
cmake/FindSDL2_net.cmake
Normal file
|
@ -0,0 +1,222 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# Copyright 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
|
||||
# Copyright 2000-2019 Kitware, Inc. and Contributors
|
||||
# All rights reserved.
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
|
||||
# * Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
# may be used to endorse or promote products derived from this
|
||||
# software without specific prior written permission.
|
||||
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindSDL2_net
|
||||
------------
|
||||
|
||||
Locate SDL2_net library
|
||||
|
||||
This module defines the following 'IMPORTED' target:
|
||||
|
||||
::
|
||||
|
||||
SDL2::Net
|
||||
The SDL2_net library, if found.
|
||||
Have SDL2::Core as a link dependency.
|
||||
|
||||
|
||||
|
||||
This module will set the following variables in your project:
|
||||
|
||||
::
|
||||
|
||||
SDL2_NET_LIBRARIES, the name of the library to link against
|
||||
SDL2_NET_INCLUDE_DIRS, where to find the headers
|
||||
SDL2_NET_FOUND, if false, do not try to link against
|
||||
SDL2_NET_VERSION_STRING - human-readable string containing the
|
||||
version of SDL2_net
|
||||
|
||||
|
||||
|
||||
This module responds to the following cache variables:
|
||||
|
||||
::
|
||||
|
||||
SDL2_NET_PATH
|
||||
Set a custom SDL2_net Library path (default: empty)
|
||||
|
||||
SDL2_NET_NO_DEFAULT_PATH
|
||||
Disable search SDL2_net Library in default path.
|
||||
If SDL2_NET_PATH (default: ON)
|
||||
Else (default: OFF)
|
||||
|
||||
SDL2_NET_INCLUDE_DIR
|
||||
SDL2_net headers path.
|
||||
|
||||
SDL2_NET_LIBRARY
|
||||
SDL2_net Library (.dll, .so, .a, etc) path.
|
||||
|
||||
|
||||
Additional Note: If you see an empty SDL2_NET_LIBRARY in your project
|
||||
configuration, it means CMake did not find your SDL2_net library
|
||||
(SDL2_net.dll, libsdl2_net.so, etc). Set SDL2_NET_LIBRARY to point
|
||||
to your SDL2_net library, and configure again. This value is used to
|
||||
generate the final SDL2_NET_LIBRARIES variable and the SDL2::Net target,
|
||||
but when this value is unset, SDL2_NET_LIBRARIES and SDL2::Net does not
|
||||
get created.
|
||||
|
||||
|
||||
$SDL2NETDIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2NETDIR used in building SDL2_net.
|
||||
|
||||
$SDL2DIR is an environment variable that would correspond to the
|
||||
./configure --prefix=$SDL2DIR used in building SDL2.
|
||||
|
||||
|
||||
|
||||
Created by Amine Ben Hassouna:
|
||||
Adapt FindSDL_net.cmake to SDL2_net (FindSDL2_net.cmake).
|
||||
Add cache variables for more flexibility:
|
||||
SDL2_NET_PATH, SDL2_NET_NO_DEFAULT_PATH (for details, see doc above).
|
||||
Add SDL2 as a required dependency.
|
||||
Modernize the FindSDL2_net.cmake module by creating a specific target:
|
||||
SDL2::Net (for details, see doc above).
|
||||
|
||||
Original FindSDL_net.cmake module:
|
||||
Created by Eric Wing. This was influenced by the FindSDL.cmake
|
||||
module, but with modifications to recognize OS X frameworks and
|
||||
additional Unix paths (FreeBSD, etc).
|
||||
#]=======================================================================]
|
||||
|
||||
# SDL2 Library required
|
||||
find_package(SDL2 QUIET)
|
||||
if(NOT SDL2_FOUND)
|
||||
set(SDL2_NET_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_net).")
|
||||
if(SDL2_net_FIND_REQUIRED)
|
||||
message(FATAL_ERROR ${SDL2_NET_SDL2_NOT_FOUND})
|
||||
else()
|
||||
if(NOT SDL2_net_FIND_QUIETLY)
|
||||
message(STATUS ${SDL2_NET_SDL2_NOT_FOUND})
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
unset(SDL2_NET_SDL2_NOT_FOUND)
|
||||
endif()
|
||||
|
||||
|
||||
# Define options for searching SDL2_net Library in a custom path
|
||||
|
||||
set(SDL2_NET_PATH "" CACHE STRING "Custom SDL2_net Library path")
|
||||
|
||||
set(_SDL2_NET_NO_DEFAULT_PATH OFF)
|
||||
if(SDL2_NET_PATH)
|
||||
set(_SDL2_NET_NO_DEFAULT_PATH ON)
|
||||
endif()
|
||||
|
||||
set(SDL2_NET_NO_DEFAULT_PATH ${_SDL2_NET_NO_DEFAULT_PATH}
|
||||
CACHE BOOL "Disable search SDL2_net Library in default path")
|
||||
unset(_SDL2_NET_NO_DEFAULT_PATH)
|
||||
|
||||
set(SDL2_NET_NO_DEFAULT_PATH_CMD)
|
||||
if(SDL2_NET_NO_DEFAULT_PATH)
|
||||
set(SDL2_NET_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2_net include directory
|
||||
find_path(SDL2_NET_INCLUDE_DIR SDL_net.h
|
||||
HINTS
|
||||
ENV SDL2NETDIR
|
||||
ENV SDL2DIR
|
||||
${SDL2_NET_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES SDL2
|
||||
# path suffixes to search inside ENV{SDL2DIR}
|
||||
# and ENV{SDL2NETDIR}
|
||||
include/SDL2 include
|
||||
PATHS ${SDL2_NET_PATH}
|
||||
DOC "Where the SDL2_net headers can be found"
|
||||
)
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(VC_LIB_PATH_SUFFIX lib/x64)
|
||||
else()
|
||||
set(VC_LIB_PATH_SUFFIX lib/x86)
|
||||
endif()
|
||||
|
||||
# Search for the SDL2_net library
|
||||
find_library(SDL2_NET_LIBRARY
|
||||
NAMES SDL2_net
|
||||
HINTS
|
||||
ENV SDL2NETDIR
|
||||
ENV SDL2DIR
|
||||
${SDL2_NET_NO_DEFAULT_PATH_CMD}
|
||||
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
|
||||
PATHS ${SDL2_NET_PATH}
|
||||
DOC "Where the SDL2_net Library can be found"
|
||||
)
|
||||
|
||||
# Read SDL2_net version
|
||||
if(SDL2_NET_INCLUDE_DIR AND EXISTS "${SDL2_NET_INCLUDE_DIR}/SDL_net.h")
|
||||
file(STRINGS "${SDL2_NET_INCLUDE_DIR}/SDL_net.h" SDL2_NET_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_NET_MAJOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_NET_INCLUDE_DIR}/SDL_net.h" SDL2_NET_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_NET_MINOR_VERSION[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL2_NET_INCLUDE_DIR}/SDL_net.h" SDL2_NET_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_NET_PATCHLEVEL[ \t]+[0-9]+$")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_NET_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_NET_VERSION_MAJOR "${SDL2_NET_VERSION_MAJOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_NET_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_NET_VERSION_MINOR "${SDL2_NET_VERSION_MINOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SDL_NET_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_NET_VERSION_PATCH "${SDL2_NET_VERSION_PATCH_LINE}")
|
||||
set(SDL2_NET_VERSION_STRING ${SDL2_NET_VERSION_MAJOR}.${SDL2_NET_VERSION_MINOR}.${SDL2_NET_VERSION_PATCH})
|
||||
unset(SDL2_NET_VERSION_MAJOR_LINE)
|
||||
unset(SDL2_NET_VERSION_MINOR_LINE)
|
||||
unset(SDL2_NET_VERSION_PATCH_LINE)
|
||||
unset(SDL2_NET_VERSION_MAJOR)
|
||||
unset(SDL2_NET_VERSION_MINOR)
|
||||
unset(SDL2_NET_VERSION_PATCH)
|
||||
endif()
|
||||
|
||||
set(SDL2_NET_LIBRARIES ${SDL2_NET_LIBRARY})
|
||||
set(SDL2_NET_INCLUDE_DIRS ${SDL2_NET_INCLUDE_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_net
|
||||
REQUIRED_VARS SDL2_NET_LIBRARIES SDL2_NET_INCLUDE_DIRS
|
||||
VERSION_VAR SDL2_NET_VERSION_STRING)
|
||||
|
||||
|
||||
mark_as_advanced(SDL2_NET_PATH
|
||||
SDL2_NET_NO_DEFAULT_PATH
|
||||
SDL2_NET_LIBRARY
|
||||
SDL2_NET_INCLUDE_DIR)
|
||||
|
||||
|
||||
if(SDL2_NET_FOUND)
|
||||
|
||||
# SDL2::Net target
|
||||
if(SDL2_NET_LIBRARY AND NOT TARGET SDL2::Net)
|
||||
add_library(SDL2::Net UNKNOWN IMPORTED)
|
||||
set_target_properties(SDL2::Net PROPERTIES
|
||||
IMPORTED_LOCATION "${SDL2_NET_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_NET_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES SDL2::Core)
|
||||
endif()
|
||||
endif()
|
76
cmake/FindVorbis.cmake
Normal file
76
cmake/FindVorbis.cmake
Normal file
|
@ -0,0 +1,76 @@
|
|||
# - Find vorbis library
|
||||
# Find the native Vorbis headers and libraries.Vorbis depends on Ogg and will
|
||||
# provide Ogg headers/libraries as well.
|
||||
#
|
||||
# VORBIS_INCLUDE_DIRS - where to find vorbis/vorbis.h, ogg/ogg.h, etc
|
||||
# VORBIS_LIBRARIES - List of libraries when using libvorbis
|
||||
# VORBIS_FOUND - True if vorbis is found.
|
||||
|
||||
|
||||
#=============================================================================
|
||||
#Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
||||
#All rights reserved.
|
||||
#
|
||||
#Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
#* Redistributions of source code must retain the above copyright notice,
|
||||
#this list of conditions and the following disclaimer.
|
||||
#
|
||||
#* Redistributions in binary form must reproduce the above copyright notice,
|
||||
#this list of conditions and the following disclaimer in the documentation
|
||||
#and/or other materials provided with the distribution.
|
||||
#
|
||||
#* Neither the names of Kitware, Inc., the Insight Software Consortium, nor
|
||||
#the names of their contributors may be used to endorse or promote products
|
||||
#derived from this software without specific prior written permission.
|
||||
#
|
||||
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
#AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
#IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
#ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
#LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
#CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
#SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
#INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
#CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
#ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
#POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
# Find Ogg
|
||||
if( Vorbis_FIND_REQUIRED )
|
||||
set( OGG_ARG "REQUIRED" )
|
||||
elseif( Vorbis_FIND_QUIETLY )
|
||||
set( OGG_ARG "QUIETLY" )
|
||||
endif()
|
||||
|
||||
find_package( Ogg ${OGG_ARG} )
|
||||
|
||||
# Look for the vorbisfile header file.
|
||||
find_path( VORBIS_INCLUDE_DIR
|
||||
NAMES vorbis/vorbisfile.h
|
||||
DOC "Vorbis include directory" )
|
||||
mark_as_advanced( VORBIS_INCLUDE_DIR )
|
||||
|
||||
# Look for the vorbisfile library.
|
||||
find_library( VORBISFILE_LIBRARY
|
||||
NAMES vorbisfile
|
||||
DOC "Path to VorbisFile library" )
|
||||
mark_as_advanced( VORBISFILE_LIBRARY )
|
||||
|
||||
# Look for the vorbis library.
|
||||
find_library( VORBIS_LIBRARY
|
||||
NAMES vorbis
|
||||
DOC "Path to Vorbis library" )
|
||||
mark_as_advanced( VORBIS_LIBRARY )
|
||||
|
||||
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set VORBISFILE_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include( ${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake )
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS( Vorbis DEFAULT_MSG VORBIS_LIBRARY VORBIS_INCLUDE_DIR )
|
||||
|
||||
set( VORBIS_LIBRARIES ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARIES} )
|
||||
set( VORBIS_INCLUDE_DIRS ${VORBIS_INCLUDE_DIR} ${OGG_INCLUDE_DIRS} )
|
157
cmake/TargetArch.cmake
Normal file
157
cmake/TargetArch.cmake
Normal file
|
@ -0,0 +1,157 @@
|
|||
|
||||
# Copyright (c) 2012 Petroules Corporation. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation and/or
|
||||
# other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
|
||||
# OF SUCH DAMAGE.
|
||||
|
||||
# Based on the Qt 5 processor detection code, so should be very accurate
|
||||
# https://qt.gitorious.org/qt/qtbase/blobs/master/src/corelib/global/qprocessordetection.h
|
||||
# Currently handles arm (v5, v6, v7), x86 (32/64), ia64, and ppc (32/64)
|
||||
|
||||
# Regarding POWER/PowerPC, just as is noted in the Qt source,
|
||||
# "There are many more known variants/revisions that we do not handle/detect."
|
||||
|
||||
set(archdetect_c_code "
|
||||
#if defined(__arm__) || defined(__TARGET_ARCH_ARM)
|
||||
#if defined(__ARM_ARCH_7__) \\
|
||||
|| defined(__ARM_ARCH_7A__) \\
|
||||
|| defined(__ARM_ARCH_7R__) \\
|
||||
|| defined(__ARM_ARCH_7M__) \\
|
||||
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 7)
|
||||
#error cmake_ARCH armv7
|
||||
#elif defined(__ARM_ARCH_6__) \\
|
||||
|| defined(__ARM_ARCH_6J__) \\
|
||||
|| defined(__ARM_ARCH_6T2__) \\
|
||||
|| defined(__ARM_ARCH_6Z__) \\
|
||||
|| defined(__ARM_ARCH_6K__) \\
|
||||
|| defined(__ARM_ARCH_6ZK__) \\
|
||||
|| defined(__ARM_ARCH_6M__) \\
|
||||
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 6)
|
||||
#error cmake_ARCH armv6
|
||||
#elif defined(__ARM_ARCH_5TEJ__) \\
|
||||
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 5)
|
||||
#error cmake_ARCH armv5
|
||||
#else
|
||||
#error cmake_ARCH arm
|
||||
#endif
|
||||
#elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
|
||||
#error cmake_ARCH i386
|
||||
#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
|
||||
#error cmake_ARCH x86_64
|
||||
#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
|
||||
#error cmake_ARCH ia64
|
||||
#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) \\
|
||||
|| defined(_ARCH_COM) || defined(_ARCH_PWR) || defined(_ARCH_PPC) \\
|
||||
|| defined(_M_MPPC) || defined(_M_PPC)
|
||||
#if defined(__ppc64__) || defined(__powerpc64__) || defined(__64BIT__)
|
||||
#error cmake_ARCH ppc64
|
||||
#else
|
||||
#error cmake_ARCH ppc
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#error cmake_ARCH unknown
|
||||
")
|
||||
|
||||
# Set ppc_support to TRUE before including this file or ppc and ppc64
|
||||
# will be treated as invalid architectures since they are no longer supported by Apple
|
||||
|
||||
function(target_architecture output_var)
|
||||
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||
# On OS X we use CMAKE_OSX_ARCHITECTURES *if* it was set
|
||||
# First let's normalize the order of the values
|
||||
|
||||
# Note that it's not possible to compile PowerPC applications if you are using
|
||||
# the OS X SDK version 10.6 or later - you'll need 10.4/10.5 for that, so we
|
||||
# disable it by default
|
||||
# See this page for more information:
|
||||
# http://stackoverflow.com/questions/5333490/how-can-we-restore-ppc-ppc64-as-well-as-full-10-4-10-5-sdk-support-to-xcode-4
|
||||
|
||||
# Architecture defaults to i386 or ppc on OS X 10.5 and earlier, depending on the CPU type detected at runtime.
|
||||
# On OS X 10.6+ the default is x86_64 if the CPU supports it, i386 otherwise.
|
||||
|
||||
foreach(osx_arch ${CMAKE_OSX_ARCHITECTURES})
|
||||
if("${osx_arch}" STREQUAL "ppc" AND ppc_support)
|
||||
set(osx_arch_ppc TRUE)
|
||||
elseif("${osx_arch}" STREQUAL "i386")
|
||||
set(osx_arch_i386 TRUE)
|
||||
elseif("${osx_arch}" STREQUAL "x86_64")
|
||||
set(osx_arch_x86_64 TRUE)
|
||||
elseif("${osx_arch}" STREQUAL "ppc64" AND ppc_support)
|
||||
set(osx_arch_ppc64 TRUE)
|
||||
else()
|
||||
message(FATAL_ERROR "Invalid OS X arch name: ${osx_arch}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Now add all the architectures in our normalized order
|
||||
if(osx_arch_ppc)
|
||||
list(APPEND ARCH ppc)
|
||||
endif()
|
||||
|
||||
if(osx_arch_i386)
|
||||
list(APPEND ARCH i386)
|
||||
endif()
|
||||
|
||||
if(osx_arch_x86_64)
|
||||
list(APPEND ARCH x86_64)
|
||||
endif()
|
||||
|
||||
if(osx_arch_ppc64)
|
||||
list(APPEND ARCH ppc64)
|
||||
endif()
|
||||
else()
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/arch.c" "${archdetect_c_code}")
|
||||
|
||||
enable_language(C)
|
||||
|
||||
# Detect the architecture in a rather creative way...
|
||||
# This compiles a small C program which is a series of ifdefs that selects a
|
||||
# particular #error preprocessor directive whose message string contains the
|
||||
# target architecture. The program will always fail to compile (both because
|
||||
# file is not a valid C program, and obviously because of the presence of the
|
||||
# #error preprocessor directives... but by exploiting the preprocessor in this
|
||||
# way, we can detect the correct target architecture even when cross-compiling,
|
||||
# since the program itself never needs to be run (only the compiler/preprocessor)
|
||||
try_run(
|
||||
run_result_unused
|
||||
compile_result_unused
|
||||
"${CMAKE_BINARY_DIR}"
|
||||
"${CMAKE_BINARY_DIR}/arch.c"
|
||||
COMPILE_OUTPUT_VARIABLE ARCH
|
||||
CMAKE_FLAGS CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
||||
)
|
||||
|
||||
# Parse the architecture name from the compiler output
|
||||
string(REGEX MATCH "cmake_ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}")
|
||||
|
||||
# Get rid of the value marker leaving just the architecture name
|
||||
string(REPLACE "cmake_ARCH " "" ARCH "${ARCH}")
|
||||
|
||||
# If we are compiling with an unknown architecture this variable should
|
||||
# already be set to "unknown" but in the case that it's empty (i.e. due
|
||||
# to a typo in the code), then set it to unknown
|
||||
if (NOT ARCH)
|
||||
set(ARCH unknown)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(${output_var} "${ARCH}" PARENT_SCOPE)
|
||||
endfunction()
|
47
cmake/config.h.cin
Normal file
47
cmake/config.h.cin
Normal file
|
@ -0,0 +1,47 @@
|
|||
#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@"
|
||||
#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@"
|
||||
#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@"
|
||||
#cmakedefine PACKAGE_HOMEPAGE "@PACKAGE_HOMEPAGE@"
|
||||
#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@"
|
||||
|
||||
#cmakedefine DOOMWADDIR "@DOOMWADDIR@"
|
||||
#cmakedefine PRBOOMDATADIR "@PRBOOMDATADIR@"
|
||||
|
||||
#cmakedefine WORDS_BIGENDIAN
|
||||
|
||||
#cmakedefine HAVE_GETOPT
|
||||
#cmakedefine HAVE_MMAP
|
||||
#cmakedefine HAVE_CREATE_FILE_MAPPING
|
||||
#cmakedefine HAVE_SCHED_SETAFFINITY
|
||||
#cmakedefine HAVE_USLEEP
|
||||
#cmakedefine HAVE_STRSIGNAL
|
||||
#cmakedefine HAVE_MKSTEMP
|
||||
|
||||
#cmakedefine HAVE_SYS_WAIT_H
|
||||
#cmakedefine HAVE_UNISTD_H
|
||||
#cmakedefine HAVE_ASM_BYTEORDER_H
|
||||
#cmakedefine HAVE_DIRENT_H
|
||||
|
||||
#cmakedefine HAVE_SDL_JOYSTICKGETAXIS
|
||||
#cmakedefine HAVE_LIBSDL2_IMAGE
|
||||
#cmakedefine HAVE_LIBSDL2_MIXER
|
||||
#cmakedefine HAVE_NET
|
||||
#cmakedefine USE_SDL_NET
|
||||
|
||||
#cmakedefine HAVE_LIBPCREPOSIX
|
||||
#cmakedefine HAVE_LIBZ
|
||||
#cmakedefine HAVE_LIBMAD
|
||||
#cmakedefine HAVE_LIBFLUIDSYNTH
|
||||
#cmakedefine HAVE_LIBDUMB
|
||||
#cmakedefine HAVE_LIBVORBISFILE
|
||||
#cmakedefine HAVE_LIBPORTMIDI
|
||||
#cmakedefine HAVE_ALSA
|
||||
|
||||
#cmakedefine SIMPLECHECKS
|
||||
#cmakedefine ZONEIDCHECK
|
||||
|
||||
#cmakedefine RANGECHECK
|
||||
#cmakedefine INSTRUMENTED
|
||||
#cmakedefine TIMEDIAG
|
||||
#cmakedefine HEAPCHECK
|
||||
#cmakedefine HEAPDUMP
|
370
data/CMakeLists.txt
Normal file
370
data/CMakeLists.txt
Normal file
|
@ -0,0 +1,370 @@
|
|||
# PrBoom-Plus WAD creation tool
|
||||
|
||||
if(NOT CMAKE_CROSSCOMPILING)
|
||||
add_executable(rdatawad
|
||||
rd_main.c
|
||||
rd_util.c
|
||||
rd_util.h
|
||||
rd_output.c
|
||||
rd_output.h
|
||||
rd_sound.c
|
||||
rd_sound.h
|
||||
rd_palette.c
|
||||
rd_palette.h
|
||||
rd_graphic.c
|
||||
rd_graphic.h
|
||||
)
|
||||
target_include_directories(rdatawad PRIVATE ${CMAKE_BINARY_DIR})
|
||||
|
||||
set(CROSS_EXPORTS ${CROSS_EXPORTS} rdatawad PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# PrBoom-Plus internal WAD
|
||||
|
||||
set(PALETTE
|
||||
palette.rgb
|
||||
)
|
||||
|
||||
set(LUMPS
|
||||
lumps/switches.lmp
|
||||
lumps/animated.lmp
|
||||
lumps/crbrick.lmp
|
||||
lumps/crtan.lmp
|
||||
lumps/crgray.lmp
|
||||
lumps/crgreen.lmp
|
||||
lumps/crbrown.lmp
|
||||
lumps/crgold.lmp
|
||||
lumps/crred.lmp
|
||||
lumps/crblue.lmp
|
||||
lumps/crblue2.lmp
|
||||
lumps/crorange.lmp
|
||||
lumps/cryellow.lmp
|
||||
lumps/crblack.lmp
|
||||
lumps/crpurple.lmp
|
||||
lumps/crwhite.lmp
|
||||
)
|
||||
|
||||
set(COLORMAPS
|
||||
lumps/watermap.lmp
|
||||
)
|
||||
|
||||
set(TABLES
|
||||
lumps/sinetabl.lmp
|
||||
lumps/tangtabl.lmp
|
||||
lumps/tantoang.lmp
|
||||
lumps/gammatbl.lmp
|
||||
lumps/chexdeh.lmp
|
||||
lumps/bfgbex.lmp
|
||||
lumps/nervebex.lmp
|
||||
lumps/glshadow.lmp
|
||||
lumps/glfp.lmp
|
||||
lumps/glvp.lmp
|
||||
lumps/-prbhud-.lmp
|
||||
lumps/m_ammo.lmp
|
||||
lumps/m_armour.lmp
|
||||
lumps/m_arrow.lmp
|
||||
lumps/m_health.lmp
|
||||
lumps/m_key.lmp
|
||||
lumps/m_normal.lmp
|
||||
lumps/m_shadow.lmp
|
||||
lumps/m_power.lmp
|
||||
lumps/m_weap.lmp
|
||||
lumps/m_mark.lmp
|
||||
)
|
||||
|
||||
set(SOUNDS
|
||||
sounds/dsdgsit.wav
|
||||
sounds/dsdgatk.wav
|
||||
sounds/dsdgact.wav
|
||||
sounds/dsdgdth.wav
|
||||
sounds/dsdgpain.wav
|
||||
)
|
||||
|
||||
set(GRAPHICS
|
||||
graphics/dig0.ppm
|
||||
graphics/dig1.ppm
|
||||
graphics/dig2.ppm
|
||||
graphics/dig3.ppm
|
||||
graphics/dig4.ppm
|
||||
graphics/dig5.ppm
|
||||
graphics/dig6.ppm
|
||||
graphics/dig7.ppm
|
||||
graphics/dig8.ppm
|
||||
graphics/dig9.ppm
|
||||
graphics/diga.ppm
|
||||
graphics/digb.ppm
|
||||
graphics/digc.ppm
|
||||
graphics/digd.ppm
|
||||
graphics/dige.ppm
|
||||
graphics/digf.ppm
|
||||
graphics/digg.ppm
|
||||
graphics/digh.ppm
|
||||
graphics/digi.ppm
|
||||
graphics/digj.ppm
|
||||
graphics/digk.ppm
|
||||
graphics/digl.ppm
|
||||
graphics/digm.ppm
|
||||
graphics/dign.ppm
|
||||
graphics/digo.ppm
|
||||
graphics/digp.ppm
|
||||
graphics/digq.ppm
|
||||
graphics/digr.ppm
|
||||
graphics/digs.ppm
|
||||
graphics/digt.ppm
|
||||
graphics/digu.ppm
|
||||
graphics/digv.ppm
|
||||
graphics/digw.ppm
|
||||
graphics/digx.ppm
|
||||
graphics/digy.ppm
|
||||
graphics/digz.ppm
|
||||
graphics/dig45.ppm
|
||||
graphics/dig46.ppm
|
||||
graphics/dig47.ppm
|
||||
graphics/dig58.ppm
|
||||
graphics/dig91.ppm
|
||||
graphics/dig93.ppm
|
||||
graphics/stbr123.ppm
|
||||
graphics/stbr124.ppm
|
||||
graphics/stbr125.ppm
|
||||
graphics/stbr126.ppm
|
||||
graphics/stbr127.ppm
|
||||
graphics/boxul.ppm
|
||||
graphics/boxuc.ppm
|
||||
graphics/boxur.ppm
|
||||
graphics/boxcl.ppm
|
||||
graphics/boxcc.ppm
|
||||
graphics/boxcr.ppm
|
||||
graphics/boxll.ppm
|
||||
graphics/boxlc.ppm
|
||||
graphics/boxlr.ppm
|
||||
graphics/stkeys6.ppm
|
||||
graphics/stkeys7.ppm
|
||||
graphics/stkeys8.ppm
|
||||
graphics/stcfn096.ppm
|
||||
graphics/m_butt1.ppm
|
||||
graphics/m_butt2.ppm
|
||||
graphics/m_colors.ppm
|
||||
graphics/m_palno.ppm
|
||||
graphics/m_palsel.ppm
|
||||
graphics/m_vbox.ppm
|
||||
graphics/cross1.ppm
|
||||
graphics/cross2.ppm
|
||||
graphics/cross3.ppm
|
||||
)
|
||||
|
||||
set(FLATS
|
||||
flats/-n0_tex-.ppm
|
||||
)
|
||||
|
||||
set(SPRITES
|
||||
sprites/tnt1a0.ppm
|
||||
)
|
||||
set(SPRITEP "0,0,sprites/tnt1a0.ppm")
|
||||
|
||||
set(SPRITES
|
||||
${SPRITES}
|
||||
sprites/dogsa1.ppm
|
||||
sprites/dogsa2.ppm
|
||||
sprites/dogsa3.ppm
|
||||
sprites/dogsa4.ppm
|
||||
sprites/dogsa5.ppm
|
||||
sprites/dogsa6.ppm
|
||||
sprites/dogsa7.ppm
|
||||
sprites/dogsa8.ppm
|
||||
sprites/dogsb1.ppm
|
||||
sprites/dogsb2.ppm
|
||||
sprites/dogsb3.ppm
|
||||
sprites/dogsb4.ppm
|
||||
sprites/dogsb5.ppm
|
||||
sprites/dogsb6.ppm
|
||||
sprites/dogsb7.ppm
|
||||
sprites/dogsb8.ppm
|
||||
sprites/dogsc1.ppm
|
||||
sprites/dogsc2.ppm
|
||||
sprites/dogsc3.ppm
|
||||
sprites/dogsc4.ppm
|
||||
sprites/dogsc5.ppm
|
||||
sprites/dogsc6.ppm
|
||||
sprites/dogsc7.ppm
|
||||
sprites/dogsc8.ppm
|
||||
sprites/dogsd1.ppm
|
||||
sprites/dogsd2.ppm
|
||||
sprites/dogsd3.ppm
|
||||
sprites/dogsd4.ppm
|
||||
sprites/dogsd5.ppm
|
||||
sprites/dogsd6.ppm
|
||||
sprites/dogsd7.ppm
|
||||
sprites/dogsd8.ppm
|
||||
sprites/dogse1.ppm
|
||||
sprites/dogse2.ppm
|
||||
sprites/dogse3.ppm
|
||||
sprites/dogse4.ppm
|
||||
sprites/dogse5.ppm
|
||||
sprites/dogse6.ppm
|
||||
sprites/dogse7.ppm
|
||||
sprites/dogse8.ppm
|
||||
sprites/dogsf1.ppm
|
||||
sprites/dogsf2.ppm
|
||||
sprites/dogsf3.ppm
|
||||
sprites/dogsf4.ppm
|
||||
sprites/dogsf5.ppm
|
||||
sprites/dogsf6.ppm
|
||||
sprites/dogsf7.ppm
|
||||
sprites/dogsf8.ppm
|
||||
sprites/dogsg1.ppm
|
||||
sprites/dogsg2.ppm
|
||||
sprites/dogsg3.ppm
|
||||
sprites/dogsg4.ppm
|
||||
sprites/dogsg5.ppm
|
||||
sprites/dogsg6.ppm
|
||||
sprites/dogsg7.ppm
|
||||
sprites/dogsg8.ppm
|
||||
sprites/dogsh1.ppm
|
||||
sprites/dogsh2.ppm
|
||||
sprites/dogsh3.ppm
|
||||
sprites/dogsh4.ppm
|
||||
sprites/dogsh5.ppm
|
||||
sprites/dogsh6.ppm
|
||||
sprites/dogsh7.ppm
|
||||
sprites/dogsh8.ppm
|
||||
sprites/dogsi0.ppm
|
||||
sprites/dogsj0.ppm
|
||||
sprites/dogsk0.ppm
|
||||
sprites/dogsl0.ppm
|
||||
sprites/dogsm0.ppm
|
||||
sprites/dogsn0.ppm
|
||||
)
|
||||
set(SPRITEP
|
||||
${SPRITEP}
|
||||
"33,66,sprites/dogsa1.ppm"
|
||||
"33,66,sprites/dogsa2.ppm"
|
||||
"33,66,sprites/dogsa3.ppm"
|
||||
"33,66,sprites/dogsa4.ppm"
|
||||
"33,66,sprites/dogsa5.ppm"
|
||||
"33,66,sprites/dogsa6.ppm"
|
||||
"33,66,sprites/dogsa7.ppm"
|
||||
"33,66,sprites/dogsa8.ppm"
|
||||
"33,66,sprites/dogsb1.ppm"
|
||||
"33,66,sprites/dogsb2.ppm"
|
||||
"33,66,sprites/dogsb3.ppm"
|
||||
"33,66,sprites/dogsb4.ppm"
|
||||
"33,66,sprites/dogsb5.ppm"
|
||||
"33,66,sprites/dogsb6.ppm"
|
||||
"33,66,sprites/dogsb7.ppm"
|
||||
"33,66,sprites/dogsb8.ppm"
|
||||
"33,66,sprites/dogsc1.ppm"
|
||||
"33,66,sprites/dogsc2.ppm"
|
||||
"33,66,sprites/dogsc3.ppm"
|
||||
"33,66,sprites/dogsc4.ppm"
|
||||
"33,66,sprites/dogsc5.ppm"
|
||||
"33,66,sprites/dogsc6.ppm"
|
||||
"33,66,sprites/dogsc7.ppm"
|
||||
"33,66,sprites/dogsc8.ppm"
|
||||
"33,66,sprites/dogsd1.ppm"
|
||||
"33,66,sprites/dogsd2.ppm"
|
||||
"33,66,sprites/dogsd3.ppm"
|
||||
"33,66,sprites/dogsd4.ppm"
|
||||
"33,66,sprites/dogsd5.ppm"
|
||||
"33,66,sprites/dogsd6.ppm"
|
||||
"33,66,sprites/dogsd7.ppm"
|
||||
"33,66,sprites/dogsd8.ppm"
|
||||
"33,66,sprites/dogse1.ppm"
|
||||
"33,66,sprites/dogse2.ppm"
|
||||
"33,66,sprites/dogse3.ppm"
|
||||
"33,66,sprites/dogse4.ppm"
|
||||
"33,66,sprites/dogse5.ppm"
|
||||
"33,66,sprites/dogse6.ppm"
|
||||
"33,66,sprites/dogse7.ppm"
|
||||
"33,66,sprites/dogse8.ppm"
|
||||
"33,66,sprites/dogsf1.ppm"
|
||||
"33,66,sprites/dogsf2.ppm"
|
||||
"33,66,sprites/dogsf3.ppm"
|
||||
"33,66,sprites/dogsf4.ppm"
|
||||
"33,66,sprites/dogsf5.ppm"
|
||||
"33,66,sprites/dogsf6.ppm"
|
||||
"33,66,sprites/dogsf7.ppm"
|
||||
"33,66,sprites/dogsf8.ppm"
|
||||
"33,66,sprites/dogsg1.ppm"
|
||||
"33,66,sprites/dogsg2.ppm"
|
||||
"33,66,sprites/dogsg3.ppm"
|
||||
"33,66,sprites/dogsg4.ppm"
|
||||
"33,66,sprites/dogsg5.ppm"
|
||||
"33,66,sprites/dogsg6.ppm"
|
||||
"33,66,sprites/dogsg7.ppm"
|
||||
"33,66,sprites/dogsg8.ppm"
|
||||
"33,66,sprites/dogsh1.ppm"
|
||||
"33,66,sprites/dogsh2.ppm"
|
||||
"33,66,sprites/dogsh3.ppm"
|
||||
"33,66,sprites/dogsh4.ppm"
|
||||
"33,66,sprites/dogsh5.ppm"
|
||||
"33,66,sprites/dogsh6.ppm"
|
||||
"33,66,sprites/dogsh7.ppm"
|
||||
"33,66,sprites/dogsh8.ppm"
|
||||
"33,67,sprites/dogsi0.ppm"
|
||||
"33,67,sprites/dogsj0.ppm"
|
||||
"33,67,sprites/dogsk0.ppm"
|
||||
"33,67,sprites/dogsl0.ppm"
|
||||
"33,68,sprites/dogsm0.ppm"
|
||||
"33,69,sprites/dogsn0.ppm"
|
||||
)
|
||||
|
||||
set(SPRITES
|
||||
${SPRITES}
|
||||
sprites/pls1a0.ppm
|
||||
sprites/pls1b0.ppm
|
||||
sprites/pls1c0.ppm
|
||||
sprites/pls1d0.ppm
|
||||
sprites/pls1e0.ppm
|
||||
sprites/pls1f0.ppm
|
||||
sprites/pls1g0.ppm
|
||||
sprites/pls2a0.ppm
|
||||
sprites/pls2b0.ppm
|
||||
sprites/pls2c0.ppm
|
||||
sprites/pls2d0.ppm
|
||||
sprites/pls2e0.ppm
|
||||
)
|
||||
set(SPRITEP
|
||||
${SPRITEP}
|
||||
"9,11,sprites/pls1a0.ppm"
|
||||
"8,11,sprites/pls1b0.ppm"
|
||||
"9,11,sprites/pls1c0.ppm"
|
||||
"8,11,sprites/pls1d0.ppm"
|
||||
"16,27,sprites/pls1e0.ppm"
|
||||
"16,27,sprites/pls1f0.ppm"
|
||||
"18,27,sprites/pls1g0.ppm"
|
||||
"9,11,sprites/pls2a0.ppm"
|
||||
"8,13,sprites/pls2b0.ppm"
|
||||
"11,18,sprites/pls2c0.ppm"
|
||||
"16,27,sprites/pls2d0.ppm"
|
||||
"18,27,sprites/pls2e0.ppm"
|
||||
)
|
||||
|
||||
set(WAD_SRC
|
||||
${PALETTE}
|
||||
${LUMPS}
|
||||
${COLORMAPS}
|
||||
${TABLES}
|
||||
${SOUNDS}
|
||||
${GRAPHICS}
|
||||
${FLATS}
|
||||
${SPRITES}
|
||||
)
|
||||
|
||||
set(WAD_CMDLINE
|
||||
-palette ${PALETTE}
|
||||
-lumps ${LUMPS}
|
||||
-marker C_START -lumps ${COLORMAPS} -marker C_END
|
||||
-marker B_START -lumps ${TABLES} -marker B_END
|
||||
-sounds ${SOUNDS}
|
||||
-graphics ${GRAPHICS}
|
||||
-marker FF_START -flats ${FLATS} -marker FF_END
|
||||
-marker SS_START -sprites ${SPRITEP} -marker SS_END
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${WAD_DATA_PATH}"
|
||||
COMMAND rdatawad -I "${CMAKE_CURRENT_SOURCE_DIR}" ${WAD_CMDLINE} -o "${WAD_DATA_PATH}"
|
||||
DEPENDS rdatawad ${WAD_SRC}
|
||||
)
|
||||
add_custom_target(prboomwad DEPENDS ${WAD_DATA_PATH})
|
||||
install(FILES ${WAD_DATA_PATH} DESTINATION ${PRBOOMDATADIR} COMPONENT "PrBoom-Plus internal WAD")
|
74
data/convert-icon
Normal file
74
data/convert-icon
Normal file
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# $Id: convert-icon 704 2006-10-18 00:51:11Z fraggle $
|
||||
#
|
||||
# Copyright(C) 2005 Simon Howard
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
#
|
||||
# Converts images into C structures to be inserted in programs
|
||||
#
|
||||
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
try:
|
||||
import Image
|
||||
except ImportError:
|
||||
print "WARNING: Could not update %s. Please install the Python Imaging library." % sys.argv[2]
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def convert_image(filename, output_filename):
|
||||
|
||||
im = Image.open(filename).convert("RGB")
|
||||
|
||||
outfile = open(output_filename, "w")
|
||||
|
||||
size = im.size
|
||||
|
||||
struct_name = os.path.basename(output_filename)
|
||||
struct_name = re.sub(re.compile("\\..*$"), "", struct_name)
|
||||
struct_name = re.sub(re.compile("\W"), "_", struct_name)
|
||||
|
||||
outfile.write("static int %s_w = %i;\n" % (struct_name, size[0]))
|
||||
outfile.write("static int %s_h = %i;\n" % (struct_name, size[1]))
|
||||
|
||||
outfile.write("\n")
|
||||
outfile.write("static unsigned char %s_data[] = {\n" % (struct_name))
|
||||
|
||||
elements_on_line = 0
|
||||
|
||||
outfile.write(" ")
|
||||
|
||||
for y in range(size[1]):
|
||||
for x in range(size[0]):
|
||||
val = im.getpixel((x, y))
|
||||
outfile.write("0x%02x,0x%02x,0x%02x, " % val)
|
||||
elements_on_line += 1
|
||||
|
||||
if elements_on_line >= 4:
|
||||
elements_on_line = 0
|
||||
outfile.write("\n")
|
||||
outfile.write(" ")
|
||||
|
||||
outfile.write("\n")
|
||||
outfile.write("};\n")
|
||||
|
||||
convert_image(sys.argv[1], sys.argv[2])
|
||||
|
||||
|
BIN
data/flats/-n0_tex-.ppm
Normal file
BIN
data/flats/-n0_tex-.ppm
Normal file
Binary file not shown.
4
data/graphics/boxcc.ppm
Normal file
4
data/graphics/boxcc.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
C3?/3+?/C3?/3+?/C3?/C3?/?/3+?/3+C33+?/3+?/?/?/?/?/?/3+?/C3?/C3?/?/?/3+?/?/?/?/?/?/?/?/?/3+?/3+C33+?/3+?/?/C3?/C3?/3+?/C3?/3+?/C3
|
4
data/graphics/boxcl.ppm
Normal file
4
data/graphics/boxcl.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
#+7#C3C3C3?/C3#+#7#C3K7C33+C3/7#7#K7C3C3?/?/#+#7#?/C3?/?/?//7#7#C3C3?/3+?//77#C3?/C3?/?/#+#7#C3C33+C33+/7#7#C3C3C3?/3+
|
4
data/graphics/boxcr.ppm
Normal file
4
data/graphics/boxcr.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
3+?/C3C3C37##+3+C33+C3C37###+?/?/C3?/C37##/7C3C3K7K7C37###+C3?/C3K7K77##/7?/?/C3C3K77#/7C33+C3K7C37###+C3?/C3C3C37##/7
|
4
data/graphics/boxlc.ppm
Normal file
4
data/graphics/boxlc.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
?/?/3+?/C3?/C3?/?/?/3+?/?/?/?/?/?/?/?/?/3+?/3+C33+?/3+?/?/C3?/C3?/3+?/C3?/3+?/C3/77?'/77?'/7/77?'7?'/7#+/7#+#+/7#+/7######
|
4
data/graphics/boxll.ppm
Normal file
4
data/graphics/boxll.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
#+#7#?/C3?/?/?//7#7#C3C3?/3+?//77#C3?/C3?/?/#+#7#C3C33+C33+/7#7#C3C3C3?/3+#+##+7?'/7/77?'7?'/7#+#+#+#+/7#+/7#+#####
|
4
data/graphics/boxlr.ppm
Normal file
4
data/graphics/boxlr.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
C3C3K7K7C37###+C3?/C3K7K77##/7?/?/C3C3K77#/7C33+C3K7C37###+C3?/C3C3C37##/7/77?'/77?'/7/7##+/7#+/7#+/7#+#+/7######+
|
4
data/graphics/boxuc.ppm
Normal file
4
data/graphics/boxuc.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
/7#+/7#+#+/7#+/7######////////C3?/3+?/C3?/3+?/C3?/C3?/?/3+?/3+C33+?/3+?/?/?/?/?/?/3+?/C3?/C3?/?/?/3+?/?/?/?/?/
|
4
data/graphics/boxul.ppm
Normal file
4
data/graphics/boxul.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
7?'#+#+#+#+/7#+/7#+######+#//////#+7#C3C3C3?/C3#+#7#C3K7C33+C3/7#7#K7C3C3?/?/#+#7#?/C3?/?/?//7#7#C3C3?/3+?/
|
4
data/graphics/boxur.ppm
Normal file
4
data/graphics/boxur.ppm
Normal file
|
@ -0,0 +1,4 @@
|
|||
P6
|
||||
8 8
|
||||
255
|
||||
/7#+/7#+/7#+#+7?'######+//////##+3+?/C3C3C37##+3+C33+C3C37###+?/?/C3?/C37##/7C3C3K7K7C37###+C3?/C3K7K77##/7
|
BIN
data/graphics/cross1.ppm
Normal file
BIN
data/graphics/cross1.ppm
Normal file
Binary file not shown.
BIN
data/graphics/cross2.ppm
Normal file
BIN
data/graphics/cross2.ppm
Normal file
Binary file not shown.
BIN
data/graphics/cross3.ppm
Normal file
BIN
data/graphics/cross3.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig0.ppm
Normal file
BIN
data/graphics/dig0.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig1.ppm
Normal file
BIN
data/graphics/dig1.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig2.ppm
Normal file
BIN
data/graphics/dig2.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig3.ppm
Normal file
BIN
data/graphics/dig3.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig4.ppm
Normal file
BIN
data/graphics/dig4.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig45.ppm
Normal file
BIN
data/graphics/dig45.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig46.ppm
Normal file
BIN
data/graphics/dig46.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig47.ppm
Normal file
BIN
data/graphics/dig47.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig5.ppm
Normal file
BIN
data/graphics/dig5.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig58.ppm
Normal file
BIN
data/graphics/dig58.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig6.ppm
Normal file
BIN
data/graphics/dig6.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig7.ppm
Normal file
BIN
data/graphics/dig7.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig8.ppm
Normal file
BIN
data/graphics/dig8.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig9.ppm
Normal file
BIN
data/graphics/dig9.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig91.ppm
Normal file
BIN
data/graphics/dig91.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dig93.ppm
Normal file
BIN
data/graphics/dig93.ppm
Normal file
Binary file not shown.
BIN
data/graphics/diga.ppm
Normal file
BIN
data/graphics/diga.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digb.ppm
Normal file
BIN
data/graphics/digb.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digc.ppm
Normal file
BIN
data/graphics/digc.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digd.ppm
Normal file
BIN
data/graphics/digd.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dige.ppm
Normal file
BIN
data/graphics/dige.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digf.ppm
Normal file
BIN
data/graphics/digf.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digg.ppm
Normal file
BIN
data/graphics/digg.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digh.ppm
Normal file
BIN
data/graphics/digh.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digi.ppm
Normal file
BIN
data/graphics/digi.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digj.ppm
Normal file
BIN
data/graphics/digj.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digk.ppm
Normal file
BIN
data/graphics/digk.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digl.ppm
Normal file
BIN
data/graphics/digl.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digm.ppm
Normal file
BIN
data/graphics/digm.ppm
Normal file
Binary file not shown.
BIN
data/graphics/dign.ppm
Normal file
BIN
data/graphics/dign.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digo.ppm
Normal file
BIN
data/graphics/digo.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digp.ppm
Normal file
BIN
data/graphics/digp.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digq.ppm
Normal file
BIN
data/graphics/digq.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digr.ppm
Normal file
BIN
data/graphics/digr.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digs.ppm
Normal file
BIN
data/graphics/digs.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digt.ppm
Normal file
BIN
data/graphics/digt.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digu.ppm
Normal file
BIN
data/graphics/digu.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digv.ppm
Normal file
BIN
data/graphics/digv.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digw.ppm
Normal file
BIN
data/graphics/digw.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digx.ppm
Normal file
BIN
data/graphics/digx.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digy.ppm
Normal file
BIN
data/graphics/digy.ppm
Normal file
Binary file not shown.
BIN
data/graphics/digz.ppm
Normal file
BIN
data/graphics/digz.ppm
Normal file
Binary file not shown.
BIN
data/graphics/m_butt1.ppm
Normal file
BIN
data/graphics/m_butt1.ppm
Normal file
Binary file not shown.
BIN
data/graphics/m_butt2.ppm
Normal file
BIN
data/graphics/m_butt2.ppm
Normal file
Binary file not shown.
BIN
data/graphics/m_colors.ppm
Normal file
BIN
data/graphics/m_colors.ppm
Normal file
Binary file not shown.
BIN
data/graphics/m_palno.ppm
Normal file
BIN
data/graphics/m_palno.ppm
Normal file
Binary file not shown.
BIN
data/graphics/m_palsel.ppm
Normal file
BIN
data/graphics/m_palsel.ppm
Normal file
Binary file not shown.
BIN
data/graphics/m_vbox.ppm
Normal file
BIN
data/graphics/m_vbox.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stbr123.ppm
Normal file
BIN
data/graphics/stbr123.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stbr124.ppm
Normal file
BIN
data/graphics/stbr124.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stbr125.ppm
Normal file
BIN
data/graphics/stbr125.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stbr126.ppm
Normal file
BIN
data/graphics/stbr126.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stbr127.ppm
Normal file
BIN
data/graphics/stbr127.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stcfn096.ppm
Normal file
BIN
data/graphics/stcfn096.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stkeys6.ppm
Normal file
BIN
data/graphics/stkeys6.ppm
Normal file
Binary file not shown.
BIN
data/graphics/stkeys7.ppm
Normal file
BIN
data/graphics/stkeys7.ppm
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue