Add "llvm/thinlto" options to MinGW build.

This commit is contained in:
bruvzg 2019-10-22 12:47:12 +03:00
parent 3564547208
commit ec30cf0d20
No known key found for this signature in database
GPG key ID: 89DD917D9CE4218D

View file

@ -65,6 +65,8 @@ def get_opts():
BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False), BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False),
('msvc_version', 'MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.', None), ('msvc_version', 'MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.', None),
BoolVariable('use_mingw', 'Use the Mingw compiler, even if MSVC is installed. Only used on Windows.', False), BoolVariable('use_mingw', 'Use the Mingw compiler, even if MSVC is installed. Only used on Windows.', False),
BoolVariable('use_llvm', 'Use the LLVM compiler', False),
BoolVariable('use_thinlto', 'Use ThinLTO', False),
] ]
@ -312,17 +314,33 @@ def configure_mingw(env):
env.Append(LINKFLAGS=['-static']) env.Append(LINKFLAGS=['-static'])
mingw_prefix = env["mingw_prefix_64"] mingw_prefix = env["mingw_prefix_64"]
env["CC"] = mingw_prefix + "gcc" if env['use_llvm']:
env['AS'] = mingw_prefix + "as" env["CC"] = mingw_prefix + "clang"
env['CXX'] = mingw_prefix + "g++" env['AS'] = mingw_prefix + "as"
env['AR'] = mingw_prefix + "gcc-ar" env["CXX"] = mingw_prefix + "clang++"
env['RANLIB'] = mingw_prefix + "gcc-ranlib" env['AR'] = mingw_prefix + "ar"
env['LINK'] = mingw_prefix + "g++" env['RANLIB'] = mingw_prefix + "ranlib"
env["LINK"] = mingw_prefix + "clang++"
else:
env["CC"] = mingw_prefix + "gcc"
env['AS'] = mingw_prefix + "as"
env['CXX'] = mingw_prefix + "g++"
env['AR'] = mingw_prefix + "gcc-ar"
env['RANLIB'] = mingw_prefix + "gcc-ranlib"
env['LINK'] = mingw_prefix + "g++"
env["x86_libtheora_opt_gcc"] = True env["x86_libtheora_opt_gcc"] = True
if env['use_lto']: if env['use_lto']:
env.Append(CCFLAGS=['-flto']) if not env['use_llvm'] and env.GetOption("num_jobs") > 1:
env.Append(LINKFLAGS=['-flto=' + str(env.GetOption("num_jobs"))]) env.Append(CCFLAGS=['-flto'])
env.Append(LINKFLAGS=['-flto=' + str(env.GetOption("num_jobs"))])
else:
if env['use_thinlto']:
env.Append(CCFLAGS=['-flto=thin'])
env.Append(LINKFLAGS=['-flto=thin'])
else:
env.Append(CCFLAGS=['-flto'])
env.Append(LINKFLAGS=['-flto'])
## Compile flags ## Compile flags