Преглед на файлове

add missing libs for opencv

xq114 преди 4 години
родител
ревизия
4e3370376d
променени са 1 файла, в които са добавени 15 реда и са изтрити 1 реда
  1. 15 1
      packages/o/opencv/xmake.lua

+ 15 - 1
packages/o/opencv/xmake.lua

@@ -61,17 +61,30 @@ package("opencv")
                          "-DBUILD_opencv_python2=OFF",
                          "-DBUILD_opencv_python3=ON"}
         table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        table.insert(configs, "-DBUILD_WITH_STATIC_CRT=" .. (package:config("vs_runtime"):startswith("MT") and "ON" or "OFF"))
         local resourcedir = package:resourcedir("opencv_contrib")
         if resourcedir then
             import("lib.detect.find_path")
             local modulesdir = assert(find_path("modules", path.join(resourcedir, "*")), "modules not found!")
             table.insert(configs, "-DOPENCV_EXTRA_MODULES_PATH=" .. path.absolute(path.join(modulesdir, "modules")))
         end
-        import("package.tools.cmake").install(package, configs)
+        import("package.tools.cmake").install(package, configs, {buildir = "build"})
         os.trycp("3rdparty/**/*.a", package:installdir("lib"))
+        if package:is_plat("windows") then
+            local instpath = path.join(os.curdir(), "build", "install", package:is_arch("x64") and "x64" or "x86", "vc*")
+            os.trycp(path.join(instpath, "bin", "**"), package:installdir("bin"))
+            if package:config("shared") then
+                os.trycp(path.join(instpath, "lib", "**"), package:installdir("lib"))
+            else
+                os.trycp(path.join(instpath, "staticlib", "**"), package:installdir("lib"))
+            end
+        end
     end)
 
     on_test(function (package)
+        if package:is_plat("windows") then
+            os.vrun("opencv_version")
+        end
         assert(package:check_cxxsnippets({test = [[
             #include <iostream>
             void test(int argc, char** argv) {
@@ -79,6 +92,7 @@ package("opencv")
                 if (parser.has("help")) {
                     parser.printMessage();
                 }
+                cv::Mat image(3, 3, CV_8UC1);
                 std::cout << CV_VERSION << std::endl;
             }
         ]]}, {configs = {languages = "c++11"},