msys2 / MINGW-packages

Package scripts for MinGW-w64 targets to build under MSYS2.
https://packages.msys2.org
BSD 3-Clause "New" or "Revised" License
2.27k stars 1.21k forks source link

Cross-Platform Process Library (libprocinfo) #6654

Open time-killer-games opened 4 years ago

time-killer-games commented 4 years ago

I wrote a cross-platform process library, since there doesn't appear to be that many around.

I was wondering if I made all the necessary helper functions where needed, and added a few more necessary features, would this be an acceptable package for mingw?

https://github.com/time-killer-games/enigma-dev/tree/master/ENIGMAsystem/SHELL/Universal_System/Extensions/ProcInfo

In the ProcInfo directory I linked specifically contains the only relevent files for the package. It has no error handling or debug printing which is on the to do list. It currently uses exceptions and on Windows I will need to find a way around that for users who don't like using exceptions in their projects.

I intend to eventually get this package officially onto other package managers as well such as homebrew, debian, arch linux, freebsd, and others. But I'm starting with Windows as that is where I first began my 10 year journey as a programmer so I find it only sensible to explore the possibility here first.

How would I go about getting this potentially added to the official packages that may be downloaded with MSYS2? Do I contribute it here in this repository?

See this file for a function/feature list and data types: https://github.com/time-killer-games/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/Extensions/ProcInfo/procinfo.h

The readme also has brief documentation: https://github.com/time-killer-games/enigma-dev#functions

mingwandroid commented 4 years ago

This looks to be very very useful! Great work.

Personally I would recommend getting github integrated CI running. Probably using Azure Pipelines and the new MSYS2 Github Actions stuff. You should look into adding a PKGBUILD to this repo too, well two, one for MSYS2 and one for ArchLinux.

I would also try to add CI for other systems. I only looked at the win32 code so far, but are the other platforms working too?

As well as personally being keen to see this provided by MSYS2 (and its cool that your want to see it here first!) I would like to use this code in my day job in the conda package manager. It looks like it fits a need I have there. Conda is also BSD licensed.

It would be great if you can figure out your versioning scheme and get Github releases up and running. As soon as you do, I'll create a conda recipe to build this on as many platforms as I can.

Thanks again!

mingwandroid commented 4 years ago

I also worry about the name you've picked. It sounds very generic which is I guess the idea, but I'd be surprised if you don't run into conflicts with existing things named the same!

time-killer-games commented 3 years ago

Hi again, @mingwandroid ! Were you still interested in my project at all? I renamed it, and the API's have been changed drastically for the better with many bug fixes and performance optimizations.

https://github.com/time-killer-games/xProcess

Here's the CI test repository, which I wrote in the form of a command line app for simplicity and it iterates through all of the key features in a single test. It builds and behaves just how you'd expect it to.

https://github.com/time-killer-games/xproc

Please get back to me as soon as you can, I'd love to hear your thoughts! I am no longer using strings split by delimiters for all the stuff that really should've been handled with vectors from the start, like I am doing now.

If you have any name ideas, this one is pretty generic as well, I'm not very good at naming things so I'm all ears.

I also have releases going.

1480c1 commented 3 years ago

@mingwandroid has sadly passed away,

You could try to see about making a PKGBUILD and opening a PR, so others can easily try it out.

As an aside, you might want to look into seeing if meson or some other build system might be better, although it may be hard looking at the script you have