diff --git a/.github/workflows/libdmdutil.yml b/.github/workflows/libdmdutil.yml index 281f651..9e2d74b 100644 --- a/.github/workflows/libdmdutil.yml +++ b/.github/workflows/libdmdutil.yml @@ -102,18 +102,21 @@ jobs: if [[ "${{ matrix.platform }}" == "win" ]]; then ARTIFACT_PATH="tmp" if [[ "${{ matrix.arch }}" == "x64" ]]; then - cp build/Release/*64.lib tmp - cp build/Release/*64.dll tmp + LIBS=(dmdutil64 cargs64 zedmd64 serum64 libusb64-1.0 libserialport64 sockpp64 pupdmd64 vni64) else - cp build/Release/*.lib tmp - cp build/Release/*.dll tmp + LIBS=(dmdutil cargs zedmd serum libusb-1.0 libserialport sockpp pupdmd vni) fi + for LIB in "${LIBS[@]}"; do + cp "build/Release/${LIB}.lib" tmp + cp "build/Release/${LIB}.dll" tmp + done cp build/Release/dmdserver.exe tmp cp build/Release/dmdserver_test.exe tmp cp build/Release/dmdutil_static.lib tmp cp build/Release/dmdutil_test_s.exe tmp cp build/Release/dmdutil_test.exe tmp cp build/Release/dmdutil-generate-scenes.exe tmp + cp build/Release/dmdutil-play-dump.exe tmp cp -r test tmp/ else ARTIFACT_PATH="libdmdutil-${{ needs.version.outputs.tag }}-${{ matrix.platform }}-${{ matrix.arch }}.tar.gz" @@ -125,6 +128,7 @@ jobs: cp build/dmdutil_test_s tmp cp build/dmdutil_test tmp cp build/dmdutil-generate-scenes tmp + cp build/dmdutil-play-dump tmp elif [[ "${{ matrix.platform }}" == "linux" ]]; then cp build/libdmdutil.a tmp cp -a build/*.{so,so.*} tmp @@ -133,6 +137,7 @@ jobs: cp build/dmdutil_test_s tmp cp build/dmdutil_test tmp cp build/dmdutil-generate-scenes tmp + cp build/dmdutil-play-dump tmp elif [[ "${{ matrix.platform }}" == "ios" || "${{ matrix.platform }}" == "ios-simulator" || "${{ matrix.platform }}" == "tvos" ]]; then cp build/libdmdutil.a tmp cp -a build/*.dylib tmp diff --git a/CMakeLists.txt b/CMakeLists.txt index e5a134c..a53b795 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,30 +96,14 @@ set(DMDUTIL_SOURCES ) set(DMDUTIL_COMPILE_DEFINITIONS "") -set(DMDUTIL_PIN2DMD_LIBS "") if(PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "macos" OR PLATFORM STREQUAL "linux") list(APPEND DMDUTIL_SOURCES src/PixelcadeDMD.cpp + src/PIN2DMD.cpp ) endif() -if(PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "macos" OR PLATFORM STREQUAL "linux") - list(APPEND DMDUTIL_SOURCES - src/PIN2DMD.cpp - ) - list(APPEND DMDUTIL_COMPILE_DEFINITIONS DMDUTIL_ENABLE_PIN2DMD) - if(PLATFORM STREQUAL "win") - if(ARCH STREQUAL "x64") - list(APPEND DMDUTIL_PIN2DMD_LIBS libusb64-1.0) - else() - list(APPEND DMDUTIL_PIN2DMD_LIBS libusb-1.0) - endif() - else() - list(APPEND DMDUTIL_PIN2DMD_LIBS usb-1.0) - endif() -endif() - set(DMDUTIL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include third-party/include @@ -139,20 +123,20 @@ if(BUILD_SHARED) third-party/runtime-libs/${PLATFORM}/${ARCH} ) if(ARCH STREQUAL "x64") - target_link_libraries(dmdutil_shared PUBLIC cargs64 zedmd64 serum64 vni64 libserialport64 sockpp64 pupdmd64 ws2_32) + target_link_libraries(dmdutil_shared PUBLIC cargs64 zedmd64 serum64 vni64 libusb64-1.0 libserialport64 sockpp64 pupdmd64 ws2_32) else() - target_link_libraries(dmdutil_shared PUBLIC cargs zedmd serum vni libserialport sockpp pupdmd ws2_32) + target_link_libraries(dmdutil_shared PUBLIC cargs zedmd serum vni libusb-1.0 libserialport sockpp pupdmd ws2_32) endif() elseif(PLATFORM STREQUAL "macos") target_link_directories(dmdutil_shared PUBLIC third-party/runtime-libs/${PLATFORM}/${ARCH} ) - target_link_libraries(dmdutil_shared PUBLIC cargs zedmd serum vni serialport sockpp pupdmd) + target_link_libraries(dmdutil_shared PUBLIC cargs zedmd serum vni usb-1.0 serialport sockpp pupdmd) elseif(PLATFORM STREQUAL "linux") target_link_directories(dmdutil_shared PUBLIC third-party/runtime-libs/${PLATFORM}/${ARCH} ) - target_link_libraries(dmdutil_shared PUBLIC cargs zedmd serum vni serialport sockpp pupdmd) + target_link_libraries(dmdutil_shared PUBLIC cargs zedmd serum vni serialport usb-1.0 sockpp pupdmd) elseif(PLATFORM STREQUAL "ios" OR PLATFORM STREQUAL "ios-simulator" OR PLATFORM STREQUAL "tvos") target_link_directories(dmdutil_shared PUBLIC third-party/build-libs/${PLATFORM}/${ARCH} @@ -165,10 +149,6 @@ if(BUILD_SHARED) target_link_libraries(dmdutil_shared PUBLIC zedmd serum vni sockpp pupdmd) endif() - if(DMDUTIL_PIN2DMD_LIBS) - target_link_libraries(dmdutil_shared PUBLIC ${DMDUTIL_PIN2DMD_LIBS}) - endif() - if(PLATFORM STREQUAL "win" AND ARCH STREQUAL "x64") set(DMDUTIL_OUTPUT_NAME "dmdutil64") else() @@ -230,10 +210,6 @@ if(BUILD_STATIC) target_compile_definitions(dmdutil_static PUBLIC ${DMDUTIL_COMPILE_DEFINITIONS}) endif() - if(DMDUTIL_PIN2DMD_LIBS) - target_link_libraries(dmdutil_static PUBLIC ${DMDUTIL_PIN2DMD_LIBS}) - endif() - if(PLATFORM STREQUAL "win") set_target_properties(dmdutil_static PROPERTIES OUTPUT_NAME "dmdutil_static" @@ -260,20 +236,20 @@ if(BUILD_STATIC) third-party/runtime-libs/${PLATFORM}/${ARCH} ) if(ARCH STREQUAL "x64") - target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs64 zedmd64 serum64 vni64 libserialport64 sockpp64 pupdmd64 ws2_32) + target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs64 zedmd64 serum64 vni64 libusb64-1.0 libserialport64 sockpp64 pupdmd64 ws2_32) else() - target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs zedmd serum vni libserialport sockpp pupdmd ws2_32) + target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs zedmd serum vni libusb-1.0 libserialport sockpp pupdmd ws2_32) endif() elseif(PLATFORM STREQUAL "macos") target_link_directories(dmdutil_test_s PUBLIC third-party/runtime-libs/${PLATFORM}/${ARCH} ) - target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs zedmd serum vni serialport sockpp pupdmd) + target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs zedmd serum vni usb-1.0 serialport sockpp pupdmd) elseif(PLATFORM STREQUAL "linux") target_link_directories(dmdutil_test_s PUBLIC third-party/runtime-libs/${PLATFORM}/${ARCH} ) - target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs zedmd serum vni serialport sockpp pupdmd) + target_link_libraries(dmdutil_test_s PUBLIC dmdutil_static cargs zedmd serum vni usb-1.0 serialport sockpp pupdmd) endif() if(POST_BUILD_COPY_EXT_LIBS) @@ -286,35 +262,44 @@ if(POST_BUILD_COPY_EXT_LIBS AND (PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "m add_custom_target(copy_ext_libs ALL) if(PLATFORM STREQUAL "win") + add_dependencies(copy_ext_libs dmdutil_shared) if(ARCH STREQUAL "x64") add_custom_command(TARGET copy_ext_libs POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/cargs64.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/cargs64.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/zedmd64.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/zedmd64.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/serum64.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/serum64.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/libserialport64.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/libserialport64.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/sockpp64.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/sockpp64.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/pupdmd64.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/pupdmd64.dll" "${CMAKE_BINARY_DIR}" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/cargs64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/cargs64.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/zedmd64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/zedmd64.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/serum64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/serum64.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/libusb64-1.0.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/libusb64-1.0.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/libserialport64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/libserialport64.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/sockpp64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/sockpp64.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/pupdmd64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/pupdmd64.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/vni64.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/vni64.dll" "$" ) else() add_custom_command(TARGET copy_ext_libs POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/cargs.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/cargs.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/zedmd.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/zedmd.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/serum.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/serum.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/libserialport.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/libserialport.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/sockpp.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/sockpp.dll" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/pupdmd.lib" "${CMAKE_BINARY_DIR}" - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/pupdmd.dll" "${CMAKE_BINARY_DIR}" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/cargs.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/cargs.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/zedmd.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/zedmd.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/serum.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/serum.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/libusb-1.0.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/libusb-1.0.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/libserialport.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/libserialport.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/sockpp.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/sockpp.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/pupdmd.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/pupdmd.dll" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/build-libs/${PLATFORM}/${ARCH}/vni.lib" "$" + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/third-party/runtime-libs/${PLATFORM}/${ARCH}/vni.dll" "$" ) endif() elseif(PLATFORM STREQUAL "macos") diff --git a/include/DMDUtil/DMDUtil.h b/include/DMDUtil/DMDUtil.h index 181d433..f3fd696 100644 --- a/include/DMDUtil/DMDUtil.h +++ b/include/DMDUtil/DMDUtil.h @@ -1,7 +1,7 @@ #pragma once #define DMDUTIL_VERSION_MAJOR 0 // X Digits -#define DMDUTIL_VERSION_MINOR 11 // Max 2 Digits +#define DMDUTIL_VERSION_MINOR 12 // Max 2 Digits #define DMDUTIL_VERSION_PATCH 0 // Max 2 Digits #define _DMDUTIL_STR(x) #x