Commit graph

74 commits

Author SHA1 Message Date
Eidolon
2433d37d44 Switch from CPM to vcpkg 2023-12-15 02:49:15 +00:00
Eidolon
187f30cc64 rhi: use GL 2 instead of GL Core
Widens the hardware compat range without losing features (besides
debugging)
2023-11-04 20:15:51 -05:00
Eidolon
2d614781eb i_system.c -> cpp, disable mumble 2023-10-14 15:26:52 -05:00
Eidolon
01ddbf6dcf (WIP) hardware: add render hardware interface 2023-01-14 18:40:26 -06:00
Eidolon
b57c92efd3 cxx: Convert sdl/i_video.cpp 2023-01-07 01:24:55 -06:00
Eidolon
b95fd459b9 cmake: Remove SDL2_mixer and OpenMPT
Libraries superceded by libxmp-lite and new mixer.
2023-01-04 16:51:12 -06:00
Eidolon
8c259487b2 audio: Add pure-ISO C++17 audio mixer and backend
This replaces SDL2_mixer.
2023-01-04 16:51:12 -06:00
Eidolon
ba109d8981 core: Catch and I_Error uncaught exceptions in main 2023-01-04 16:51:12 -06:00
James R
07c30a20c2 Move all sources into CMakeLists.txt
Changing Sourcefile did not automatically update the CMake
cache.
2022-11-28 21:46:43 -08:00
James R
1dd25181a9 cmake: use SRB2_SDL2_EXE_NAME, append git branch, add SRB2_SDL2_EXE_SUFFIX 2022-11-27 02:44:10 -08:00
Eidolon
0677d59d51 cmake: Build all deps and static link
Overhaul cmake build
2022-11-27 02:44:10 -08:00
Eidolon
4db2c48cc3 cmake: set executable name to ringracers 2022-10-08 20:38:45 -05:00
Eidolon
91a404c190 cmake: rename executable 2022-08-23 21:44:25 -05:00
Eidolon
37d0857762 cmake: move debug strip to src/CMakeLists.txt 2022-08-23 21:32:29 -05:00
Eidolon
17128dc8f7 cmake: add exchndl link on mingw32 2022-08-23 21:26:17 -05:00
Eidolon
cf230b2182 cmake: build sdl target with threads support 2022-08-23 21:19:31 -05:00
James R
d5c08ac034 Backport 2021 SRB2 makefile overhaul
This is a squashed commit of the following commits from
upstream:

James R <justsomejames2@gmail.com> on 2021-05-01
Commit 44d217807f71d15bd7ca69dad226458e7060ccab
> Collect makefiles

James R <justsomejames2@gmail.com> on 2021-05-04
Commit f637e28d0c1877c44acd7b01f7130625d5ea4099
> Remove bin, objs and dep directories

James R <justsomejames2@gmail.com> on 2021-05-02
Commit b31056c7d977fe3c2a5e0637589fd9521f1f6c04
> Rewrite Makefile to be modular as well as more automated
>
> Some key points for programmers:
> - Source code files are mostly listed in a 'Sourcefile'.
>   So you no longer directly edit the object list. There
>   can be multiple Sourcefiles and they can even live in
>   subdirectories--the directory name will be prepended to
>   every filename in the list. Of course, the Makefile
>   still needs to be edited to read from each Sourcefile.
> - Different rules are no longer required for source code
>   files that live in subdirectories (such as sdl/ or
>   hardware/). Subdirectories Just Work so go ham!
>
> In addition to those points, another important change is
> that the bin directory is no longer divided into platform
> subdirectories (Linux64, Mingw, etc). Executables now go
> directly into bin. If you use DEBUGMODE or target 64-bit,
> then subdirectories for 'debug' and '64' will be made
> though.
>
> Oh by the way, I don't think make clean actually removed
> files before on Windows. It should now. I also fixed as
> many little inconsistencies like that as I noticed.
>
> And now just an overview of the technical aspects that
> shouldn't affect anyone who doesn't REALLY care about the
> Makefile...
>
> objs and dep directories have been moved to a make
> directory. Makefile.cfg and its variants have been moved
> out of their various subdirectories to src/Makefile.d
> make distclean removes the bin and make directories
> entirely, but make clean and cleandep still only affect
> the current build target.
>
> When I say automation, I mean that a lot of copy pasting
> in the Makefile has been reduced.

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 53d1cbe8264196e46911c86bc4be13d44aa35dfe
> Appveyor: update executable directory

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 888073d64d1885cae0ad8b5d54bfec31e9793e0a
> Fix make clean printing header

