summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-01-01 11:56:21 -0500
committerAndrew Opalach <andrew@akon.city> 2024-01-01 11:56:21 -0500
commit2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e (patch)
treef49bd49fb83ba5ef17994eeb264c9bdfc0791a95
parent130a0edc0405e53b45f8b2f8da0b94356480a644 (diff)
downloadcamu-2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e.tar.gz
camu-2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e.tar.bz2
camu-2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e.zip
Add subprojects
Signed-off-by: Andrew Opalach <andrew@akon.city>
-rw-r--r--.gitignore29
-rw-r--r--flake.nix6
-rw-r--r--subprojects/ffmpeg.wrap6
-rw-r--r--subprojects/libass.wrap6
-rw-r--r--subprojects/libplacebo.wrap8
-rw-r--r--subprojects/linmath.h.wrap5
-rw-r--r--subprojects/miniaudio.wrap6
-rw-r--r--subprojects/packagefiles/ffmpeg/meson.build120
-rw-r--r--subprojects/packagefiles/libass/meson.build21
-rw-r--r--subprojects/packagefiles/linmath.h/meson.build2
-rw-r--r--subprojects/packagefiles/miniaudio/meson.build3
-rw-r--r--subprojects/packagefiles/miniaudio/miniaudio_pulse_flush.diff14
-rw-r--r--subprojects/packagefiles/notcurses/notcurses_xopen_source.diff16
-rw-r--r--subprojects/packagefiles/stb/meson.build2
-rw-r--r--subprojects/packagefiles/wuffs/meson.build2
-rw-r--r--subprojects/shaderc/meson.build12
-rw-r--r--subprojects/stb.wrap5
-rw-r--r--subprojects/wuffs.wrap5
18 files changed, 259 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 9b18362..6c23f01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,34 @@
**/__pycache__/
+bin/
build*/
compile_commands.json
.cache/
.clangd/
-bin/
data/
doc/**.html
old/
old_old/
-subprojects/
-vshell/
-src/fruits/desktop/
+subprojects/c89atomic.wrap
+subprojects/curl.wrap
+subprojects/ffmpeg-6.1/
+subprojects/jansson.wrap
+subprojects/libakiyo
+subprojects/libalabaster
+subprojects/libass/
+subprojects/libev.wrap
+subprojects/liblfds.wrap
+subprojects/libplacebo/
+subprojects/linmath.h/
+subprojects/miniaudio/
+subprojects/packagecache/
+subprojects/sekihi
+subprojects/shaderc/include/
+subprojects/shaderc/install/
+subprojects/shaderc/lib/
+subprojects/shoki
+subprojects/stb/
+subprojects/vulkan/
+subprojects/vulkan.wrap
+subprojects/wayland-protocols.wrap
+subprojects/wlr-protocols.wrap
+subprojects/wuffs/
diff --git a/flake.nix b/flake.nix
index cef826c..6774af7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -28,7 +28,7 @@
meson
cmake
ant
- jdk8
+ zulu8
wayland-scanner
python3
python3.pkgs.requests
@@ -85,10 +85,6 @@
];
shellHook = ''
export NIX_SHELL=true
- # https://nixos.wiki/wiki/Python#Emulating_virtualenv_with_nix-shell
- export PIP_PREFIX=$(pwd)/vshell/pip_packages
- export PYTHONPATH="$PIP_PREFIX/${pkgs.python3.sitePackages}:$PYTHONPATH"
- export PATH="$PIP_PREFIX/bin:$PATH"
unset SOURCE_DATE_EPOCH
exec ${pkgs.zsh}/bin/zsh
'';
diff --git a/subprojects/ffmpeg.wrap b/subprojects/ffmpeg.wrap
new file mode 100644
index 0000000..071be8b
--- /dev/null
+++ b/subprojects/ffmpeg.wrap
@@ -0,0 +1,6 @@
+[wrap-file]
+directory = ffmpeg-6.1
+source_url = https://www.ffmpeg.org/releases/ffmpeg-6.1.tar.gz
+source_filename = ffmpeg-6.1.tar.gz
+source_hash = 938dd778baa04d353163ca5cb06c909c918850055f549205b29b1224e45a5316
+patch_directory = ffmpeg
diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap
new file mode 100644
index 0000000..37282a9
--- /dev/null
+++ b/subprojects/libass.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/libass/libass
+revision = 0.17.1
+depth = 1
+clone-recursive = true
+patch_directory = libass
diff --git a/subprojects/libplacebo.wrap b/subprojects/libplacebo.wrap
new file mode 100644
index 0000000..c98cdf2
--- /dev/null
+++ b/subprojects/libplacebo.wrap
@@ -0,0 +1,8 @@
+[wrap-git]
+url = https://code.videolan.org/videolan/libplacebo.git
+revision = fa423b4242053f5061df87496cf7866df3384bd0
+depth = 1
+clone-recursive = true
+
+[provide]
+dependency_names = libplacebo
diff --git a/subprojects/linmath.h.wrap b/subprojects/linmath.h.wrap
new file mode 100644
index 0000000..e089d78
--- /dev/null
+++ b/subprojects/linmath.h.wrap
@@ -0,0 +1,5 @@
+[wrap-git]
+url = https://github.com/datenwolf/linmath.h.git
+revision = 3eef82841046507e16a0f6194a61cee2eadd34b3
+depth = 1
+patch_directory = linmath.h
diff --git a/subprojects/miniaudio.wrap b/subprojects/miniaudio.wrap
new file mode 100644
index 0000000..3b4e3be
--- /dev/null
+++ b/subprojects/miniaudio.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/mackron/miniaudio
+revision = 0.11.21
+depth = 1
+patch_directory = miniaudio
+diff_files = miniaudio/miniaudio_pulse_flush.diff
diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build
new file mode 100644
index 0000000..1466086
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/meson.build
@@ -0,0 +1,120 @@
+project('ffmpeg', 'c', version: '6.1', meson_version: '>=0.57.0')
+
+compiler = meson.get_compiler('c')
+
+cpu = target_machine.cpu_family()
+is_64bit = (cpu == 'x86_64' or cpu == 'aarch64')
+is_debug = get_option('buildtype').startswith('debug')
+is_windows = host_machine.system() == 'windows'
+is_msvc = compiler.get_id() == 'msvc' or compiler.get_id() == 'clang-cl'
+is_mingw = is_windows and not is_msvc
+
+extra_options = []
+
+if not is_debug
+ extra_options += ['--disable-debug']
+endif
+
+extra_options += ['--cc=' + compiler.cmd_array()[0]]
+
+if is_windows
+ if is_64bit
+ extra_options += ['--target-os=win64', '--arch=x86_64']
+ endif
+ if is_msvc
+ extra_options += ['--toolchain=msvc']
+ endif
+endif
+
+#'--extra-ldflags=-L/home/pizza/c/camu/build6/subprojects/libalabaster -l:libalabaster.a',
+#'--malloc-prefix=al_',
+
+decoders = 'flac,mp3,aac,opus,alac,mjpeg,jpeg2000,h264,hevc,vp9'
+#decoders += ',pcm_f32be,pcm_f32le,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_dvd,apng,mpegvideo,mpeg2video'
+#decoders += ',ass,srt'
+
+demuxers = 'flac,mp3,aac,wav,image2,mjpeg,image2pipe,image_jpeg_pipe,matroska,mov'
+#demuxers += ',mpegts,mpegtsraw,mpegps,mpegvideo'
+#demuxers += ',ass,srt'
+
+parsers = 'mjpeg,jpeg2000'
+#parsers += ',mpegaudio,mpegvideo,dvd_nav'
+
+if not is_windows or is_mingw
+ #extra_options += ['--enable-zlib', '--enable-libsoxr']
+ extra_options += ['--enable-zlib']
+ decoders += ',png'
+ demuxers += ',image_png_pipe'
+ parsers += ',png'
+endif
+
+bsfs = 'extract_extradata,mp3_header_decompress'
+
+ext_proj = import('unstable-external_project')
+
+proj = ext_proj.add_project('configure',
+ configure_options: [
+ '--prefix=@PREFIX@',
+ '--libdir=@PREFIX@@LIBDIR@',
+ '--incdir=@PREFIX@@INCLUDEDIR@',
+ '--enable-pic',
+ '--enable-static',
+ '--disable-shared',
+ '--disable-all',
+ '--disable-autodetect',
+ '--disable-everything',
+ '--disable-htmlpages',
+ '--disable-manpages',
+ '--disable-podpages',
+ '--disable-txtpages',
+ '--disable-vdpau',
+ '--disable-vaapi',
+ '--disable-bzlib',
+ '--disable-error-resilience',
+ '--disable-iconv',
+ '--disable-schannel',
+ '--disable-network',
+ '--disable-securetransport',
+ '--disable-sdl2',
+ '--disable-symver',
+ '--disable-faan',
+ '--disable-alsa',
+ '--disable-xlib',
+ '--disable-vulkan',
+ '--enable-runtime-cpudetect',
+ '--enable-asm',
+ '--enable-inline-asm',
+ '--enable-x86asm',
+ '--enable-avutil',
+ '--enable-avformat',
+ '--enable-avcodec',
+ '--enable-swresample',
+ '--enable-swscale',
+ '--enable-demuxer=' + demuxers,
+ '--enable-decoder=' + decoders,
+ '--enable-parser=' + parsers,
+ '--enable-bsf=' + bsfs,
+ extra_options,
+ ], verbose: true)
+
+inc = include_directories('.')
+
+if is_msvc
+ # TODO: FFmpeg patch to fix all libs coming out as .a.
+ avutil = proj.dependency('libavutil')
+ avformat = proj.dependency('libavformat')
+ avcodec = proj.dependency('libavcodec')
+ swresample = proj.dependency('libswresample')
+ swscale = proj.dependency('libswscale')
+else
+ avutil = proj.dependency('avutil')
+ avformat = proj.dependency('avformat')
+ avcodec = proj.dependency('avcodec')
+ swresample = proj.dependency('swresample')
+ swscale = proj.dependency('swscale')
+ if is_64bit and is_windows
+ lib_dir = meson.project_build_root() + '/distlib64'
+ else
+ lib_dir = meson.project_build_root() + '/dist/usr/local/lib64'
+ endif
+endif
diff --git a/subprojects/packagefiles/libass/meson.build b/subprojects/packagefiles/libass/meson.build
new file mode 100644
index 0000000..b31d5ed
--- /dev/null
+++ b/subprojects/packagefiles/libass/meson.build
@@ -0,0 +1,21 @@
+project('libass', 'c', meson_version : '>=0.57.0')
+
+ext_proj = import('unstable-external_project')
+
+compiler = meson.get_compiler('c')
+
+run_command('./autogen.sh', check: true)
+
+proj = ext_proj.add_project('configure',
+ configure_options: [
+ '--prefix=@PREFIX@',
+ '--libdir=@PREFIX@/@LIBDIR@',
+ '--includedir=@PREFIX@/@INCLUDEDIR@',
+ ], verbose: true)
+
+ass = proj.dependency('ass')
+
+libass = declare_dependency(dependencies: ass,
+ include_directories: include_directories('.'))
+
+meson.override_dependency('libass', libass)
diff --git a/subprojects/packagefiles/linmath.h/meson.build b/subprojects/packagefiles/linmath.h/meson.build
new file mode 100644
index 0000000..d3ab07d
--- /dev/null
+++ b/subprojects/packagefiles/linmath.h/meson.build
@@ -0,0 +1,2 @@
+project('linmath.h', 'c', version: 'git-3eef828')
+linmath = declare_dependency(include_directories: include_directories('.'))
diff --git a/subprojects/packagefiles/miniaudio/meson.build b/subprojects/packagefiles/miniaudio/meson.build
new file mode 100644
index 0000000..0296803
--- /dev/null
+++ b/subprojects/packagefiles/miniaudio/meson.build
@@ -0,0 +1,3 @@
+project('miniaudio', 'c', version: '0.11.21')
+miniaudio = declare_dependency(sources: ['extras/miniaudio_split/miniaudio.c'],
+ include_directories: include_directories('extras/miniaudio_split'))
diff --git a/subprojects/packagefiles/miniaudio/miniaudio_pulse_flush.diff b/subprojects/packagefiles/miniaudio/miniaudio_pulse_flush.diff
new file mode 100644
index 0000000..83be63e
--- /dev/null
+++ b/subprojects/packagefiles/miniaudio/miniaudio_pulse_flush.diff
@@ -0,0 +1,14 @@
+diff --git a/extras/miniaudio_split/miniaudio.c b/extras/miniaudio_split/miniaudio.c
+index 651843b..e0b6f6e 100644
+--- a/extras/miniaudio_split/miniaudio.c
++++ b/extras/miniaudio_split/miniaudio.c
+@@ -19362,7 +19362,8 @@ static ma_result ma_device_stop__pulse(ma_device* pDevice)
+ happens, draining never completes and we get stuck here. For now I'm disabling draining of
+ the device so we don't just freeze the application.
+ */
+- #if 0
++ #if 1
++ ma_bool32 wasSuccessful = MA_FALSE;
+ ma_pa_operation* pOP = ((ma_pa_stream_drain_proc)pDevice->pContext->pulse.pa_stream_drain)((ma_pa_stream*)pDevice->pulse.pStreamPlayback, ma_pulse_operation_complete_callback, &wasSuccessful);
+ ma_wait_for_operation_and_unref__pulse(pDevice->pContext, pDevice->pulse.pMainLoop, pOP);
+ #endif
diff --git a/subprojects/packagefiles/notcurses/notcurses_xopen_source.diff b/subprojects/packagefiles/notcurses/notcurses_xopen_source.diff
new file mode 100644
index 0000000..f334169
--- /dev/null
+++ b/subprojects/packagefiles/notcurses/notcurses_xopen_source.diff
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5d6c1420d..7f575f257 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -226,10 +226,8 @@ endif()
+ # don't want these on freebsd/dragonfly/osx
+ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ target_compile_definitions(notcurses-core
+- PUBLIC
+- _XOPEN_SOURCE=700 # wcwidth(3) requires _XOPEN_SOURCE, and is in our headers
+ PRIVATE
+- _GNU_SOURCE _DEFAULT_SOURCE
++ _GNU_SOURCE _DEFAULT_SOURCE _XOPEN_SOURCE=700
+ )
+ target_compile_definitions(notcurses-core-static
+ PUBLIC
diff --git a/subprojects/packagefiles/stb/meson.build b/subprojects/packagefiles/stb/meson.build
new file mode 100644
index 0000000..6feb1a1
--- /dev/null
+++ b/subprojects/packagefiles/stb/meson.build
@@ -0,0 +1,2 @@
+project('stb', 'c', version: 'git-f4a71b1')
+stb = declare_dependency(include_directories: include_directories('.'))
diff --git a/subprojects/packagefiles/wuffs/meson.build b/subprojects/packagefiles/wuffs/meson.build
new file mode 100644
index 0000000..20fb32b
--- /dev/null
+++ b/subprojects/packagefiles/wuffs/meson.build
@@ -0,0 +1,2 @@
+project('wuff', 'c', version: 'git-748e44f')
+wuffs = declare_dependency(include_directories: include_directories('./release/c'))
diff --git a/subprojects/shaderc/meson.build b/subprojects/shaderc/meson.build
new file mode 100644
index 0000000..7543f54
--- /dev/null
+++ b/subprojects/shaderc/meson.build
@@ -0,0 +1,12 @@
+project('shaderc', 'cpp', version: '2023.7')
+
+compiler = meson.get_compiler('c')
+
+shaderc = dependency('shaderc', required: false)
+if not shaderc.found()
+ shaderc_combined = compiler.find_library(
+ 'shaderc_combined', dirs: [meson.project_source_root() + '/lib'])
+ shaderc = declare_dependency(dependencies: [shaderc_combined],
+ include_directories: include_directories('./include'))
+endif
+meson.override_dependency('shaderc', shaderc)
diff --git a/subprojects/stb.wrap b/subprojects/stb.wrap
new file mode 100644
index 0000000..24fc46e
--- /dev/null
+++ b/subprojects/stb.wrap
@@ -0,0 +1,5 @@
+[wrap-git]
+url = https://github.com/nothings/stb.git
+revision = f4a71b13373436a2866c5d68f8f80ac6f0bc1ffe
+depth = 1
+patch_directory = stb
diff --git a/subprojects/wuffs.wrap b/subprojects/wuffs.wrap
new file mode 100644
index 0000000..6d0e0cc
--- /dev/null
+++ b/subprojects/wuffs.wrap
@@ -0,0 +1,5 @@
+[wrap-git]
+url = https://github.com/google/wuffs.git
+revision = 748e44fe711f1392c2503f4d8d4aafe0beaf9b1b
+depth = 1
+patch_directory = wuffs