소스 검색

MSVC build fixes and tweaks

default_compile_flags
vector-of-bool 6 년 전
부모
커밋
c65351dbf0
1개의 변경된 파일8개의 추가작업 그리고 8개의 파일을 삭제
  1. +8
    -8
      tools/build.py

+ 8
- 8
tools/build.py 파일 보기

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…
취소
저장