Ravenports generated: 04 Feb 2024 05:27
[ravenports.git] / bucket_A9 / libobjc2
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               libobjc2
4 VERSION=                2.1
5 REVISION=               2
6 KEYWORDS=               lang devel
7 VARIANTS=               standard
8 SDESC[standard]=        Replacement Obj-C runtime for modern lang features
9 HOMEPAGE=               https://github.com/gnustep/libobjc2/
10 CONTACT=                Michael_Reim[kraileth@elderlinux.org]
11
12 DOWNLOAD_GROUPS=        main tessil
13 SITES[main]=            GITHUB/gnustep:libobjc2:v2.1
14 SITES[tessil]=          GITHUB/Tessil:robin-map:757de82
15 DISTFILE[1]=            generated:main
16 DISTFILE[2]=            generated:tessil
17 DIST_SUBDIR=            gnustep
18 DF_INDEX=               1 2
19 SPKGS[standard]=        complete
20                         primary
21                         dev
22
23 OPTIONS_AVAILABLE=      none
24 OPTIONS_STANDARD=       none
25
26 BUILD_DEPENDS=          gnustep-make-bootstrap:primary:standard
27
28 USES=                   c++:primary clang cmake ninja
29
30 LICENSE=                MIT:primary
31 LICENSE_FILE=           MIT:{{WRKSRC}}/COPYING
32 LICENSE_SCHEME=         solo
33
34 FPC_EQUIVALENT=         lang/libobjc2
35
36 SINGLE_JOB=             yes
37
38 SOVERSION=              4.6
39
40 LDFLAGS=                -lm
41 CMAKE_ARGS=             -DLIB_INSTALL_PATH=lib
42                         -DLLVM_OPTS:BOOL=ON
43                         -DGNUSTEP_INSTALL_TYPE=SYSTEM
44                         -DTESTS=OFF
45                         -G
46                         Ninja
47
48 post-install:
49         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libobjc.so
50
51 post-extract:
52         ${MV} ${WRKDIR}/robin-map-757de82/* ${WRKSRC}/third_party/robin-map
53
54 [FILE:1192:descriptions/desc.primary]
55 The GNUstep Objective-C runtime was designed as a drop-in replacement for 
56 the GCC runtime. It supports three ABIs:
57
58  * The old GCC ABI, which provides support for Objective-C 1.0 features. 
59 This can be selected via the -fobjc-runtime=gcc flag in Clang or by 
60 compiling with GCC.
61  * The initial GNUstep non-fragile ABI, which was intended to be 
62 compatible with the GCC ABI, but provide support for modern Objective-C 
63 features. This can be selected with the -fobjc-runtime=gnustep-1.9 flag in 
64 Clang.
65  * The modern (v2) ABI, which provides richer reflection metadata, smaller 
66 binaries and reduced memory usage. This is selected with the 
67 -fobjc-runtime=gnustep-2.0 flag in Clang 7.0 or later.
68
69 All ABIs support the following feature above and beyond the GCC runtime:
70
71  * The modern Objective-C runtime APIs, initially introduced with OS X 
72 10.5.
73  * Blocks (closures).
74  * Synthesised property accessors.
75  * Efficient support for @synchronized()
76  * Type-dependent dispatch, eliminating stack corruption from mismatched 
77 selectors.
78  * Support for the associated reference APIs introduced with Mac OS X 10.6.
79  * Support for the automatic reference counting APIs introduced with Mac 
80 OS X 10.7
81
82
83
84 [FILE:232:distinfo]
85 78fc3711db14bf863040ae98f7bdca08f41623ebeaf7efaea7dd49a38b5f054c       200290 gnustep/gnustep-libobjc2-2.1.tar.gz
86 b365d847a23ce48a4e5c76c4a8194693f18323bf7cacdc0f57ada92ee275bd45        63288 gnustep/Tessil-robin-map-757de82.tar.gz
87
88
89 [FILE:29:manifests/plist.primary]
90 lib/libobjc.so.%%SOVERSION%%
91
92
93 [FILE:359:manifests/plist.dev]
94 include/
95  Block.h
96  Block_private.h
97 include/objc/
98  Availability.h
99  Object.h
100  Protocol.h
101  blocks_private.h
102  blocks_runtime.h
103  capabilities.h
104  developer.h
105  encoding.h
106  hooks.h
107  message.h
108  objc-api.h
109  objc-arc.h
110  objc-auto.h
111  objc-class.h
112  objc-runtime.h
113  objc-visibility.h
114  objc.h
115  runtime-deprecated.h
116  runtime.h
117  slot.h
118 lib/libobjc.so
119 lib/pkgconfig/libobjc.pc
120
121
122 [FILE:812:patches/patch-CMakeLists.txt]
123 diff --git a/CMakeLists.txt b/CMakeLists.txt
124 index e2746e9..80b7dfe 100644
125 --- CMakeLists.txt.orig 2020-08-23 15:10:20 UTC
126 +++ CMakeLists.txt
127 @@ -317,7 +317,7 @@ if (ENABLE_OBJCXX)
128                         endif()
129                 endif ()
130                 add_custom_command(OUTPUT eh_trampoline.s
131 -                       COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -fPIC -S "${CMAKE_SOURCE_DIR}/eh_trampoline.cc" -o - -fexceptions -fno-inline | sed "s/__gxx_personality_v0/test_eh_personality/g" > "${CMAKE_BINARY_DIR}/eh_trampoline.s"
132 +                       COMMAND ${CMAKE_CXX_COMPILER} -fPIC -S "${CMAKE_SOURCE_DIR}/eh_trampoline.cc" -o - -fexceptions -fno-inline | sed "s/__gxx_personality_v0/test_eh_personality/g" > "${CMAKE_BINARY_DIR}/eh_trampoline.s"
133                         MAIN_DEPENDENCY eh_trampoline.cc)
134                 list(APPEND libobjc_ASM_SRCS eh_trampoline.s)
135                 list(APPEND libobjc_CXX_SRCS objcxx_eh.cc)
136
137
138 [FILE:382:patches/patch-objcxx_eh.cc]
139 --- objcxx_eh.cc        2020-08-23 08:10:20.000000000 -0700
140 +++ objcxx_eh.cc.new    2023-10-13 22:07:26.543624000 -0700
141 @@ -16,8 +16,6 @@
142  
143  uint64_t cxx_exception_class;
144  
145 -extern "C" void *__cxa_allocate_exception(size_t) noexcept;
146 -
147  /**
148   * Our own definitions of C++ ABI functions and types.  These are provided
149   * because this file must not include cxxabi.h.  We need to handle subtly
150