aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ableton-link/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/ableton-link/portfile.cmake')
-rw-r--r--vcpkg/ports/ableton-link/portfile.cmake84
1 files changed, 84 insertions, 0 deletions
diff --git a/vcpkg/ports/ableton-link/portfile.cmake b/vcpkg/ports/ableton-link/portfile.cmake
new file mode 100644
index 0000000..4bfcc1a
--- /dev/null
+++ b/vcpkg/ports/ableton-link/portfile.cmake
@@ -0,0 +1,84 @@
+#header-only library
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Ableton/link
+ REF "Link-${VERSION}"
+ SHA512 889aa8cf56df19631a15cc4e245f3b7165a1d08aa199446de3b209c5be58904c11776899e9202900e73cc90ea63d366c6c3b2628657dac96db5a16a5217b3df7
+ HEAD_REF master
+ PATCHES
+ replace_local_asiostandalone_by_vcpkg_asio.patch
+ replace_asiosdk_download_by_vcpkg_asiosdk.patch
+ replace_local_catch_by_vcpkg_catch2.patch
+ no-werror.patch
+)
+# Note that the dependencies ASIO and ASIOSDK are completely different things:
+# -ASIO (ASyncronous IO) is a cross-platform C++ library for network and low-level I/O programming
+# -ASIOSDK is the SDK for the Steinberg ASIO (Audio Stream Input/Output) driver, for profesional Windows audio applications
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+FEATURES
+ "discoverytest" LinkDiscoveryTest
+ "coretest" LinkCoreTest
+ "hut" LinkHut
+ "hutsilent" LinkHutSilent
+)
+
+file(REMOVE_RECURSE "${SOURCE_PATH}/ci")
+file(REMOVE_RECURSE "${SOURCE_PATH}/modules")
+file(REMOVE_RECURSE "${SOURCE_PATH}/third_party")
+
+set(NEED_CATCH2 OFF)
+if ("coretest" IN_LIST FEATURES)
+ set(NEED_CATCH2 ON)
+endif()
+if ("discoverytest" IN_LIST FEATURES)
+ set(NEED_CATCH2 ON)
+endif()
+
+set(NEED_ASIOSDK OFF)
+if ("hut" IN_LIST FEATURES)
+ if(VCPKG_TARGET_IS_WINDOWS)
+ # Need Steinberg ASIO audio driver SDK (only this low-latency audio driver makes the developer tool 'hut' useful on Windows)
+ set(NEED_ASIOSDK ON)
+ endif()
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DNEED_CATCH2=${NEED_CATCH2}
+ -DLINK_BUILD_ASIO=${NEED_ASIOSDK}
+)
+
+if ("coretest" IN_LIST FEATURES)
+ vcpkg_cmake_build(TARGET LinkCoreTest)
+ file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/LinkCoreTest${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+endif()
+if ("discoverytest" IN_LIST FEATURES)
+ vcpkg_cmake_build(TARGET LinkDiscoveryTest)
+ file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/LinkDiscoveryTest${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+endif()
+if ("hut" IN_LIST FEATURES)
+ vcpkg_cmake_build(TARGET LinkHut)
+ file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/LinkHut${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+endif()
+if ("hutsilent" IN_LIST FEATURES)
+ vcpkg_cmake_build(TARGET LinkHutSilent)
+ file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/LinkHutSilent${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+endif()
+
+# We must not correct the CMake include path before build
+vcpkg_apply_patches(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PATCHES
+ correct_cmake_include_directory.patch
+)
+
+file(INSTALL "${SOURCE_PATH}/AbletonLinkConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/abletonlink")
+file(INSTALL "${SOURCE_PATH}/cmake_include/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/abletonlink/cmake_include/")
+file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" PATTERN "CMakeLists.txt" EXCLUDE)
+
+# Handle copyright
+file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)