File tree Expand file tree Collapse file tree 3 files changed +24
-7
lines changed Expand file tree Collapse file tree 3 files changed +24
-7
lines changed Original file line number Diff line number Diff line change @@ -19,7 +19,6 @@ nif_version_2_15 = ["nif_version_2_14"]
19
19
nif_version_2_16 = [" nif_version_2_15" ]
20
20
nif_version_2_17 = [" nif_version_2_16" ]
21
21
serde = [" dep:serde" ]
22
- staticlib = [" rustler_codegen/staticlib" ]
23
22
24
23
[dependencies ]
25
24
inventory = " 0.3"
Original file line number Diff line number Diff line change @@ -12,9 +12,6 @@ edition = "2021"
12
12
name = " rustler_codegen"
13
13
proc-macro = true
14
14
15
- [features ]
16
- staticlib = []
17
-
18
15
[dependencies ]
19
16
syn = { version = " 2.0" , features = [" full" , " extra-traits" ] }
20
17
quote = " 1.0"
Original file line number Diff line number Diff line change @@ -136,15 +136,34 @@ impl From<InitMacroInput> for proc_macro2::TokenStream {
136
136
}
137
137
} ;
138
138
139
- let nif_init_name = if cfg ! ( feature = "staticlib" ) {
139
+ let nif_init_name = {
140
140
let lib_name = std:: env:: var ( "CARGO_CRATE_NAME" ) . unwrap ( ) ;
141
141
format ! ( "{lib_name}_nif_init" )
142
- } else {
143
- "nif_init" . to_string ( )
144
142
} ;
145
143
146
144
let nif_init_name = Ident :: new ( & nif_init_name, Span :: call_site ( ) ) ;
147
145
146
+ let should_generate_primary_nif = std:: env:: var ( "RUSTLER_PRIMARY_NIF_INIT" ) . is_ok ( )
147
+ || std:: env:: var ( "CARGO_PRIMARY_PACKAGE" ) . is_ok ( ) ;
148
+
149
+ let maybe_primary_nif_init = if should_generate_primary_nif {
150
+ quote ! {
151
+ #[ cfg( not( windows) ) ]
152
+ #[ no_mangle]
153
+ fn nif_init( ) -> * const :: rustler:: codegen_runtime:: DEF_NIF_ENTRY {
154
+ #nif_init_name( )
155
+ }
156
+
157
+ #[ cfg( windows) ]
158
+ #[ no_mangle]
159
+ fn nif_init( callbacks: * mut :: rustler:: codegen_runtime:: DynNifCallbacks ) -> * const :: rustler:: codegen_runtime:: DEF_NIF_ENTRY {
160
+ #nif_init_name( callbacks)
161
+ }
162
+ }
163
+ } else {
164
+ quote ! ( )
165
+ } ;
166
+
148
167
quote ! {
149
168
#maybe_warning
150
169
@@ -167,6 +186,8 @@ impl From<InitMacroInput> for proc_macro2::TokenStream {
167
186
168
187
#inner
169
188
}
189
+
190
+ #maybe_primary_nif_init
170
191
}
171
192
}
172
193
}
You can’t perform that action at this time.
0 commit comments