Skip to content

Commit 36f8859

Browse files
committed
patch
1 parent 67e2659 commit 36f8859

File tree

4 files changed

+32
-21
lines changed

4 files changed

+32
-21
lines changed

ae.nimble

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ proc cmakeBuild(package: Package, buildPath: string, crossWindows: bool = false)
204204

205205
if crossWindows:
206206
cmakeArgs.add("-DCMAKE_SYSTEM_NAME=Windows")
207-
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc")
208-
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++")
207+
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc-posix")
208+
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++-posix")
209209
cmakeArgs.add("-DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres")
210210
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER")
211211
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY")
@@ -260,8 +260,8 @@ proc x265Build(buildPath: string, crossWindows: bool = false) =
260260
# Add cross-compilation flags if needed
261261
if crossWindows:
262262
cmakeArgs.add("-DCMAKE_SYSTEM_NAME=Windows")
263-
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc")
264-
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++")
263+
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc-posix")
264+
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++-posix")
265265
cmakeArgs.add("-DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres")
266266
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER")
267267
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY")
@@ -292,8 +292,8 @@ proc x265Build(buildPath: string, crossWindows: bool = false) =
292292
# Add cross-compilation flags if needed
293293
if crossWindows:
294294
cmakeArgs.add("-DCMAKE_SYSTEM_NAME=Windows")
295-
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc")
296-
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++")
295+
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc-posix")
296+
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++-posix")
297297
cmakeArgs.add("-DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres")
298298
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER")
299299
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY")
@@ -322,8 +322,8 @@ proc x265Build(buildPath: string, crossWindows: bool = false) =
322322
# Add cross-compilation flags if needed
323323
if crossWindows:
324324
cmakeArgs.add("-DCMAKE_SYSTEM_NAME=Windows")
325-
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc")
326-
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++")
325+
cmakeArgs.add("-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc-posix")
326+
cmakeArgs.add("-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++-posix")
327327
cmakeArgs.add("-DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres")
328328
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER")
329329
cmakeArgs.add("-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY")
@@ -389,8 +389,8 @@ proc mesonBuild(buildPath: string, crossWindows: bool = false) =
389389
let crossFile = "build_meson/meson-cross.txt"
390390
writeFile(crossFile, """
391391
[binaries]
392-
c = 'x86_64-w64-mingw32-gcc'
393-
cpp = 'x86_64-w64-mingw32-g++'
392+
c = 'x86_64-w64-mingw32-gcc-posix'
393+
cpp = 'x86_64-w64-mingw32-g++-posix'
394394
ar = 'x86_64-w64-mingw32-ar'
395395
strip = 'x86_64-w64-mingw32-strip'
396396
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
@@ -431,7 +431,7 @@ proc ffmpegSetup(crossWindows: bool) =
431431
exec &"tar {tarArgs} {package.location} && mv {package.dirName} {package.name}"
432432
let patchFile = &"../patches/{package.name}.patch"
433433
if fileExists(patchFile):
434-
let cmd = &"patch -d {package.name} -i {absolutePath(patchFile)} -p1"
434+
let cmd = &"patch -d {package.name} -i {absolutePath(patchFile)} -p1 --force"
435435
echo "Applying patch: ", cmd
436436
exec cmd
437437

@@ -458,7 +458,7 @@ proc ffmpegSetup(crossWindows: bool) =
458458
args.add("--target=x86_64-win64-gcc")
459459
else:
460460
args.add("--host=x86_64-w64-mingw32")
461-
envPrefix = "CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ AR=x86_64-w64-mingw32-ar STRIP=x86_64-w64-mingw32-strip RANLIB=x86_64-w64-mingw32-ranlib "
461+
envPrefix = "CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix AR=x86_64-w64-mingw32-ar STRIP=x86_64-w64-mingw32-strip RANLIB=x86_64-w64-mingw32-ranlib "
462462
let cmd = &"{envPrefix}./configure --prefix=\"{buildPath}\" --disable-shared --enable-static " & args.join(" ")
463463
echo "RUN: ", cmd
464464
exec cmd
@@ -511,10 +511,20 @@ task makeff, "Build FFmpeg from source":
511511
when defined(linux):
512512
pkgConfigPaths.add(buildPath / "lib/x86_64-linux-gnu/pkgconfig")
513513
pkgConfigPaths.add(buildPath / "lib64/pkgconfig")
514+
# Add common cmake install paths for pkg-config files
515+
pkgConfigPaths.add(buildPath / "lib/cmake")
516+
pkgConfigPaths.add(buildPath / "share/pkgconfig")
514517
putEnv("PKG_CONFIG_PATH", pkgConfigPaths.join(":"))
515518

516519
ffmpegSetup(crossWindows=false)
517520

521+
# Debug: List pkg-config files to verify whisper.pc exists
522+
when defined(linux):
523+
echo "Checking for whisper.pc files:"
524+
exec &"find {buildPath} -name 'whisper.pc' -type f"
525+
echo "Current PKG_CONFIG_PATH: ", getEnv("PKG_CONFIG_PATH")
526+
exec "pkg-config --list-all | grep whisper || echo 'whisper not found in pkg-config'"
527+
518528
# Configure and build FFmpeg
519529
withDir "ffmpeg_sources/ffmpeg":
520530
var ldflags = &"-L{buildPath}/lib"
@@ -541,7 +551,7 @@ task makeffwin, "Build FFmpeg for Windows cross-compilation":
541551
when defined(linux):
542552
ldflags &= &" -L{buildPath}/lib/x86_64-linux-gnu -L{buildPath}/lib64"
543553

544-
exec (&"""CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ AR=x86_64-w64-mingw32-ar STRIP=x86_64-w64-mingw32-strip RANLIB=x86_64-w64-mingw32-ranlib PKG_CONFIG_PATH="{buildPath}/lib/pkgconfig" ./configure --prefix="{buildPath}" \
554+
exec (&"""CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix AR=x86_64-w64-mingw32-ar STRIP=x86_64-w64-mingw32-strip RANLIB=x86_64-w64-mingw32-ranlib PKG_CONFIG_PATH="{buildPath}/lib/pkgconfig" ./configure --prefix="{buildPath}" \
545555
--pkg-config-flags="--static" \
546556
--extra-cflags="-I{buildPath}/include" \
547557
--extra-ldflags="{ldflags}" \
@@ -558,8 +568,8 @@ task windows, "Cross-compile to Windows (requires mingw-w64)":
558568
echo "FFmpeg for Windows not found. Run 'nimble makeffwin' first."
559569
else:
560570
exec "nim c -d:danger " & disableHevc & " --os:windows --cpu:amd64 --cc:gcc " &
561-
"--gcc.exe:x86_64-w64-mingw32-gcc " &
562-
"--gcc.linkerexe:x86_64-w64-mingw32-gcc " &
571+
"--gcc.exe:x86_64-w64-mingw32-gcc-posix " &
572+
"--gcc.linkerexe:x86_64-w64-mingw32-gcc-posix " &
563573
"--passL:-lbcrypt " & # Add Windows Bcrypt library
564574
"--passL:-lstdc++ " & # Add C++ standard library
565575
"--passL:-static " &

patches/whisper.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
Cflags: -I${includedir}
1111
+
1212
+Requires:
13-
+Conflicts:
13+
+Conflicts:

src/cmds/whisper.nim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import std/strformat
12
import ../ffmpeg
23
import ../av
4+
import ../log
35

46
proc main*(args: seq[string]) =
57
if args.len < 1:

src/ffmpeg.nim

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ when defined(linux):
1010
when defined(macosx):
1111
{.passL: "-framework Accelerate -framework Metal -framework MetalKit -framework Foundation".}
1212

13-
13+
when defined(macosx): # C++ linkers
14+
{.passL: "-lc++"}
15+
else:
16+
{.passL: "-lstdc++"}
1417
when not defined(disable_hevc):
1518
{.passL: "-lx265".}
16-
when defined(macosx):
17-
{.passL: "-lc++"}
18-
else:
19-
{.passL: "-lstdc++"}
2019
{.passL: "-lm".}
2120

2221
import std/posix

0 commit comments

Comments
 (0)