microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
22.89k stars 6.32k forks source link

[openssl] build failure for android #11282

Closed shelper closed 2 years ago

shelper commented 4 years ago

Host Environment

To Reproduce Steps to reproduce the behavior: export ANDROID_NDK=my_android_ndk_path export ANDROID_NDK_HOM=my_android_ndk_path

add android triplet amr64-android.cmake with content:

set(VCPKG_TARGET_ARCHITECTURE arm64-v8a)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)

set(VCPKG_CMAKE_SYSTEM_NAME Android)

then run: ./vcpkg install openssl:arm64-android

Failure logs

The following packages will be built and installed:
    openssl[core]:arm64-android
  * openssl-unix[core]:arm64-android
Additional packages (*) will be modified to complete this operation.
Starting package 1/2: openssl-unix:arm64-android
Building package openssl-unix[core]:arm64-android...
-- Using cached /home/mpnv38/develop/vcpkg/downloads/openssl-1.1.1d.tar.gz
-- Using source at /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/src/1.1.1d-b1f8ae3e6c
-- Configuring arm64-android-dbg
-- Configuring arm64-android-rel
-- Building arm64-android-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:136 (message):
    Command failed: /home/mpnv38/develop/vcpkg/downloads/tools/cmake-3.14.0-linux/cmake-3.14.0-Linux-x86_64/bin/cmake --build . --config Debug --target install -- -v
    Working Directory: /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/arm64-android-dbg
    See logs for more information:
      /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/install-arm64-android-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_cmake.cmake:91 (vcpkg_execute_build_process)
  scripts/cmake/vcpkg_install_cmake.cmake:24 (vcpkg_build_cmake)
  ports/openssl-unix/portfile.cmake:52 (vcpkg_install_cmake)
  scripts/ports.cmake:90 (include)

Error: Building package openssl-unix:arm64-android failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: openssl-unix:arm64-android
  Vcpkg version: 2020.02.04-unknownhash

Additional context i was able to build jsoncpp for android using the same triplet and env settings

$> vcpkg install jsoncpp:arm64-android
Computing installation plan...
The following packages will be built and installed:
    jsoncpp[core]:arm64-android
Starting package 1/1: jsoncpp:arm64-android
Building package jsoncpp[core]:arm64-android...
-- Using cached /home/mpnv38/develop/vcpkg/downloads/open-source-parsers-jsoncpp-1.9.2.tar.gz
-- Using source at /home/mpnv38/develop/vcpkg/buildtrees/jsoncpp/src/1.9.2-d01d7f5c9b
-- Configuring arm64-android-dbg
-- Configuring arm64-android-rel
-- Building arm64-android-dbg
-- Building arm64-android-rel
-- Performing post-build validation
-- Performing post-build validation done
Building package jsoncpp[core]:arm64-android... done
Installing package jsoncpp[core]:arm64-android...
Installing package jsoncpp[core]:arm64-android... done
Elapsed time for package jsoncpp:arm64-android: 7.13 s

Total elapsed time: 7.131 s

The package jsoncpp:arm64-android provides CMake targets:

    find_package(jsoncpp CONFIG REQUIRED)
    target_link_libraries(main PRIVATE jsoncpp_lib)
pthom commented 4 years ago

The interestings logs are not in the console output:

See this extract from your logs:

    Command failed: /home/mpnv38/develop/vcpkg/downloads/tools/cmake-3.14.0-linux/cmake-3.14.0-Linux-x86_64/bin/cmake --build . --config Debug --target install -- -v
    Working Directory: /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/arm64-android-dbg
    See logs for more information:
      /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/install-arm64-android-dbg-out.log

you need to look into the file /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/install-arm64-android-dbg-out.log in order to get more informative logs

shelper commented 4 years ago

