Commit graph

71 commits

Author SHA1 Message Date
Logan Aerl Arias
6b4dac7478 replace CPM with vcpkg 2024-03-23 04:50:19 +00:00
Logan Aerl Arias
235afdff72 disable libgme by default 2024-02-24 19:37:38 -05:00
Logan-A
8374a1628c added NOEXECINFO to cMake
added NOEXECINFO to cMake
2023-12-25 19:52:32 -05:00
Sal
26583a9845 Ring Racers CMake + Debug build improvements 2023-08-01 02:29:45 +00:00
SteelT
34f2594b48 Update Catch2 to latest version
This combined with the previous commit fixes building the test suite
2023-07-26 14:09:48 -04:00
Sal
7eff445d1f Merge branch 'cmake-clang-tidy' into 'next'
cmake: Add optional clang-tidy integration

See merge request STJr/SRB2!1849
2023-07-26 11:59:02 +00:00
Eidolon
101cdea022 cmake: Add optional clang-tidy integration
clang-tidy performs static analysis over the compilation unit,
producing more comprehensive compile warnings than are normally
generated by the compiler. For example, it will trace branches in a
function to find the exact conditions in which a null dereference
can occur.

Note that this produces an absurd amount of warnings for our existing
C code, and significantly slows compile times. It is pretty effective
at its job though. I think it would be good to turn on by default for
upcoming C++ code.
2023-07-26 07:58:31 -04:00
Eidolon
7639127003 cmake: Add Catch2 unit testing 2023-07-26 07:55:26 -04:00
Eidolon
3597957af1 Merge branch 'cmake-zlib-internalized' into 'next'
cmake: build zlib manually in internal build

See merge request STJr/SRB2!1856
2022-11-09 02:30:35 +00:00
Eidolon
e265adf53f cmake: disallow in-source builds 2022-11-08 19:36:40 -06:00
Eidolon
64e063d4dc cmake: Port misc options from Makefiles
- DEBUGMODE
- MOBJCONSISTANCY
- PACKETDROP
- ZDEBUG
- PROFILEMODE (likely moot, dunno how profiling with cmake works
though)
2022-11-06 14:03:02 -06:00
Eidolon
106d115c3e cmake: Port warning configuration from make
Adds SRB2_CONFIG_ERRORMODE to replace ERRORMODE too.
2022-11-06 10:11:51 -06:00
Eidolon
90b4f8720e cmake: Remove asset hashing, CMAKE_ASSETS_DIR
Simplifies build setup for cmake.
2022-11-05 23:56:43 -05:00
Eidolon
036d5cce40 cmake: Use TheLartians' Ccache script on non-Win32
Improves ccache support for Xcode
2022-11-05 23:30:12 -05:00
Eidolon
a015be2a54 cmake: Build all deps and static link 2022-11-05 00:12:09 -05:00
James R
87afa7655a CMake: fix ASM compile
- target_sources from correct directory
- enable_language must be used in add_executable directory
2021-05-07 18:59:51 -07:00
James R
f9813844e7 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.
2021-05-05 04:00:44 -07:00
James R
b31056c7d9 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.
2021-05-04 04:22:37 -07:00
James R
4985d94386 Merge remote-tracking branch 'origin/master' into cmake-adjustments 2020-07-12 16:24:24 -07:00
James R
1757002ddb Automate VERSION/SUBVERSION; move version related definitions to version.h
CMake support. Srb2win.rc still needs touchy, whatever.
2020-07-10 22:20:33 -07:00
Steel Titanium
307125e84e Update version number 2020-07-10 17:29:03 -04:00
Steel Titanium
7d75c72263 Update the version number 2020-07-06 21:29:02 -04:00
mazmazz
aef9a1b522 CMAKE: Add CCACHE support 2020-06-08 00:35:31 -04:00
mazmazz
c63ead5abb CMAKE: Configurable CPACK generator 2020-06-08 00:01:15 -04:00
mazmazz
ded6285249 CMAKE improvements: optional asset install; exe.debug for RelWithDebInfo 2020-06-08 00:01:15 -04:00
James R
c52c8e0282 Update version names, SUBVERSION, MODVERSION 2020-05-11 14:41:36 -07:00
Monster Iestyn
baee6a1d57 Update version number to 2.2.3 in all the usual files, also updated MODVERSION 2020-05-10 16:02:23 +01:00
Steel Titanium
1c1163bd0f Update version number to 2.2.2 2020-02-22 16:37:13 -05:00
Monster Iestyn
f1bdaa2fda Updated version number to 2.2.1, increment MODVERSION.
Also updated CMakeLists.txt, appveyor.yml and this one Xcode project file as usual
2020-02-05 19:55:40 +00:00
Eidolon
d63ad82dc5 [cmake] Remove srb2dd target 2019-12-15 00:47:58 -06:00
James R
5ba363fda6 Make the cmake version 2.2.0 2019-12-07 14:28:03 -08:00
Monster Iestyn
e52a314ddb Update version to 2.1.25 2019-08-16 20:14:01 +01:00
Monster Iestyn
f5d883bd12 Merge branch 'next' into 2.1.24-prep
# Conflicts:
#	debian-template/control
#	debian/changelog
2019-06-07 23:18:31 +01:00
Steel Titanium
3c08ee1313 Merge branch 'master' into travis-deployer
# Conflicts:
#	.travis.yml
2019-06-07 16:56:19 -04:00
Monster Iestyn
6f6d912fa6 Update version to 2.1.24 2019-06-07 15:48:33 +01:00
Alam Ed Arias
1c55daef2a CMake: have funny check for empty CMAKE_SIZEOF_VOID_P 2019-03-19 09:10:25 -04:00
Alam Ed Arias
49dddf54ab CMake: check if CMAKE_SIZEOF_VOID_P is defined on Mac? 2019-03-19 00:04:14 -04:00
Alam Ed Arias
6142becb4d Revert "Update CMakeLists.txt, remove CMAKE_SIZEOF_VOID_P check"
This reverts commit d03c53930b.
2019-03-18 23:58:31 -04:00
Alam Ed Arias
d03c53930b Update CMakeLists.txt, remove CMAKE_SIZEOF_VOID_P check 2019-03-18 16:50:17 -04:00
mazmazz
78fa72514f Implement deployer scripts for Travis -- OSX and Linux package building 2018-12-30 15:22:50 -05:00
mazmazz
894c139bf1 Update code versions to 2.1.23 2018-12-26 16:31:43 -05:00
mazmazz
9d212b340b Update code versions to 2.1.22 2018-12-20 02:35:27 -05:00
Monster Iestyn
e353e2ef70 Merge branch 'next' into 21-version 2018-12-04 17:19:36 +00:00
Steel Titanium
fbb2cde800 Make this be consistent with non-CMake builds 2018-12-03 15:42:37 -05:00
mazmazz
36e020c366 Update version to 2.1.21 2018-11-23 06:58:45 -05:00
Monster Iestyn
7cb0138293 Change version number to 2.1.20 2017-11-08 15:06:42 +00:00
Alam Ed Arias
877e9510f7 Update version number to v2.1.19 2017-05-26 21:38:49 -04:00
Monster Iestyn
b8ffeeb59f Update version number to v2.1.18
Don't worry, I remembered to update MODVERSION as well this time :)
2017-05-12 16:06:27 +01:00
Monster Iestyn
e59fb38802 Update version number 2017-01-15 18:49:33 +00:00
Alam Ed Arias
b3b5521e1b Merge branch 'master' into next 2016-02-25 18:33:29 -05:00