The module can now be built as a shared library.

This commit is contained in:
Relintai 2020-01-03 16:55:12 +01:00
parent 63da1cc4a2
commit ddc91f7f08
2 changed files with 34 additions and 15 deletions

3
.gitignore vendored
View File

@ -4,4 +4,5 @@
*.meta *.meta
*.obj *.obj
*.pyc *.pyc
*.bc *.bc
*.os

46
SCsub
View File

@ -1,6 +1,8 @@
import os
Import('env') Import('env')
import os module_env = env.Clone()
if os.path.isdir('../entity_spell_system'): if os.path.isdir('../entity_spell_system'):
print("ESS FOUND") print("ESS FOUND")
@ -10,20 +12,36 @@ if os.path.isdir('../voxelman'):
print("VOXELMAN FOUND") print("VOXELMAN FOUND")
env.Append(CPPDEFINES=['VOXELMAN_PRESENT']) env.Append(CPPDEFINES=['VOXELMAN_PRESENT'])
env.add_source_files(env.modules_sources,"register_types.cpp") sources = [
env.add_source_files(env.modules_sources,"main/dungeon_room.cpp") "register_types.cpp",
env.add_source_files(env.modules_sources,"main/dungeon_corridor.cpp")
env.add_source_files(env.modules_sources,"main/dungeon.cpp")
env.add_source_files(env.modules_sources,"main/biome.cpp")
env.add_source_files(env.modules_sources,"main/planet.cpp")
env.add_source_files(env.modules_sources,"data/dungeon_room_data.cpp") "main/dungeon_room.cpp",
env.add_source_files(env.modules_sources,"data/dungeon_corridor_data.cpp") "main/dungeon_corridor.cpp",
env.add_source_files(env.modules_sources,"data/dungeon_data.cpp") "main/dungeon.cpp",
env.add_source_files(env.modules_sources,"data/biome_data.cpp") "main/biome.cpp",
env.add_source_files(env.modules_sources,"data/planet_data.cpp") "main/planet.cpp",
env.add_source_files(env.modules_sources,"data/world_generator_prop_data.cpp")
env.add_source_files(env.modules_sources,"world_generator.cpp") "data/dungeon_room_data.cpp",
"data/dungeon_corridor_data.cpp",
"data/dungeon_data.cpp",
"data/biome_data.cpp",
"data/planet_data.cpp",
"data/world_generator_prop_data.cpp",
"world_generator.cpp",
]
if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes':
# Shared lib compilation
module_env.Append(CCFLAGS=['-fPIC'])
module_env['LIBS'] = []
shared_lib = module_env.SharedLibrary(target='#bin/world_generator', source=sources)
shared_lib_shim = shared_lib[0].name.rsplit('.', 1)[0]
env.Append(LIBS=[shared_lib_shim])
env.Append(LIBPATH=['#bin'])
else:
# Static compilation
module_env.add_source_files(env.modules_sources, sources)