Commit Graph

56 Commits

Author SHA1 Message Date
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
Ronald Kinard 0909fce2e3 cmake: Configure source via cmake
silently fixing a bad malloc here too shhhhhhhhh
2015-01-28 18:03:41 -06:00