mirror of
https://git.freebsd.org/ports.git
synced 2025-07-14 07:49:16 -04:00
The templates parser was split out from AWS and due to quirk how GPRBuild interacts with aggregate library projects, linking it as a separate library was more than challenging. It would drop a library exchange file (aws.lexch) in /usr/local/lib/templates_parser during the linking process. Ports are not support to touch areas outside of their work directory -- if they do, builders will notice and fail the port. After hours of trying to get GPRLib to behave, I was reduced to copying the *.ali files over to the work directory and creating a custom gpr file to make linking legal. In the process, I noticed AWS was linking back to work directory (sanity checks don't flag this yet) so that was fixed the the custom "-R" option that I added to GPRBuild a couple of years ago. I had to create a custom aws.gpr file for lib/gnat, and it works really well. Currently something like 238 of 243 tests are passing and the failing ones are socket related and may looking for linux-specific output in a couple of cases. * Documentation is now based on Sphinx. * A fixed package list has replaced the generated one (due to number of options, this was a real chore to generate and validate) * The option to generate only a shared library was removed. It was confusing and not really useful. It produces static and shared libraries by default, and the shared ones can be suppressed optionally. * The FreeBSD-specific makefile was removed. The previous issue was caused by the way the compiler was built which has since been fixed * ASIS was added as dependency * RUN_DEPENDS were defined (they were missing before) * GNUTLS support was fixed. It requires version 3 now and does not required gcrypt or openssl anymore which indicated a previous problem. The aws-demos port had some missing files and other problems. It has been updated at the same time. Note that the output directory has changed from share/examples/aws-demos to share/examples/aws. A couple of tests that were broken now build, and a new test was added. This update comes straight from the latest repositories and was custom packaged. The annual Adacore release was about 5 months old.
60 lines
2.3 KiB
Text
60 lines
2.3 KiB
Text
with "templates_parser";
|
|
with "xmlada";
|
|
|
|
project AWS is
|
|
|
|
type AWS_Kind_Type is ("static", "relocatable");
|
|
AWS_Kind : AWS_Kind_Type := external ("LIBRARY_TYPE", "static");
|
|
|
|
for Library_Name use "aws";
|
|
for Library_Kind use AWS_Kind;
|
|
case AWS_Kind is
|
|
when "relocatable" =>
|
|
for Source_Dirs use ("../../include/aws.relocatable");
|
|
for Library_Dir use "../../lib/aws.relocatable";
|
|
for Library_Version use "libaws.so";
|
|
when others =>
|
|
for Source_Dirs use ("../../include/aws");
|
|
for Library_Dir use "../../lib/aws";
|
|
end case;
|
|
for Externally_Built use "true";
|
|
|
|
package Linker is
|
|
for Linker_Options use ("-L@PREFIX@/lib", "-Wl,-R,@PREFIX@/lib"
|
|
@SSL@ , "-lssl", "-lcrypto"
|
|
@TLS@ , "-L@PREFIX@/lib/gnutls3", "-Wl,-R,@PREFIX@/lib/gnutls3"
|
|
@TLS@ , "-lgnutls"
|
|
@LDP@ , "-lldap"
|
|
);
|
|
end Linker;
|
|
|
|
package Naming is
|
|
|
|
@IP4@ for Implementation ("AWS.Net.Std") use "aws-net-std__gnat.adb";
|
|
|
|
@IP6@ for Implementation ("AWS.Net.Std") use "aws-net-std__ipv6.adb";
|
|
|
|
@STD@ for Implementation ("AWS.Net.SSL") use "aws-net-ssl__dummy.adb";
|
|
@STD@ for Specification ("AWS.Net.SSL.Certificate.Impl")
|
|
@STD@ use "aws-net-ssl-certificate-impl__dummy.ads";
|
|
@STD@ for Implementation ("AWS.Net.SSL.Certificate.Impl")
|
|
@STD@ use "aws-net-ssl-certificate-impl__dummy.adb";
|
|
@STD@ for Specification ("SSL.Thin") use "ssl-thin__dummy.ads";
|
|
|
|
@SSL@ for Implementation ("AWS.Net.SSL") use "aws-net-ssl__openssl.adb";
|
|
@SSL@ for Specification ("AWS.Net.SSL.Certificate.Impl")
|
|
@SSL@ use "aws-net-ssl-certificate-impl__openssl.ads";
|
|
@SSL@ for Implementation ("AWS.Net.SSL.Certificate.Impl")
|
|
@SSL@ use "aws-net-ssl-certificate-impl__openssl.adb";
|
|
@SSL@ for Specification ("SSL.Thin") use "ssl-thin__openssl.ads";
|
|
|
|
@TLS@ for Implementation ("AWS.Net.SSL") use "aws-net-ssl__gnutls.adb";
|
|
@TLS@ for Specification ("AWS.Net.SSL.Certificate.Impl")
|
|
@TLS@ use "aws-net-ssl-certificate-impl__gnutls.ads";
|
|
@TLS@ for Implementation ("AWS.Net.SSL.Certificate.Impl")
|
|
@TLS@ use "aws-net-ssl-certificate-impl__gnutls.adb";
|
|
@TLS@ for Specification ("SSL.Thin") use "ssl-thin__gnutls.ads";
|
|
|
|
end Naming;
|
|
|
|
end AWS;
|