Skip to content

Commit

Permalink
Merge pull request #184 from PPUC/libppuc
Browse files Browse the repository at this point in the history
PPUC should use libppuc, libzedmd, ...
  • Loading branch information
toxieainc committed Dec 31, 2023
2 parents b791a7a + daff1b9 commit e4df859
Show file tree
Hide file tree
Showing 22 changed files with 1,736 additions and 2,983 deletions.
62 changes: 45 additions & 17 deletions .github/workflows/ppuc.yml
Expand Up @@ -44,13 +44,13 @@ jobs:
fail-fast: false
matrix:
include:
- os: windows-latest
platform: win-x64
platform-name: x64
libpinmame: libpinmame-${{ needs.version.outputs.version }}.dll
ppuc: ppuc.exe
type: pc
- os: macos-latest
# - os: windows-latest
# platform: win-x64
# platform-name: x64
# libpinmame: libpinmame-${{ needs.version.outputs.version }}.dll
# ppuc: ppuc.exe
# type: pc
- os: macos-13
platform: osx-x64
libpinmame: libpinmame.${{ needs.version.outputs.version }}.dylib
ppuc: ppuc
Expand All @@ -74,12 +74,41 @@ jobs:
base_image: raspios_lite_arm64:latest
type: raspi
steps:
- uses: actions/checkout@v3
- if: matrix.os == 'ubuntu-latest' && matrix.type != 'raspi'
- name: Checkout pinmame
uses: actions/checkout@v3
# - name: Checkout libserum
# uses: actions/checkout@v3
# with:
# repository: zesinger/libserum
# path: libserum
# - if: matrix.type == 'pc'
# run: mv libserum ../libserum
- name: Checkout libserialport
uses: actions/checkout@v3
with:
repository: PPUC/libserialport
path: libserialport
- if: matrix.type == 'pc'
run: mv libserialport ../libserialport
- name: Checkout libzedmd
uses: actions/checkout@v3
with:
repository: PPUC/libzedmd
path: libzedmd
- if: matrix.type == 'pc'
run: mv libzedmd ../libzedmd
- name: Checkout libppuc
uses: actions/checkout@v3
with:
repository: PPUC/libppuc
path: libppuc
- if: matrix.type == 'pc'
run: mv libppuc ../libppuc
- if: matrix.os == 'ubuntu-latest' && matrix.type != 'raspi'
run: |
sudo apt-get update
sudo apt-get install cmake zlib1g-dev libopenal-dev libyaml-cpp-dev libusb-1.0-0-dev
- if: matrix.os == 'macos-latest'
sudo apt-get install zlib1g-dev libopenal-dev libyaml-cpp-dev libusb-1.0-0-dev
- if: matrix.os == 'macos-13'
run: |
brew install openal-soft libusb yaml-cpp
- if: matrix.os == 'windows-latest'
Expand All @@ -89,11 +118,6 @@ jobs:
vcpkgTriplet: ${{ matrix.platform-name }}-windows
vcpkgDirectory: deps/vcpkg
vcpkgGitCommitId: ce99c947b64ea3c0e274e18cc3035ca727681089
# - if: matrix.os == 'windows-latest'
# run: |
# curl -sL -H "Authorization: Token ${{ secrets.GH_PAT }}" https://api.github.com/repos/upx/upx/actions/artifacts/${{ env.UPX_ARTIFACT }}/zip -o upx.zip
# 7z x upx.zip -oupx
# rm upx.zip
- if: matrix.os == 'windows-latest'
run: |
curl -L https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-win64.zip -o upx.zip
Expand All @@ -106,7 +130,7 @@ jobs:
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
cmake -G "Visual Studio 17 2022" -A ${{ matrix.platform-name }} -DCMAKE_TOOLCHAIN_FILE=./deps/vcpkg/scripts/buildsystems/vcpkg.cmake -B build
cmake --build build --config Release
if [[ "${{ matrix.platform }}" != "win-arm64" ]]; then
if [[ "${{ matrix.platform }}" != "win-arm64" ]]; then
./upx/upx.exe --best --lzma build/Release/${{ matrix.libpinmame }}
fi
else
Expand Down Expand Up @@ -134,6 +158,10 @@ jobs:
copy_repository_path: /opt/pinmame
copy_artifact_path: tmp
commands: |
#mv libserum ../libserum
mv libserialport ../libserialport
mv libzedmd ../libzedmd
mv libppuc ../libppuc
apt-get update -y --allow-releaseinfo-change
apt-get install --no-install-recommends -y libasound2-dev libsdl2.dev libsdl2-mixer-dev libi2c-dev
apt-get install --no-install-recommends -y cmake zlib1g-dev libopenal-dev libyaml-cpp-dev libusb-1.0-0-dev
Expand Down
55 changes: 43 additions & 12 deletions cmake/ppuc/CMakeLists_linux-arm64.txt
Expand Up @@ -9,7 +9,6 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_MODULE_PATH cmake/ppuc)

