Open droscoe opened 1 year ago
What is libpinmame used for?
libpinmame
is a standalone library used to provide PinMAME emulation to other applications.
It is primarily used by:
I'm sure there are probably others using it that I don't know about.
Anyway, these projects run on everything - Win, MacOS, iOS, tvOS, Android, and Linux.
I realize many of the cmake files could be combined into one master file, but my goal at the time was that a person could easily compare them to see what was different between platforms.
What is libpinmame used for?
libpinmame
is a standalone library used to provide PinMAME emulation to other applications.It is primarily used by:
- PinMAME for .NET --> VisualPinball.Engine.PinMAME --> VisualPinball.Engine
- Visual Pinball Standalone
I'm sure there are probably others using it that I don't know about.
Anyway, these projects run on everything - Win, MacOS, iOS, tvOS, Android, and Linux.
I realize many of the cmake files could be combined into one master file, but my goal at the time was that a person could easily compare them to see what was different between platforms.
Thanks for that information. I’m not very interested in combining cmake files either. I’m more interested in separating dependencies so they don’t have to be compiled into each project. I’m trying to get a feel for the ecosystem to better understand the scope and concerns that need to be considered.
@jsm174 Just took a look at the projects you linked. WOW.! I had no idea some of these existed. I have one comment regarding the CMAKE scripts. I see a lot of stuff like this:
add_custom_command(TARGET vpinball POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_SOURCE_DIR}/scripts" "$<TARGET_FILE_DIR:vpinball>/scripts"
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_SOURCE_DIR}/tables" "$<TARGET_FILE_DIR:vpinball>/tables"
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_SOURCE_DIR}/txt" "$<TARGET_FILE_DIR:vpinball>/docs"
There is support for an install target in CMake which could simplify a lot of this. You may already know this, and had good reason to do it as an explicit custom target.
BTW.. I am writing this stuff here because I don't know any better place/method to discuss. If there is a better option, like a Discord, etc. Please let me know. I do not want to annoy the devs if this is not the best place for this, Please shoot me a message via email: twistgrav@yahoo.com, or discord @MrGrynch#1235. Cheers!
After speaking with @jsm174 , to do this right, the non-Windows build scripts would need to be modified to reflect the resulting project layout. This could be made simpler by using CMake. If there are any volunteers, please DM me on Discord (@MrGrynch#1235). I really think this is a worthwhile change, but need to be cautious.
I'm going to close this for now, to reduce clutter in the issue list. I may re-create a formal issue at a later time.
No need to close things. We only have ~20 issues.
No need to close things. We only have ~20 issues.
Ok, that's fine. I do this for a living (as perhaps you do?), so it's habit to groom backlog issues. I apologize if I presume too much.
All good! Its just that i don't think that 20 is already much. I'm used to at least 3digit counts. ;) (only the P0s/Showstoppers ;))
This way, potential new devs could hopefully also easier find something interesting for them, too.
How can PinMAME - Visual Pinball be run on Android?
How can PinMAME - Visual Pinball be run on Android?
I'm currently working on putting a video together on how to use it.
You can grab the latest android version from Visual Pinball repo actions.
https://github.com/vpinball/vpinball/actions/runs/5106936746
In the installation for VPinMAME there are several shared libraries:
My questions:
The reason I ask is because I see a lot of apparent duplication in the code that is compiled for these libraries, suggesting common dependencies that are being handled via compilation rather than linking.
If the common dependencies can be moved to static libs and linked by the dependent projects, it will have several benefits:
There are more, but I think you get the idea. This is not a trivial change and it will have the following impacts:
The above can be tested and validated prior to incorporation into Master. A feature branch off master can be created with a build process created to create and test the new approach. Once it's good, it can be merged up to the master branch
I am willing to do the project refactoring, and create the necessary CMake files to facilitate this. I will need help from the maintainers to set up the feature branch and automated build, as I do not have that access. We will need testers for the non-Windows projects to ensure that we don't adversely impact them.