authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-01-05 12:16:16-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-01-05 12:16:16-05:00
loge08a4ea62d9814e6c0125ff467f67626f3a22e4f
treea06765f47bee6d18c1f9c85dbf0c1f0710651870
parent7e65fe7ac36076d0d34a530afd63a68d2eac3486
parent2c35e24bd95fa8ad9af1c6a712293163232a8b3c

Merge branch 'appveyor'


9 files changed, 47 insertions(+), 17 deletions(-)

CMakeLists.txt+12
...@@ -570,6 +570,14 @@ set(ZIG_C_HEADER_FILES...@@ -570,6 +570,14 @@ set(ZIG_C_HEADER_FILES
570 "xtestintrin.h"570 "xtestintrin.h"
571)571)
572572
573if(MSVC)
574 set(MSVC_DIA_SDK_DIR "$ENV{VSINSTALLDIR}DIA SDK")
575 if (IS_DIRECTORY ${MSVC_DIA_SDK_DIR})
576 set(ZIG_DIA_GUIDS_LIB "${MSVC_DIA_SDK_DIR}/lib/amd64/diaguids.lib")
577 string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_DIA_GUIDS_LIB_ESCAPED "${ZIG_DIA_GUIDS_LIB}")
578 endif()
579endif()
580
573set(ZIG_LIB_DIR "lib/zig")581set(ZIG_LIB_DIR "lib/zig")
574set(C_HEADERS_DEST "${ZIG_LIB_DIR}/include")582set(C_HEADERS_DEST "${ZIG_LIB_DIR}/include")
575set(ZIG_STD_DEST "${ZIG_LIB_DIR}/std")583set(ZIG_STD_DEST "${ZIG_LIB_DIR}/std")
...@@ -631,6 +639,10 @@ target_link_libraries(zig LINK_PUBLIC...@@ -631,6 +639,10 @@ target_link_libraries(zig LINK_PUBLIC
631 ${LLVM_LIBRARIES}639 ${LLVM_LIBRARIES}
632 ${CMAKE_THREAD_LIBS_INIT}640 ${CMAKE_THREAD_LIBS_INIT}
633)641)
642if(ZIG_DIA_GUIDS_LIB)
643 target_link_libraries(zig LINK_PUBLIC ${ZIG_DIA_GUIDS_LIB})
644endif()
645
634if(MSVC OR MINGW)646if(MSVC OR MINGW)
635 target_link_libraries(zig LINK_PUBLIC version)647 target_link_libraries(zig LINK_PUBLIC version)
636endif()648endif()
build.zig+12-1
...@@ -45,6 +45,7 @@ pub fn build(b: &Builder) {...@@ -45,6 +45,7 @@ pub fn build(b: &Builder) {
45 const lld_libraries = nextValue(&index, build_info);45 const lld_libraries = nextValue(&index, build_info);
46 const std_files = nextValue(&index, build_info);46 const std_files = nextValue(&index, build_info);
47 const c_header_files = nextValue(&index, build_info);47 const c_header_files = nextValue(&index, build_info);
48 const dia_guids_lib = nextValue(&index, build_info);
4849
49 const llvm = findLLVM(b, llvm_config_exe);50 const llvm = findLLVM(b, llvm_config_exe);
5051
...@@ -76,11 +77,21 @@ pub fn build(b: &Builder) {...@@ -76,11 +77,21 @@ pub fn build(b: &Builder) {
76 exe.linkSystemLibrary("c++");77 exe.linkSystemLibrary("c++");
77 }78 }
7879
80 if (dia_guids_lib.len != 0) {
81 exe.addObjectFile(dia_guids_lib);
82 }
83
79 exe.linkSystemLibrary("c");84 exe.linkSystemLibrary("c");
8085
81 b.default_step.dependOn(&exe.step);86 b.default_step.dependOn(&exe.step);
82 b.default_step.dependOn(docs_step);87 b.default_step.dependOn(docs_step);
83 test_step.dependOn(&exe.step);88
89 const skip_self_hosted = b.option(bool, "skip-self-hosted", "Main test suite skips building self hosted compiler") ?? false;
90 if (!skip_self_hosted) {
91 test_step.dependOn(&exe.step);
92 }
93 const verbose_link_exe = b.option(bool, "verbose-link", "Print link command for self hosted compiler") ?? false;
94 exe.setVerboseLink(verbose_link_exe);
8495
85 b.installArtifact(exe);96 b.installArtifact(exe);
86 installStdLib(b, std_files);97 installStdLib(b, std_files);
ci/appveyor/appveyor.yml+1-1
...@@ -6,4 +6,4 @@ build_script:...@@ -6,4 +6,4 @@ build_script:
6after_build:6after_build:
7 - '%APPVEYOR_BUILD_FOLDER%\ci\appveyor\after_build.bat'7 - '%APPVEYOR_BUILD_FOLDER%\ci\appveyor\after_build.bat'
8cache:8cache:
9 - 'llvm+clang-5.0.0-win64-msvc-release.tar.xz'9 - 'llvm+clang-5.0.1-win64-msvc-release.tar.xz'
ci/appveyor/build_script.bat+6-3
...@@ -7,20 +7,23 @@ SET "PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%"...@@ -7,20 +7,23 @@ SET "PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%"
7SET "MSYSTEM=MINGW64"7SET "MSYSTEM=MINGW64"
8SET "APPVEYOR_CACHE_ENTRY_ZIP_ARGS=-m0=Copy"8SET "APPVEYOR_CACHE_ENTRY_ZIP_ARGS=-m0=Copy"
99
10bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-5.0.0-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/superjoe/temp/llvm%%2bclang-5.0.0-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-5.0.0-win64-msvc-release.tar.xz" || exit /b10bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-5.0.1-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/ziglang.org/deps/llvm%%2bclang-5.0.1-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-5.0.1-win64-msvc-release.tar.xz" || exit /b
1111
1212
13SET "PATH=%PREVPATH%"13SET "PATH=%PREVPATH%"
14SET "MSYSTEM=%PREVMSYSTEM%"14SET "MSYSTEM=%PREVMSYSTEM%"
15SET "ZIGBUILDDIR=%APPVEYOR_BUILD_FOLDER%\build-msvc-release"15SET "ZIGBUILDDIR=%APPVEYOR_BUILD_FOLDER%\build-msvc-release"
16SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-5.0.0-win64-msvc-release"16SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-5.0.1-win64-msvc-release"
17
18call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
19call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
1720
18mkdir %ZIGBUILDDIR%21mkdir %ZIGBUILDDIR%
19cd %ZIGBUILDDIR%22cd %ZIGBUILDDIR%
20cmake.exe .. -Thost=x64 -G"Visual Studio 14 2015 Win64" "-DCMAKE_INSTALL_PREFIX=%ZIGBUILDDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release "-DZIG_LIBC_INCLUDE_DIR=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" "-DZIG_LIBC_LIB_DIR=C:\Program Files (x86)\Windows Kits\10\bin\x64\ucrt" "-DZIG_LIBC_STATIC_LIB_DIR=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64" || exit /b23cmake.exe .. -Thost=x64 -G"Visual Studio 14 2015 Win64" "-DCMAKE_INSTALL_PREFIX=%ZIGBUILDDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release "-DZIG_LIBC_INCLUDE_DIR=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" "-DZIG_LIBC_LIB_DIR=C:\Program Files (x86)\Windows Kits\10\bin\x64\ucrt" "-DZIG_LIBC_STATIC_LIB_DIR=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64" || exit /b
21msbuild /p:Configuration=Release INSTALL.vcxproj || exit /b24msbuild /p:Configuration=Release INSTALL.vcxproj || exit /b
2225
23bin\zig.exe build --build-file ..\build.zig test || exit /b26bin\zig.exe build --build-file ..\build.zig test -Dverbose-link || exit /b
2427
25@echo "MSVC build succeeded, proceeding with MinGW build"28@echo "MSVC build succeeded, proceeding with MinGW build"
26cd %APPVEYOR_BUILD_FOLDER%29cd %APPVEYOR_BUILD_FOLDER%
src/config.h.in+1
...@@ -32,5 +32,6 @@...@@ -32,5 +32,6 @@
32#define ZIG_LLVM_CONFIG_EXE "@LLVM_CONFIG_EXE@"32#define ZIG_LLVM_CONFIG_EXE "@LLVM_CONFIG_EXE@"
33#define ZIG_STD_FILES "@ZIG_STD_FILES@"33#define ZIG_STD_FILES "@ZIG_STD_FILES@"
34#define ZIG_C_HEADER_FILES "@ZIG_C_HEADER_FILES@"34#define ZIG_C_HEADER_FILES "@ZIG_C_HEADER_FILES@"
35#define ZIG_DIA_GUIDS_LIB "@ZIG_DIA_GUIDS_LIB_ESCAPED@"
3536
36#endif37#endif
src/main.cpp+3-2
...@@ -267,14 +267,15 @@ static void add_package(CodeGen *g, CliPkg *cli_pkg, PackageTableEntry *pkg) {...@@ -267,14 +267,15 @@ static void add_package(CodeGen *g, CliPkg *cli_pkg, PackageTableEntry *pkg) {
267267
268int main(int argc, char **argv) {268int main(int argc, char **argv) {
269 if (argc == 2 && strcmp(argv[1], "BUILD_INFO") == 0) {269 if (argc == 2 && strcmp(argv[1], "BUILD_INFO") == 0) {
270 printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n",270 printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",
271 ZIG_CMAKE_BINARY_DIR,271 ZIG_CMAKE_BINARY_DIR,
272 ZIG_CXX_COMPILER,272 ZIG_CXX_COMPILER,
273 ZIG_LLVM_CONFIG_EXE,273 ZIG_LLVM_CONFIG_EXE,
274 ZIG_LLD_INCLUDE_PATH,274 ZIG_LLD_INCLUDE_PATH,
275 ZIG_LLD_LIBRARIES,275 ZIG_LLD_LIBRARIES,
276 ZIG_STD_FILES,276 ZIG_STD_FILES,
277 ZIG_C_HEADER_FILES);277 ZIG_C_HEADER_FILES,
278 ZIG_DIA_GUIDS_LIB);
278 return 0;279 return 0;
279 }280 }
280281
src/os.cpp+5
...@@ -1055,6 +1055,11 @@ int os_find_windows_sdk(ZigWindowsSDK **out_sdk) {...@@ -1055,6 +1055,11 @@ int os_find_windows_sdk(ZigWindowsSDK **out_sdk) {
1055 if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {1055 if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
1056 int c0 = 0, c1 = 0, c2 = 0, c3 = 0;1056 int c0 = 0, c1 = 0, c2 = 0, c3 = 0;
1057 sscanf(ffd.cFileName, "%d.%d.%d.%d", &c0, &c1, &c2, &c3);1057 sscanf(ffd.cFileName, "%d.%d.%d.%d", &c0, &c1, &c2, &c3);
1058 if (c0 == 10 && c1 == 0 && c2 == 10240 && c3 == 0) {
1059 // Microsoft released 26624 as 10240 accidentally.
1060 // https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
1061 c2 = 26624;
1062 }
1058 if ((c0 > v0) || (c1 > v1) || (c2 > v2) || (c3 > v3)) {1063 if ((c0 > v0) || (c1 > v1) || (c2 > v2) || (c3 > v3)) {
1059 v0 = c0, v1 = c1, v2 = c2, v3 = c3;1064 v0 = c0, v1 = c1, v2 = c2, v3 = c3;
1060 buf_init_from_str(&result_sdk->version10, ffd.cFileName);1065 buf_init_from_str(&result_sdk->version10, ffd.cFileName);
std/build.zig+6-9
...@@ -842,10 +842,10 @@ pub const LibExeObjStep = struct {...@@ -842,10 +842,10 @@ pub const LibExeObjStep = struct {
842 lib_paths: ArrayList([]const u8),842 lib_paths: ArrayList([]const u8),
843 disable_libc: bool,843 disable_libc: bool,
844 frameworks: BufSet,844 frameworks: BufSet,
845 verbose_link: bool,
845846
846 // zig only stuff847 // zig only stuff
847 root_src: ?[]const u8,848 root_src: ?[]const u8,
848 verbose: bool,
849 output_h_path: ?[]const u8,849 output_h_path: ?[]const u8,
850 out_h_filename: []const u8,850 out_h_filename: []const u8,
851 assembly_files: ArrayList([]const u8),851 assembly_files: ArrayList([]const u8),
...@@ -923,7 +923,7 @@ pub const LibExeObjStep = struct {...@@ -923,7 +923,7 @@ pub const LibExeObjStep = struct {
923 var self = LibExeObjStep {923 var self = LibExeObjStep {
924 .strip = false,924 .strip = false,
925 .builder = builder,925 .builder = builder,
926 .verbose = false,926 .verbose_link = false,
927 .build_mode = builtin.Mode.Debug,927 .build_mode = builtin.Mode.Debug,
928 .static = static,928 .static = static,
929 .kind = kind,929 .kind = kind,
...@@ -988,7 +988,7 @@ pub const LibExeObjStep = struct {...@@ -988,7 +988,7 @@ pub const LibExeObjStep = struct {
988 .linker_script = null,988 .linker_script = null,
989989
990 .root_src = undefined,990 .root_src = undefined,
991 .verbose = undefined,991 .verbose_link = false,
992 .output_h_path = undefined,992 .output_h_path = undefined,
993 .out_h_filename = undefined,993 .out_h_filename = undefined,
994 .assembly_files = undefined,994 .assembly_files = undefined,
...@@ -1087,8 +1087,8 @@ pub const LibExeObjStep = struct {...@@ -1087,8 +1087,8 @@ pub const LibExeObjStep = struct {
1087 %%self.source_files.append(file);1087 %%self.source_files.append(file);
1088 }1088 }
10891089
1090 pub fn setVerbose(self: &LibExeObjStep, value: bool) {1090 pub fn setVerboseLink(self: &LibExeObjStep, value: bool) {
1091 self.verbose = value;1091 self.verbose_link = value;
1092 }1092 }
10931093
1094 pub fn setBuildMode(self: &LibExeObjStep, mode: builtin.Mode) {1094 pub fn setBuildMode(self: &LibExeObjStep, mode: builtin.Mode) {
...@@ -1223,15 +1223,12 @@ pub const LibExeObjStep = struct {...@@ -1223,15 +1223,12 @@ pub const LibExeObjStep = struct {
1223 %%zig_args.append(builder.pathFromRoot(asm_file));1223 %%zig_args.append(builder.pathFromRoot(asm_file));
1224 }1224 }
12251225
1226 if (self.verbose) {
1227 %%zig_args.append("--verbose");
1228 }
1229 if (builder.verbose_tokenize) %%zig_args.append("--verbose-tokenize");1226 if (builder.verbose_tokenize) %%zig_args.append("--verbose-tokenize");
1230 if (builder.verbose_ast) %%zig_args.append("--verbose-ast");1227 if (builder.verbose_ast) %%zig_args.append("--verbose-ast");
1231 if (builder.verbose_cimport) %%zig_args.append("--verbose-cimport");1228 if (builder.verbose_cimport) %%zig_args.append("--verbose-cimport");
1232 if (builder.verbose_ir) %%zig_args.append("--verbose-ir");1229 if (builder.verbose_ir) %%zig_args.append("--verbose-ir");
1233 if (builder.verbose_llvm_ir) %%zig_args.append("--verbose-llvm-ir");1230 if (builder.verbose_llvm_ir) %%zig_args.append("--verbose-llvm-ir");
1234 if (builder.verbose_link) %%zig_args.append("--verbose-link");1231 if (builder.verbose_link or self.verbose_link) %%zig_args.append("--verbose-link");
12351232
1236 if (self.strip) {1233 if (self.strip) {
1237 %%zig_args.append("--strip");1234 %%zig_args.append("--strip");
std/special/build_runner.zig+1-1
...@@ -14,7 +14,7 @@ pub fn main() -> %void {...@@ -14,7 +14,7 @@ pub fn main() -> %void {
14 var arg_it = os.args();14 var arg_it = os.args();
1515
16 // TODO use a more general purpose allocator here16 // TODO use a more general purpose allocator here
17 var inc_allocator = %%std.heap.IncrementingAllocator.init(30 * 1024 * 1024);17 var inc_allocator = %%std.heap.IncrementingAllocator.init(40 * 1024 * 1024);
18 defer inc_allocator.deinit();18 defer inc_allocator.deinit();
1919
20 const allocator = &inc_allocator.allocator;20 const allocator = &inc_allocator.allocator;