James R <justsomejames2@gmail.com> on 2021-05-04
Commit 3d7205d4942d1e1b2627fdf5acf9d9c82437a97b
> Fix minor errors with Windows ECHO, DEL, MD
>
> - Quotes were not removed by ECHO.
> - DEL would print an error on nonexistent file.
> - MD would do this plus return a nonzero exit code.

James R <justsomejames2@gmail.com> on 2021-05-05
Commit f9813844e7f0dfa6229062b1ebd83e4e8150c120
> Update CMakeLists.txt to use Sourcefiles
>
> This establishes (near) parity of source code file lists
> between the Makefile and CMakeLists.txt
>
> To make that change I messed around CMakeLists.txt a bit.
> It now uses target_sources and target_compile_definitions.
> I also removed some MSVC stuff since we don't actually
> care about MSVC--it made things easier.
>
> CMake minimum version 3.0 -> 3.13 for target_sources.

James R <justsomejames2@gmail.com> on 2021-05-05
Commit ec8b63d6759f0c124693ea6d5a521e8d82efd566
> Makefile: remove last of unused flags

James R <justsomejames2@gmail.com> on 2021-05-07
Commit c06817d0085ee77b0027917bca91a24e60c7deba
> Makefile: fix mingw/64 swapped with 32-bit

James R <justsomejames2@gmail.com> on 2021-05-07
Commit 9e7d80c2c44199126fa451c59fca0f98d23ad14d
> Makefile: suppress DEL error

James R <justsomejames2@gmail.com> on 2021-05-07
Commit 87afa7655a71539c7cbc7db12df18c4253187fbc
> CMake: fix ASM compile
>
> - target_sources from correct directory
> - enable_language must be used in add_executable directory

James R <justsomejames2@gmail.com> on 2021-05-08
Commit 210c9419e4bddd1fe8e9be7cb66de31119fa0d68
> Ignore -Wtrigraphs

James R <justsomejames2@gmail.com> on 2021-06-16
Commit 3a044e71cc7cf6c80d9836189511c1a58c108370
> Disable EXE disassembly and compression by default
>
> NOOBJDUMP=1 and NOUPX=1 have been removed. Make 'dump'
> target to disassemble. UPX=upx to compress executable.
>
> Setting UPX used to cause it to fail. That has been fixed.

James R <justsomejames2@gmail.com> on 2021-06-16
Commit c142b3241ddb8f1ea9b5090d20dffa43a17129ab
> Makefile: alert full path of final executable
>
> With added textual contrast.

James R <justsomejames2@gmail.com> on 2021-06-16
Commit b04c79d8a7ba4ae8f888ab94d394b6714699e107
> Say 'at'

James R <justsomejames2@gmail.com> on 2021-06-21
Commit 2d7a8c3c571bcc5335437e9db074c75af00408ce
> Makefile: use shell commands to read in Sourcefile
>
> File function is not supported < Make 4.2.

James R <justsomejames2@gmail.com> on 2021-06-21
Commit d5146945a69ebf30e6fc1fbb64558e456e0b7459
> Makefile: don't automatically set WINDOWSHELL unless PATH matches Windows norms
>
> This is for MSYS2, which requires unix shell commands.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit 5f4d7e3c5b013afe03ae2a441c82ad79bae7c66c
> Makefile: fail if old build directories exist
>
> After a checkout from before revision, old directories
> such as bin/Linux64 only remain if untracked files exist
> within. This may be confusing to the user. They may even
> use an outdated executable if it is one of those untracked
> files.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit c3ad5de912fccfdd64c510f5684883afceaa7d36
> Makefile: let variables be defined on Make line
>
> If a variable is defined as in 'make CC=gcc-10', then that
> definition overrides anything other definition in the
> Makefile.

