KazDragon / terminalpp

A C++ library for interacting with ANSI terminal windows.
MIT License
75 stars 10 forks source link

Conanify #240

Closed ruszkait closed 3 years ago

ruszkait commented 3 years ago

Dependencies of terminalpp (boost, fmt, gtest) are not coming from find_package, but they are coming from conan, so no manual installation of those libraries are necessary.


This change is Reviewable

ruszkait commented 3 years ago

Oppsie, I have just seen in the history, that you have just recently removed the conan dependencies from terminalpp. Can you tell me why did you decided so? I am fine with that, just curious about the reasons.

KazDragon commented 3 years ago

Honestly, it was getting a little unwieldy for me when developing something that required changes from across my stack. But I've been working on a solution for that recently. If you look over at my Server++ library, then that can build from both Conan and system dependencies as required. I'm going to port this technique over to my other libraries soon.

KazDragon commented 3 years ago

That conan_cmake_run function is really interesting, though.

KazDragon commented 3 years ago

I haven't used your PR, but Terminal++ can once again be built and used from Conan. I'll probably steal your changes to the documentation, though, so I'm leaving this where I can find it.

I'm really grateful to know that this has interest beyond just myself and a couple of others I know. If you have any feedback or ideas, or just want to show off what you did with it, then please do drop an issue. :)

ruszkait commented 3 years ago

Hi Matthiew,

I have been thinking for a while about making some scripting terminal. I work on C++ projects and it would be nice if I could "telnet" into the application and I would get console access. I would use telnet/ssh/putty or some ANSI compatible terminal emulator. From this terminal I could connect into a terminal server that runs inside my C++ process. There the server would dispatch the commands to a python/lua interpreter and from the scripting interpreter I could talk to the C++ live. I would also need some "readline" style features, like command line expansion, history, etc. I have already made such a terminal server for a project, but it would be handy if I could outsource the ANSI processing to an external library. This is where the terminal++ comes into the picture. I like the way you handled the issue: with those streaming capabilities I can use boost asio streams for TCP/IP and serial streams. I am not sure if boost asio supports the linux pseudo terminals, if not then I would also implement a stream buffer to do that. So this is what I aim for. So far I did not have the time to do it, but maybe I will find some....

Regards, Tamas

On Tue, Nov 24, 2020 at 4:28 PM Matthew Chaplain notifications@github.com wrote:

I haven't used your PR, but Terminal++ can once again be built and used from Conan. I'll probably steal your changes to the documentation, though, so I'm leaving this where I can find it.

I'm really grateful to know that this has interest beyond just myself and a couple of others I know. If you have any feedback or ideas, or just want to show off what you did with it, then please do drop an issue. :)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/KazDragon/terminalpp/pull/240#issuecomment-733048416, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIKEK4SBIZD4D3ZEHAAW77DSRPGKJANCNFSM4T6SY55Q .

KazDragon commented 3 years ago

That sounds almost exactly like my rationale for doing all of this. Check out my TextRay project: it combines this library with a basic Asio server, my Telnet library and my Munin UI component library that sits on top of Terminal++. You could implement some kind of command line thingy for that, but it would be done by hand.

ruszkait commented 3 years ago

Hi Matthew,

Wow, I have checked that TextRay project. It has even more than I expected, you also have telnet handling. I am very impressed. I also like the way you work (state pattern, pimpl-ing, async-io, etc). I work for Leica Geosystems in Switzerland, this company produces Surveying equipments ( https://leica-geosystems.com/), kind of related to Navigation, what you do now. I wonder if you would be interested working for us. The company language is english, we do C++..

Let me know if you are interested, if so then I will talk to my boss if we have an open position - we look for people, but because of COVID we are holding ourselves back.

Regards, Tamas

On Tue, Nov 24, 2020 at 9:46 PM Matthew Chaplain notifications@github.com wrote:

That sounds almost exactly like my rationale for doing all of this. Check out my TextRay project: it combines this library with a basic Asio server, my Telnet library and my Munin UI component library that sits on top of Terminal++. You could implement some kind of command line thingy for that, but it would be done by hand.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/KazDragon/terminalpp/pull/240#issuecomment-733223922, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIKEK4URLFYK3TULVKY5RP3SRQLRFANCNFSM4T6SY55Q .

KazDragon commented 3 years ago

I believe the underlying issue (being able to build via Conan) has been resolved. Therefore, I am closing this PR.