Browse Source

Fix nana on linux

PucklaMotzer09 4 years ago
parent
commit
d56c2f5a85
2 changed files with 51 additions and 2 deletions
  1. 44 0
      packages/n/nana/patches/1.7.4/u8string_fix.patch
  2. 7 2
      packages/n/nana/xmake.lua

+ 44 - 0
packages/n/nana/patches/1.7.4/u8string_fix.patch

@@ -0,0 +1,44 @@
+diff --git a/source/detail/posix/xdnd_protocol.hpp b/source/detail/posix/xdnd_protocol.hpp
+index aa1ae43..d856869 100644
+--- a/source/detail/posix/xdnd_protocol.hpp
++++ b/source/detail/posix/xdnd_protocol.hpp
+@@ -156,7 +156,7 @@ namespace nana{
+ 				    	for(auto& file : data.files)
+ 				    	{
+ 				    		uri_list += "file://";
+-				    		uri_list += file.u8string();
++				    		uri_list += file.string();
+ 				    		uri_list += "\r\n";
+ 				    	}
+ 
+diff --git a/source/gui/filebox.cpp b/source/gui/filebox.cpp
+index 63586ab..28071d5 100644
+--- a/source/gui/filebox.cpp
++++ b/source/gui/filebox.cpp
+@@ -1013,7 +1013,7 @@ namespace nana
+ 				for(auto i = selection_.targets.cbegin(); i != selection_.targets.cend();)
+ 				{
+ 					std::filesystem::path p{*i};
+-					if(p.filename().u8string() == mfs.name)
++					if(p.filename().string() == mfs.name)
+ 					{
+ 						if(!selection_.is_deselect_delayed)
+ 						{
+@@ -1042,7 +1042,7 @@ namespace nana
+ 					if(!filename_string.empty())
+ 						filename_string += ' ';
+ 
+-					filename_string += "\"" + p.filename().u8string() + "\"";
++					filename_string += "\"" + p.filename().string() + "\"";
+ 				}
+ 			}
+ 
+@@ -1576,7 +1576,7 @@ namespace nana
+ 
+ 
+ 		if(!targets.empty())
+-			impl_->path = targets.front().parent_path().u8string();
++			impl_->path = targets.front().parent_path().string();
+ 		else
+ 			impl_->path.clear();
+ #endif

+ 7 - 2
packages/n/nana/xmake.lua

@@ -8,6 +8,9 @@ package("nana")
     add_versions("1.6.2", "5f5cb791dff292e27bfa29d850b93f809a0d91d6044ea7e22ce7ae76a5d8b24e")
     add_versions("1.6.2", "5f5cb791dff292e27bfa29d850b93f809a0d91d6044ea7e22ce7ae76a5d8b24e")
     add_versions("1.7.2", "e2efb3b7619e4ef3b6de93f8afc70ff477ec6cabf4f9740f0d786904c790613f")
     add_versions("1.7.2", "e2efb3b7619e4ef3b6de93f8afc70ff477ec6cabf4f9740f0d786904c790613f")
     add_versions("1.7.4", "56f7b1ed006c750fccf8ef15ab1e83f96751f2dfdcb68d93e5f712a6c9b58bcb")
     add_versions("1.7.4", "56f7b1ed006c750fccf8ef15ab1e83f96751f2dfdcb68d93e5f712a6c9b58bcb")
+    if is_plat("linux") then
+        add_patches("1.7.4", path.join(os.scriptdir(), "patches", "1.7.4", "u8string_fix.patch"), "c783588816664124ba3b4077e18696899c8389419a015773b5bfe988e3a73f6a")
+    end
 
 
     if is_plat("linux", "windows") then
     if is_plat("linux", "windows") then
         add_deps("cmake >=3.12")
         add_deps("cmake >=3.12")
@@ -18,6 +21,7 @@ package("nana")
         add_defines("_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING")
         add_defines("_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING")
     elseif is_plat("linux") then
     elseif is_plat("linux") then
         add_syslinks("pthread", "X11", "Xft", "fontconfig")
         add_syslinks("pthread", "X11", "Xft", "fontconfig")
+        add_links("nana")
     end
     end
 
 
     on_install("linux", "windows", function (package)
     on_install("linux", "windows", function (package)
@@ -32,8 +36,9 @@ package("nana")
         end
         end
         import("package.tools.cmake").install(package, configs)
         import("package.tools.cmake").install(package, configs)
 
 
-        if is_plat("windows") then
-            os.cp("include", package:installdir())
+        os.cp("include", package:installdir())
+        if is_plat("linux") then
+            os.cp("**.a", package:installdir("lib"))
         end
         end
     end)
     end)