102 lines
3.1 KiB
Meson
102 lines
3.1 KiB
Meson
project('micetools', 'c', default_options: [
|
|
'buildtype=minsize',
|
|
# ! Toggle /\ and \/ when building for XP (minsize=normal, static=XP)
|
|
'b_vscrt=static_from_buildtype',
|
|
'warning_level=3',
|
|
])
|
|
|
|
add_global_arguments('-DMICE_VERSION=' + '"' + get_option('mice_version') + '"', language : 'c')
|
|
|
|
if get_option('win64')
|
|
add_project_arguments(
|
|
'/D_AMD64_',
|
|
language: 'c',
|
|
)
|
|
winxp = false
|
|
subsystem = 'console'
|
|
else
|
|
add_project_arguments(
|
|
'/D_X86_',
|
|
language: 'c',
|
|
)
|
|
winxp = true
|
|
subsystem = 'console,5.01'
|
|
endif
|
|
|
|
if (host_machine.cpu_family() == 'x86')
|
|
add_project_arguments('-DMICE_WIN32', language: 'c')
|
|
endif
|
|
|
|
openssl_inc = include_directories('openssl-1.0.1/include')
|
|
if get_option('win64')
|
|
openssl_lib = meson.get_compiler('c').find_library('libeay64', dirs: [
|
|
join_paths(meson.source_root(), 'openssl-1.0.1/lib')
|
|
], required: true)
|
|
else
|
|
openssl_lib = meson.get_compiler('c').find_library('libeay32', dirs: [
|
|
join_paths(meson.source_root(), 'openssl-1.0.1/lib')
|
|
], required: true)
|
|
endif
|
|
assert(openssl_lib.found(), 'Please download openssl!')
|
|
|
|
ewfapi_lib = meson.get_compiler('c').find_library('ewfapi', dirs: [
|
|
join_paths(meson.source_root(), 'lib')
|
|
], required: true)
|
|
freeglut_lib = meson.get_compiler('c').find_library('freeglut', dirs: [
|
|
join_paths(meson.source_root(), 'lib')
|
|
], required: true)
|
|
|
|
add_project_link_arguments(
|
|
'/FIXED:NO',
|
|
'/DYNAMICBASE',
|
|
'/OPT:REF',
|
|
'/LTCG',
|
|
'/IGNORE:4099', # no PDBs
|
|
language: 'c'
|
|
)
|
|
add_project_link_arguments(
|
|
'/IGNORE:4099', # no PDBs
|
|
language: 'cpp'
|
|
)
|
|
add_project_arguments(
|
|
'/DWIN32_LEAN_AND_MEAN', # Strip out headers we don't really need
|
|
'/D_WIN32_WINNT=_WIN32_WINNT_WINXP', # hahahahaha I hate it
|
|
|
|
'/DCIMGUI_DEFINE_ENUMS_AND_STRUCTS',
|
|
|
|
# Strip out as much crud as we can to keep XP builds small
|
|
'/Os', '/EHc-', '/EHa-', '/EHs-', '/GL', '/GR-',
|
|
|
|
'/wd4100', # basically every hook causes "unreferenced formal parameter"
|
|
'/wd4152', # hooks: function/data pointer conversion in expression
|
|
'/wd4200', # zero-sized arrays
|
|
'/wd4201', # ewfapi.h: nameless struct/union
|
|
'/wd4204', # non-constant aggregate initializer
|
|
'/wd4206', # empty C files
|
|
'/wd4214', # windns.h: nonstandard extension used: bit field types other than int
|
|
'/wd4706', # assignment within conditional expression
|
|
|
|
'/wd4189', # lots of keychip functions aren't 100% implemented yet
|
|
|
|
'/we4047', # ... differs in levels of indirection from ...
|
|
'/we4057', # ... differs in levels of indirection (slightly) from ...
|
|
'/we4024', # ... different types for formal and actual paramter ...
|
|
'/we4013', # ... undefined; assuming extern returning int
|
|
'/we4431', # missing type specifier - int assumed.
|
|
|
|
'/W4',
|
|
|
|
language: 'c',
|
|
)
|
|
if winxp
|
|
add_project_arguments(
|
|
'/D_USING_V140_SDK71_',
|
|
'/DSFML_STATIC',
|
|
'/DYNAMICBASE:NO',
|
|
language: 'c',
|
|
)
|
|
endif
|
|
|
|
subdir('assets')
|
|
subdir('src')
|