Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building adalang tools #32

Open
MrAda opened this issue Feb 8, 2024 · 15 comments
Open

Building adalang tools #32

MrAda opened this issue Feb 8, 2024 · 15 comments

Comments

@MrAda
Copy link

MrAda commented Feb 8, 2024

I am trying to find a way to build gnatpp and after trying to use the make command, which didn't work, I tried to use alire. I have so many files that not compiling it isn't funny. Why is it that someone just doesn't build the adalang-tools so we can just pacman them?

@dinkelk
Copy link

dinkelk commented Feb 8, 2024

I had the same issue, so I did this:

https://github.com/dinkelk/libadalang_tool_builder

@MrAda
Copy link
Author

MrAda commented Feb 9, 2024

I had the same issue, so I did this:

https://github.com/dinkelk/libadalang_tool_builder

I'll try this and thanks. You need to mention before the instructions that one has to be in a crate. So I did this:
alr init --bin test
cd test
then you alr build --release
This got me started.

So doing the sh command within Alire is not working. Not recognizing sh command. This is on windows....

@MrAda
Copy link
Author

MrAda commented Feb 9, 2024

I decided to do the install in msys and this is what I got:
$ sh install.sh "C:\GNATSTUDIO\bin"
find: ‘./alire/cache/dependencies/libadalang_tools*/bin/’: No such file or directory
Done!
There is nothing in the cache folders.

@MrAda
Copy link
Author

MrAda commented Feb 9, 2024

I even tried:
$ ./install.sh "C:\GNATSTUDIO\bin"
and it didn't produce anything.

@dinkelk
Copy link

dinkelk commented Feb 9, 2024

I'll update the instructions, thank you for the feedback. You should clone the repository and then run alr build --release from within the repository root. I admit that I have not tested this on windows.

If there is nothing in the cache folders, I would expect that the alr build command failed. Did it seem to build correctly? It takes ~30 minutes on my machine.

@MrAda
Copy link
Author

MrAda commented Feb 9, 2024

Ok. Retried again and this :
PS C:\Users\Chris\test\libadalang_tool_builder-main> alr build --release
Note: Synchronizing workspace...
warning: Complete solution not found after 5 seconds.
Note: The best incomplete solution yet is:

RELEASE DEPENDENCY
gnat_external=13.2.0 gnat(>=11) & (/=2020) (solved)
gnatcoll=23.0.0 gnatcoll(^23) & (23.0.0) (solved)
gnatcoll_gmp=23.0.0 gnatcoll_gmp^23 (solved)
gnatcoll_iconv=23.0.0 gnatcoll_iconv^23 (solved)
langkit_support=23.0.0 langkit_support^23 (solved)
libadalang=23.0.0 libadalang^23.0.0 (solved)
libadalang_tools=23.0.0 libadalang_tools23.0.0 (solved)
(none) libgmp* (hinted)
libgpr=23.0.0 libgpr
23.0.0 (solved)
(none) libiconv* (hinted)
templates_parser=23.0.0 templates_parser^23.0.0 (solved)
xmlada=23.0.0 xmlada~23.0.0 (solved)

Do you want to keep solving for a few more seconds?
[Y] Yes [N] No [A] Always (default is Yes)

So libgmp* and libiconv* are in my MSYS package list:

$ pacman -Q | grep gmp
gmp 6.3.0-1
gmp-devel 6.3.0-1
mingw-w64-clang-x86_64-gmp 6.3.0-2
mingw-w64-ucrt-x86_64-gmp 6.3.0-2
mingw-w64-x86_64-gmp 6.3.0-2

$ pacman -Q | grep iconv
libiconv 1.17-1
mingw-w64-ucrt-x86_64-libiconv 1.17-3
mingw-w64-x86_64-libiconv 1.17-3

So I am not getting why it cannot find a complete solution!
This Alire stuff is a real P.I.T.A.

@dinkelk
Copy link

dinkelk commented Feb 9, 2024

Yes, the issue must be with one of those system libraries that differ by operating system. For what it is worth, this is what it looks like when I run on Linux:

