From 9c3c2dd82ffe59e61f6b2b85587ffc803c2f369b Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:39:46 +1100 Subject: [PATCH] fix(build): compilation on macos when including nim-nat-traversal - removes the `VERSION` rename to `VERSION_temp` in the Makefile - instead, relies on `-iqoute` to include the `nim-nat-traversal/vendor/libnatpmp-upstream` directory in the search paths. `-iquote` will match the `vendor/libnatpmp-upstream/VERSION` file for `#include "version"` and not `#include `, the latter being what is included by the macos sdk and was causing issues with `-I`. The [gcc 14.2 docs](https://gcc.gnu.org/onlinedocs/gcc-14.2.0/cpp/Invocation.html#index-I) describe how `-iquote` alleviates this issue: > Directories specified with -iquote apply only to the quote form of the directive, #include "file". Directories specified with -I, -isystem, or -idirafter apply to lookup for both the #include "file" and #include directives. For more info, please see https://github.com/status-im/nim-nat-traversal/pull/34. --- build.nims | 23 ++--------------------- vendor/nim-nat-traversal | 2 +- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/build.nims b/build.nims index 5e190f6b..aa090e71 100644 --- a/build.nims +++ b/build.nims @@ -2,24 +2,8 @@ mode = ScriptMode.Verbose import std/os except commandLineParams -const VendorPath = "vendor/nim-nat-traversal/vendor/libnatpmp-upstream" -let - oldVersionFile = joinPath(VendorPath, "VERSION") - newVersionFile = joinPath(VendorPath, "VERSION_temp") - -proc renameFile(oldName, newName: string) = - if fileExists(oldName): - mvFile(oldName, newName) - else: - echo "File ", oldName, " does not exist" - - ### Helper functions proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") = - # This is a quick workaround to avoid VERSION file conflict on macOS - # More details here: https://github.com/codex-storage/nim-codex/issues/1059 - if defined(macosx): - renameFile(oldVersionFile, newVersionFile) if not dirExists "build": mkDir "build" @@ -37,11 +21,8 @@ proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") = # Place build output in 'build' folder, even if name includes a longer path. outName = os.lastPathPart(name) cmd = "nim " & lang & " --out:build/" & outName & " " & extra_params & " " & srcDir & name & ".nim" - try: - exec(cmd) - finally: - if defined(macosx): - renameFile(newVersionFile, oldVersionFile) + + exec(cmd) proc test(name: string, srcDir = "tests/", params = "", lang = "c") = buildBinary name, srcDir, params diff --git a/vendor/nim-nat-traversal b/vendor/nim-nat-traversal index 5e405974..cf3481cf 160000 --- a/vendor/nim-nat-traversal +++ b/vendor/nim-nat-traversal @@ -1 +1 @@ -Subproject commit 5e4059746e9095e1731b02eeaecd62a70fbe664d +Subproject commit cf3481cfa3b4093e1b05ff09ae5c74e531456e54