Commit graph

93 commits

Author SHA1 Message Date
smallmodel
07f7c557ce
Move TargetArch.cmake to misc/cmake 2024-12-23 22:34:50 +01:00
smallmodel
38427fa3c5
Add support for compiling both opengl1 and opengl2 when they're built as shared libraries
Some checks failed
CodeQL / Analyze (push) Waiting to run
Build branch / build-all (push) Failing after 26s
renderercommon is now used, which will appropriately use opengl1 when building static libraries, or compile both opengl1/opengl2 modules when building shared libraries
2024-12-18 23:24:04 +01:00
smallmodel
28bdd1b2b3
Made the renderer modular and loadable
This removes coupling between the renderer and UI/client functions. An option USE_RENDERER_DLOPEN was added to specify whether a renderer module should be compiled and loaded, instead of integrating the renderer into the executable directly. This opens the door for a new renderer
2024-12-06 00:15:19 +01:00
smallmodel
115b7b82aa
Correctly handle the scenario where multiple architectures are specified
Each target will produce a single binary having multiple architectures, instead of having a binary per architecture. The suffix for each binary will be `multiarch`. This makes it easier for the end-user to install and use. This also helps the transition between Intel and Apple Silicon hardware
2024-12-05 21:12:19 +01:00
smallmodel
21f631e733
Compile SDL input/client and SDL OpenGL independently
This decouple the renderer from the client part of SDL (input), and only uses SDL for OpenGL
2024-12-01 22:23:28 +01:00
smallmodel
4f699f3b58
Add support to compile renderergl2 (currently unimplemented) 2024-12-01 19:21:07 +01:00
smallmodel
71450fb36e
Move renderer to renderergl1 2024-12-01 15:30:23 +01:00
smallmodel
387ccd5cc3
Bump the minimum CMake version to 3.12 2024-11-30 00:36:33 +01:00
smallmodel
56cc3fff53
Use a single variable to disable modern DMA 2024-11-29 22:53:04 +01:00
smallmodel
83a874e4fd
Add an option for CMake to specify when targeting the local system 2024-11-29 20:59:47 +01:00
Joey Riches
6eab2ddd57
CMake: Support lib extension on unix
Some distros install to lib64 instead of lib, respect the lib extension
otherwise some {f,c}game gets installed to lib64 and other libs get
installed to lib.
2024-11-28 00:49:00 +01:00
smallmodel
64f877ae80
Use the correct convention for installing the project
On Win32:
- Binaries and libraries will be installed by default in <PREFIX>/bin
- The prefix is set to `Program Files/openmohaa` by default

On Unix:
- Binaries and libraries will be installed by default in <PREFIX>/lib/openmohaa
- Shared data will be installed in <PREFIX>/share/applications, <PREFIX>/share/metainfo and <PREFIX>/share/icons
- The prefix is set to `/usr/local` by default
2024-11-21 19:49:43 +01:00
smallmodel
120a486aea
Use CMake installation directory
This removes the use of the DESTINATION parameter from install() command and instead rely on default values.
The shared build action file was modified to package installed files in a single folder
2024-11-20 22:50:49 +01:00
Joey Riches
864cdf1fc6
CMake: Add uninstall target
https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake

Useful when for testing system-wide installation with linux
2024-11-20 18:01:30 +01:00
Joey Riches
f1c12e0649
misc: Add linux assets
Add a .desktop file, this is used by application launchers in order to
find and execute applications, this should be installed to
`/usr/share/applications/org.openmoh.openmohaa.desktop`.

Add appstream metainfo, this provides metainfo that is used by Software
Centers for discoverability, this should be installed to
`/usr/share/metainfo/org.openmoh.openmohaa.metainfo.xml`.