here is what in in the log: i dont find any obvious informatin :(

[1/3] cd /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/arm64-android-dbg/1.1.1d-b1f8ae3e6c && export CC=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang && export AR=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar && export LD=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld && export RANLIB=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ranlib && export MAKE=/usr/bin/make && export MAKEDEPPROG=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang && export "PATH=/usr/bin:/home/mpnv38/anaconda3/bin:/home/mpnv38/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/bin:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/libnvvp:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0:/mnt/c/WINDOWS/System32/OpenSSH:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/NVIDIA Corporation/Nsight Compute 2019.5.0:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0:/mnt/c/WINDOWS/System32/OpenSSH:/mnt/c/Program Files/Microsoft/Web Platform Installer:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Conan/conan:/mnt/c/Users/MPNV38/AppData/Local/Programs/Python/Python38/Scripts:/mnt/c/Users/MPNV38/AppData/Local/Programs/Python/Python38:/mnt/c/Users/MPNV38/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/MPNV38/AppData/Local/Programs/Microsoft VS Code Insiders/bin:/mnt/c/Program Files/CMake/bin:/mnt/c/Program Files/LLVM/bin:/mnt/c/Users/MPNV38/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/MPNV38/AppData/Local/Pandoc:/mnt/c/Program Files/OpenSSL-Win64/bin:/home/mpnv38/anaconda3/bin:/home/mpnv38/bin:/home/mpnv38/develop/.fzf/bin:/home/mpnv38/develop/vcpkg:/home/mpnv38/develop/vcpkg/downloads/tools/ninja-1.10.0-linux" && /usr/bin/perl Configure no-shared enable-static-engine no-zlib no-ssl2 no-idea no-bf no-cast no-seed no-md2 android --prefix=/home/mpnv38/develop/vcpkg/packages/openssl-unix_arm64-android/debug --openssldir=/etc/ssl "-Wno-error=unused-command-line-argument -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  --target=aarch64-none-linux-android21 --gcc-toolchain=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/sysroot" && /home/mpnv38/develop/vcpkg/downloads/tools/cmake-3.14.0-linux/cmake-3.14.0-Linux-x86_64/bin/cmake -DDIR=/home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/arm64-android-dbg/1.1.1d-b1f8ae3e6c -P /home/mpnv38/develop/vcpkg/ports/openssl-unix/remove-deps.cmake
FAILED: 1.1.1d-b1f8ae3e6c/Makefile
cd /home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/arm64-android-dbg/1.1.1d-b1f8ae3e6c && export CC=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang && export AR=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar && export LD=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld && export RANLIB=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ranlib && export MAKE=/usr/bin/make && export MAKEDEPPROG=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang && export "PATH=/usr/bin:/home/mpnv38/anaconda3/bin:/home/mpnv38/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/bin:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/libnvvp:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0:/mnt/c/WINDOWS/System32/OpenSSH:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/NVIDIA Corporation/Nsight Compute 2019.5.0:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0:/mnt/c/WINDOWS/System32/OpenSSH:/mnt/c/Program Files/Microsoft/Web Platform Installer:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Conan/conan:/mnt/c/Users/MPNV38/AppData/Local/Programs/Python/Python38/Scripts:/mnt/c/Users/MPNV38/AppData/Local/Programs/Python/Python38:/mnt/c/Users/MPNV38/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/MPNV38/AppData/Local/Programs/Microsoft VS Code Insiders/bin:/mnt/c/Program Files/CMake/bin:/mnt/c/Program Files/LLVM/bin:/mnt/c/Users/MPNV38/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/MPNV38/AppData/Local/Pandoc:/mnt/c/Program Files/OpenSSL-Win64/bin:/home/mpnv38/anaconda3/bin:/home/mpnv38/bin:/home/mpnv38/develop/.fzf/bin:/home/mpnv38/develop/vcpkg:/home/mpnv38/develop/vcpkg/downloads/tools/ninja-1.10.0-linux" && /usr/bin/perl Configure no-shared enable-static-engine no-zlib no-ssl2 no-idea no-bf no-cast no-seed no-md2 android --prefix=/home/mpnv38/develop/vcpkg/packages/openssl-unix_arm64-android/debug --openssldir=/etc/ssl "-Wno-error=unused-command-line-argument -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  --target=aarch64-none-linux-android21 --gcc-toolchain=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/sysroot" && /home/mpnv38/develop/vcpkg/downloads/tools/cmake-3.14.0-linux/cmake-3.14.0-Linux-x86_64/bin/cmake -DDIR=/home/mpnv38/develop/vcpkg/buildtrees/openssl-unix/arm64-android-dbg/1.1.1d-b1f8ae3e6c -P /home/mpnv38/develop/vcpkg/ports/openssl-unix/remove-deps.cmake
Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]

