@@ -277,12 +277,13 @@ function _import_rospy_pkg(package::String)
277277end
278278
279279# 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 )
281281 @debug (" Building package: " , _name (pkg))
282282
283283 # Create the top-level module for the package in Main
284284 pkgsym = Symbol (_name (pkg))
285285 pkgcode = :(module ($ pkgsym) end )
286+ pkginitcode = :(function __init__ () end )
286287
287288 # Add msg and srv submodules if needed
288289 @debug_addindent
@@ -293,6 +294,9 @@ function buildpackage(pkg::ROSPackage, rosrootmod::Module=Main)
293294 push! (msgmod. args[3 ]. args, expr)
294295 end
295296 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
296300 end
297301 if length (pkg. srv. members) > 0
298302 srvmod = :(module srv end )
@@ -301,14 +305,19 @@ function buildpackage(pkg::ROSPackage, rosrootmod::Module=Main)
301305 push! (srvmod. args[3 ]. args, expr)
302306 end
303307 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
304311 end
312+ push! (pkgcode. args[3 ]. args, :(import RobotOS. @rosimport ))
313+ push! (pkgcode. args[3 ]. args, pkginitcode)
305314 pkgcode = Expr (:toplevel , pkgcode)
306315 rosrootmod. eval (pkgcode)
307316 @debug_subindent
308317end
309318
310319# Generate all code for a .msg or .srv module
311- function modulecode (mod:: ROSModule , rosrootmod:: Module = Main )
320+ function modulecode (mod:: ROSModule , rosrootmod:: Module )
312321 @debug (" submodule: " , _fullname (mod))
313322 modcode = Expr[]
314323
@@ -340,13 +349,13 @@ function modulecode(mod::ROSModule, rosrootmod::Module=Main)
340349end
341350
342351# The imports specific to each module, including dependant packages
343- function _importexprs (mod:: ROSMsgModule , rosrootmod:: Module = Main )
352+ function _importexprs (mod:: ROSMsgModule , rosrootmod:: Module )
344353 imports = Expr[Expr (:import , :RobotOS , :AbstractMsg )]
345354 othermods = filter (d -> d != _name (mod), mod. deps)
346355 append! (imports, [Expr (:using ,Symbol (rosrootmod),Symbol (m),:msg ) for m in othermods])
347356 imports
348357end
349- function _importexprs (mod:: ROSSrvModule , rosrootmod:: Module = Main )
358+ function _importexprs (mod:: ROSSrvModule , rosrootmod:: Module )
350359 imports = Expr[
351360 Expr (:import , :RobotOS , :AbstractSrv ),
352361 Expr (:import , :RobotOS , :AbstractService ),
0 commit comments