# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: import os binary = SM.Library(builder, 'sourcemod.logic') binary.compiler.cxxincludes += [ os.path.join(builder.sourcePath, 'core', 'logic'), os.path.join(builder.sourcePath, 'public'), os.path.join(builder.sourcePath, 'public', 'sourcepawn'), os.path.join(builder.sourcePath, 'public', 'amtl'), os.path.join(SM.mms_root, 'core', 'sourcehook') ] binary.compiler.defines += [ 'SM_DEFAULT_THREADER', 'SM_LOGIC' ] if builder.target_platform == 'linux': binary.compiler.postlink += ['-lpthread', '-lrt'] elif builder.target_platform == 'mac': binary.compiler.cflags += ['-Wno-deprecated-declarations'] binary.compiler.postlink += ['-framework', 'CoreServices'] if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang': binary.compiler.cxxflags += ['-fno-rtti'] elif binary.compiler.vendor == 'msvc': binary.compiler.cxxflags += ['/GR-'] binary.sources += [ 'common_logic.cpp', 'smn_adt_array.cpp', 'smn_sorting.cpp', 'smn_maplists.cpp', 'ADTFactory.cpp', 'smn_adt_stack.cpp', 'thread/ThreadWorker.cpp', 'thread/BaseWorker.cpp', 'ThreadSupport.cpp', 'smn_float.cpp', 'TextParsers.cpp', 'smn_textparse.cpp', 'smn_adt_trie.cpp', 'smn_functions.cpp', 'smn_timers.cpp', 'smn_players.cpp', 'MemoryUtils.cpp', 'smn_admin.cpp', 'smn_banning.cpp', 'smn_filesystem.cpp', 'stringutil.cpp', 'Translator.cpp', 'PhraseCollection.cpp', 'smn_lang.cpp', 'smn_string.cpp', 'smn_handles.cpp', 'smn_datapacks.cpp', 'smn_gameconfigs.cpp', 'smn_fakenatives.cpp', 'GameConfigs.cpp', 'sm_crc32.cpp', 'smn_profiler.cpp', 'ShareSys.cpp', 'PluginSys.cpp', 'HandleSys.cpp', 'NativeOwner.cpp', 'NativeInvoker.cpp', 'ExtensionSys.cpp', 'DebugReporter.cpp', 'Database.cpp', 'smn_database.cpp', 'ForwardSys.cpp', 'AdminCache.cpp', 'sm_trie.cpp', 'smn_console.cpp', 'ProfileTools.cpp', 'Logger.cpp', 'smn_core.cpp', 'smn_menus.cpp', ] if builder.target_platform == 'windows': binary.sources += ['thread/WinThreads.cpp'] else: binary.sources += ['thread/PosixThreads.cpp'] SM.binaries += [builder.Add(binary)]