mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-24 01:21:11 +00:00
aegisub: switch to arch1t3cht’s fork
Aegisub is a program of many forks. We currently use the inactive wangqr fork that has not received an update in two years. This switches to the actively‐maintained arch1t3cht fork, bringing in additional functionality, bug fixes, and a much more reasonable Meson build system that lets us drop our LuaJIT devendoring patch. It also contains fixes for newer versions of Boost. Note that although the `README.md` has a note from two years ago saying “**Don't** use this version if you're just looking for any version of Aegisub”, that is somewhat outdated and predates it becoming a fully‐fledged fork: as the next section of the file from two months ago admits, it is the current de facto standard Aegisub fork and the version universally recommended by up‐to‐date sources; see e.g.: * <https://fansubbers.miraheze.org/wiki/Aegisub> * <https://guide.encode.moe/typesetting/aegisub.html> * <https://www.reddit.com/r/aegisub/comments/yzvi4m/aegisub_update_status/> * <https://github.com/Ristellise/AegisubDC/issues/10>
This commit is contained in:
@@ -1,271 +0,0 @@
|
||||
diff --git a/CMakeLists.test.txt b/CMakeLists.test.txt
|
||||
index 4d1a03177..62fab05c9 100644
|
||||
--- a/CMakeLists.test.txt
|
||||
+++ b/CMakeLists.test.txt
|
||||
@@ -2,7 +2,7 @@ if(UNIX)
|
||||
add_executable(aegisub-lua EXCLUDE_FROM_ALL
|
||||
automation/tests/aegisub.cpp
|
||||
)
|
||||
- target_link_libraries(aegisub-lua PRIVATE libaegisub luabins luajit "Boost::locale" "ICU::in")
|
||||
+ target_link_libraries(aegisub-lua PRIVATE libaegisub luabins luajit-5.1 "Boost::locale" "ICU::in")
|
||||
add_custom_target(test-automation
|
||||
COMMAND sh -c "$(luarocks path); ${PROJECT_BINARY_DIR}/aegisub-lua tests/busted.lua -p moon tests/modules"
|
||||
VERBATIM
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ce2e355ff..4d4396451 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -13,210 +13,6 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif()
|
||||
|
||||
-## Build bundled LuaJIT with aegisub specific patches
|
||||
-add_executable(luajit-minilua vendor/luajit/src/host/minilua.c)
|
||||
-if(NOT WIN32)
|
||||
- target_link_libraries(luajit-minilua m)
|
||||
-endif()
|
||||
-if(WIN32)
|
||||
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen"
|
||||
- COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -D P64 -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
- )
|
||||
- else()
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen"
|
||||
- COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
- )
|
||||
- endif()
|
||||
-elseif(APPLE)
|
||||
- if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen"
|
||||
- COMMAND luajit-minilua ../dynasm/dynasm.lua -D ENDIAN_LE -D P64 -D FFI -D DUALNUM -D FPU -D HFABI -D NO_UNWIND -D VER=80 -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_arm64.dasc
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
- )
|
||||
- else()
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen"
|
||||
- COMMAND luajit-minilua ../dynasm/dynasm.lua -D P64 -D JIT -D FFI -D FPU -D HFABI -D VER= -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x64.dasc
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
- )
|
||||
- endif()
|
||||
-else()
|
||||
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen"
|
||||
- COMMAND luajit-minilua ../dynasm/dynasm.lua -D P64 -D JIT -D FFI -D FPU -D HFABI -D VER= -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
- )
|
||||
- else()
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen"
|
||||
- COMMAND luajit-minilua ../dynasm/dynasm.lua -D JIT -D FFI -D FPU -D HFABI -D VER= -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
- )
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
-add_executable(luajit-buildvm
|
||||
- vendor/luajit/src/host/buildvm.c
|
||||
- vendor/luajit/src/host/buildvm_asm.c
|
||||
- vendor/luajit/src/host/buildvm_peobj.c
|
||||
- vendor/luajit/src/host/buildvm_lib.c
|
||||
- vendor/luajit/src/host/buildvm_fold.c
|
||||
-
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h"
|
||||
-)
|
||||
-target_compile_definitions(luajit-buildvm PRIVATE LUAJIT_ENABLE_LUA52COMPAT)
|
||||
-target_include_directories(luajit-buildvm PRIVATE vendor/luajit/src "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen")
|
||||
-
|
||||
-if(APPLE)
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s"
|
||||
- COMMAND luajit-buildvm -m machasm -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s"
|
||||
- )
|
||||
-elseif(UNIX)
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s"
|
||||
- COMMAND luajit-buildvm -m elfasm -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s"
|
||||
- )
|
||||
-elseif(MSVC)
|
||||
- add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.obj"
|
||||
- COMMAND luajit-buildvm -m peobj -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.obj"
|
||||
- )
|
||||
-endif()
|
||||
-add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_ffdef.h"
|
||||
- COMMAND luajit-buildvm -m ffdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_ffdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
-)
|
||||
-add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_bcdef.h"
|
||||
- COMMAND luajit-buildvm -m bcdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_bcdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
-)
|
||||
-add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_folddef.h"
|
||||
- COMMAND luajit-buildvm -m folddef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_folddef.h" lj_opt_fold.c
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
-)
|
||||
-add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_recdef.h"
|
||||
- COMMAND luajit-buildvm -m recdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_recdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
-)
|
||||
-add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_libdef.h"
|
||||
- COMMAND luajit-buildvm -m libdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_libdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
-)
|
||||
-add_custom_command(
|
||||
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/jit/vmdef.lua"
|
||||
- COMMAND luajit-buildvm -m vmdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/jit/vmdef.lua" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
-)
|
||||
-
|
||||
-add_library(luajit STATIC
|
||||
- vendor/luajit/src/lib_base.c
|
||||
- vendor/luajit/src/lib_math.c
|
||||
- vendor/luajit/src/lib_bit.c
|
||||
- vendor/luajit/src/lib_string.c
|
||||
- vendor/luajit/src/lib_table.c
|
||||
- vendor/luajit/src/lib_io.c
|
||||
- vendor/luajit/src/lib_os.c
|
||||
- vendor/luajit/src/lib_package.c
|
||||
- vendor/luajit/src/lib_debug.c
|
||||
- vendor/luajit/src/lib_jit.c
|
||||
- vendor/luajit/src/lib_ffi.c
|
||||
- vendor/luajit/src/lj_gc.c
|
||||
- vendor/luajit/src/lj_err.c
|
||||
- vendor/luajit/src/lj_char.c
|
||||
- vendor/luajit/src/lj_bc.c
|
||||
- vendor/luajit/src/lj_obj.c
|
||||
- vendor/luajit/src/lj_buf.c
|
||||
- vendor/luajit/src/lj_str.c
|
||||
- vendor/luajit/src/lj_tab.c
|
||||
- vendor/luajit/src/lj_func.c
|
||||
- vendor/luajit/src/lj_udata.c
|
||||
- vendor/luajit/src/lj_meta.c
|
||||
- vendor/luajit/src/lj_debug.c
|
||||
- vendor/luajit/src/lj_state.c
|
||||
- vendor/luajit/src/lj_dispatch.c
|
||||
- vendor/luajit/src/lj_vmevent.c
|
||||
- vendor/luajit/src/lj_vmmath.c
|
||||
- vendor/luajit/src/lj_strscan.c
|
||||
- vendor/luajit/src/lj_strfmt.c
|
||||
- vendor/luajit/src/lj_strfmt_num.c
|
||||
- vendor/luajit/src/lj_api.c
|
||||
- vendor/luajit/src/lj_profile.c
|
||||
- vendor/luajit/src/lj_lex.c
|
||||
- vendor/luajit/src/lj_parse.c
|
||||
- vendor/luajit/src/lj_bcread.c
|
||||
- vendor/luajit/src/lj_bcwrite.c
|
||||
- vendor/luajit/src/lj_load.c
|
||||
- vendor/luajit/src/lj_ir.c
|
||||
- vendor/luajit/src/lj_opt_mem.c
|
||||
- vendor/luajit/src/lj_opt_fold.c
|
||||
- vendor/luajit/src/lj_opt_narrow.c
|
||||
- vendor/luajit/src/lj_opt_dce.c
|
||||
- vendor/luajit/src/lj_opt_loop.c
|
||||
- vendor/luajit/src/lj_opt_split.c
|
||||
- vendor/luajit/src/lj_opt_sink.c
|
||||
- vendor/luajit/src/lj_mcode.c
|
||||
- vendor/luajit/src/lj_snap.c
|
||||
- vendor/luajit/src/lj_record.c
|
||||
- vendor/luajit/src/lj_crecord.c
|
||||
- vendor/luajit/src/lj_ffrecord.c
|
||||
- vendor/luajit/src/lj_asm.c
|
||||
- vendor/luajit/src/lj_trace.c
|
||||
- vendor/luajit/src/lj_gdbjit.c
|
||||
- vendor/luajit/src/lj_ctype.c
|
||||
- vendor/luajit/src/lj_cdata.c
|
||||
- vendor/luajit/src/lj_cconv.c
|
||||
- vendor/luajit/src/lj_ccall.c
|
||||
- vendor/luajit/src/lj_ccallback.c
|
||||
- vendor/luajit/src/lj_carith.c
|
||||
- vendor/luajit/src/lj_clib.c
|
||||
- vendor/luajit/src/lj_cparse.c
|
||||
- vendor/luajit/src/lj_lib.c
|
||||
- vendor/luajit/src/lj_alloc.c
|
||||
- vendor/luajit/src/lib_aux.c
|
||||
- vendor/luajit/src/lib_init.c
|
||||
-
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_ffdef.h"
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_bcdef.h"
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_folddef.h"
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_recdef.h"
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_libdef.h"
|
||||
- # "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/jit/vmdef.lua"
|
||||
-)
|
||||
-target_compile_definitions(luajit PRIVATE LUAJIT_ENABLE_LUA52COMPAT)
|
||||
-target_include_directories(luajit PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen" PUBLIC "vendor/luajit/src")
|
||||
-if(WIN32)
|
||||
- target_sources(luajit PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.obj")
|
||||
-else()
|
||||
- enable_language(ASM)
|
||||
- target_sources(luajit PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s")
|
||||
- target_link_libraries(luajit ${CMAKE_DL_LIBS})
|
||||
-endif()
|
||||
-if(APPLE)
|
||||
- if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
- target_compile_definitions(luajit-buildvm PRIVATE LUAJIT_ENABLE_GC64)
|
||||
- target_compile_definitions(luajit PRIVATE LUAJIT_ENABLE_GC64)
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
add_subdirectory(vendor/luabins)
|
||||
|
||||
## libaegisub
|
||||
@@ -310,18 +106,18 @@ if(APPLE)
|
||||
else()
|
||||
target_precompile_headers(libaegisub PRIVATE "libaegisub/lagi_pre.h")
|
||||
endif()
|
||||
-target_link_libraries(libaegisub PRIVATE luajit luabins)
|
||||
+target_link_libraries(libaegisub PRIVATE luajit-5.1 luabins)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/default_config.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/default_config.h"
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/default_config_platform.json"
|
||||
- COMMAND luajit-minilua "${PROJECT_SOURCE_DIR}/tools/respack.lua" manifest.respack default_config.cpp default_config.h
|
||||
+ COMMAND luajit "${PROJECT_SOURCE_DIR}/tools/respack.lua" manifest.respack default_config.cpp default_config.h
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.h"
|
||||
- COMMAND luajit-minilua ../../tools/respack.lua manifest.respack "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.h"
|
||||
+ COMMAND luajit ../../tools/respack.lua manifest.respack "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.h"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/bitmaps
|
||||
)
|
||||
|
||||
@@ -496,7 +292,7 @@ add_executable(Aegisub WIN32
|
||||
src/video_slider.cpp
|
||||
src/visual_feature.cpp
|
||||
)
|
||||
-target_link_libraries(Aegisub PRIVATE ${CMAKE_DL_LIBS} libaegisub luajit)
|
||||
+target_link_libraries(Aegisub PRIVATE ${CMAKE_DL_LIBS} libaegisub luajit-5.1)
|
||||
target_compile_definitions(Aegisub PRIVATE CMAKE_BUILD)
|
||||
target_include_directories(Aegisub PRIVATE "src/libresrc" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc")
|
||||
if(APPLE)
|
||||
diff --git a/vendor/luabins/CMakeLists.txt b/vendor/luabins/CMakeLists.txt
|
||||
index 1fe1d2031..e2761527b 100644
|
||||
--- a/vendor/luabins/CMakeLists.txt
|
||||
+++ b/vendor/luabins/CMakeLists.txt
|
||||
@@ -36,4 +36,4 @@ add_library(luabins STATIC
|
||||
src/savebuffer.c
|
||||
src/write.c
|
||||
)
|
||||
-target_link_libraries(luabins PRIVATE luajit)
|
||||
\ No newline at end of file
|
||||
+target_link_libraries(luabins PRIVATE luajit-5.1)
|
||||
\ No newline at end of file
|
||||
@@ -2,9 +2,8 @@
|
||||
lib,
|
||||
alsa-lib,
|
||||
boost,
|
||||
cmake,
|
||||
meson,
|
||||
config,
|
||||
darwin,
|
||||
expat,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
@@ -14,26 +13,22 @@
|
||||
fontconfig,
|
||||
freetype,
|
||||
fribidi,
|
||||
glib,
|
||||
harfbuzz,
|
||||
hunspell,
|
||||
icu,
|
||||
intltool,
|
||||
libGL,
|
||||
libGLU,
|
||||
libX11,
|
||||
libass,
|
||||
libiconv,
|
||||
libpulseaudio,
|
||||
libuchardet,
|
||||
luajit,
|
||||
ninja,
|
||||
openal,
|
||||
pcre,
|
||||
pkg-config,
|
||||
portaudio,
|
||||
python3,
|
||||
stdenv,
|
||||
which,
|
||||
vapoursynth-bestsource,
|
||||
wrapGAppsHook3,
|
||||
wxGTK,
|
||||
zlib,
|
||||
@@ -46,36 +41,25 @@
|
||||
useBundledLuaJIT ? false,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (darwin.apple_sdk.frameworks)
|
||||
AppKit
|
||||
Carbon
|
||||
Cocoa
|
||||
CoreFoundation
|
||||
CoreText
|
||||
IOKit
|
||||
OpenAL;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "aegisub";
|
||||
version = "3.3.3";
|
||||
version = "feature_12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wangqr";
|
||||
owner = "arch1t3cht";
|
||||
repo = "aegisub";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-oKhLv81EFudrJaaJ2ga3pVh4W5Hd2YchpjsoYoqRm78=";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-P+0aUeFsjke3Jj/QtGJRdaS0negYSnhiuf5QCw2Of5Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
meson
|
||||
intltool
|
||||
luajit
|
||||
ninja
|
||||
pkg-config
|
||||
which
|
||||
wrapGAppsHook3
|
||||
python3
|
||||
wxGTK
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@@ -87,33 +71,35 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
fontconfig
|
||||
freetype
|
||||
fribidi
|
||||
glib
|
||||
harfbuzz
|
||||
icu
|
||||
libGL
|
||||
libGLU
|
||||
libX11
|
||||
libass
|
||||
libiconv
|
||||
libuchardet
|
||||
pcre
|
||||
vapoursynth-bestsource
|
||||
wxGTK
|
||||
zlib
|
||||
]
|
||||
++ lib.optionals alsaSupport [ alsa-lib ]
|
||||
++ lib.optionals openalSupport [
|
||||
(if stdenv.hostPlatform.isDarwin then OpenAL else openal)
|
||||
]
|
||||
++ lib.optionals (openalSupport && !stdenv.hostPlatform.isDarwin) [ openal ]
|
||||
++ lib.optionals portaudioSupport [ portaudio ]
|
||||
++ lib.optionals pulseaudioSupport [ libpulseaudio ]
|
||||
++ lib.optionals spellcheckSupport [ hunspell ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
AppKit
|
||||
Carbon
|
||||
Cocoa
|
||||
CoreFoundation
|
||||
CoreText
|
||||
IOKit
|
||||
++ lib.optionals (!useBundledLuaJIT) [ luajit ];
|
||||
|
||||
mesonFlags = [
|
||||
(lib.mesonEnable "alsa" alsaSupport)
|
||||
(lib.mesonEnable "openal" openalSupport)
|
||||
(lib.mesonEnable "libpulse" pulseaudioSupport)
|
||||
(lib.mesonEnable "portaudio" portaudioSupport)
|
||||
|
||||
(lib.mesonEnable "avisynth" false)
|
||||
# TODO: Requires upstream changes to allow using system VapourSynth.
|
||||
(lib.mesonEnable "vapoursynth" false)
|
||||
|
||||
(lib.mesonEnable "hunspell" spellcheckSupport)
|
||||
|
||||
(lib.mesonBool "system_luajit" (!useBundledLuaJIT))
|
||||
];
|
||||
|
||||
hardeningDisable = [
|
||||
@@ -121,38 +107,29 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"relro"
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "move-iconv-include-to-charset_conv.h.patch";
|
||||
url = "https://github.com/arch1t3cht/Aegisub/commit/b8f4c98c4cbc698e4adbba302c2dc328fe193435.patch";
|
||||
hash = "sha256-dCm/VG+8yK7qWKWF4Ew/M2hbbAC/d3hiuRglR9BvWtw=";
|
||||
})
|
||||
] ++ lib.optionals (!useBundledLuaJIT) [
|
||||
./000-remove-bundled-luajit.patch
|
||||
];
|
||||
|
||||
# error: unknown type name 'NSUInteger'
|
||||
postPatch = ''
|
||||
substituteInPlace src/dialog_colorpicker.cpp \
|
||||
--replace-fail "NSUInteger" "size_t"
|
||||
'';
|
||||
|
||||
env = {
|
||||
NIX_CFLAGS_COMPILE = "-I${lib.getDev luajit}/include";
|
||||
NIX_CFLAGS_LINK = "-L${lib.getLib luajit}/lib";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
export FORCE_GIT_VERSION=${finalAttrs.version}
|
||||
'';
|
||||
|
||||
cmakeBuildDir = "build-directory";
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs tools/respack.py
|
||||
|
||||
# TODO: Tests require wrapped GoogleTest; upstream support for
|
||||
# system version?
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "subdir('tests')" "# subdir('tests')"
|
||||
'';
|
||||
|
||||
# Inject the version, per the AUR package:
|
||||
# <https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=aegisub-arch1t3cht&id=bbbea73953858fc7bf2775a0fb92cec49afb586c>
|
||||
preBuild = ''
|
||||
cat > git_version.h <<EOF
|
||||
#define BUILD_GIT_VERSION_NUMBER 0
|
||||
#define BUILD_GIT_VERSION_STRING "${finalAttrs.version}"
|
||||
EOF
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/wangqr/Aegisub";
|
||||
description = "Advanced subtitle editor; wangqr's fork";
|
||||
homepage = "https://github.com/arch1t3cht/Aegisub";
|
||||
description = "Advanced subtitle editor; arch1t3cht's fork";
|
||||
longDescription = ''
|
||||
Aegisub is a free, cross-platform open source tool for creating and
|
||||
modifying subtitles. Aegisub makes it quick and easy to time subtitles to
|
||||
@@ -167,5 +144,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mainProgram = "aegisub";
|
||||
maintainers = with lib.maintainers; [ wegank ];
|
||||
platforms = lib.platforms.unix;
|
||||
# No native wxWidgets and VapourSynth is broken.
|
||||
badPlatforms = lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -925,7 +925,6 @@ with pkgs;
|
||||
};
|
||||
|
||||
aegisub = callPackage ../by-name/ae/aegisub/package.nix ({
|
||||
boost = boost179;
|
||||
luajit = luajit.override { enable52Compat = true; };
|
||||
wxGTK = wxGTK32;
|
||||
} // (config.aegisub or {}));
|
||||
|
||||
Reference in New Issue
Block a user