Build: Add support for Apple frameworks
Signed-off-by: Treata11 <treata11@yahoo.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||||
|
|
||||||
# As of 2018-12-26 ZSTD has been validated to build with cmake version 3.13.2 new policies.
|
# As of 2018-12-26 ZSTD has been validated to build with cmake version 3.13.2 new policies.
|
||||||
# Set and use the newest cmake policies that are validated to work
|
# Set and use the newest cmake policies that are validated to work
|
||||||
@@ -30,8 +30,11 @@ set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
|||||||
include(GetZstdLibraryVersion)
|
include(GetZstdLibraryVersion)
|
||||||
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH)
|
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH)
|
||||||
|
|
||||||
|
set(ZSTD_SHORT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}")
|
||||||
|
set(ZSTD_FULL_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|
||||||
|
|
||||||
project(zstd
|
project(zstd
|
||||||
VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}"
|
VERSION "${ZSTD_FULL_VERSION}"
|
||||||
LANGUAGES C # Main library is in C
|
LANGUAGES C # Main library is in C
|
||||||
ASM # And ASM
|
ASM # And ASM
|
||||||
CXX # Testing contributed code also utilizes CXX
|
CXX # Testing contributed code also utilizes CXX
|
||||||
@@ -82,6 +85,10 @@ else ()
|
|||||||
add_definitions(-DZSTD_LEGACY_SUPPORT=0)
|
add_definitions(-DZSTD_LEGACY_SUPPORT=0)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
option(ZSTD_FRAMEWORK "Build as Apple Frameworks" OFF)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
set(ZSTD_MULTITHREAD_SUPPORT_DEFAULT OFF)
|
set(ZSTD_MULTITHREAD_SUPPORT_DEFAULT OFF)
|
||||||
# Old versions of bionic libc don't have fseeko/ftello
|
# Old versions of bionic libc don't have fseeko/ftello
|
||||||
|
|||||||
@@ -205,8 +205,28 @@ if (ZSTD_BUILD_SHARED)
|
|||||||
libzstd_shared
|
libzstd_shared
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
OUTPUT_NAME zstd
|
OUTPUT_NAME zstd
|
||||||
VERSION ${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}
|
VERSION ${ZSTD_FULL_VERSION}
|
||||||
SOVERSION ${zstd_VERSION_MAJOR})
|
SOVERSION ${zstd_VERSION_MAJOR})
|
||||||
|
|
||||||
|
if (ZSTD_FRAMEWORK)
|
||||||
|
set_target_properties(
|
||||||
|
libzstd_shared
|
||||||
|
PROPERTIES
|
||||||
|
FRAMEWORK TRUE
|
||||||
|
FRAMEWORK_VERSION "${ZSTD_FULL_VERSION}"
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER "github.com/facebook/zstd"
|
||||||
|
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
||||||
|
PUBLIC_HEADER "${PublicHeaders}"
|
||||||
|
OUTPUT_NAME "zstd"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
|
||||||
|
MACOSX_FRAMEWORK_IDENTIFIER "github.com/facebook/zstd"
|
||||||
|
MACOSX_FRAMEWORK_BUNDLE_VERSION "${ZSTD_FULL_VERSION}"
|
||||||
|
MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${ZSTD_SHORT_VERSION}"
|
||||||
|
MACOSX_RPATH TRUE
|
||||||
|
RESOURCE ${PublicHeaders})
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
@@ -215,6 +235,26 @@ if (ZSTD_BUILD_STATIC)
|
|||||||
PROPERTIES
|
PROPERTIES
|
||||||
POSITION_INDEPENDENT_CODE On
|
POSITION_INDEPENDENT_CODE On
|
||||||
OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
|
OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
|
||||||
|
|
||||||
|
if (ZSTD_FRAMEWORK)
|
||||||
|
set_target_properties(
|
||||||
|
libzstd_static
|
||||||
|
PROPERTIES
|
||||||
|
FRAMEWORK TRUE
|
||||||
|
FRAMEWORK_VERSION "${ZSTD_FULL_VERSION}"
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER "github.com/facebook/zstd/${STATIC_LIBRARY_BASE_NAME}"
|
||||||
|
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
||||||
|
PUBLIC_HEADER "${PublicHeaders}"
|
||||||
|
OUTPUT_NAME "${STATIC_LIBRARY_BASE_NAME}"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO"
|
||||||
|
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
|
||||||
|
MACOSX_FRAMEWORK_IDENTIFIER "github.com/facebook/zstd/${STATIC_LIBRARY_BASE_NAME}"
|
||||||
|
MACOSX_FRAMEWORK_BUNDLE_VERSION "${ZSTD_FULL_VERSION}"
|
||||||
|
MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${ZSTD_SHORT_VERSION}"
|
||||||
|
MACOSX_RPATH TRUE
|
||||||
|
RESOURCE ${PublicHeaders})
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# pkg-config
|
# pkg-config
|
||||||
@@ -239,6 +279,9 @@ install(TARGETS ${library_targets}
|
|||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
|
FRAMEWORK DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT runtime OPTIONAL
|
||||||
|
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# uninstall target
|
# uninstall target
|
||||||
|
|||||||
Reference in New Issue
Block a user