mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-30 09:43:35 +00:00
meson basic intergration
This commit is contained in:
parent
dd43a13f74
commit
b04a2369b6
21
4J.Input/meson.build
Normal file
21
4J.Input/meson.build
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
input_sources = files(
|
||||
'4J_Input.cpp',
|
||||
'INP_ForceFeedback.cpp',
|
||||
'INP_Keyboard.cpp',
|
||||
'INP_Main.cpp',
|
||||
'INP_StringCheck.cpp',
|
||||
'stdafx.cpp',
|
||||
)
|
||||
|
||||
lib_input = static_library('4J_Input',
|
||||
input_sources,
|
||||
include_directories : include_directories('.'),
|
||||
cpp_args : global_cpp_args + global_cpp_defs + [
|
||||
'-include', meson.current_source_dir() / 'stdafx.h',
|
||||
],
|
||||
)
|
||||
|
||||
input_dep = declare_dependency(
|
||||
link_with : lib_input,
|
||||
include_directories : include_directories('.'),
|
||||
)
|
||||
22
4J.Profile/meson.build
Normal file
22
4J.Profile/meson.build
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
profile_sources = files(
|
||||
'4J_Profile.cpp',
|
||||
'PRO_AwardManager.cpp',
|
||||
'PRO_Data.cpp',
|
||||
'PRO_Main.cpp',
|
||||
'PRO_RichPresence.cpp',
|
||||
'PRO_Sys.cpp',
|
||||
'stdafx.cpp',
|
||||
)
|
||||
# 4jprofile stink
|
||||
lib_profile = static_library('4J_Profile',
|
||||
profile_sources,
|
||||
include_directories : include_directories('.'),
|
||||
cpp_args : global_cpp_args + global_cpp_defs + [
|
||||
'-include', meson.current_source_dir() / 'stdafx.h',
|
||||
],
|
||||
)
|
||||
|
||||
profile_dep = declare_dependency(
|
||||
link_with : lib_profile,
|
||||
include_directories : include_directories('.'),
|
||||
)
|
||||
24
4J.Render/meson.build
Normal file
24
4J.Render/meson.build
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
render_sources = files(
|
||||
'4J_Render.cpp',
|
||||
'RendererCbuff.cpp',
|
||||
'RendererCore.cpp',
|
||||
'RendererMatrix.cpp',
|
||||
'RendererState.cpp',
|
||||
'RendererTexture.cpp',
|
||||
'RendererVertex.cpp',
|
||||
'stdafx.cpp',
|
||||
)
|
||||
|
||||
lib_render = static_library('4J_Render',
|
||||
render_sources,
|
||||
include_directories : include_directories('.'),
|
||||
dependencies : [png_dep, glfw_dep, gl_dep, thread_dep],
|
||||
cpp_args : global_cpp_args + global_cpp_defs + [
|
||||
'-include', meson.current_source_dir() / 'stdafx.h',
|
||||
],
|
||||
)
|
||||
|
||||
render_dep = declare_dependency(
|
||||
link_with : lib_render,
|
||||
include_directories : include_directories('.'),
|
||||
)
|
||||
20
4J.Storage/meson.build
Normal file
20
4J.Storage/meson.build
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
storage_sources = files(
|
||||
'4J_Storage.cpp',
|
||||
'stdafx.cpp',
|
||||
'STO_DLC.cpp',
|
||||
'STO_Main.cpp',
|
||||
'STO_SaveGame.cpp',
|
||||
)
|
||||
|
||||
lib_storage = static_library('4J_Storage',
|
||||
storage_sources,
|
||||
include_directories : include_directories('.'),
|
||||
cpp_args : global_cpp_args + global_cpp_defs + [
|
||||
'-include', meson.current_source_dir() / 'stdafx.h',
|
||||
],
|
||||
)
|
||||
|
||||
storage_dep = declare_dependency(
|
||||
link_with : lib_storage,
|
||||
include_directories : include_directories('.'),
|
||||
)
|
||||
|
|
@ -294,18 +294,12 @@ typedef XUID GameSessionUID;
|
|||
#include "../Platform/Windows64/Iggy/gdraw/gdraw_d3d11.h"
|
||||
#include "../Platform/Windows64/Windows64_UIController.h"
|
||||
#elif defined __linux__
|
||||
// FIXME: Make Linux/ versions of all of these
|
||||
// #include "../Platform/Windows64/Sentient/MinecraftTelemetry.h" // conflicts with Common/Telemetry/TelemetryManager.h, no idea whats up with that
|
||||
#include "../Platform/OrbisMedia/strings.h" // using Orbis or Vita strings because IDS_CONTENT_RESTRICTION exists
|
||||
#include "../Platform/Windows64/Windows64_App.h"
|
||||
#include "../Platform/Windows64/Sentient/DynamicConfigurations.h"
|
||||
#include "../Platform/Windows64/Sentient/SentientTelemetryCommon.h"
|
||||
#include "../Platform/Windows64/GameConfig/Minecraft.spa.h"
|
||||
#include "../Platform/Windows64/XML/ATGXmlParser.h"
|
||||
#include "../Platform/Windows64/Social/SocialManager.h"
|
||||
// Linux build: avoid pulling in Windows64 platform headers (they cause
|
||||
// symbol/class redefinitions). Use Linux-specific stubs and controller.
|
||||
// FIXME: Produce proper Linux equivalents for telemetry/sentient/etc.
|
||||
#include "../Platform/OrbisMedia/strings.h" // temporary strings
|
||||
#include "../Platform/Xbox/Sentient/SentientTelemetryCommon.h"
|
||||
#include "Common/Audio/SoundEngine.h"
|
||||
//#include "../Platform/Windows64/Iggy/include/iggy.h"
|
||||
#include "../Platform/Windows64/Iggy/gdraw/gdraw_d3d11.h"
|
||||
#include "../Platform/Linux/Linux_UIController.h"
|
||||
#elif defined __PSVITA__
|
||||
#include "../Platform/PSVita/PSVita_App.h"
|
||||
|
|
|
|||
42
Minecraft.Client/meson.build
Normal file
42
Minecraft.Client/meson.build
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# get all those files
|
||||
_client_build_raw = run_command(
|
||||
'sh', '-c',
|
||||
'find "' + meson.current_source_dir() / 'Build' + '" -name "*.cpp" ! -path "*/redist64/*"',
|
||||
check : true,
|
||||
).stdout().strip().split('\n')
|
||||
|
||||
# linux files
|
||||
_linux_cpp_sources = files(
|
||||
'Platform/Linux/Linux_App.cpp',
|
||||
'Platform/Linux/linux_game_stubs.cpp',
|
||||
'Platform/Linux/LinuxGL.cpp',
|
||||
'Platform/Linux/Linux_Minecraft.cpp',
|
||||
'Platform/Linux/Linux_UIController.cpp',
|
||||
)
|
||||
|
||||
_linux_c_sources = files(
|
||||
'Platform/Linux/Iggy/gdraw/gdraw_glfw.c',
|
||||
)
|
||||
|
||||
executable('Minecraft.Client',
|
||||
_client_build_raw + _linux_cpp_sources + _linux_c_sources,
|
||||
include_directories : include_directories('Build'),
|
||||
dependencies : [
|
||||
render_dep,
|
||||
input_dep,
|
||||
profile_dep,
|
||||
storage_dep,
|
||||
world_dep,
|
||||
gl_dep,
|
||||
glu_dep,
|
||||
glfw_dep,
|
||||
thread_dep,
|
||||
dl_dep,
|
||||
],
|
||||
cpp_args : global_cpp_args + global_cpp_defs + [
|
||||
'-DUNICODE', '-D_UNICODE',
|
||||
'-include', meson.current_source_dir() / 'Build/stdafx.h',
|
||||
],
|
||||
c_args : global_cpp_defs + ['-DUNICODE', '-D_UNICODE'],
|
||||
install : false,
|
||||
)
|
||||
|
|
@ -242,7 +242,7 @@ void MemSect(int sect);
|
|||
// FIXME: Move and port to ../Minecraft.Client/Linux
|
||||
#include "../../Minecraft.Client/Platform/Linux/Linux_App.h"
|
||||
#include "../../Minecraft.Client/Platform/OrbisMedia/strings.h"
|
||||
#include "../../Minecraft.Client/Platform/Windows64/Sentient/SentientTelemetryCommon.h"
|
||||
#include "../../Minecraft.Client/Platform/Xbox/Sentient/SentientTelemetryCommon.h"
|
||||
// #include "../../Minecraft.Client/Platform/Windows64/Sentient/MinecraftTelemetry.h"
|
||||
#else
|
||||
#include "../../Minecraft.Client/Platform/Orbis/Orbis_App.h"
|
||||
|
|
|
|||
30
Minecraft.World/meson.build
Normal file
30
Minecraft.World/meson.build
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# GET IT ALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||
# Note: the files below are commented-out in CMakeLists.txt (missing headers or
|
||||
# unfinished ports) and must be excluded from the build.
|
||||
_world_sources_raw = run_command(
|
||||
'sh', '-c',
|
||||
'find "' + meson.current_source_dir() + '" -name "*.cpp"' +
|
||||
' ! -name "DurangoStats.cpp"' +
|
||||
' ! -name "MemoryChunkStorage.cpp"' +
|
||||
' ! -name "MemoryLevelStorage.cpp"' +
|
||||
' ! -name "MemoryLevelStorageSource.cpp"' +
|
||||
' ! -name "NbtSlotFile.cpp"' +
|
||||
' ! -name "SkyIslandDimension.cpp"' +
|
||||
' ! -name "ZonedChunkStorage.cpp"' +
|
||||
' ! -name "ZoneFile.cpp"' +
|
||||
' ! -name "ZoneIo.cpp"',
|
||||
check : true,
|
||||
).stdout().strip().split('\n')
|
||||
|
||||
lib_world = static_library('Minecraft.World',
|
||||
_world_sources_raw,
|
||||
include_directories : include_directories('Build', 'Build/x64headers'),
|
||||
cpp_args : global_cpp_args + global_cpp_defs + [
|
||||
'-include', meson.current_source_dir() / 'Build/stdafx.h',
|
||||
],
|
||||
)
|
||||
|
||||
world_dep = declare_dependency(
|
||||
link_with : lib_world,
|
||||
include_directories : include_directories('Build/x64headers'),
|
||||
)
|
||||
50
README.md
50
README.md
|
|
@ -74,6 +74,55 @@ cmake . && make -j$(nproc)
|
|||
```
|
||||
---
|
||||
|
||||
### we also got meson say hi meson hii
|
||||
[Meson](https://mesonbuild.com/) is bettr pls use over cmake
|
||||
|
||||
#### Install Meson
|
||||
|
||||
```bash
|
||||
# Debian/Ubuntu
|
||||
sudo apt install meson ninja-build
|
||||
|
||||
# Arch/Manjaro
|
||||
sudo pacman -S meson ninja
|
||||
```
|
||||
|
||||
#### Configure & Build
|
||||
|
||||
```bash
|
||||
# 1. Configure that bih
|
||||
meson setup build_meson
|
||||
|
||||
# 2. Build
|
||||
ninja -C build_meson
|
||||
```
|
||||
|
||||
The binary is output to:
|
||||
|
||||
```
|
||||
build_meson/Minecraft.Client
|
||||
```
|
||||
|
||||
#### Clean
|
||||
|
||||
Remove the build directory to do a full clean:
|
||||
|
||||
(CAREFUL SPONGEBOB CAREFUL)
|
||||
```bash
|
||||
rm -rf build_meson
|
||||
```
|
||||
|
||||
Then re-run `meson setup build_meson` to reconfigure.
|
||||
|
||||
#### if u want release which u probably don't need right now
|
||||
```bash
|
||||
# Release build
|
||||
meson setup build_release --buildtype=release
|
||||
ninja -C build_release
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Running
|
||||
|
||||
(this is temp)
|
||||
|
|
@ -82,3 +131,4 @@ cmake . && make -j$(nproc)
|
|||
```
|
||||
|
||||
(todo refactor)
|
||||
(todo refactor more)
|
||||
45
meson.build
Normal file
45
meson.build
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
project('4jcraft-chucklegrounds', ['cpp', 'c'],
|
||||
version : '0.1.0',
|
||||
default_options : [
|
||||
'cpp_std=gnu++11',
|
||||
'warning_level=0',
|
||||
'buildtype=debug',
|
||||
],
|
||||
)
|
||||
|
||||
cc = meson.get_compiler('cpp')
|
||||
|
||||
# system deps
|
||||
gl_dep = dependency('gl')
|
||||
glu_dep = dependency('glu')
|
||||
glfw_dep = dependency('glfw3')
|
||||
png_dep = dependency('libpng')
|
||||
thread_dep = dependency('threads')
|
||||
dl_dep = cc.find_library('dl')
|
||||
|
||||
# compile flags (chagne ts juicey)
|
||||
global_cpp_args = [
|
||||
'-fpermissive',
|
||||
'-Wtemplate-body',
|
||||
'-Wshift-count-overflow',
|
||||
]
|
||||
|
||||
# global ccp defs type shi
|
||||
global_cpp_defs = [
|
||||
'-DSPLIT_SAVES',
|
||||
'-D_LARGE_WORLDS',
|
||||
'-D_EXTENDED_ACHIEVEMENTS',
|
||||
'-D_DEBUG_MENUS_ENABLED',
|
||||
'-D_DEBUG',
|
||||
'-DDEBUG',
|
||||
'-DLINUX',
|
||||
'-D_LINUX',
|
||||
'-D__linux__',
|
||||
]
|
||||
|
||||
subdir('4J.Render')
|
||||
subdir('4J.Input')
|
||||
subdir('4J.Profile')
|
||||
subdir('4J.Storage')
|
||||
subdir('Minecraft.World')
|
||||
subdir('Minecraft.Client')
|
||||
Loading…
Reference in a new issue