diff --git a/.appveyor.yml b/.appveyor.yml index db66e54a2..e9a2c68fc 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -62,13 +62,13 @@ configuration: #- Checked - Release -build: - parallel: true # enable MSBuild parallel builds - project: build\xenia.sln # path to Visual Studio solution or project - - # MSBuild verbosity level - #verbosity: quiet|minimal|normal|detailed - verbosity: minimal +#build: +# parallel: true # enable MSBuild parallel builds +# project: build\xenia.sln # path to Visual Studio solution or project +# +# # MSBuild verbosity level +# #verbosity: quiet|minimal|normal|detailed +# verbosity: minimal # scripts to run before build #before_build: @@ -79,8 +79,9 @@ after_build: - 7z a xenia-%appveyor_repo_branch%-%appveyor_repo_commit%.zip LICENSE %APPVEYOR_BUILD_FOLDER%\build\bin\Windows\Release\xenia.exe %APPVEYOR_BUILD_FOLDER%\build\bin\Windows\Release\xenia.pdb # to run your custom scripts instead of automatic MSBuild -#build_script: -# - cmd: tools\buildbot\build.bat +# We also compile the tests here instead of later on. +build_script: + - cmd: xb.bat build --config=release --target=src\xenia-app --target=tests\xenia-cpu-ppc-tests # to disable automatic builds #build: off diff --git a/xenia-build b/xenia-build index 98330b6a5..5e659c4ee 100755 --- a/xenia-build +++ b/xenia-build @@ -293,6 +293,7 @@ def get_clang_format_binary(): A path to the clang-format executable. """ attempts = [ + 'C:\\Program Files\\LLVM\\bin\\clang-format.exe', 'C:\\Program Files (x86)\\LLVM\\bin\\clang-format.exe', 'clang-format-3.8', 'clang-format', @@ -574,17 +575,24 @@ class BaseBuildCommand(Command): print('') print('- building (%s):%s...' % ( - 'all' if not len(args['target']) else ' '.join(args['target']), + 'all' if not len(args['target']) else ', '.join(args['target']), args['config'])) if sys.platform == 'win32': - result = shell_call([ - 'devenv', - '/nologo', + targets = None + if len(args['target']): + targets = '/t:' + ';'.join(target + (':Rebuild' if args['force'] else '') + for target in args['target']) + else: + targets = '/t:Rebuild' if args['force'] else None + + result = subprocess.call([ + 'msbuild', 'build/xenia.sln', - '/rebuild' if args['force'] else '/build', - args['config'], - ] + [('/project ', target) for target in args['target']] + - pass_args, throw_on_error=False) + '/nologo', + '/m', + '/v:m', + '/p:Configuration=' + args['config'], + ] + ([targets] if targets is not None else []) + pass_args, shell=False) elif sys.platform == 'darwin': # TODO(benvanik): other platforms. print('ERROR: don\'t know how to build on this platform.') @@ -592,11 +600,11 @@ class BaseBuildCommand(Command): # TODO(benvanik): allow gcc? os.environ['CXX'] = 'clang++-3.8' os.environ['CC'] = 'clang-3.8' - result = shell_call([ + result = subprocess.call([ 'make', '-Cbuild/', 'config=%s_linux' % (args['config']), - ] + pass_args + args['target'], throw_on_error=False) + ] + pass_args + args['target'], shell=False) print('') if result != 0: print('ERROR: build failed with one or more errors.')