add_compile_definitions(
HAS_M6809=1
Expand Down Expand Up @@ -85,11 +84,13 @@ add_compile_definitions(
NAME="LIBPINMAME"

LSB_FIRST
INLINE=static __inline__

PI=M_PI
UNIX
)

add_definitions( "-DINLINE=static inline __attribute__((always_inline))" )

add_library(pinmame SHARED
src/artwork.c
src/artwork.h
Expand Down Expand Up @@ -384,6 +385,8 @@ add_library(pinmame SHARED
src/wpc/degames.c
src/wpc/desound.c
src/wpc/desound.h
src/wpc/dmddevice.h
src/wpc/dmddevice.cpp
src/wpc/driver.c
src/wpc/efo.c
src/wpc/efosnd.c
Expand Down Expand Up @@ -593,38 +596,66 @@ find_package(ZLIB)

target_link_libraries(pinmame
ZLIB::ZLIB
pthread
)

set_target_properties(pinmame PROPERTIES
VERSION ${PROJECT_VERSION}
)

# use libppuc if it exists
get_filename_component(PPUC_CMAKE ../libppuc/CMakeLists.txt ABSOLUTE)
if(EXISTS ${PPUC_CMAKE})
message(STATUS "enabling PPUC i/o boards cummunication")
add_subdirectory(../libppuc libppuc)
add_definitions(-DPPUC_SUPPORT)
set (PPUC_LIBRARIES PPUC)
find_package(yaml-cpp REQUIRED)
link_directories(${YAML_CPP_LIBRARY_DIR})
else()
message(STATUS "libppuc source not found in ../libppuc, not enabling it")
endif()

# use libserum if it exists
get_filename_component(SERUM_CMAKE ../libserum/CMakeLists.txt ABSOLUTE)
if(EXISTS ${SERUM_CMAKE})
message(STATUS "enabling SERUM colorisation module")
add_subdirectory(../libserum libserum)
add_definitions(-DSERUM_SUPPORT)
set (SERUM_LIBRARIES Serum)
else()
message(STATUS "libserum source not found in ../libserum, not enabling it")
endif()

# use libzedmd if it exists
get_filename_component(ZEDMD_CMAKE ../libzedmd/CMakeLists.txt ABSOLUTE)
if(EXISTS ${ZEDMD_CMAKE})
message(STATUS "enabling ZeDMD communication module")
add_subdirectory(../libzedmd libzedmd)
add_definitions(-DZEDMD_SUPPORT)
set (ZEDMD_LIBRARIES ZeDMD)
else()
message(STATUS "libzedmd source not found in ../libzedmd, not enabling it")
endif()

add_executable(ppuc
src/ppuc/dmdcommon/dmdcommon.h
src/ppuc/dmdcommon/dmdcommon.cpp
src/ppuc/dmd/dmd.h
src/ppuc/dmd/dmd.cpp
src/ppuc/pin2dmd/pin2dmd.h
src/ppuc/pin2dmd/pin2dmd.cpp
src/ppuc/serialib/serialib.h
src/ppuc/serialib/serialib.cpp
src/ppuc/zedmd/zedmd.h
src/ppuc/zedmd/zedmd.cpp
src/ppuc/cargs/cargs.h
src/ppuc/cargs/cargs.c
src/ppuc/ppuc.cpp
)

find_package(libusb)

find_package(yaml-cpp)

find_package(OpenAL)

target_link_libraries(ppuc LINK_PUBLIC
pinmame
${PPUC_LIBRARIES}
${SERUM_LIBRARIES}
${ZEDMD_LIBRARIES}
libusb-1.0.so
yaml-cpp
openal
)
55 changes: 43 additions & 12 deletions cmake/ppuc/CMakeLists_linux-x64.txt
Expand Up @@ -9,7 +9,6 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_MODULE_PATH cmake/ppuc)

add_compile_definitions(
HAS_M6809=1
Expand Down Expand Up @@ -85,11 +84,13 @@ add_compile_definitions(
NAME="LIBPINMAME"

LSB_FIRST
INLINE=static __inline__

PI=M_PI
UNIX
)

add_definitions( "-DINLINE=static inline __attribute__((always_inline))" )

add_library(pinmame SHARED
src/artwork.c
src/artwork.h
Expand Down Expand Up @@ -384,6 +385,8 @@ add_library(pinmame SHARED
src/wpc/degames.c
src/wpc/desound.c
src/wpc/desound.h
src/wpc/dmddevice.h
src/wpc/dmddevice.cpp
src/wpc/driver.c
src/wpc/efo.c
src/wpc/efosnd.c
Expand Down Expand Up @@ -593,38 +596,66 @@ find_package(ZLIB)

target_link_libraries(pinmame
ZLIB::ZLIB
pthread
)

set_target_properties(pinmame PROPERTIES
VERSION ${PROJECT_VERSION}
)

# use libppuc if it exists
get_filename_component(PPUC_CMAKE ../libppuc/CMakeLists.txt ABSOLUTE)
if(EXISTS ${PPUC_CMAKE})
message(STATUS "enabling PPUC i/o boards cummunication")
add_subdirectory(../libppuc libppuc)
add_definitions(-DPPUC_SUPPORT)
set (PPUC_LIBRARIES PPUC)
find_package(yaml-cpp REQUIRED)
link_directories(${YAML_CPP_LIBRARY_DIR})
else()
message(STATUS "libppuc source not found in ../libppuc, not enabling it")
endif()

# use libserum if it exists
get_filename_component(SERUM_CMAKE ../libserum/CMakeLists.txt ABSOLUTE)
if(EXISTS ${SERUM_CMAKE})
message(STATUS "enabling SERUM colorisation module")
add_subdirectory(../libserum libserum)
add_definitions(-DSERUM_SUPPORT)
set (SERUM_LIBRARIES Serum)
else()
message(STATUS "libserum source not found in ../libserum, not enabling it")
endif()

# use libzedmd if it exists
get_filename_component(ZEDMD_CMAKE ../libzedmd/CMakeLists.txt ABSOLUTE)
if(EXISTS ${ZEDMD_CMAKE})
message(STATUS "enabling ZeDMD communication module")
add_subdirectory(../libzedmd libzedmd)
add_definitions(-DZEDMD_SUPPORT)
set (ZEDMD_LIBRARIES ZeDMD)
else()
message(STATUS "libzedmd source not found in ../libzedmd, not enabling it")
endif()

add_executable(ppuc
src/ppuc/dmdcommon/dmdcommon.h
src/ppuc/dmdcommon/dmdcommon.cpp
src/ppuc/dmd/dmd.h
src/ppuc/dmd/dmd.cpp
src/ppuc/pin2dmd/pin2dmd.h
src/ppuc/pin2dmd/pin2dmd.cpp
src/ppuc/serialib/serialib.h
src/ppuc/serialib/serialib.cpp
src/ppuc/zedmd/zedmd.h
src/ppuc/zedmd/zedmd.cpp
src/ppuc/cargs/cargs.h
src/ppuc/cargs/cargs.c
src/ppuc/ppuc.cpp
)

find_package(libusb)

find_package(yaml-cpp)

find_package(OpenAL)

target_link_libraries(ppuc LINK_PUBLIC
pinmame
${PPUC_LIBRARIES}
${SERUM_LIBRARIES}
${ZEDMD_LIBRARIES}
libusb-1.0.so
yaml-cpp
openal
)
48 changes: 40 additions & 8 deletions cmake/ppuc/CMakeLists_osx-x64.txt
Expand Up @@ -382,6 +382,8 @@ add_library(pinmame SHARED
src/wpc/degames.c
src/wpc/desound.c
src/wpc/desound.h
src/wpc/dmddevice.h
src/wpc/dmddevice.cpp
src/wpc/driver.c
src/wpc/efo.c
src/wpc/efosnd.c
Expand Down Expand Up @@ -596,17 +598,46 @@ set_target_properties(pinmame PROPERTIES
VERSION ${PROJECT_VERSION}
)

# use libppuc if it exists
get_filename_component(PPUC_CMAKE ../libppuc/CMakeLists.txt ABSOLUTE)
if(EXISTS ${PPUC_CMAKE})
message(STATUS "enabling PPUC i/o boards cummunication")
add_subdirectory(../libppuc libppuc)
add_definitions(-DPPUC_SUPPORT)
set (PPUC_LIBRARIES PPUC)
find_package(yaml-cpp REQUIRED)
link_directories(${YAML_CPP_LIBRARY_DIR})
else()
message(STATUS "libppuc source not found in ../libppuc, not enabling it")
endif()

# use libserum if it exists
get_filename_component(SERUM_CMAKE ../libserum/CMakeLists.txt ABSOLUTE)
if(EXISTS ${SERUM_CMAKE})
message(STATUS "enabling SERUM colorisation module")
add_subdirectory(../libserum libserum)
add_definitions(-DSERUM_SUPPORT)
set (SERUM_LIBRARIES Serum)
else()
message(STATUS "libserum source not found in ../libserum, not enabling it")
endif()

# use libzedmd if it exists
get_filename_component(ZEDMD_CMAKE ../libzedmd/CMakeLists.txt ABSOLUTE)
if(EXISTS ${ZEDMD_CMAKE})
message(STATUS "enabling ZeDMD communication module")
add_subdirectory(../libzedmd libzedmd)
add_definitions(-DZEDMD_SUPPORT)
set (ZEDMD_LIBRARIES ZeDMD)
else()
message(STATUS "libzedmd source not found in ../libzedmd, not enabling it")
endif()

add_executable(ppuc
src/ppuc/dmdcommon/dmdcommon.h
src/ppuc/dmdcommon/dmdcommon.cpp
src/ppuc/dmd/dmd.h
src/ppuc/dmd/dmd.cpp
src/ppuc/pin2dmd/pin2dmd.h
src/ppuc/pin2dmd/pin2dmd.cpp
src/ppuc/serialib/serialib.h
src/ppuc/serialib/serialib.cpp
src/ppuc/zedmd/zedmd.h
src/ppuc/zedmd/zedmd.cpp
src/ppuc/cargs/cargs.h
src/ppuc/cargs/cargs.c
src/ppuc/ppuc.cpp
Expand All @@ -615,14 +646,15 @@ add_executable(ppuc
target_include_directories(ppuc PUBLIC
/usr/local/opt/libusb/include
/usr/local/opt/openal-soft/include
/usr/local/opt/yaml-cpp/include
)

target_link_libraries(ppuc LINK_PUBLIC
pinmame
${PPUC_LIBRARIES}
${SERUM_LIBRARIES}
${ZEDMD_LIBRARIES}
/usr/local/opt/openal-soft/lib/libopenal.dylib
/usr/local/opt/libusb/lib/libusb-1.0.dylib
/usr/local/opt/yaml-cpp/lib/libyaml-cpp.dylib
)

set_target_properties(ppuc PROPERTIES
Expand Down

0 comments on commit e4df859

Please sign in to comment.