James R <justsomejames2@gmail.com> on 2021-06-22
Commit ed85e994a46ace07cf022b38a9abac1698a8667e
> Remove misplaced parentheses

James R <justsomejames2@gmail.com> on 2021-06-29
Commit c1ecfa306f6a0b168d4f6cbc3224ebebd4deec51
> Makefile: 'dep' not 'deps'

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 6c03f9b5b3590e01773f05bc1c31cc67a2d88fc2
> fuck

James R <justsomejames2@gmail.com> on 2021-06-29
Commit abdf5c101cbe80657f210c0b90800e2c4c6f0c05
> Makefile: report SHELL

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 22ab611daa17bd23225f3afeeba39147c0d0fe17
> Makefile: do not automatically set WINDOWSHELL
>
> According to this answer--
> https://stackoverflow.com/a/45952425
> --Make will always prefer a unix shell, even on Windows,
> if one can be found in Path. So we can't check PATH to
> determine if it's a Windows shell... this is just too much
> bother.

James R <justsomejames2@gmail.com> on 2021-06-29
Commit f79e0ee540564fcec5da7c0dc4006906492a7f30
> Appveyor: remove 64-bit target

James R <justsomejames2@gmail.com> on 2021-06-29
Commit faee657572f23cd6f8b68c077873e01c4278414e
> Appveyor: update for new Makefile

James R <justsomejames2@gmail.com> on 2021-06-29
Commit 44b82dea58612e6f07830647e2b08555f54a7caa
> Appveyor: remove redundant CFLAGS
>
> Also changed -Wno-error=implicit-fallthrough to
> -Wno-implicit-fallthrough. For some reason Appveyor's
> version of GCC is triggering these warnings despite the
> comments, so just shut it up.

James R <justsomejames2@gmail.com> on 2021-06-29
Commit db919accd22350c087c1fd0e5122d8e490e2f171
> Appveyor: suppress real time file names

James R <justsomejames2@gmail.com> on 2021-07-12
Commit 58fa44e8dc0444eecbe701f31872fad9fa563a6a
> CMP0115

SteelT <steeltitanium1@gmail.com> on 2021-07-16
Commit 71f905f95bd4fe62dbca87208cf71b7309f12de1
> Fix gme support being effectively disabled
>
> I found this easier than trying to adjust the makefile, as it uses the same thing to automatically generate the various NO* compile options.

James R <justsomejames2@gmail.com> on 2021-08-14
Commit 824b1ab28cdddfd1c018454a9af14dabaab49fcd
> Makefile: use full stem in dependency generation
>
> Previously took only the filename, so the directory
> component was stripped. This broke dependencies for
> basically every file.

GoldenTails <milestailsprower101n2@gmail.com> on 2021-08-28
Commit 1a8ec7975c20e1d652cbbdb7a9e366192e41c05f
> Makefile: Improve gcc detection
>
> Wasn't working for me until I fixed it.
> Turns out gcc really doesn't like giving its name out.
> Most of the time it reads argv[0].
2021-11-25 03:56:23 -08:00
Sally Coolatta
1f082f15e6 Merge SRB2 master 2021-02-27 02:25:14 -05:00
Steel Titanium
f9b1f873a4 CMake: Fix fullscreen toggle not working
All because of a typo
2020-10-31 00:59:51 -04:00
Sally Coolatta
9b6aa946ea Merge remote-tracking branch 'srb2/master' into the-scary-22-merge 2020-10-24 19:28:06 -04:00
GoldenTails
e7b3e2598d Add i_threads.h too 2020-10-20 15:58:34 -05:00
GoldenTails
0fb69e75e1 Add multithreading option for CMake 2020-10-20 15:44:01 -05:00
Sally Coolatta
b5fcd74ef9 Merge master
Slopes in a few maps are really broken ... think it's anchors, I'm gonna leave that to jart :V
2020-09-25 12:00:50 -04:00
Steel Titanium
5d5385f7a1 It's discord-rpc, not libgme 2020-08-23 17:45:31 -04:00
Steel Titanium
f20f0b2f19 Better CMake support
No idea if it compiles on Mac, it does on Linux though, at least for me.
2020-08-23 16:15:33 -04:00
James R
f9e74e8ba2 Merge branch 'kill-cd-support' into 'next'
Kill CD support

