diff options
| -rw-r--r-- | .gitignore | 29 | ||||
| -rw-r--r-- | flake.nix | 6 | ||||
| -rw-r--r-- | subprojects/ffmpeg.wrap | 6 | ||||
| -rw-r--r-- | subprojects/libass.wrap | 6 | ||||
| -rw-r--r-- | subprojects/libplacebo.wrap | 8 | ||||
| -rw-r--r-- | subprojects/linmath.h.wrap | 5 | ||||
| -rw-r--r-- | subprojects/miniaudio.wrap | 6 | ||||
| -rw-r--r-- | subprojects/packagefiles/ffmpeg/meson.build | 120 | ||||
| -rw-r--r-- | subprojects/packagefiles/libass/meson.build | 21 | ||||
| -rw-r--r-- | subprojects/packagefiles/linmath.h/meson.build | 2 | ||||
| -rw-r--r-- | subprojects/packagefiles/miniaudio/meson.build | 3 | ||||
| -rw-r--r-- | subprojects/packagefiles/miniaudio/miniaudio_pulse_flush.diff | 14 | ||||
| -rw-r--r-- | subprojects/packagefiles/notcurses/notcurses_xopen_source.diff | 16 | ||||
| -rw-r--r-- | subprojects/packagefiles/stb/meson.build | 2 | ||||
| -rw-r--r-- | subprojects/packagefiles/wuffs/meson.build | 2 | ||||
| -rw-r--r-- | subprojects/shaderc/meson.build | 12 | ||||
| -rw-r--r-- | subprojects/stb.wrap | 5 | ||||
| -rw-r--r-- | subprojects/wuffs.wrap | 5 |
18 files changed, 259 insertions, 9 deletions
@@ -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/ @@ -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 |