Commit graph

202 commits

Author SHA1 Message Date
Clownacy
85e1afb35a Added GLFW3 sources
This allows it to be compiled locally.
2020-04-01 22:51:10 +01:00
Clownacy
1e0f0ed99c Add pkg-config GLFW3 support 2020-04-01 22:42:27 +01:00
Clownacy
135365f941 Merge branch 'portable' of https://github.com/Clownacy/Cave-Story-Engine-2 into portable 2020-04-01 22:21:56 +01:00
Clownacy
03fab974fc Tweaks 2020-04-01 20:20:04 +01:00
Clownacy
a008410b96 List it in the readme 2020-04-01 20:19:24 +01:00
Clownacy
883e994949 Rename to PKG_CONFIG_STATIC_LIBS 2020-04-01 20:17:16 +01:00
Clownacy
ca5b092807 Add static-linkage support to CMake file
Well, kind of.

It uses pkg-config and GCC's `-static' flag. It's very tied the Linux
way of doing things.
2020-04-01 20:14:44 +01:00
Clownacy
6301c01315 Shup up a warning when using local SDL2
Really need to update to SDL2 2.0.12 at some point.
2020-04-01 15:31:16 +01:00
Clownacy
b74aac6b3c Make other SDL2-renderer combos valid 2020-04-01 15:30:36 +01:00
Clownacy
c4aa8e28bb More refactoring 2020-04-01 14:57:07 +01:00
Clownacy
073712017f Get OpenGL ES 2.0 working again 2020-03-31 22:14:57 +01:00
Clownacy
5dbca99e19 Extremely horrible terrible nightmare refactoring
Working on ridding CSE2 of its hard SDL2 dependency.

For now, I have a rudimentary GLFW3 backend.
2020-03-31 21:56:10 +01:00
Clownacy
b4ec82d81b Add dummy GLFW3 controller backend 2020-03-31 16:38:05 +01:00
Clownacy
37c5236b9b Split SDL2 code from Input.cpp
...So, *all* of it.
2020-03-31 16:24:20 +01:00
Clownacy
3a5a5044b1 Split SDL2 code from Main.cpp 2020-03-31 16:07:34 +01:00
Clownacy
d0b20316de Don't do -Iexternal
It pollutes the #include space.
2020-03-31 14:26:24 +01:00
Clownacy
424edc5256 Add header file to CMake file as well 2020-03-31 12:20:39 +01:00
Clownacy
d91c1e9bdc Update the SDL2 audio backend
Now uses the shared software mixer
2020-03-31 12:19:44 +01:00
Clownacy
732d3bbc5c Split software audio mixer to its own file
This will be shared between the SDL2 and miniaudio backends,
eliminating all that digusting duplicate code.
2020-03-31 12:14:20 +01:00
Clownacy
cf75cbcad2 Don't embed font in executable
Creating a Japanese build would require 4GB+ of RAM because of this.
It's about time it got removed. It was a silly idea anyway.
2020-03-17 21:14:15 +00:00
Clownacy
dd04977f29 Update miniaudio to v0.10.1
This newer version supports marking all of its declarations as
static, avoiding the conflict between the miniaudio audio backend,
and the copy of miniaudio embedded in clownaudio in the enhanced
branch.
2020-03-17 13:25:41 +00:00
Clownacy
44762363cf Bump required C++ standard to C++11
cute_spritebatch.h uses C99/C++11 features.
2020-03-15 00:06:30 +00:00
Clownacy
066f4988d3 CMake cleanup 2020-03-14 23:03:47 +00:00
Clownacy
720466826b Merge branch 'accurate' into portable 2020-03-14 23:01:46 +00:00
Clownacy
36f961d328 Fix CMake build with Linux MinGW-w64 2020-03-14 23:01:27 +00:00
Clownacy
3e581b0489 Specify which type of SDL2 is being used
It seems that SDL 2.0.12 improved its autotools-generated CMake file,
to the point where our script mistakes it for a CMake-generated one.
2020-03-14 22:55:01 +00:00
Clownacy
03c460a60b Merge branch 'accurate' into portable 2020-03-14 22:10:00 +00:00
Clownacy
4ef83526c0 More CMake cleanup 2020-03-14 21:59:42 +00:00
Clownacy
cadfeab385 Neaten-up the CMake file 2020-03-14 20:26:59 +00:00
Clownacy
216aec7caf Clean-up CMake LTO
Honestly, considering the user can enable LTO by setting
CMAKE_INTERPROCEDURAL_OPTIMIZATION, I might remove this option too...
2020-03-14 20:19:48 +00:00
Clownacy
a0f7ce8d9f Merge branch 'accurate' into portable 2020-03-14 20:11:42 +00:00
Clownacy
10fbb05670 Remove some Make/CMake options
These options would add compiler flags that the user could just pass
on their own with CXXFLAGS/CMAKE_CXX_FLAGS.
2020-03-14 20:03:42 +00:00
Clownacy
a70b4e444e Add CMake info to the readme 2020-03-14 19:42:58 +00:00
Clownacy
efa987d7ad Make the static MSVC runtime linkage optional
I'd tell people to use CMAKE_MSVC_RUNTIME_LIBRARY instead, but, eh,
it's too recent.
2020-03-14 19:36:47 +00:00
Clownacy
505c9cc8f5 Clean-up MSVC tweaks 2020-03-14 19:30:57 +00:00
Clownacy
1dccec0e31 Bump required CMake version to 3.12
I was only able to test 3.8 because of my Pi, but since I've updated
Raspbian, it doesn't use that version anymore, so I can't guarantee
it works.
2020-03-14 19:27:32 +00:00
Clownacy
de1740b61c Match the portable branch's CMakeLists.txt 2020-03-14 19:15:41 +00:00
Clownacy
3de557807c This option shouldn't be on by default 2020-03-14 19:10:31 +00:00
Clownacy
140c67a5cb Make CMake file match the portable branch one 2020-03-14 19:09:32 +00:00
Clownacy
406ff18909 Add CMakeLists.txt and Visual Studio 6 support
The CMake file allows you to compile the accurate branch with
whatever version of Visual Studio you have lying around, without
having to clumbsily convert the VS2003 project.

