Commit graph

57 commits

Author SHA1 Message Date
Eidolon
ce5c41d7eb Merge branch 'the-one-cmake' into 'next'
Overhaul cmake build

See merge request STJr/SRB2!1832

(cherry picked from commit 4337205fa8)

# Conflicts:
#	src/sdl/CMakeLists.txt
2022-11-05 03:09:38 -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
Alam Ed Arias
8a369d969b whitespace clean 2016-02-25 18:31:40 -05:00
Alam Ed Arias
6000b5c980 Merge branch 'master' into next 2016-02-09 14:13:50 -05:00
Yukita Mayako
914c6c9d98 Whitespace cleanup. 2016-02-07 21:45:16 -05:00
Alam Ed Arias
07fc74eaf5 clang: fixup a few clang warnings 2016-02-05 22:38:40 -05:00
Inuyasha
420a27ce11 Attempt to play nice to cmake. 2016-01-14 07:46:28 -08:00
Ronald Kinard
53680903e5 Fix compilation and debugging on Windows.
Core code has too many #define dependencies on interface-specific
defines. This means that it's currently not possible to safely
separate the core and interface code into different contexts. The
core code should be refactored to accomadate for this because we
should not have any interface-specific code in core in the first
place.

This reverts the static library SRB2Core from a7135094 and instead
adds the core sources to the SRB2SDL2 target directly.

So frustrating...
2015-03-24 19:32:58 -05:00
Ronald Kinard
2f52a5d34f Added a fatal error message when attempting an in-source build.
In-source builds are pain and suffering and I am going to stop people
from doing them to save them that pain.
2015-03-08 18:47:26 -05:00
Ronald Kinard
3d5d61ee87 Remove MSVC netplay warning. 2015-03-04 20:37:37 -06:00
Ronald Kinard
f28b050c07 Append current branch name to comp version string. 2015-03-04 20:15:57 -06:00
Ronald Kinard
e223084982 Use bin output directory. 2015-03-04 20:07:51 -06:00
Ronald Kinard
e08bd45227 cmake: Separate debug symbols on gcc
Only when actually making the debug target though!
2015-02-01 22:14:52 -06:00
Ronald Kinard
ec79756c42 cmake: copy DLLs to build directory in MSVC
this is done as a POST_BUILD step
2015-01-31 22:40:36 -06:00
Ronald Kinard
70f046a320 cmake: on mac, check Resources in bundle first.
on non debug, check assets folder in src as well
2015-01-28 23:38:40 -06:00
Ronald Kinard
68f8a5b0f9 cmake: build bundle and dmg on install/package 2015-01-28 19:29:16 -06:00