forked from wolfSSL/wolfssl
cmake: guard installation with WOLFSSL_INSTALL option
This commit is contained in:
committed by
Christian Luca Civello
parent
7adddc5fb8
commit
fca2f14f48
146
CMakeLists.txt
146
CMakeLists.txt
@ -214,6 +214,8 @@ if(WOLFSSL_REPRODUCIBLE_BUILD)
|
|||||||
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -D <TARGET>")
|
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -D <TARGET>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_option("WOLFSSL_INSTALL" "Create install target for WolfSSL project" "no" "yes;no")
|
||||||
|
|
||||||
# Support for forcing 32-bit mode
|
# Support for forcing 32-bit mode
|
||||||
# TODO: detect platform from other options
|
# TODO: detect platform from other options
|
||||||
add_option("WOLFSSL_32BIT"
|
add_option("WOLFSSL_32BIT"
|
||||||
@ -2409,82 +2411,86 @@ list(JOIN HEADER_EXCLUDE "|" EXCLUDED_HEADERS_REGEX)
|
|||||||
string(PREPEND EXCLUDED_HEADERS_REGEX "(")
|
string(PREPEND EXCLUDED_HEADERS_REGEX "(")
|
||||||
string(APPEND EXCLUDED_HEADERS_REGEX ")")
|
string(APPEND EXCLUDED_HEADERS_REGEX ")")
|
||||||
|
|
||||||
set(INSTALLED_EXAMPLES
|
if(WOLFSSL_INSTALL)
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/echoserver/echoserver.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-server.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-client-dtls.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-client.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-server-dtls.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/echoclient/echoclient.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/server/server.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/benchmark/tls_bench.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/examples/client/client.c)
|
|
||||||
|
|
||||||
# Install the library
|
set(INSTALLED_EXAMPLES
|
||||||
install(TARGETS wolfssl
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/echoserver/echoserver.c
|
||||||
EXPORT wolfssl-targets
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-server.c
|
||||||
LIBRARY DESTINATION lib
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-client-dtls.c
|
||||||
ARCHIVE DESTINATION lib
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-client.c
|
||||||
RUNTIME DESTINATION bin
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/sctp/sctp-server-dtls.c
|
||||||
)
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/echoclient/echoclient.c
|
||||||
# Install the headers
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/server/server.c
|
||||||
install(DIRECTORY ${WOLFSSL_OUTPUT_BASE}/wolfssl/
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/benchmark/tls_bench.c
|
||||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
|
${CMAKE_CURRENT_SOURCE_DIR}/examples/client/client.c)
|
||||||
FILES_MATCHING PATTERN "*.h"
|
|
||||||
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
|
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/
|
|
||||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
|
|
||||||
FILES_MATCHING PATTERN "*.h"
|
|
||||||
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
|
|
||||||
|
|
||||||
# Install the examples
|
|
||||||
install(FILES ${INSTALLED_EXAMPLES}
|
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}/example)
|
|
||||||
# Install README.txt and taoCert.txt
|
|
||||||
install(FILES
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/README.txt
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/certs/taoCert.txt
|
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
|
||||||
# Install the export set
|
|
||||||
install(EXPORT wolfssl-targets
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wolfssl
|
|
||||||
FILE wolfssl-targets.cmake
|
|
||||||
NAMESPACE wolfssl::)
|
|
||||||
|
|
||||||
# TODO: Distro build + rules for what to include in the distro.
|
# Install the library
|
||||||
# See various include.am files.
|
install(TARGETS wolfssl
|
||||||
|
EXPORT wolfssl-targets
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
)
|
||||||
|
# Install the headers
|
||||||
|
install(DIRECTORY ${WOLFSSL_OUTPUT_BASE}/wolfssl/
|
||||||
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
|
||||||
|
FILES_MATCHING PATTERN "*.h"
|
||||||
|
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
|
||||||
|
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/
|
||||||
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
|
||||||
|
FILES_MATCHING PATTERN "*.h"
|
||||||
|
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
|
||||||
|
|
||||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
# Install the examples
|
||||||
set(exec_prefix "\${prefix}")
|
install(FILES ${INSTALLED_EXAMPLES}
|
||||||
set(libdir "\${exec_prefix}/lib")
|
DESTINATION ${CMAKE_INSTALL_DOCDIR}/example)
|
||||||
set(includedir "\${prefix}/include")
|
# Install README.txt and taoCert.txt
|
||||||
set(VERSION ${PROJECT_VERSION})
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/doc/README.txt
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/certs/taoCert.txt
|
||||||
|
DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||||
|
# Install the export set
|
||||||
|
install(EXPORT wolfssl-targets
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wolfssl
|
||||||
|
FILE wolfssl-targets.cmake
|
||||||
|
NAMESPACE wolfssl::)
|
||||||
|
|
||||||
configure_file(support/wolfssl.pc.in ${CMAKE_CURRENT_BINARY_DIR}/support/wolfssl.pc @ONLY)
|
# TODO: Distro build + rules for what to include in the distro.
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/support/wolfssl.pc
|
# See various include.am files.
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in
|
set(exec_prefix "\${prefix}")
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config.cmake"
|
set(libdir "\${exec_prefix}/lib")
|
||||||
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/wolfssl"
|
set(includedir "\${prefix}/include")
|
||||||
NO_SET_AND_CHECK_MACRO
|
set(VERSION ${PROJECT_VERSION})
|
||||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
|
||||||
)
|
|
||||||
|
|
||||||
export(EXPORT wolfssl-targets
|
configure_file(support/wolfssl.pc.in ${CMAKE_CURRENT_BINARY_DIR}/support/wolfssl.pc @ONLY)
|
||||||
FILE "${CMAKE_CURRENT_BINARY_DIR}/wolfssl-targets.cmake"
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/support/wolfssl.pc
|
||||||
NAMESPACE wolfssl::
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
)
|
|
||||||
|
|
||||||
write_basic_package_version_file(
|
include(CMakePackageConfigHelpers)
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config-version.cmake"
|
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in
|
||||||
VERSION "${wolfssl_VERSION_MAJOR}.${wolfssl_VERSION_MINOR}"
|
"${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config.cmake"
|
||||||
COMPATIBILITY AnyNewerVersion
|
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/wolfssl"
|
||||||
)
|
NO_SET_AND_CHECK_MACRO
|
||||||
|
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||||
|
)
|
||||||
|
|
||||||
install(FILES
|
export(EXPORT wolfssl-targets
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config.cmake
|
FILE "${CMAKE_CURRENT_BINARY_DIR}/wolfssl-targets.cmake"
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config-version.cmake
|
NAMESPACE wolfssl::
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wolfssl
|
)
|
||||||
)
|
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config-version.cmake"
|
||||||
|
VERSION "${wolfssl_VERSION_MAJOR}.${wolfssl_VERSION_MINOR}"
|
||||||
|
COMPATIBILITY AnyNewerVersion
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config.cmake
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/wolfssl-config-version.cmake
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wolfssl
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
Reference in New Issue
Block a user