parameters: (ctx, *k, **kw)
return_statement: return ctx.objects(*k, **kw)
docstring: Util function to collect all libs and linker settings for monolithic builds
      (Which apply all of those only to the final link as no DLLs or libs are produced)
docstring_summary: Util function to collect all libs and linker settings for monolithic builds
      (Which apply all of those only to the final link as no DLLs or libs are produced)
docstring_tokens: Util function to collect all libs and linker settings for monolithic builds ( Which apply all of those only to the final link as no DLLs or libs are produced )
function: def MonolithicBuildModule(ctx, *k, **kw):
      """
      Util function to collect all libs and linker settings for monolithic builds
      (Which apply all of those only to the final link as no DLLs or libs are produced)
      """
      # Set up member for monolithic build settings
      if not hasattr(ctx, 'monolithic_build_settings'):
          ctx.monolithic_build_settings = defaultdict(lambda: [])
  
      # For game specific modules, store with a game unique prefix
      prefix = ''
      if kw.get('game_project', False):
          prefix = kw['game_project'] + '_'
  
      # Collect libs for later linking
      def _append(key, values):
          if not ctx.monolithic_build_settings.get(key):
              ctx.monolithic_build_settings[key] = []
          ctx.monolithic_build_settings[key] += values
  
      def _append_linker_options():
          for setting in ['stlib', 'stlibpath', 'lib', 'libpath', 'linkflags', 'framework', 'frameworkpath']:
              _append(prefix + setting, kw[setting] )
              _append(prefix + setting, ctx.GetPlatformSpecificSettings(kw, setting, ctx.env['PLATFORM'], ctx.env['CONFIGURATION']))
  
      # If this is a cryengine module, then it is marked to be included in all monolithic applications implicitly
      is_cryengine_module = kw.get('is_cryengine_module', False)
      if is_cryengine_module:
          _append(prefix + 'use',         [ kw['target'] ] )
          _append_linker_options()
      # If this is a gem we need to be sure the linker options apply to the monolithic application, but do not want to reapply use
      # because it can duplicate symbols
      elif kw.get('is_gem', False):
          _append_linker_options()
  
      if 'uselib' in kw:
          _append(prefix + 'uselib',        kw['uselib'] )
  
      # Remove rc files from the sources for monolithic builds (only the rc of
      # the launcher will be used) and remove any duplicate files that may have
      # sneaked in as well (using the python idiom: list(set(...)) to do so
      kw['source'] = [file for file in kw['source'] if not file.abspath().endswith('.rc')]
  
      return ctx.objects(*k, **kw)
function_tokens: def MonolithicBuildModule ( ctx , * k , * * kw ) : # Set up member for monolithic build settings if not hasattr ( ctx , 'monolithic_build_settings' ) : ctx . monolithic_build_settings = defaultdict ( lambda : [ ] ) # For game specific modules, store with a game unique prefix prefix = '' if kw . get ( 'game_project' , False ) : prefix = kw [ 'game_project' ] + '_' # Collect libs for later linking def _append ( key , values ) : if not ctx . monolithic_build_settings . get ( key ) : ctx . monolithic_build_settings [ key ] = [ ] ctx . monolithic_build_settings [ key ] += values def _append_linker_options ( ) : for setting in [ 'stlib' , 'stlibpath' , 'lib' , 'libpath' , 'linkflags' , 'framework' , 'frameworkpath' ] : _append ( prefix + setting , kw [ setting ] ) _append ( prefix + setting , ctx . GetPlatformSpecificSettings ( kw , setting , ctx . env [ 'PLATFORM' ] , ctx . env [ 'CONFIGURATION' ] ) ) # If this is a cryengine module, then it is marked to be included in all monolithic applications implicitly is_cryengine_module = kw . get ( 'is_cryengine_module' , False ) if is_cryengine_module : _append ( prefix + 'use' , [ kw [ 'target' ] ] ) _append_linker_options ( ) # If this is a gem we need to be sure the linker options apply to the monolithic application, but do not want to reapply use # because it can duplicate symbols elif kw . get ( 'is_gem' , False ) : _append_linker_options ( ) if 'uselib' in kw : _append ( prefix + 'uselib' , kw [ 'uselib' ] ) # Remove rc files from the sources for monolithic builds (only the rc of # the launcher will be used) and remove any duplicate files that may have # sneaked in as well (using the python idiom: list(set(...)) to do so kw [ 'source' ] = [ file for file in kw [ 'source' ] if not file . abspath ( ) . endswith ( '.rc' ) ] return ctx . objects ( * k , * * kw )