pick os/compiler from:
BS2000-OSD BSD-generic32 BSD-generic64 BSD-ia64 BSD-sparc64 BSD-sparcv8
BSD-x86 BSD-x86-elf BSD-x86_64 Cygwin Cygwin-i386 Cygwin-i486 Cygwin-i586
Cygwin-i686 Cygwin-x86 Cygwin-x86_64 DJGPP MPE/iX-gcc UEFI UWIN VC-CE VC-WIN32
VC-WIN32-ARM VC-WIN32-ONECORE VC-WIN64-ARM VC-WIN64A VC-WIN64A-ONECORE
VC-WIN64A-masm VC-WIN64I aix-cc aix-gcc aix64-cc aix64-gcc android-arm
android-arm64 android-armeabi android-mips android-mips64 android-x86
android-x86_64 android64 android64-aarch64 android64-mips64 android64-x86_64
bsdi-elf-gcc cc darwin-i386-cc darwin-ppc-cc darwin64-ppc-cc
darwin64-x86_64-cc gcc haiku-x86 haiku-x86_64 hpux-ia64-cc hpux-ia64-gcc
hpux-parisc-cc hpux-parisc-gcc hpux-parisc1_1-cc hpux-parisc1_1-gcc
hpux64-ia64-cc hpux64-ia64-gcc hpux64-parisc2-cc hpux64-parisc2-gcc hurd-x86
ios-cross ios-xcrun ios64-cross ios64-xcrun iossimulator-xcrun iphoneos-cross
irix-mips3-cc irix-mips3-gcc irix64-mips4-cc irix64-mips4-gcc linux-aarch64
linux-alpha-gcc linux-aout linux-arm64ilp32 linux-armv4 linux-c64xplus
linux-elf linux-generic32 linux-generic64 linux-ia64 linux-mips32 linux-mips64
linux-ppc linux-ppc64 linux-ppc64le linux-sparcv8 linux-sparcv9 linux-x32
linux-x86 linux-x86-clang linux-x86_64 linux-x86_64-clang linux32-s390x
linux64-mips64 linux64-s390x linux64-sparcv9 mingw mingw64 nextstep
nextstep3.3 sco5-cc sco5-gcc solaris-sparcv7-cc solaris-sparcv7-gcc
solaris-sparcv8-cc solaris-sparcv8-gcc solaris-sparcv9-cc solaris-sparcv9-gcc
solaris-x86-gcc solaris64-sparcv9-cc solaris64-sparcv9-gcc solaris64-x86_64-cc
solaris64-x86_64-gcc tru64-alpha-cc tru64-alpha-gcc uClinux-dist
uClinux-dist64 unixware-2.0 unixware-2.1 unixware-7 unixware-7-gcc vms-alpha
vms-alpha-p32 vms-alpha-p64 vms-ia64 vms-ia64-p32 vms-ia64-p64 vos-gcc
vxworks-mips vxworks-ppc405 vxworks-ppc60x vxworks-ppc750 vxworks-ppc750-debug
vxworks-ppc860 vxworks-ppcgen vxworks-simlinux

NOTE: If in doubt, on Unix-ish systems use './config'.
Configuring OpenSSL version 1.1.1d (0x1010104fL) for android
Using os-specific seed configuration
ninja: build stopped: subcommand failed

also i noticed someone report similar issue with openssl at https://github.com/microsoft/vcpkg/issues/9874

atkawa7 commented 4 years ago

@shelper Openssl is currently build on mine

diff --git a/ports/openssl-unix/CMakeLists.txt b/ports/openssl-unix/CMakeLists.txt
index 98020c8cf..a75f59be8 100644
--- a/ports/openssl-unix/CMakeLists.txt
+++ b/ports/openssl-unix/CMakeLists.txt
@@ -2,23 +2,34 @@ cmake_minimum_required(VERSION 3.9)
 project(openssl C)

 if(NOT SOURCE_PATH)
-    message(FATAL_ERROR "Requires SOURCE_PATH")
+  message(FATAL_ERROR "Requires SOURCE_PATH")
 endif()

 if(CMAKE_SYSTEM_NAME STREQUAL "Android")
