@@ -277,12 +277,13 @@ function _import_rospy_pkg(package::String)
277
277
end
278
278
279
279
# The function that creates and fills the generated top-level modules
280
- function buildpackage (pkg:: ROSPackage , rosrootmod:: Module = Main )
280
+ function buildpackage (pkg:: ROSPackage , rosrootmod:: Module )
281
281
@debug (" Building package: " , _name (pkg))
282
282
283
283
# Create the top-level module for the package in Main
284
284
pkgsym = Symbol (_name (pkg))
285
285
pkgcode = :(module ($ pkgsym) end )
286
+ pkginitcode = :(function __init__ () end )
286
287
287
288
# Add msg and srv submodules if needed
288
289
@debug_addindent
@@ -293,6 +294,9 @@ function buildpackage(pkg::ROSPackage, rosrootmod::Module=Main)
293
294
push! (msgmod. args[3 ]. args, expr)
294
295
end
295
296
push! (pkgcode. args[3 ]. args, msgmod)
297
+ for typ in pkg. msg. members
298
+ push! (pkginitcode. args[2 ]. args, :(@rosimport $ (pkgsym). msg: $ (Symbol (typ))))
299
+ end
296
300
end
297
301
if length (pkg. srv. members) > 0
298
302
srvmod = :(module srv end )
@@ -301,14 +305,19 @@ function buildpackage(pkg::ROSPackage, rosrootmod::Module=Main)
301
305
push! (srvmod. args[3 ]. args, expr)
302
306
end
303
307
push! (pkgcode. args[3 ]. args, srvmod)
308
+ for typ in pkg. srv. members
309
+ push! (pkginitcode. args[2 ]. args, :(@rosimport $ (pkgsym). srv: $ (Symbol (typ))))
310
+ end
304
311
end
312
+ push! (pkgcode. args[3 ]. args, :(import RobotOS. @rosimport ))
313
+ push! (pkgcode. args[3 ]. args, pkginitcode)
305
314
pkgcode = Expr (:toplevel , pkgcode)
306
315
rosrootmod. eval (pkgcode)
307
316
@debug_subindent
308
317
end
309
318
310
319
# Generate all code for a .msg or .srv module
311
- function modulecode (mod:: ROSModule , rosrootmod:: Module = Main )
320
+ function modulecode (mod:: ROSModule , rosrootmod:: Module )
312
321
@debug (" submodule: " , _fullname (mod))
313
322
modcode = Expr[]
314
323
@@ -340,13 +349,13 @@ function modulecode(mod::ROSModule, rosrootmod::Module=Main)
340
349
end
341
350
342
351
# The imports specific to each module, including dependant packages
343
- function _importexprs (mod:: ROSMsgModule , rosrootmod:: Module = Main )
352
+ function _importexprs (mod:: ROSMsgModule , rosrootmod:: Module )
344
353
imports = Expr[Expr (:import , :RobotOS , :AbstractMsg )]
345
354
othermods = filter (d -> d != _name (mod), mod. deps)
346
355
append! (imports, [Expr (:using ,Symbol (rosrootmod),Symbol (m),:msg ) for m in othermods])
347
356
imports
348
357
end
349
- function _importexprs (mod:: ROSSrvModule , rosrootmod:: Module = Main )
358
+ function _importexprs (mod:: ROSSrvModule , rosrootmod:: Module )
350
359
imports = Expr[
351
360
Expr (:import , :RobotOS , :AbstractSrv ),
352
361
Expr (:import , :RobotOS , :AbstractService ),
0 commit comments