From 270ff7157d1a07d307124c0cd6e74e18bc49e7ab Mon Sep 17 00:00:00 2001 From: Constantine Molchanov Date: Wed, 10 Jun 2026 18:55:20 +0400 Subject: [PATCH] Build libplum without cmake. --- libplum.nimble | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/libplum.nimble b/libplum.nimble index ab798d8..e5c81f6 100644 --- a/libplum.nimble +++ b/libplum.nimble @@ -1,3 +1,5 @@ +import std/[os, strutils] + mode = ScriptMode.Verbose packageName = "libplum" @@ -14,10 +16,23 @@ requires "nim >= 1.6.0", "unittest2" proc compileStaticLibraries() = + let + cflags = "-std=c11 -O2 -pthread -fPIC -fvisibility=hidden -DPLUM_EXPORTS -DPLUM_STATIC -DRELEASE=1 -D_GNU_SOURCE" + includes = "-Iinclude/plum -Isrc" + withDir "vendor/libplum": - exec("cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF") - exec("cmake --build build") - cpFile("build/libplum.a", "libplum.a") + let winFlags = + if defined(windows): " -DWIN32_LEAN_AND_MEAN" + else: "" + var oFiles: seq[string] + + for srcFile in listFiles("src"): + if srcFile.endsWith(".c"): + let oFile = srcFile.changeFileExt("o") + exec "gcc " & cflags & winFlags & " " & includes & " -c " & srcFile & " -o " & oFile + oFiles.add(oFile) + + exec "ar rcs libplum.a " & oFiles.join(" ") task format, "format Nim code using nph": exec "nph libplum/ tests/"