I've tested this with VS2019, VS2003, and VS6. VS6 is goofy - it's
missing a few types and constants, and it's not smart enough to
realise that ints and longs are the same in ILP32 data models. I've
added a few small hacks to address this. Might undo them. Who knows.

For now, I want to support VS6 because Mint compiled CSE2 with it
before, and because VS6 uses `msvcrt.dll` as its C runtime, which
apparently comes pre-installed in Windows, as opposed to all those
other annoying runtime versions that require they be installed
separately (which is why MinGW targets it specifically).

Also, VS6 *should* give us Win95-compatible builds. The internet says
MSVC2003 is Win95-compatible too, but Mint claims the vanilla EXE
doesn't run on there. I imagine it has something to do with its
static runtime library (VS2003 links the static one by default for
some reason).
2020-03-13 21:35:51 +00:00
Clownacy
39c1d92947 CMakeLists.txt - Wrap paths in "" 2020-03-05 15:16:17 +00:00
Clownacy
9af25f7c67 Hopefully fixed miniaudio backend on Windows
Stupid BOOL type
2020-03-04 21:02:17 +00:00
Clownacy
156c01e672 Rename RENDERER and AUDIO_BACKEND
Now they're BACKEND_RENDERER and BACKEND_AUDIO
2020-02-29 18:33:32 +00:00
Clownacy
72672e142d Makefile/CMakeLists.txt fixes 2020-02-29 18:19:06 +00:00
Clownacy
a943e80b1a Add miniaudio audio backend to Makefile
Also made the CMake file link the libs miniaudio needs
2020-02-29 18:19:06 +00:00
Clownacy
14735caac3 Mark CMake target thingies as private 2020-02-29 18:19:06 +00:00
Clownacy
8ec8a8d990 Added unfinished miniaudio audio backend
Currently only works with CMake
2020-02-29 18:18:59 +00:00
Gabriel Ravier
88a554784b Fix the build on portable
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-31 06:50:20 +01:00
Gabriel Ravier
ebb238ebdc Added ICC checks for native optimizations
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-29 23:01:31 +01:00
Gabriel Ravier
d88db09752 Added CMake option for native optimizations (-march=native)
Signed-off-by: Gabriel Ravier <gabrielravier@gabrielAncientIBMv2>
2020-01-29 23:01:31 +01:00