-    set(PLATFORM android)
+  if(VCPKG_TARGET_TRIPLET STREQUAL "arm64-android")
+    set(PLATFORM "android-arm64")
+  elseif(VCPKG_TARGET_TRIPLET STREQUAL "arm-android")
+    set(PLATFORM "android-arm")
+  elseif(VCPKG_TARGET_TRIPLET STREQUAL "x64-android")
+    set(PLATFORM "android-x86_64")
+  elseif(VCPKG_TARGET_TRIPLET STREQUAL "x86-android")
+    set(PLATFORM "android-x86")
+  else()
+    message(
+      FATAL_ERROR "Unknown ABI for target triplet ${VCPKG_TARGET_TRIPLET}")
+  endif()
 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-    if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
-        set(PLATFORM linux-x86_64)
-    else()
-        set(PLATFORM linux-generic32)
-    endif()
+  if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+    set(PLATFORM linux-x86_64)
+  else()
+    set(PLATFORM linux-generic32)
+  endif()
 elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-    set(PLATFORM darwin64-x86_64-cc)
+  set(PLATFORM darwin64-x86_64-cc)
 elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
-    set(PLATFORM BSD-generic64)
+  set(PLATFORM BSD-generic64)
 else()
-    message(FATAL_ERROR "Unknown platform")
+  message(FATAL_ERROR "Unknown platform")
 endif()

 get_filename_component(COMPILER_ROOT "${CMAKE_C_COMPILER}" DIRECTORY)
@@ -34,40 +45,51 @@ message("CMAKE_INCLUDE_SYSTEM_FLAG_C=${CMAKE_INCLUDE_SYSTEM_FLAG_C}")

 set(CFLAGS "${CMAKE_C_FLAGS}")
 if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
-    set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}")
+  set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}")
 endif()
 if(CMAKE_C_COMPILER_TARGET)
-    set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET}${CMAKE_C_COMPILER_TARGET}")
+  set(CFLAGS
+      "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET}${CMAKE_C_COMPILER_TARGET}")
 endif()
 if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)
-    set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}")
+  set(CFLAGS
+      "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}"
+  )
 endif()
 if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
-    set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}")
+  set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}")
 elseif(CMAKE_OSX_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
-    set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_OSX_SYSROOT}")
+  set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_OSX_SYSROOT}")
 endif()

 string(REGEX REPLACE "^ " "" CFLAGS "${CFLAGS}")

+get_filename_component(MSYS_BIN_DIR "${MAKE}" DIRECTORY)
+
+
+
 if(CMAKE_HOST_WIN32)
-    file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT};$ENV{PATH}")
+  file(TO_NATIVE_PATH "${COMPILER_ROOT};${MSYS_BIN_DIR};$ENV{PATH}" ENV_PATH)
 else()
-    file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT}:$ENV{PATH}")
+  file(TO_NATIVE_PATH "${COMPILER_ROOT}:${MSYS_BIN_DIR}:$ENV{PATH}" ENV_PATH_R)
+  string(REGEX REPLACE ";" ":" ENV_PATH "${ENV_PATH_R}")
 endif()
+
+message("Cmake host is ${CMAKE_HOST_WIN32} ${ENV_PATH}\n$ENV{PATH}") 
 set(ENV{ANDROID_DEV} "${CMAKE_SYSROOT}/usr")
 set(ENV{CC} "${CMAKE_C_COMPILER}")
+set(ENV{PATH} "${ENV_PATH}")

 message("ENV{ANDROID_DEV}=$ENV{ANDROID_DEV}")
+message("ENV{PATH}=$ENV{PATH}")

 get_filename_component(SOURCE_PATH_NAME "${SOURCE_PATH}" NAME)
 set(BUILDDIR "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_PATH_NAME}")

 if(NOT EXISTS "${BUILDDIR}")
