Parcourir la source

improve openssl (#1037)

ruki il y a 3 ans
Parent
commit
6eeb5a891e
2 fichiers modifiés avec 56 ajouts et 16 suppressions
  1. 31 0
      .github/workflows/ubuntu_clang.yml
  2. 25 16
      packages/o/openssl/xmake.lua

+ 31 - 0
.github/workflows/ubuntu_clang.yml

@@ -0,0 +1,31 @@
+name: Linux (Clang)
+
+on:
+  pull_request:
+    branches:
+      - dev
+
+jobs:
+  build:
+    strategy:
+      matrix:
+        os: [ubuntu-latest]
+        kind: [static, shared]
+
+    runs-on: ${{ matrix.os }}
+
+    steps:
+      - uses: actions/checkout@v1
+      - uses: xmake-io/github-action-setup-xmake@v1
+        with:
+          xmake-version: branch@dev
+
+      - name: Installation
+        run: |
+          # TODO we will remove it later
+          sudo apt-get update
+          sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev clang
+
+      - name: Tests
+        run: |
+          xmake l ./scripts/test.lua -D --toolchain=clang -k ${{ matrix.kind }}

+ 25 - 16
packages/o/openssl/xmake.lua

@@ -78,24 +78,33 @@ package("openssl")
         import("package.tools.make").install(package)
     end)
 
-    on_install("linux", "macosx", function (package)
-        -- https://wiki.openssl.org/index.php/Compilation_and_Installation#PREFIX_and_OPENSSLDIR
-        os.vrun("./config %s --openssldir=\"%s\" --prefix=\"%s\"",
-            package:debug() and "--debug" or "", package:installdir(), package:installdir())
-        import("package.tools.make").install(package)
-    end)
+    on_install("macosx", "linux", "cross", "android", function (package)
 
-    on_install("cross", "android", function (package)
-        local target = "linux-generic32"
-        if package:is_targetos("linux") then
-            if package:is_arch("arm64") then
-                target = "linux-aarch64"
-            else
-                target = "linux-armv4"
-            end
+        local target_arch = "generic32"
+        if package:is_arch("x86_64") then
+            target_arch = "x86_64"
+        elseif package:is_arch("i386", "x86") then
+            target_arch = "x86"
+        elseif package:is_arch("arm64", "arm64-v8a") then
+            target_arch = "aarch64"
+        elseif package:is_arch("arm.*") then
+            target_arch = "armv4"
+        elseif package:is_arch(".*64") then
+            target_arch = "generic64"
         end
-        local configs = {target, "-DOPENSSL_NO_HEARTBEATS", "no-shared", "no-threads",
-            "--prefix=" .. package:installdir()}
+
+        local target_plat = "linux"
+        if package:is_plat("macosx") then
+            target_plat = "darwin64"
+            target_arch = "x86_64-cc"
+        end
+
+        local target = target_plat .. "-" .. target_arch
+        local configs = {target,
+                         "-DOPENSSL_NO_HEARTBEATS",
+                         "no-shared",
+                         "no-threads",
+                         "--prefix=" .. package:installdir()}
         local buildenvs = import("package.tools.autoconf").buildenvs(package)
         os.vrunv("./Configure", configs, {envs = buildenvs})
         local makeconfigs = {CFLAGS = buildenvs.CFLAGS, ASFLAGS = buildenvs.ASFLAGS}