actboy168 / luamake

MIT License
171 stars 36 forks source link

Adding support for macOS 10.12 #7

Closed hurricanehrndz closed 3 years ago

hurricanehrndz commented 3 years ago

Nix uses a relatively old SDK for mac. Just wondering if it would be possible to add support?

actboy168 commented 3 years ago

Where is macos 10.12 not supported?

hurricanehrndz commented 3 years ago

I have yet to get a successful build... I know this is out of scope, since ideally macOS 10.13 and above should only be supported. Any help though would be appreciated. PS I am a novice when it comes to C++ compiles.

diff --git a/compile/ninja/macos.ninja b/compile/ninja/macos.ninja
index df09dcd..0c8ef80 100644
--- a/3rd/luamake/compile/ninja/macos.ninja
+++ b/3rd/luamake/compile/ninja/macos.ninja
@@ -3,7 +3,7 @@ bin = $builddir/bin
 obj = $builddir/obj
 rule C_source_lua
   command = gcc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $
-      -DLUA_USE_MACOSX -DNDEBUG -mmacosx-version-min=10.13 -o $out -c $in
+      -DLUA_USE_MACOSX -DNDEBUG -mmacosx-version-min=10.12 -o $out -c $in
   description = Compile C   $out
   depfile = $out.d
   deps = gcc
@@ -47,7 +47,7 @@ build $obj/source_lua/lzio.obj: C_source_lua 3rd/bee.lua/3rd/lua/lzio.c
 rule C_lua
   command = gcc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $
       -fvisibility=hidden -DLUA_USE_MACOSX -DNDEBUG -I3rd/bee.lua $
-      -mmacosx-version-min=10.13 -o $out -c $in
+      -mmacosx-version-min=10.12 -o $out -c $in
   description = Compile C   $out
   depfile = $out.d
   deps = gcc
@@ -85,7 +85,7 @@ rule CXX_bee
   command = g++ -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall $
       -fvisibility=hidden -I3rd/bee.lua/3rd/lua -I3rd/bee.lua/3rd/lua-seri $
       -I3rd/bee.lua/bee/nonstd -I3rd/bee.lua -DNDEBUG -fPIC $
-      -mmacosx-version-min=10.13 -o $out -c $in
+      -mmacosx-version-min=10.12 -o $out -c $in
   description = Compile C++ $out
   depfile = $out.d
   deps = gcc
@@ -131,7 +131,7 @@ build $bin/bee.so: LINK_bee $obj/bee/lua-seri.obj $obj/bee/error.obj $
 rule CXX_bootstrap
   command = g++ -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall $
       -fvisibility=hidden -I3rd/bee.lua/3rd/lua -DLUA_USE_MACOSX -DNDEBUG $
-      -I3rd/bee.lua -mmacosx-version-min=10.13 -o $out -c $in
+      -I3rd/bee.lua -mmacosx-version-min=10.12 -o $out -c $in
   description = Compile C++ $out
   depfile = $out.d
   deps = gcc
diff --git a/bee/fsevent/fsevent_osx.cpp b/bee/fsevent/fsevent_osx.cpp
index fe3bcd7..f1cbe8b 100644
--- a/3rd/luamake/3rd/bee.lua/bee/fsevent/fsevent_osx.cpp
+++ b/3rd/luamake/3rd/bee.lua/bee/fsevent/fsevent_osx.cpp
@@ -1,4 +1,5 @@
 #include <bee/fsevent/fsevent_osx.h>
+#include <functional>
 #include <fmt/format.h>
 #include <thread>

This leads to the following error:

  3rd/bee.lua/bee/nonstd/fmt/core.h: In function 'fmt::v7::detail::value<Context> fmt::v7::detail::make_arg(const T&)':
  3rd/bee.lua/bee/nonstd/fmt/core.h:1450:10: error: 'check' was not declared in this scope
   1450 |   return check<T>(arg_mapper<Context>().map(val));
        |          ^~~~~
  3rd/bee.lua/bee/nonstd/fmt/core.h:1450:17: error: expected primary-expression before '>' token
   1450 |   return check<T>(arg_mapper<Context>().map(val));
        |                 ^
  [48/59] Compile C++ build/macos/obj/bee/format.objm.obj[KK
  ninja: build stopped: subcommand failed.

check is obviously defined using functional template on line 1450. So I am at a lost.

actboy168 commented 3 years ago

I think this is not supported by your compiler.