-    file(COPY ${SOURCE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+  file(COPY ${SOURCE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 endif()

-get_filename_component(MSYS_BIN_DIR "${MAKE}" DIRECTORY)

 file(READ "${BUILDDIR}/Configure" _contents)
@@ -75,76 +97,61 @@ string(REPLACE "-mandroid" "" _contents "${_contents}")
 file(WRITE "${BUILDDIR}/Configure" "${_contents}")

 if(BUILD_SHARED_LIBS)
-    set(SHARED shared)
-    file(STRINGS "${BUILDDIR}/crypto/opensslv.h" SHLIB_VERSION
-        REGEX "^#[\t ]*define[\t ]+SHLIB_VERSION_NUMBER[\t ]+\".*\".*")
-    string(REGEX REPLACE "^.*SHLIB_VERSION_NUMBER[\t ]+\"([^\"]*)\".*$" "\\1"
-        SHLIB_VERSION "${SHLIB_VERSION}")
-    if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-        set(LIB_EXT dylib)
-        set(LIB_EXTS ${SHLIB_VERSION}.${LIB_EXT})
-    else()
-        set(LIB_EXT so)
-        set(LIB_EXTS ${LIB_EXT}.${SHLIB_VERSION})
-    endif()
-    list(APPEND LIB_EXTS ${LIB_EXT})
+  set(SHARED shared)
+  file(STRINGS "${BUILDDIR}/include/openssl/opensslv.h" SHLIB_VERSION
+       REGEX "^#[\t ]*define[\t ]+SHLIB_VERSION_NUMBER[\t ]+\".*\".*")
+  string(REGEX REPLACE "^.*SHLIB_VERSION_NUMBER[\t ]+\"([^\"]*)\".*$" "\\1"
+                       SHLIB_VERSION "${SHLIB_VERSION}")
+  if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+    set(LIB_EXT dylib)
+    set(LIB_EXTS ${SHLIB_VERSION}.${LIB_EXT})
+  else()
+    set(LIB_EXT so)
+    set(LIB_EXTS ${LIB_EXT}.${SHLIB_VERSION})
+  endif()
+  list(APPEND LIB_EXTS ${LIB_EXT})
 else()
-    set(SHARED no-shared)
-    set(LIB_EXTS a)
+  set(SHARED no-shared)
+  set(LIB_EXTS a)
 endif()
 foreach(lib ssl crypto)
-    foreach(ext ${LIB_EXTS})
-        list(APPEND INSTALL_LIBS "${BUILDDIR}/lib${lib}.${ext}")
-    endforeach()
+  foreach(ext ${LIB_EXTS})
+    list(APPEND INSTALL_LIBS "${BUILDDIR}/lib${lib}.${ext}")
+  endforeach()
 endforeach()

 if(CMAKE_HOST_WIN32)
-    set(ENV_COMMAND set)
-    set(PATH_VAR ";%PATH%")
+  set(ENV_COMMAND set)
 else()
-    set(ENV_COMMAND export)
-    set(PATH_VAR ":$ENV{PATH}")
+  set(ENV_COMMAND export)
 endif()

 add_custom_command(
-    OUTPUT "${BUILDDIR}/Makefile"
-    COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER}
-    COMMAND ${ENV_COMMAND} AR=${CMAKE_AR}
-    COMMAND ${ENV_COMMAND} LD=${CMAKE_LINKER}
-    COMMAND ${ENV_COMMAND} RANLIB=${CMAKE_RANLIB}
-    COMMAND ${ENV_COMMAND} MAKE=${MAKE}
-    COMMAND ${ENV_COMMAND} MAKEDEPPROG=${CMAKE_C_COMPILER}
-    COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
-    COMMAND "${PERL}" Configure
-        ${SHARED}
-        enable-static-engine
-        no-zlib
-        no-ssl2
-        no-idea
-        no-bf
-        no-cast
-        no-seed
-        no-md2
-        ${PLATFORM}
-        "--prefix=${CMAKE_INSTALL_PREFIX}"
-        "--openssldir=/etc/ssl"
-        ${CFLAGS}
-    COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
-    VERBATIM
-    WORKING_DIRECTORY "${BUILDDIR}"
-)
-
-add_custom_target(build_libs ALL
-    COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
-    COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h"
-    COMMAND "${MAKE}" build_libs
-    VERBATIM
-    WORKING_DIRECTORY "${BUILDDIR}"
-    DEPENDS "${BUILDDIR}/Makefile"
-    BYPRODUCTS ${INSTALL_LIBS}
-)
-
-install(
-    FILES ${INSTALL_LIBS}
-    DESTINATION lib
-)
+  OUTPUT "${BUILDDIR}/Makefile"
+  COMMAND ${ENV_COMMAND} "PATH=$ENV{PATH}"
+  COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER}
+  COMMAND ${ENV_COMMAND} AR=${CMAKE_AR}
+  COMMAND ${ENV_COMMAND} LD=${CMAKE_LINKER}
+  COMMAND ${ENV_COMMAND} RANLIB=${CMAKE_RANLIB}
+  COMMAND ${ENV_COMMAND} MAKE=${MAKE}
+  COMMAND ${ENV_COMMAND} MAKEDEPPROG=${CMAKE_C_COMPILER}
+  COMMAND
+    "${PERL}" Configure ${SHARED} enable-static-engine no-zlib no-ssl2 no-idea
+    no-bf no-cast no-seed no-md2 -no-integrated-as ${PLATFORM} "--prefix=${CMAKE_INSTALL_PREFIX}"
+    "--openssldir=/etc/ssl" ${CFLAGS}
+  COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P
+          "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
+  VERBATIM
+  WORKING_DIRECTORY "${BUILDDIR}")
+
+add_custom_target(
+  build_libs ALL
+  COMMAND ${ENV_COMMAND} "PATH=$ENV{PATH}"
+  COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h"
+  COMMAND "${MAKE}" build_libs
+  VERBATIM
+  WORKING_DIRECTORY "${BUILDDIR}"
+  DEPENDS "${BUILDDIR}/Makefile"
+  BYPRODUCTS ${INSTALL_LIBS})
+
+install(FILES ${INSTALL_LIBS} DESTINATION lib)
diff --git a/ports/openssl-unix/portfile.cmake b/ports/openssl-unix/portfile.cmake
index 1c1bbae0c..0be8c0df5 100644
--- a/ports/openssl-unix/portfile.cmake
+++ b/ports/openssl-unix/portfile.cmake
@@ -45,6 +45,7 @@ vcpkg_configure_cmake(
         -DSOURCE_PATH=${MASTER_COPY_SOURCE_PATH}
         -DPERL=${PERL}
         -DMAKE=${MAKE}
+        -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}
     OPTIONS_RELEASE
         -DINSTALL_HEADERS=ON
 )
