vcpkg/ports/soundtouch/portfile.cmake

74 lines
2.9 KiB
CMake

include(vcpkg_common_functions)
# NOTE: SoundTouch has a static c++ version too, but entirely different headers, api, etc
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
message(STATUS "Warning: Static building not supported. Building dynamic.")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
message(FATAL_ERROR "WindowsStore not supported")
endif()
set(VERSION 2.0.0)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/soundtouch)
vcpkg_download_distfile(ARCHIVE
URLS "https://www.surina.net/soundtouch/soundtouch-${VERSION}.zip"
FILENAME "soundtouch-${VERSION}.zip"
SHA512 50ef36b6cd21c16e235b908c5518e29b159b11f658a014c47fe767d3d8acebaefefec0ce253b4ed322cbd26387c69c0ed464ddace0c098e61d56d55c198117a5
)
# MSBuild performs in-source builds, so to ensure reliability we must clear them each time
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_execute_required_process(
COMMAND "devenv.exe"
"SoundTouchDLL.sln"
/Upgrade
WORKING_DIRECTORY ${SOURCE_PATH}/source/SoundTouchDLL
LOGNAME upgrade-Packet-${TARGET_TRIPLET}
)
IF (TRIPLET_SYSTEM_ARCH MATCHES "x64")
# There is no x64 Debug target
SET(BUILD_RELEASE_CONFIGURATION "ReleaseX64")
SET(BUILD_DEBUG_CONFIGURATION "ReleaseX64")
ELSE()
SET(BUILD_RELEASE_CONFIGURATION "Release")
SET(BUILD_DEBUG_CONFIGURATION "Debug")
ENDIF()
SET(BUILD_ARCH "Win32")
vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.sln
PLATFORM ${BUILD_ARCH}
RELEASE_CONFIGURATION ${BUILD_RELEASE_CONFIGURATION}
DEBUG_CONFIGURATION ${BUILD_DEBUG_CONFIGURATION}
)
file(INSTALL ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
# Handle libraries
IF (BUILD_RELEASE_CONFIGURATION STREQUAL ReleaseX64)
file(INSTALL ${SOURCE_PATH}/lib/SoundTouch_x64.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll_x64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
ELSE()
file(INSTALL ${SOURCE_PATH}/lib/SoundTouch.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
ENDIF()
IF (BUILD_DEBUG_CONFIGURATION STREQUAL ReleaseX64)
file(INSTALL ${SOURCE_PATH}/lib/SoundTouch_x64.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll_x64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
ELSE()
file(INSTALL ${SOURCE_PATH}/lib/SoundTouchD.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDllD.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
ENDIF()
file(COPY ${SOURCE_PATH}/COPYING.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/soundtouch)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/soundtouch/COPYING.TXT ${CURRENT_PACKAGES_DIR}/share/soundtouch/copyright)