Skip to content

Commit 7e77804

Browse files
qurious-pixelExzap
authored andcommitted
Fix macos missing dylib file
1 parent f58b260 commit 7e77804

File tree

6 files changed

+90
-7
lines changed

6 files changed

+90
-7
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ endif()
1919
if (ENABLE_VCPKG)
2020
if(UNIX AND NOT APPLE)
2121
set(VCPKG_OVERLAY_PORTS "${CMAKE_CURRENT_LIST_DIR}/dependencies/vcpkg_overlay_ports_linux")
22+
elseif(APPLE)
23+
set(VCPKG_OVERLAY_PORTS "${CMAKE_CURRENT_LIST_DIR}/dependencies/vcpkg_overlay_ports_mac")
2224
else()
2325
set(VCPKG_OVERLAY_PORTS "${CMAKE_CURRENT_LIST_DIR}/dependencies/vcpkg_overlay_ports")
2426
endif()

dependencies/vcpkg_overlay_ports_mac/.gitkeep

Whitespace-only changes.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
set(VCPKG_LIBRARY_LINKAGE dynamic)
2+
3+
if(VCPKG_TARGET_IS_LINUX)
4+
message("${PORT} currently requires the following tools and libraries from the system package manager:\n autoreconf\n libudev\n\nThese can be installed on Ubuntu systems via apt-get install autoconf libudev-dev")
5+
endif()
6+
7+
set(VERSION 1.0.26)
8+
vcpkg_from_github(
9+
OUT_SOURCE_PATH SOURCE_PATH
10+
REPO libusb/libusb
11+
REF fcf0c710ef5911ae37fbbf1b39d48a89f6f14e8a # v1.0.26.11791 2023-03-12
12+
SHA512 0aa6439f7988487adf2a3bff473fec80b5c722a47f117a60696d2aa25c87cc3f20fb6aaca7c66e49be25db6a35eb0bb5f71ed7b211d1b8ee064c5d7f1b985c73
13+
HEAD_REF master
14+
)
15+
16+
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
17+
18+
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
19+
set(LIBUSB_PROJECT_TYPE dll)
20+
else()
21+
set(LIBUSB_PROJECT_TYPE static)
22+
endif()
23+
24+
# The README.md file in the archive is a symlink to README
25+
# which causes issues with the windows MSBUILD process
26+
file(REMOVE "${SOURCE_PATH}/README.md")
27+
28+
vcpkg_msbuild_install(
29+
SOURCE_PATH "${SOURCE_PATH}"
30+
PROJECT_SUBPATH msvc/libusb_${LIBUSB_PROJECT_TYPE}.vcxproj
31+
)
32+
33+
file(INSTALL "${SOURCE_PATH}/libusb/libusb.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/libusb-1.0")
34+
set(prefix "")
35+
set(exec_prefix [[${prefix}]])
36+
set(libdir [[${prefix}/lib]])
37+
set(includedir [[${prefix}/include]])
38+
configure_file("${SOURCE_PATH}/libusb-1.0.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libusb-1.0.pc" @ONLY)
39+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libusb-1.0.pc" " -lusb-1.0" " -llibusb-1.0")
40+
if(NOT VCPKG_BUILD_TYPE)
41+
set(includedir [[${prefix}/../include]])
42+
configure_file("${SOURCE_PATH}/libusb-1.0.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libusb-1.0.pc" @ONLY)
43+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libusb-1.0.pc" " -lusb-1.0" " -llibusb-1.0")
44+
endif()
45+
else()
46+
vcpkg_list(SET MAKE_OPTIONS)
47+
vcpkg_list(SET LIBUSB_LINK_LIBRARIES)
48+
if(VCPKG_TARGET_IS_EMSCRIPTEN)
49+
vcpkg_list(APPEND MAKE_OPTIONS BUILD_TRIPLET --host=wasm32)
50+
endif()
51+
if("udev" IN_LIST FEATURES)
52+
vcpkg_list(APPEND MAKE_OPTIONS "--enable-udev")
53+
vcpkg_list(APPEND LIBUSB_LINK_LIBRARIES udev)
54+
else()
55+
vcpkg_list(APPEND MAKE_OPTIONS "--disable-udev")
56+
endif()
57+
vcpkg_configure_make(
58+
SOURCE_PATH "${SOURCE_PATH}"
59+
AUTOCONFIG
60+
OPTIONS
61+
${MAKE_OPTIONS}
62+
"--enable-examples-build=no"
63+
"--enable-tests-build=no"
64+
)
65+
vcpkg_install_make()
66+
endif()
67+
68+
vcpkg_fixup_pkgconfig()
69+
70+
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
71+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
libusb can be imported via CMake FindPkgConfig module:
2+
find_package(PkgConfig REQUIRED)
3+
pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0)
4+
5+
target_link_libraries(main PRIVATE PkgConfig::libusb)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "libusb",
3+
"version": "1.0.26.11791",
4+
"port-version": 7,
5+
"description": "a cross-platform library to access USB devices",
6+
"homepage": "https://github.com/libusb/libusb",
7+
"license": "LGPL-2.1-or-later"
8+
}

src/CMakeLists.txt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,10 @@ if (MACOS_BUNDLE)
9696
endforeach(folder)
9797

9898
add_custom_command (TARGET CemuBin POST_BUILD
99-
COMMAND ${CMAKE_COMMAND} ARGS -E copy "/usr/local/lib/libMoltenVK.dylib" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/Frameworks/libMoltenVK.dylib")
100-
101-
add_custom_command (TARGET CemuBin POST_BUILD
102-
COMMAND bash -c "install_name_tool -add_rpath @executable_path/../Frameworks ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}")
103-
104-
add_custom_command (TARGET CemuBin POST_BUILD
105-
COMMAND bash -c "install_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib @executable_path/../Frameworks/libusb-1.0.0.dylib ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}")
99+
COMMAND ${CMAKE_COMMAND} ARGS -E copy "/usr/local/lib/libMoltenVK.dylib" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/Frameworks/libMoltenVK.dylib"
100+
COMMAND ${CMAKE_COMMAND} ARGS -E copy "${CMAKE_BINARY_DIR}/vcpkg_installed/x64-osx/lib/libusb-1.0.0.dylib" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/Frameworks/libusb-1.0.0.dylib"
101+
COMMAND bash -c "install_name_tool -add_rpath @executable_path/../Frameworks ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}"
102+
COMMAND bash -c "install_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib @executable_path/../Frameworks/libusb-1.0.0.dylib ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}")
106103
endif()
107104

108105
set_target_properties(CemuBin PROPERTIES

0 commit comments

Comments
 (0)