This will open the door to getting OpenMoHAA packaged up by various
linux distros.
2024-11-20 16:40:01 +01:00
smallmodel
afc431c413
Add a basic launcher 2024-11-04 01:00:53 +01:00
smallmodel
dae7795478
Add NDEBUG compile definition on non-debug builds 2024-10-27 17:45:20 +01:00
smallmodel
e2d6156b5a
Apply the hidden visibility for all functions only on macOS
The backtrace still prints the name of functions regardless of the visibility on macOS
2024-10-25 22:01:49 +02:00
smallmodel
8f8b75e0aa
Set symbols visibility to hidden by default
This fixes an issue where shared libraries would use functions from in the executable because they have the same name, which would cause memory corruption
2024-10-14 20:36:06 +02:00
smallmodel
a425038fa6
Set macOS rpath to @executable_path 2024-10-09 19:38:32 +02:00
Sébastien Noel
aa15b3ea7f
Allow to build against system libs instead of bundled copy 2024-10-07 20:51:23 +02:00
smallmodel
764b95f617
Set a better name for binaries to properly distinguish the name of the architecture 2024-09-22 14:56:02 +02:00
smallmodel
13911b051a
Use OpenAL by default 2024-08-21 18:35:06 +02:00
smallmodel
04e0242422
Added source files for OpenAL FAKK (unimplemented) 2024-01-07 20:10:53 +01:00
smallmodel
02ce50ace2
Treat "not all control paths return a value" warning as an error 2023-12-07 18:32:10 +01:00
smallmodel
ed64d03bf5
Fixed dlclose() not working when compiled by GCC 2023-09-09 17:54:04 +02:00
smallmodel
e58e048f00
Added comment 2023-08-26 20:22:39 +02:00
smallmodel
78b3ad8075
As modules concern all 3 versions of the game, they're now installed in the root directory 2023-08-25 22:57:31 +02:00
smallmodel
03143d1341
Added a compilation flag to debug memory 2023-08-19 02:19:09 +02:00
pryon
7593ea53f9
Fix generated executable/lib names missing the -dbg postfix on Visual Studio (#55)
* Fix generated executable/lib names missing the -dbg postfix on Visual Studio

* Spaces to tabs
2023-08-15 10:57:36 +00:00
smallmodel
ecbd6ae282
Renamed WITH_CLIENT to BUILD_NO_CLIENT 2023-08-14 13:31:42 +02:00
OM
942bc9e523 Removed TARGET_GAME_TYPE definition 2023-07-02 20:06:35 +02:00
OM
240ff8a5f3 Added dummy.c file for older versions of CMake 2023-06-18 12:52:19 +02:00
OM
ca11cdb54e Fixed CMakeLists (tested with CMake 3.10) 2023-06-18 12:18:10 +02:00
OM
6a6d472658 Moved lib importation (wsock, threads, etc) to syslib 2023-06-17 02:09:50 +02:00
OM
5b97245dd1 Reworked CMakeLists 2023-06-17 01:44:38 +02:00
OM
e4fa0fff3a Renamed **game** to **fgame** 2023-06-15 23:44:02 +02:00
OM
f926ddc703 Compile libmad sources for MP3 2023-05-29 19:03:56 +02:00
OM
4f941eada1 Fixed weird crashes 2023-05-29 01:49:10 +02:00
OM
e45289d28b Renamed **NO_SCRIPTENGINE** to **WITH_SCRIPT_ENGINE** 2023-05-29 01:33:07 +02:00
OM
1302f5b620 Using SDL2 for linux 2023-05-28 22:53:34 +02:00
OM
6a077d91cd Added **USE_OPENAL** option 2023-05-28 20:59:55 +02:00
OM
7b79877516 made renderer (original quake III) work with SDL 2023-05-27 22:23:03 +02:00
OM
4a582cfbb5 Updated 2023-05-27 21:39:56 +02:00
OM
9f669cff1c Updates 2023-05-27 21:21:25 +02:00
OM
8e1b2ea296 Updates 2023-05-27 21:02:16 +02:00
OM
3d223f5a5d Updates 2023-05-27 15:36:19 +02:00
OM
f3be59f64d update 2023-05-26 23:32:27 +02:00
OM
dc45c33c79 ioq3 updates 2023-05-26 20:53:00 +02:00
OM
f013e82b98 updates 2023-05-25 19:34:01 +02:00