Browse Source

MSVC build fixes and tweaks

default_compile_flags
vector-of-bool 5 years ago
parent
commit
c65351dbf0
1 changed files with 8 additions and 8 deletions
  1. +8
    -8
      tools/build.py

+ 8
- 8
tools/build.py View File

from typing import Sequence, Iterable, Dict, Tuple, List, NamedTuple from typing import Sequence, Iterable, Dict, Tuple, List, NamedTuple
import subprocess import subprocess
import time import time
import re
import sys import sys


ROOT = Path(__file__).parent.parent.absolute() ROOT = Path(__file__).parent.parent.absolute()
'/permissive-', '/permissive-',
'/experimental:preprocessor', '/experimental:preprocessor',
'/wd5105', # winbase.h '/wd5105', # winbase.h
'/wd4459', # Shadowing
'/DWIN32_LEAN_AND_MEAN', '/DWIN32_LEAN_AND_MEAN',
'/DNOMINMAX', '/DNOMINMAX',
'/DFMT_HEADER_ONLY=1', '/DFMT_HEADER_ONLY=1',
'/D_CRT_SECURE_NO_WARNINGS', '/D_CRT_SECURE_NO_WARNINGS',
'/diagnostics:caret', '/diagnostics:caret',
'/experimental:external',
f'/I{ROOT / "src"}', f'/I{ROOT / "src"}',
str(cpp_file), str(cpp_file),
'/c', '/c',
] ]
if have_ccache(): if have_ccache():
cmd.insert(0, 'ccache') cmd.insert(0, 'ccache')
elif have_sccache():
cmd.insert(0, 'sccache')
if opts.debug: if opts.debug:
cmd.extend(('/Od', '/DEBUG', '/Z7')) cmd.extend(('/Od', '/DEBUG', '/Z7'))
else: else:
cmd.append('/MT') cmd.append('/MT')
else: else:
cmd.append('/MD') cmd.append('/MD')
cmd.extend(f'/I{ROOT / subdir}' for subdir in INCLUDE_DIRS)
cmd.extend(f'/external:I{ROOT / subdir}' for subdir in INCLUDE_DIRS)
return cmd return cmd




f'Compile command ({cmd}) failed for {cpp_file}:\n{res.stdout.decode()}' f'Compile command ({cmd}) failed for {cpp_file}:\n{res.stdout.decode()}'
) )
stdout: str = res.stdout.decode() stdout: str = res.stdout.decode()
fname_head = f'{cpp_file.name}\n'
if stdout.startswith(fname_head):
stdout = stdout[len(fname_head):]
stdout = re.sub(r'^{cpp_file.name}\r?\n', stdout, '')
fname_head = f'{cpp_file.name}\r\n'
if stdout: if stdout:
print(stdout, end='') print(stdout, end='')
end = time.time() end = time.time()
'/nologo', '/nologo',
'/W4', '/W4',
'/WX', '/WX',
'/MT',
'/Z7', '/Z7',
'/DEBUG', '/DEBUG',
'rpcrt4.lib',
f'/Fe{out}', f'/Fe{out}',
str(lib), str(lib),
str(obj), str(obj),
static=args.static, static=args.static,
debug=args.debug) debug=args.debug)


objects = compile_sources(build_opts, all_sources)
objects = compile_sources(build_opts, sorted(all_sources))


lib = make_library(build_opts, (objects[p] for p in lib_sources)) lib = make_library(build_opts, (objects[p] for p in lib_sources))



Loading…
Cancel
Save