Packages

Software TPM emulator

Current section

Files

Jump to
swtpm CMakeLists.txt
Raw

CMakeLists.txt

cmake_minimum_required(VERSION 3.20.0 FATAL_ERROR)
# dependency manager
set(CPM_VERSION 0.40.2)
set(CPM_SOURCE_CACHE ${CMAKE_CURRENT_SOURCE_DIR}/_build/cache/cpm)
set(CPM_USE_NAMED_CACHE_DIRECTORIES false)
set(CPM_PATH "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_VERSION}.cmake")
if(NOT EXISTS ${CPM_PATH})
message(STATUS "Downloading CPM.cmake to ${CPM_PATH}")
set(CPM_GH_URL https://github.com/cpm-cmake/cpm.cmake/releases/download)
set(CPM_RELEASE_URL ${CPM_GH_URL}/v${CPM_VERSION}/CPM.cmake)
file(DOWNLOAD ${CPM_RELEASE_URL} ${CPM_PATH})
endif()
include(${CPM_PATH})
# dependencies
set(LIBTPMS_VER v0.10.0)
set(SWTPM_VER v0.10.0)
if(DEFINED ENV{LIBTPMS_VER})
set(LIBTPMS_VER $ENV{LIBTPMS_VER})
endif()
if(DEFINED ENV{SWTPM_VER})
set(SWTPM_VER $ENV{SWTPM_VER})
endif()
CPMFindPackage(
NAME libtpms
GITHUB_REPOSITORY stefanberger/libtpms
GIT_TAG ${LIBTPMS_VER})
CPMFindPackage(
NAME swtpm
GITHUB_REPOSITORY stefanberger/swtpm
GIT_TAG ${SWTPM_VER})
# build
project(swtpm_ex)
include(ExternalProject)
include(ProcessorCount)
find_program(MAKE make REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBTASN1 libtasn1 REQUIRED)
pkg_check_modules(LIBJASON_GLIB json-glib-1.0 REQUIRED)
pkg_check_modules(LIBGMP gmp REQUIRED)
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
pkg_check_modules(LIBSECCOMP libseccomp REQUIRED)
endif()
ProcessorCount(NPROC)
ExternalProject_Add(libtpms
SOURCE_DIR ${libtpms_SOURCE_DIR}
CONFIGURE_COMMAND ${libtpms_SOURCE_DIR}/autogen.sh
--with-tpm2
--with-openssl
--prefix=$ENV{MIX_APP_PATH}/priv
BUILD_COMMAND ${MAKE} -j ${NPROC})
ExternalProject_Add(swtpm
SOURCE_DIR ${swtpm_SOURCE_DIR}
CONFIGURE_COMMAND PKG_CONFIG_PATH=$ENV{MIX_APP_PATH}/priv/lib/pkgconfig
${swtpm_SOURCE_DIR}/autogen.sh
--disable-tests
--with-openssl
--prefix=$ENV{MIX_APP_PATH}/priv
BUILD_COMMAND ${MAKE} -j ${NPROC})