mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-07 16:11:13 +00:00
109 lines
3.1 KiB
CMake
109 lines
3.1 KiB
CMake
cmake_minimum_required( VERSION 3.2 )
|
|
|
|
#declare project
|
|
project( rlottie VERSION 0.0.1 LANGUAGES C CXX ASM)
|
|
|
|
#declare target
|
|
add_library( rlottie SHARED "" )
|
|
|
|
#declare version of the target
|
|
set(player_version_major 0)
|
|
set(player_version_minor 0)
|
|
set(player_version_patch 1)
|
|
set(player_version ${player_version_major}.${player_version_minor}.${player_version_patch} )
|
|
set_target_properties(rlottie PROPERTIES
|
|
VERSION ${player_version}
|
|
SOVERSION ${player_version_major}
|
|
)
|
|
|
|
#declare alias so that library can be used inside the build tree, e.g. when testing
|
|
add_library(rlottie::rlottie ALIAS rlottie)
|
|
|
|
#declare target compilation options
|
|
target_compile_options(rlottie
|
|
PUBLIC
|
|
PRIVATE
|
|
-std=c++14 -O2 -Wall -Werror -Wextra -Wnon-virtual-dtor -Woverloaded-virtual -Wno-unused-parameter -fvisibility=hidden)
|
|
|
|
#declare dependancy
|
|
set( CMAKE_THREAD_PREFER_PTHREAD TRUE )
|
|
find_package( Threads )
|
|
|
|
target_link_libraries(rlottie
|
|
PUBLIC
|
|
"${CMAKE_THREAD_LIBS_INIT}"
|
|
)
|
|
|
|
# for dlopen, dlsym and dlclose dependancy
|
|
target_link_libraries(rlottie
|
|
PRIVATE
|
|
${CMAKE_DL_LIBS})
|
|
|
|
target_link_libraries(rlottie
|
|
PUBLIC
|
|
"-Wl,--no-undefined"
|
|
)
|
|
|
|
#declare source and include files
|
|
add_subdirectory(inc)
|
|
add_subdirectory(src)
|
|
add_subdirectory(example)
|
|
|
|
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
|
|
SET(EXEC_DIR ${PREFIX})
|
|
SET(LIBDIR ${LIB_INSTALL_DIR})
|
|
SET(INCDIR ${PREFIX}/include)
|
|
CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc)
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
|
|
|
|
|
|
#install header
|
|
install(FILES
|
|
inc/rlottie.h
|
|
inc/rlottie_capi.h
|
|
inc/rlottiecommon.h
|
|
DESTINATION include)
|
|
|
|
#install lib
|
|
install( TARGETS rlottie EXPORT rlottie-targets
|
|
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
|
|
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
|
|
INCLUDES DESTINATION include
|
|
)
|
|
|
|
#install config file.
|
|
|
|
install( EXPORT rlottie-targets
|
|
FILE rlottieTargets.cmake
|
|
NAMESPACE rlottie::
|
|
DESTINATION ${LIB_INSTALL_DIR}/cmake/rlottie
|
|
)
|
|
|
|
|
|
#Create a ConfigVersion.cmake file
|
|
include(CMakePackageConfigHelpers)
|
|
write_basic_package_version_file(
|
|
${CMAKE_CURRENT_BINARY_DIR}/rlottieConfigVersion.cmake
|
|
VERSION ${PROJECT_VERSION}
|
|
COMPATIBILITY AnyNewerVersion
|
|
)
|
|
|
|
configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/rlottieConfig.cmake.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/rlottieConfig.cmake
|
|
INSTALL_DESTINATION ${LIB_INSTALL_DIR}/cmake/rlottie
|
|
)
|
|
|
|
#Install the config, configversion and custom find modules
|
|
install(FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/rlottieConfig.cmake
|
|
${CMAKE_CURRENT_BINARY_DIR}/rlottieConfigVersion.cmake
|
|
DESTINATION ${LIB_INSTALL_DIR}/cmake/rlottie
|
|
)
|
|
|
|
|
|
export(EXPORT rlottie-targets FILE ${CMAKE_CURRENT_BINARY_DIR}/rlottieTargets.cmake NAMESPACE rlottie::)
|
|
|
|
#Register package in user's package registry
|
|
export(PACKAGE rlottie)
|
|
|