shelper commented 4 years ago

still got error when run /home/mpnv38/develop/vcpkg/downloads/tools/cmake-3.14.0-linux/cmake-3.14.0-Linux-x86_64/bin/cmake --build . --config Debug --target install -- -v

the error is:

no NDK aarch64-linux-android-gcc on $PATH at (eval 7) line 124.
Configuring OpenSSL version 1.1.1d (0x1010104fL) for android-arm64
Using os-specific seed configuration
ninja: build stopped: subcommand failed.

I am using android r21b, my path to the toolchain is: /home/mpnv38/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin and there is NO aarch64-linux-android-gcc on $PATH, i thought we are using clang for this not gcc?

luncliff commented 4 years ago

@shelper I was working on this issue recently. Would you try this?

# package list
export CUSTOMIZED_PACKAGE_LIST="openssl"

# export 2 path for NDK cross compile
# ${ANDROID_NDK_HOME}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin
# ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}
PATH=${ANDROID_NDK_HOME}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH} \
    vcpkg install --triplet arm64-android   ${CUSTOMIZED_PACKAGE_LIST}

My team's triplet is arm64-android.cmake. And it is not that different from yours.

set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)

set(VCPKG_CMAKE_SYSTEM_NAME Android)
luncliff commented 4 years ago

Thanks for sharing yours @atkawa7 . Have you tried linking the bin from the change? I'd like to update my no-* list with yours. https://github.com/luncliff/vcpkg/commit/ffe704b50ad0844a246e290ef83ac26770381655

shelper commented 4 years ago

@luncliff still the same error

no NDK aarch64-linux-android-gcc on $PATH at (eval 7) line 124.
Configuring OpenSSL version 1.1.1d (0x1010104fL) for android-arm64
Using os-specific seed configuration
ninja: build stopped: subcommand failed.
JackBoosY commented 2 years ago

This issue hasn’t been updated in 3 month, if it is still an issue, please reopen this issue.