From d0fe1bf362820e49594477a5d4c0369f0e2b6c60 Mon Sep 17 00:00:00 2001 From: Daniel Engberg Date: Fri, 8 Jan 2021 03:03:05 +0100 Subject: [PATCH] cmake cmake Signed-off-by: Daniel Engberg --- CMakeLists.txt.orig 2023-02-19 00:41:59 UTC +++ CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 3.5) + +project(zita-resampler LANGUAGES CXX) + +option(ZITA_RESAMPLER_ENABLE_SHARED "Build as a shared library" ON) +option(ZITA_RESAMPLER_ENABLE_STATIC "Build as a static library" OFF) + +set(ZITA_RESAMPLER_SOURCES + "source/cresampler.cc" + "source/resampler.cc" + "source/resampler-table.cc" + "source/vresampler.cc") + +find_package(Threads REQUIRED) + +set(ZITA_RESAMPLER_TARGETS) + +macro(extract_version file setting_name) + file(STRINGS ${file} VERSION_NUMBER REGEX "^${setting_name}") + string(REPLACE "= " ";" VERSION_NUMBER_LIST ${VERSION_NUMBER}) + list(GET VERSION_NUMBER_LIST 1 ${setting_name}) +endmacro(extract_version) + +extract_version(source/Makefile MAJVERS) +extract_version(source/Makefile MINVERS) + +set(PROJECT_VERSION "${MAJVERS}.${MINVERS}") + +string(REPLACE "." ";" VERSION_LIST ${PROJECT_VERSION}) +list(GET VERSION_LIST 0 PROJECT_VERSION_MAJOR) +list(GET VERSION_LIST 1 PROJECT_VERSION_MINOR) +# list(GET VERSION_LIST 2 PROJECT_VERSION_PATCH) + +set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DZITA_RESAMPLER_MAJOR_VERSION=${MAJVERS} -DZITA_RESAMPLER_MINOR_VERSION=${MINVERS} -fPIC") + +if(ZITA_RESAMPLER_ENABLE_SHARED) + add_library(zita-resampler SHARED ${ZITA_RESAMPLER_SOURCES}) + target_include_directories(zita-resampler + PUBLIC "${PROJECT_SOURCE_DIR}/source") + target_link_libraries(zita-resampler PUBLIC ${CMAKE_THREAD_LIBS_INIT}) + set_target_properties(zita-resampler PROPERTIES + VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION_MAJOR}") + list(APPEND ZITA_RESAMPLER_TARGETS zita-resampler) +endif() + +if(ZITA_RESAMPLER_ENABLE_STATIC) + add_library(zita-resampler-static STATIC ${ZITA_RESAMPLER_SOURCES}) + target_include_directories(zita-resampler-static + PUBLIC "${PROJECT_SOURCE_DIR}/source") + target_link_libraries(zita-resampler-static PUBLIC ${CMAKE_THREAD_LIBS_INIT}) + set_target_properties(zita-resampler-static PROPERTIES + OUTPUT_NAME "zita-resampler") + list(APPEND ZITA_RESAMPLER_TARGETS zita-resampler-static) +endif() + +install(TARGETS ${ZITA_RESAMPLER_TARGETS} + LIBRARY DESTINATION "lib" + ARCHIVE DESTINATION "lib" + RUNTIME DESTINATION "bin") +install(DIRECTORY "source/zita-resampler" + DESTINATION "include")