Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 101 additions & 17 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
COMMON_CTEST_ARGS: --no-compress-output --output-on-failure -E "^set_option$"

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
path: src
- name: Install dependencies
Expand All @@ -33,7 +33,7 @@ jobs:
working-directory: build/static
run: ninja install
- name: Check artifacts
uses: andstor/file-existence-action@v2
uses: andstor/file-existence-action@v3
with:
files: "install/shared/lib/libusb-1.0.so, \
install/shared/include/libusb-1.0/libusb.h, \
Expand All @@ -50,21 +50,21 @@ jobs:
run: ctest --output-junit test_static.xml ${{ env.COMMON_CTEST_ARGS }}
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: Test Results Ubuntu
path: |
build/shared/test_shared.xml
build/static/test_static.xml


macos-buid:
macos-build:
runs-on: macos-latest
env:
COMMON_CTEST_ARGS: --no-compress-output --output-on-failure

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
path: src
- name: Install dependencies
Expand All @@ -81,7 +81,7 @@ jobs:
working-directory: build/static
run: ninja install
- name: Check artifacts
uses: andstor/file-existence-action@v2
uses: andstor/file-existence-action@v3
with:
files: "install/shared/lib/libusb-1.0.dylib, \
install/shared/include/libusb-1.0/libusb.h, \
Expand All @@ -98,22 +98,22 @@ jobs:
run: ctest --output-junit test_static.xml ${{ env.COMMON_CTEST_ARGS }}
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: Test Results macOS
path: |
build/shared/test_shared.xml
build/static/test_static.xml


windows-msvc-buid:
windows-msvc-build:
runs-on: windows-latest
env:
COMMON_CTEST_ARGS: --no-compress-output --output-on-failure
VCVARS64_PATH: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat'

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
path: src
- name: Install dependencies
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
call "${{ env.VCVARS64_PATH }}"
ninja install
- name: Check artifacts
uses: andstor/file-existence-action@v2
uses: andstor/file-existence-action@v3
with:
files: "install/msvc/lib/usb-1.0.lib, \
install/msvc/bin/libusb-1.0.dll, \
Expand Down Expand Up @@ -204,7 +204,7 @@ jobs:
run: ctest --output-junit test_ninja_static.xml ${{ env.COMMON_CTEST_ARGS }}
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: Test Results MSVC
path: |
Expand All @@ -224,7 +224,7 @@ jobs:
ANDROID_ARM64_CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
path: src
- name: Install dependencies
Expand All @@ -251,7 +251,7 @@ jobs:
working-directory: build/static_64
run: ninja install
- name: Check artifacts
uses: andstor/file-existence-action@v2
uses: andstor/file-existence-action@v3
with:
files: "install/shared_32/lib/libusb-1.0.so, \
install/shared_32/include/libusb-1.0/libusb.h, \
Expand All @@ -267,7 +267,7 @@ jobs:
emscripten-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
path: src
- name: Setup emsdk
Expand All @@ -287,15 +287,99 @@ jobs:
working-directory: build/static
run: ninja install
- name: Check artifacts
uses: andstor/file-existence-action@v2
uses: andstor/file-existence-action@v3
with:
files: "install/static/lib/libusb-1.0.a, \
install/static/include/libusb-1.0/libusb.h"
fail: true

netbsd-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
path: src
- uses: cross-platform-actions/action@v0.32.0
with:
operating_system: netbsd
architecture: x86-64
version: '10.1'
run: |
sudo pkgin update
sudo pkgin -y install cmake ninja-build
rm -rf build install
cmake -B build/shared -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install/shared -DLIBUSB_BUILD_EXAMPLES=ON -DLIBUSB_BUILD_TESTING=ON -DLIBUSB_BUILD_SHARED_LIBS=ON
cmake -B build/static -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install/static -DLIBUSB_BUILD_EXAMPLES=ON -DLIBUSB_BUILD_TESTING=ON -DLIBUSB_BUILD_SHARED_LIBS=OFF
ninja -C build/shared install
ninja -C build/static install
- name: Check artifacts
uses: andstor/file-existence-action@v3
with:
files: "install/shared/lib/libusb-1.0.so, \
install/shared/include/libusb-1.0/libusb.h, \
install/static/lib/libusb-1.0.a, \
install/static/include/libusb-1.0/libusb.h"
fail: true

