103 lines
5 KiB
CMake
103 lines
5 KiB
CMake
cmake_minimum_required(VERSION 3.29)
|
|
|
|
# OpenSSL has an alternate install target called "install_sw" that skips installing the manual (which is fairly large).
|
|
# We use this on android and macos/linux.
|
|
project(ext_openssl)
|
|
include(${CMAKE_SOURCE_DIR}/../cmake/base-dep-options.cmake)
|
|
|
|
if (WIN32)
|
|
if (MSVC)
|
|
# Use the binaries from ConanCenter
|
|
ExternalProject_Add(ext_openssl
|
|
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
|
|
URL https://files.kde.org/krita/build/dependencies/openssl-1.1.1k-win64-msvc.tgz
|
|
URL_HASH SHA256=beae4c78e2f2b64cc3621402a34550ef1fffd08cd35b6a6802f22ed0460ff1d4
|
|
|
|
BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying openssl 64-bit dependencies
|
|
CONFIGURE_COMMAND ""
|
|
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/include -DDST=${EXTPREFIX}/include -P ${KRITA_CI_INSTALL_DIRECTORY}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/lib/libcrypto.lib -DDST=${EXTPREFIX}/lib -P ${KRITA_CI_INSTALL}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/lib/libssl.lib -DDST=${EXTPREFIX}/lib -P ${KRITA_CI_INSTALL}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/libcrypto-1_1-x64.dll -DDST=${EXTPREFIX}/bin -P ${KRITA_CI_INSTALL}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/libssl-1_1-x64.dll -DDST=${EXTPREFIX}/bin -P ${KRITA_CI_INSTALL}
|
|
|
|
UPDATE_COMMAND ""
|
|
)
|
|
else(MSVC)
|
|
# Use the binaries from curl for Windows (https://github.com/curl/curl-for-win).
|
|
ExternalProject_Add(ext_openssl
|
|
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
|
|
URL https://files.kde.org/krita/build/dependencies/openssl-1.1.1l_4-win64-mingw.zip
|
|
URL_HASH SHA256=6582432d4f537323bfa032a1d91b4eee12efdf0c72e4fabdacc0ac5dd1685e9a
|
|
|
|
BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying openssl 64-bit dependencies
|
|
CONFIGURE_COMMAND ""
|
|
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/include -DDST=${EXTPREFIX}/include -P ${KRITA_CI_INSTALL_DIRECTORY}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/lib/libcrypto.dll.a -DDST=${EXTPREFIX}/lib -P ${KRITA_CI_INSTALL}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/lib/libssl.dll.a -DDST=${EXTPREFIX}/lib -P ${KRITA_CI_INSTALL}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/libcrypto-1_1-x64.dll -DDST=${EXTPREFIX}/bin -P ${KRITA_CI_INSTALL}
|
|
COMMAND ${CMAKE_COMMAND} -DSRC=<SOURCE_DIR>/libssl-1_1-x64.dll -DDST=${EXTPREFIX}/bin -P ${KRITA_CI_INSTALL}
|
|
|
|
UPDATE_COMMAND ""
|
|
)
|
|
endif(MSVC)
|
|
elseif (ANDROID)
|
|
set(PAGE_ALIGNMENT_ENV_ARG)
|
|
if (PAGE_ALIGN_16K_LINKER_FLAGS)
|
|
message(STATUS "Enable 16K page alignment for OpenSSL")
|
|
set(PAGE_ALIGNMENT_ENV_ARG
|
|
LDFLAGS=${PAGE_ALIGN_16K_LINKER_FLAGS})
|
|
endif()
|
|
|
|
ExternalProject_Add( ext_openssl
|
|
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
|
|
URL https://www.openssl.org/source/openssl-1.1.1m.tar.gz
|
|
URL_HASH SHA256=f89199be8b23ca45fc7cb9f1d8d3ee67312318286ad030f5316aca6462db6c96
|
|
|
|
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env
|
|
${PAGE_ALIGNMENT_ENV_ARG}
|
|
ANDROID_NDK_HOME=${CMAKE_ANDROID_NDK}
|
|
ANDROID_NDK=${CMAKE_ANDROID_NDK}
|
|
PATH=${ANDROID_TOOLCHAIN_ROOT}/bin/:$ENV{PATH}
|
|
<SOURCE_DIR>/Configure android-${CMAKE_ANDROID_ARCH} -D__ANDROID_API__=${ANDROID_PLATFORM_LEVEL}
|
|
--prefix=${EXTPREFIX} --openssldir=ssl
|
|
|
|
BUILD_COMMAND ${CMAKE_COMMAND} -E env
|
|
PATH=${ANDROID_TOOLCHAIN_ROOT}/bin:$ENV{PATH}
|
|
CXXFLAGS=-D__ANDROID_API__=${ANDROID_PLATFORM_LEVEL}
|
|
make build_libs SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E env
|
|
PATH=${ANDROID_TOOLCHAIN_ROOT}/bin:$ENV{PATH}
|
|
CXXFLAGS=-D__ANDROID_API__=${ANDROID_PLATFORM_LEVEL}
|
|
# OpenSSL cannot handle DESTDIR as an environment variable. Instead,
|
|
# it expects it to be passed as an explicit make argument
|
|
${CMAKE_COMMAND} -P ${KRITA_CI_RUN_MAKE_WITH_DESTDIR} -- install_sw SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so
|
|
|
|
UPDATE_COMMAND ""
|
|
)
|
|
else (WIN32)
|
|
|
|
kis_ExternalProject_Add_with_separate_builds_apple(
|
|
ext_openssl
|
|
|
|
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
|
|
URL https://www.openssl.org/source/openssl-1.1.1m.tar.gz
|
|
URL_HASH SHA256=f89199be8b23ca45fc7cb9f1d8d3ee67312318286ad030f5316aca6462db6c96
|
|
|
|
WORKING_DIRECTORY <SOURCE_DIR>
|
|
CONFIGURE_COMMAND <SOURCE_DIR>/config --prefix=${EXTPREFIX} --openssldir=ssl
|
|
|
|
BUILD_COMMAND make clean COMMAND make -j${SUBMAKE_JOBS} depend COMMAND make -j${SUBMAKE_JOBS}
|
|
|
|
# OpenSSL cannot handle DESTDIR as an environment variable. Instead,
|
|
# it expects it to be passed as an explicit make argument
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} -P ${KRITA_CI_RUN_MAKE_WITH_DESTDIR} -- install_sw
|
|
|
|
UPDATE_COMMAND ""
|
|
)
|
|
|
|
endif (WIN32)
|
|
|
|
krita_add_to_ci_targets(ext_openssl)
|