See merge request STJr/SRB2!1102
2020-08-09 20:48:25 -04:00
James R
2e3b0ae4c8 Merge remote-tracking branch 'origin/next' into http-mserv 2020-08-08 15:05:03 -07:00
Steel Titanium
913c07959e Kill CD support 2020-08-07 17:06:19 -04:00
mazmazz
121d4c87e3 CMAKE: Fix toggle fullscreen breakage due to missing define
This is lazy. The correct solution is to eliminate the define in the program code
2020-06-09 17:32:14 -04:00
mazmazz
29c66c579c CMAKE: Add SRB2_DEBUG_INSTALL to toggle *.debug in install/package 2020-06-08 00:38:13 -04:00
mazmazz
502de28d38 CMAKE improvements: optional asset install; exe.debug for RelWithDebInfo 2020-06-08 00:01:15 -04:00
mazmazz
c74eed0a2c Added SDL Mixer X to CMAKE (Windows only) 2020-06-08 00:01:15 -04:00
Steel Titanium
97ba63424f Support for http downloads
(cherry picked from commit 5e0eca9fe9)

(cherry picked just the libcurl stuff)
2020-05-13 17:25:52 -07:00
Steel Titanium
5e0eca9fe9 Support for http downloads 2020-04-07 18:22:29 -04:00
Eidolon
de12308eb8 [cmake] Use same executable names as Makefile 2019-12-15 00:39:04 -06:00
Steel Titanium
8e5593c207 Merge branch 'public-musicplus-libopenmpt' of https://git.magicalgirl.moe/STJr/SRB2 into public_libopenmpt
# Conflicts:
#	.travis.yml
#	src/m_menu.c
#	src/sdl/Srb2SDL-vc10.vcxproj
#	src/sdl/Srb2SDL.props
2019-06-11 17:48:00 -04:00
Steel Titanium
8d5207975d Merge branch 'master' into travis-deployer
# Conflicts:
#	.travis.yml
2019-06-07 16:56:19 -04:00
Steel Titanium
2ede6dd29f Merge branch 'master' into public-musicplus-libopenmpt 2019-05-20 21:33:10 -04:00
wolfs
8a6f4b6405 Merge branch 'apng' into 'master'
Support aPNG in new versions of libpng

See merge request KartKrew/Kart-Public!63
2019-02-28 12:00:58 -08:00
james
cb1429b59f Support CMake for apng 2019-02-12 17:01:27 -08:00
Marco Z
74c57ad447 Kart Public Next merge 2019-01-08 18:43:49 -05:00
mazmazz
c2687a4289 CMake fixes for OpenMPT 2019-01-03 21:17:18 -05:00
mazmazz
7a60a739e1 Add libopenmpt to cmake 2019-01-02 03:45:40 -05:00
mazmazz
337e0da8e4 Implement deployer scripts for Travis -- OSX and Linux package building [Kart merge] 2018-12-30 15:41:58 -05:00
mazmazz
6e2d757219 Implement deployer scripts for Travis -- OSX and Linux package building 2018-12-30 15:22:50 -05:00
mazmazz
fb3fbf64bd Update CMake paths for Windows DLLs 2018-12-20 16:46:40 -05:00
Steel Titanium
6d946c1c84 Fix the not found errors on DLLs 2018-11-22 22:44:47 -05:00
Monster Iestyn
54b35c3975 Fix GME library path, consider 64-bit systems for png/zlib/SDL2 paths/libraries 2016-09-26 21:58:25 +01:00
Monster Iestyn
27acd8c3ac Added SRB2_CONFIG_USE_INTERNAL_LIBRARIES option (defaults to off right now), some WIP work on making it ...actually do what it says on the tin.
Basically, it manually sets *_FOUND, *_INCLUDE_DIRS and *_LIBRARIES instead of using find_package. Frankly I have no idea how well what I've done works currently though, not even sure if I've set the _LIBRARIES variables correctly. Again, it's WIP work, this can probably be fixed eventually I suppose.
2016-09-25 20:33:07 +01:00
Alam Ed Arias
0f853640e2 macosx: We need CoreFoudation for SDLMain 2016-03-25 22:23:47 -04:00