omnios-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
path: src
- uses: cross-platform-actions/action@v0.32.0
with:
operating_system: omnios
architecture: x86-64
version: 'r151056'
run: |
sudo pkg refresh
sudo pkg install build-essential cmake header-ugen header-usb ninja
rm -rf build install
cmake -B build/shared -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install/shared -DLIBUSB_BUILD_EXAMPLES=ON -DLIBUSB_BUILD_TESTING=ON -DLIBUSB_BUILD_SHARED_LIBS=ON
cmake -B build/static -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install/static -DLIBUSB_BUILD_EXAMPLES=ON -DLIBUSB_BUILD_TESTING=ON -DLIBUSB_BUILD_SHARED_LIBS=OFF
ninja -C build/shared install
ninja -C build/static install
- name: Check artifacts
uses: andstor/file-existence-action@v3
with:
files: "install/shared/lib/libusb-1.0.so, \
install/shared/include/libusb-1.0/libusb.h, \
install/static/lib/libusb-1.0.a, \
install/static/include/libusb-1.0/libusb.h"
fail: true

openbsd-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
path: src
- uses: cross-platform-actions/action@v0.32.0
with:
operating_system: openbsd
architecture: x86-64
version: '7.8'
run: |
sudo pkg_add -u
sudo pkg_add cmake ninja
rm -rf build install
cmake -B build/shared -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install/shared -DLIBUSB_BUILD_EXAMPLES=ON -DLIBUSB_BUILD_TESTING=ON -DLIBUSB_BUILD_SHARED_LIBS=ON
cmake -B build/static -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install/static -DLIBUSB_BUILD_EXAMPLES=ON -DLIBUSB_BUILD_TESTING=ON -DLIBUSB_BUILD_SHARED_LIBS=OFF
ninja -C build/shared install
ninja -C build/static install
- name: Check artifacts
uses: andstor/file-existence-action@v3
with:
files: "install/shared/lib/libusb-1.0.so, \
install/shared/include/libusb-1.0/libusb.h, \
install/static/lib/libusb-1.0.a, \
install/static/include/libusb-1.0/libusb.h"
fail: true

publish-test-results:
name: "Publish Tests Results"
needs: [ubuntu-build, macos-buid, windows-msvc-buid, android-build]
needs: [ubuntu-build, macos-build, windows-msvc-build, android-build]
runs-on: ubuntu-latest
permissions:
checks: write
Expand All @@ -304,7 +388,7 @@ jobs:

steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
path: artifacts
- name: Publish Test Results
Expand Down
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ if(EMSCRIPTEN)
enable_language(CXX)
endif()

message("Building usb-1.0 for: ${CMAKE_SYSTEM_NAME}")

# This function generates all the local variables what end up getting written to config.
# We use a function as any vars set in this context don't mess with the rest of the file.
# e.g. Logging LIBUSB_ENABLE_LOGGING mapps to ENABLE_LOGGING in the config, keeps it clean
Expand Down Expand Up @@ -250,6 +252,11 @@ else()
target_sources(usb-1.0 PRIVATE
"${LIBUSB_ROOT}/os/openbsd_usb.c"
)
elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
target_sources(usb-1.0 PRIVATE
"${LIBUSB_ROOT}/os/sunos_usb.c"
)
target_link_libraries(usb-1.0 PRIVATE -ldevinfo -lnvpair)
elseif(EMSCRIPTEN)
target_sources(usb-1.0 PRIVATE
"${LIBUSB_ROOT}/os/emscripten_webusb.cpp"
Expand Down
5 changes: 5 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ target_link_libraries(libusb_tests_build_interface INTERFACE usb-1.0)
target_include_directories(libusb_tests_build_interface INTERFACE "${LIBUSB_GEN_INCLUDES}")
target_compile_definitions(libusb_tests_build_interface INTERFACE $<$<C_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS=1>)

if(CMAKE_SYSTEM_NAME MATCHES "NetBSD|OpenBSD")
find_package(Threads REQUIRED)
target_link_libraries(libusb_tests_build_interface INTERFACE Threads::Threads)
endif()

function(add_libusb_test TEST_NAME)
set(SOURCES "${TESTS_ROOT}/testlib.c")
foreach(SOURCE_NAME ${ARGN})
Expand Down
Loading