user@e6613a10f946:~/libadalang_tool_builder$ alr build --release
ⓘ Synchronizing workspace...
Dependencies automatically updated as follows:

   +♼ gnat             13.2.1 (new,installed,gnat_native,indirect)
   +  gnatcoll         23.0.0 (new,indirect)
   +  gnatcoll_gmp     23.0.0 (new,indirect)
   +  gnatcoll_iconv   23.0.0 (new,indirect)
   +  langkit_support  23.0.0 (new,indirect)
   +  libadalang       23.0.0 (new,indirect)
   +  libadalang_tools 23.0.0 (new)
   +  libgmp           6.2.1  (new,indirect)
   +  libgpr           23.0.0 (new,indirect)
   +  templates_parser 23.0.0 (new,indirect)
   +  xmlada           23.0.0 (new,indirect)
ⓘ Deploying libgmp=6.2.1...
The system package 'libgmp-dev' is about to be installed.
This action might require admin privileges and impact your system installation.
Do you want Alire to install this system package?
[Y] Yes  [N] No  [A] Always  (default is Yes) Yes

And then libgmp-dev seems get installed as expected, and then the Ada source starts getting compiled. Maybe Alire is just not seeing those the gmp or iconv libraries for some reason, even though they are installed.

Hopefully an expert can chime in. I am sorry that didn't work for you out of the box.

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

Thanks. I will try to do this on linux in a VM. We'll see if that is momentous or not! :-)

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

I tried to build alire from scratch and that worked nicely. When I went to try and build libadalang_tools I got this:
PS C:\Users\Chris> alr get libadalang_tools
Warning: Spent 1.08 seconds exploring complete solutions
Warning: Exploring incomplete solutions to dependencies, this may take some time...
Warning: Complete solution not found after 7 seconds.
Note: The best incomplete solution yet is:

RELEASE DEPENDENCY
adasat=24.0.0 adasat^24 (solved)
gnat_external=13.2.0 gnat(>=11 & <2000) & (/=2020) (solved)
gnatcoll=24.0.0 gnatcoll(^24) & (~24.0.0) (solved)
gnatcoll_gmp=24.0.0 gnatcoll_gmp(^24) & (24.0.0) (solved)
gnatcoll_iconv=24.0.0 gnatcoll_iconv(^24) & (24.0.0) (solved)
langkit_support=24.0.0 langkit_support^24 (solved)
libadalang=24.0.0 libadalang^24.0.0 (solved)
(none) libgmp* (hinted)
libgpr=24.0.0 libgpr
24.0.0 (solved)
libgpr2=24.0.0 libgpr2^24 (solved)
(none) libiconv* (hinted)
templates_parser=24.0.0 templates_parser^24.0.0 (solved)
vss=24.0.0 vss^24.0.0 (solved)
xmlada=24.0.0 xmlada
24.0.0 (solved)

Do you want to keep solving for a few more seconds?
[Y] Yes [N] No [A] Always (default is Yes)

Seems there is some issue with finding libiconv and libgmp from Windows. I am still waiting for my VM to build to try it on linux

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

Thanks. I will try to do this on linux in a VM. We'll see if that is momentous or not! :-)

So I did try linux, specifically CentOS 7.9. Alr seemed more natural in this environment, but I still had issue with libgmp which did exist on my system. I wish ACT still did the community releases or at least document so I can reproduce an Executable like they did. This piece-mealing of all of the parts is time consuming and frustrating when things dont work out of the box.

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

Arg! Had to install gmp-devel and it found the missing gmp.h file! I am building now. I see a lot of warnings which is not very "Ada-like".

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

Ok. Under CentOS, I was able to build or so it seemed your crate. I don't see any executable except libadalang_too_build which does nothing AFAIK. So I ran the "sh install.sh ..." and got an error find: '.alire/cache/dependencies/labadalang_tool*/bin/' : No such file or directory

Did it create gnatpp or not?

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

I found the executables! In some obtuse folder:
/home//.local/share/alire/builds/libadalang_tools_23.0.0_............./bin
wtf is that about? I am wondering if this nonsense is also on the windows side. I have a righteous headache now from all of this.

@MrAda
Copy link
Author

MrAda commented Feb 10, 2024

ok. I got the install.sh to work. The line:
dir="./alire/cache/dependencies/$1*/bin/" doesn't work because the folder doesn't exist.
I changed it to
dir="/.local/share/alire/builds/$1*/bin/"

That worked and installed the executables!

@dinkelk
Copy link

dinkelk commented Feb 10, 2024

Awesome! Glad you got it going. It would be nice if Alire had a way to just download, build, and install tools outside of a crate. I agree, this whole thing is a bit awkward - and I miss being able to just download GNAT Community and get all the goodies. Hopefully these are just transition period growing pains...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants