Properly link flecs library
This commit is contained in:
128
engine/libs/flecs/meson.build
Normal file
128
engine/libs/flecs/meson.build
Normal file
@@ -0,0 +1,128 @@
|
||||
project('flecs', 'c', license : 'mit', default_options : ['c_std=c99'])
|
||||
|
||||
flecs_args = []
|
||||
|
||||
if get_option('default_library') == 'static'
|
||||
flecs_args = '-Dflecs_STATIC'
|
||||
endif
|
||||
|
||||
flecs_inc = include_directories('include')
|
||||
|
||||
flecs_deps = [
|
||||
dependency('threads')
|
||||
]
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
flecs_deps += cc.find_library('ws2_32') # Required for http addon
|
||||
endif
|
||||
|
||||
flecs_src = files(
|
||||
'src/addons/alerts.c',
|
||||
'src/addons/coredoc.c',
|
||||
'src/addons/doc.c',
|
||||
'src/addons/expr/deserialize.c',
|
||||
'src/addons/expr/serialize.c',
|
||||
'src/addons/expr/utils.c',
|
||||
'src/addons/expr/vars.c',
|
||||
'src/addons/flecs_cpp.c',
|
||||
'src/addons/http.c',
|
||||
'src/addons/journal.c',
|
||||
'src/addons/json/deserialize.c',
|
||||
'src/addons/json/serialize.c',
|
||||
'src/addons/json/serialize_type_info.c',
|
||||
'src/addons/json/json.c',
|
||||
'src/addons/log.c',
|
||||
'src/addons/meta/api.c',
|
||||
'src/addons/meta/meta.c',
|
||||
'src/addons/meta/serialized.c',
|
||||
'src/addons/meta/cursor.c',
|
||||
'src/addons/meta_c.c',
|
||||
'src/addons/metrics.c',
|
||||
'src/addons/module.c',
|
||||
'src/addons/monitor.c',
|
||||
'src/addons/os_api_impl/os_api_impl.c',
|
||||
'src/addons/parser.c',
|
||||
'src/addons/pipeline/pipeline.c',
|
||||
'src/addons/pipeline/worker.c',
|
||||
'src/addons/plecs.c',
|
||||
'src/addons/rest.c',
|
||||
'src/addons/rules/api.c',
|
||||
'src/addons/rules/compile.c',
|
||||
'src/addons/rules/engine.c',
|
||||
'src/addons/rules/trav_cache.c',
|
||||
'src/addons/snapshot.c',
|
||||
'src/addons/stats.c',
|
||||
'src/addons/system/system.c',
|
||||
'src/addons/timer.c',
|
||||
'src/addons/units.c',
|
||||
'src/datastructures/allocator.c',
|
||||
'src/datastructures/bitset.c',
|
||||
'src/datastructures/block_allocator.c',
|
||||
'src/datastructures/hash.c',
|
||||
'src/datastructures/hashmap.c',
|
||||
'src/datastructures/map.c',
|
||||
'src/datastructures/stack_allocator.c',
|
||||
'src/datastructures/name_index.c',
|
||||
'src/datastructures/sparse.c',
|
||||
'src/datastructures/strbuf.c',
|
||||
'src/datastructures/switch_list.c',
|
||||
'src/datastructures/vec.c',
|
||||
'src/storage/entity_index.c',
|
||||
'src/storage/id_index.c',
|
||||
'src/storage/table.c',
|
||||
'src/storage/table_cache.c',
|
||||
'src/storage/table_graph.c',
|
||||
'src/bootstrap.c',
|
||||
'src/entity.c',
|
||||
'src/entity_filter.c',
|
||||
'src/entity_name.c',
|
||||
'src/filter.c',
|
||||
'src/iter.c',
|
||||
'src/misc.c',
|
||||
'src/observable.c',
|
||||
'src/observer.c',
|
||||
'src/os_api.c',
|
||||
'src/poly.c',
|
||||
'src/query.c',
|
||||
'src/stage.c',
|
||||
'src/search.c',
|
||||
'src/value.c',
|
||||
'src/world.c',
|
||||
)
|
||||
|
||||
install_headers('include/flecs.h')
|
||||
install_subdir('include/flecs', install_dir : get_option('includedir'))
|
||||
|
||||
flecs_lib = library('flecs',
|
||||
flecs_src,
|
||||
install : true,
|
||||
c_args : [ '-Dflecs_EXPORTS', flecs_args ],
|
||||
dependencies : flecs_deps,
|
||||
include_directories : flecs_inc,
|
||||
implicit_include_directories : false
|
||||
)
|
||||
|
||||
flecs_dep = declare_dependency(
|
||||
link_with : flecs_lib,
|
||||
compile_args : flecs_args,
|
||||
dependencies : flecs_deps,
|
||||
include_directories : flecs_inc
|
||||
)
|
||||
|
||||
helloworld_inc = include_directories('examples/c/hello_world/include')
|
||||
|
||||
helloworld_exe = executable('helloworld',
|
||||
'examples/c/hello_world/src/main.c',
|
||||
include_directories : helloworld_inc,
|
||||
implicit_include_directories : false,
|
||||
dependencies : flecs_dep
|
||||
)
|
||||
|
||||
if meson.version().version_compare('>= 0.54.0')
|
||||
meson.override_dependency('flecs', flecs_dep)
|
||||
endif
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
pkg.generate(flecs_lib)
|
||||
Reference in New Issue
Block a user